来说明守时器的软件编程办法,时钟便是咱们最常见的显现时、分、秒为单位的计时东西,它是典型的运用代...。
来说明守时器的软件编程办法,时钟便是咱们最常见的显现时、分、秒为单位的计时东西,它是典型的运用代表。
时钟的最小计时单位是秒,但运用单片机守时器来进行计时,若运用6.0MHz的晶振,即便按作业方法1作业,最大的计时时刻也只能到131ms,所以咱们可把每个守时时刻取125ms,这样守时器溢出8次(125ms╳8=1000ms)就得到最小的计时单位秒。而要完成8次计数用软件办法完成是垂手可得的。
咱们运用守时器1,以作业方法1作业,守时器进行125ms守时。选用中止办法来进行溢出次数的累计,当计满8次即得到1秒的计时。
一个时钟的计时累加,要完成分、时的进位,要用到多种进制,秒、分、时中的进位是十进制,秒向分进位和分想时进位却是六十进制,而每天又有十二小时制或二十四小时制,它们别离又是十二进制和二十四进制。从秒到分和从分到小时能经过软件累加和数值比较办法完成。
在单片机的内部RAM中,需求设置显现缓冲区,显现的时、分、秒值是从显现缓冲区中取出的,在RAM中设置四个单元作为显现缓冲区,别离是7AH、7BH、7CH。为使电路和原理叙说便利,咱们这儿不显现秒值,秒的进位咱们经过闪耀分值完成。这样咱们一共有四位LED别离显现时和分值。一起时钟都需求校准的。在程序中还需设置显现码表,要显现的数值经过查表指令将显现用的真实码值送到LED上。咱们用单片机AT89C2051的PP3.4和P3.5两个I/O口外接微动开关来完成时和分的校对,每按一次小时或分值加1,接连按下数值累计下去,完成时钟的校准。
在电路中咱们还设置了一个蜂鸣器,用作简略报时用,如可设早上7:30分起床,正午1点30分再有起床报时,每次响时1分钟,响1秒,停2秒的方法,而不是接连响铃。这个程序咱们选用12小时制,为此,要在程序中设置相应的标志,以利于主程序辨认。相同计时程序中还会有几个相关的标志,主要是控制程序流的转向。程序中咱们都作了较具体的注释,这儿不再赘述。
硬件电路,咱们依旧是以贱价的AT89C2051单片机为微处理单元,这个芯片兼容C51指令系统,在C51上编写的程序,无需任何修正即可便利地移植到这个芯片上来。咱们以P0口作为LED的字段位驱动输出,秒的“进位”选用分值闪耀提示,亮0.5秒,熄0.5秒。,P3.1—P3.3用于位驱动,运用动态扫描方法显现,每位LED的显现时刻10—25ms之间均可,扫描频率不能太高,不然每位LED显现的时刻过短,亮度太低,不易于观看,以肉眼不感觉到LED闪耀为宜。为了直观,咱们的驱动输出没有选用集成电路,而是运用了分立元件—三极管,但作业原理却是共同的。
这个电路结构决议LED选用共阳极的数码管,可以运用LQ5101BS一般的发光二极管,驱动三极管可选用易得的2SA1015和2SC1815等类型,当然也可运用象S9012,S9013,S9014,2N5401,2N5555等小功率三极管,其它器材没有特别的条件。为便于试验,单片机AT89C2051可选用DIP20P插座,程序编制好后,调试无错,即可烧写到AT89C2051中,值得一提的是,AT89C2051是Flash程序存储器,程序可重复擦写,关于做试验是非常快捷的。