一:课程设计题目
秒表时钟计时器
二:课程设计任务与要求:
利用89C51单片机设计秒表时钟计时器,通过LED显示器显示秒十位和个位,在设计过程中用一个存储单元作为秒计数单元,当一秒钟到来时,就让秒计数单元加1,当秒计数达到60时,就自动返回到0,重新开始秒计数。
三:设计过程:
1设计原理:此次课程设计题目是秒表时钟计时器,由课程设计的要求和任务,我采用的C语言编程,设计秒表要求一秒定时,采用了定时器和FOR循环来定时,其中一个软件一个硬件,会在方案论证中分析在1秒时采用的是硬件定时,即用单片机内部的定时器T0。先将时钟初始化,赋入初值50ms定时,循环20次来进行1秒定时。然后由定义的变量seco
d来进行加一运算,然后将其值通过P1,P2口在数码管上进行显示。其中数码管的显示时,我在程序中首先定义了一个关于数码管显示的字形码定义,以便在显示时调用即可。(1)方案论证:方案1:在方案1中,我们所选用的是软件定时,即用for循环来定时1秒进行显示的变化。方案2:在方案2中,采用的是硬件定时,即用单片机内部的定时器T0。先将时钟初始化,赋入初值50ms定时,循环20次来进行1秒定时。方案比较:我们从两方面进行两种方案的比较,第一,由于此次课程设计要求是秒表,则在定时时要求比较精确,所以采用硬件的定时器定时时比较准确的。第二,由于秒表的定时程序是很小的,在利用软件定时占用的CPU并不是很多,不能显现出来,但真正大程序时会很占用资源的,所以在用定时中断过程中是非常节省资源的。综合上述两种比较,我们选用了第二种方案。(2)创新点:a在课程要求的基础上,我们做成的电路板上,用复位键来控制秒表计时的重新开始,即清零。
b在以上设计的基础上,我们又重新设计了一个程序,基本原理没有变,只是
f将秒表在到达59清零的瞬间向分的位数上进1,程序将会在附录3中给出。2硬件系统框图与说明:
首先,连接的是单片机51的最小系统,其中包括时钟电路,复位电路,在此中包括的元器件在附录3中。我们所选用的数码管是共阴极的,置1时导通,所以将单片机的P10P17连接数码管的adpP2口同理。然后在数码管秒表个十位的显示则由软件程序来控制。3软件主要模块流程图与说明:
2
f初始化
判断是否中断
YCou
t
等待N
NCou
t20?
Y
Seco
d
Seco
d59
YN
Seco
d0
数码管显示当前值
3
f在真正应用时,我们的一秒定时是用定时中断的,但单片机的T0最长也不能1秒定时,所以我们采r