首页|嵌入式系统|显示技术|模拟IC/电源|元件与制造|其他IC/制程|消费类电子|无线/通信|汽车电子|工业控制|医疗电子|测试测量
首页 > 分享下载 > 常用文档 > 定时/计数器软件编程范例

定时/计数器软件编程范例

资料介绍
单片机资料

  我们以一个实际的时钟电路来说明定时器的软件编程方法,时钟就是我们最为常见的
显示时、分、秒为单位的计时工具,它是典型的应用代表。

    时钟的最小计时单位是秒,但使用单片机定时器来进行计时,若使用6.0MHz的晶振
,即使按工作方式1工作,最大的计时时间也只能到131ms,所以我们可把每个定时时间
取125ms,这样定时器溢出8次(125ms╳8=1000ms)就得到最小的计时单位秒。而要实现
8次计数用软件方法实现是轻而易举的。

    我们使用定时器1,以工作方式1工作,定时器进行125ms定时。采用中断方法进行溢
出次数的累计,当计满8次即得到1秒的计时。

    一个时钟的计时累加,要实现分、时的进位,要用到多种进制,秒、分、时中的进
位是十进制,秒向分进位和分想时进位却是六十进制,而每天又有十二小时制或二十四
小时制,它们分别又是十二进制和二十四进制。从秒到分和从分到小时可以通过软件累
加和数值比较方法实现。

    在单片机的内部RAM中,需要设置显示缓冲区,显示的时、分、秒值是从显示缓冲区
中取出的,在RAM中设置四个单元作为显示缓冲区,分别是7AH、7BH、7CH。为使电路和
原理叙述方便,我们这里不显示秒值,秒的进位我们通过闪烁分值实现。这样我们一共
有四位LED分别显示时和分值。同时时钟都需要校准的。在程序中还需设置显示码表,要
显示的数值通过查表指令将显示用的真正码值送到LED上。我们用单片机AT89C2051的PP
3.4和P3.5两个I/O口外接微动开关来实现时和分的校正,每按一次小时或分值加1,连续
按下数值累计下去,实现时钟的校准。

    在电路中我们还设置了一个蜂鸣器,用作简单报时用,如可设早上7:30分起床,中
午1点30分再有起床报时,每次响时1分钟,响1秒,停2秒的方式,而不是连续响铃。这
个程序我们采用12小时制,
定时/计数器软件编程范例
本地下载

评论