单片机秒表课程设计报告 联系客服

发布时间 : 星期一 文章单片机秒表课程设计报告更新完毕开始阅读6b8f48556e175f0e7cd184254b35eefdc8d31516

过程中最困难的地方就是数码管的焊接,因为数码管的管脚和 89C51 的管脚是 不对应的,而且要避免接线的交叉,所以最后确定了布线最合理的方案,如硬 件电路图所示。我们这次设计的出现的最大问题是电路当中的复位电路,开始 电路在 Proteus 上仿真时都是可以正常复位的,但实际的电路中复位按键后的电 阻的参数不合理,导致了 RST 上有电压,复位电路无效,所以最后我们去掉了 那个电阻,此时复位电路才有效,所以理论和实际永远有差距,不实践永远发 现不了问题。在焊接前我们没有想到给数码管用插槽固定,而是直接焊在了电 路板上,这造成了后面的很多麻烦,我们方案中用的是共阴极的数码管,焊接 第一个数码管时没有注意型号,等焊接到一半时才发现焊上的是共阳极的,所 以不得不解焊重新焊接,这也是一个教训,以后焊接器件时能用上插槽的尽量 用插槽,这在器件出了问题时很方便更换。最后焊接完成后在试验的过程中, 刚一接通电源后的上电电压烧坏了 LED 显示器显示秒十位的 c 脚,这也是这次 课程设计的遗憾,以后在硬件的实验时还要多小心,避免造成不必要的损失。

4:通过本次秒表/时钟计时器的设计实验,使我对这学期学所学 51 系列的单片

机从理论知识到实践硬件的应用以及 C 语言知识的回顾,更加熟悉了 89C51 单 片机的每一个拐角的输出和各项功能,而且对硬件电路的布线以及焊接能力有 了很大的进步。在这次试验中,我主要负责的是硬件电路的布线和焊接以及硬 件测试。由于本次试验电路比较简单,所以我们按照电路图布线后就马上开始 焊接。焊好一个数码管检测后才发现我们把共阴极的数码管焊接成共阳级的了, 很不容易才解焊下来,有了这次教训后,我们在焊接其他元器件的时候都提前 检测好才开始焊接。第一次焊接完成后我们上电后发现实现了基本功能,可是 不能复位,经过我们的讨论和反复试验,我们发现软件仿真和硬件实现并不是 完全一致的,我们按照课本上焊接后终于完全实现了秒表/时钟计时器的功能。 快要验收时我们发现数码管的一个二极管坏了,这才让我们意识到没有焊接插 针的缺陷,以后一实验时一定要尽可能让原件可以取下,以便出现问题是更好 的更换。这次课程设计终于圆满的完成了,我从理论和硬件以及实践上懂得了 很多,也明白了一个团队的合作精神可以让我们战胜所有的困难。

5

五:附录

附录 1:电路原理图:

附录 2:实物图:

6

附录 3:源程序及程序解释:

#include #define uint unsigned int #define uchar unsigned char unsigned

char

code

//包含头文件 REG51。H

SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码 管 0~9 的字型码

uchar count,second;

//定义变量

/*===================================*/ void init() {

TMOD=0x01;

TH0=(65536-50000)/256; TL0=(65536-50000)%6; ET0=1;

7

//定义定时器 T0 初始化程序

//赋初值定时 1 秒

TR0=1; EA=1; P2=SEG7[0]; P1=SEG7[0]; }

void delay(unsigned int k) //定义延时程序{

unsigned int i,j; for(i=0;i

for(j=0;j<121;j++) {

; } } }

//----------------------------------------------------------- void main(void) { init(); //定时器初始化 while(1)

//无限循环

{ ; } }

//---------------------------------------------------- void timer0() interrupt 1 //定时器 T0 中断 {

8