51单片机定时计数器软件编程范例(共2页).doc

上传人:飞****2 文档编号:15090646 上传时间:2022-05-10 格式:DOC 页数:2 大小:15KB
返回 下载 相关 举报
51单片机定时计数器软件编程范例(共2页).doc_第1页
第1页 / 共2页
51单片机定时计数器软件编程范例(共2页).doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《51单片机定时计数器软件编程范例(共2页).doc》由会员分享,可在线阅读,更多相关《51单片机定时计数器软件编程范例(共2页).doc(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上51单片机定时/计数器软件编程范例 我们以一个实际的时钟电路来说明定时器的软件编程方法,时钟就是我们最为常见的显示时、分、秒为单位的计时工具,它是典型的应用代表。时钟的最小计时单位是秒,但使用单片机定时器来进行计时,若使用6.0MHz的,即使按工作方式1工作,最大的计时时间也只能到131ms,所以我们可把每个定时时间取125ms,这样定时器溢出8次(125ms8=1000ms)就得到最小的计时单位秒。而要实现8次计数用软件方法实现是轻而易举的。我们使用定时器1,以工作方式1工作,定时器进行125ms定时。采用中断方法进行溢出次数的累计,当计满8次即得到1秒的计时。一个

2、时钟的计时累加,要实现分、时的进位,要用到多种进制,秒、分、时中的进位是十进制,秒向分进位和分想时进位却是六十进制,而每天又有十二小时制或二十四小时制,它们分别又是十二进制和二十四进制。从秒到分和从分到小时可以通过软件累加和数值比较方法实现。在单片机的内部RAM中,需要设置显示缓冲区,显示的时、分、秒值是从显示缓冲区中取出的,在RAM中设置四个单元作为显示缓冲区,分别是7AH、7BH、7CH。为使电路和原理叙述方便,我们这里不显示秒值,秒的进位我们通过闪烁分值实现。这样我们一共有四位LED分别显示时和分值。同时时钟都需要校准的。在程序中还需设置显示码表,要显示的数值通过查表指令将显示用的真正码

3、值送到LED上。我们用单片机AT89C2051的PP3.4和P3.5两个I/O口外接微动开关来实现时和分的校正,每按一次小时或分值加1,连续按下数值累计下去,实现时钟的校准。在电路中我们还设置了一个蜂鸣器,用作简单报时用,如可设早上7:30分起床,中午1点30分再有起床报时,每次响时1分钟,响1秒,停2秒的方式,而不是连续响铃。这个程序我们采用12小时制,为此,要在程序中设置相应的标志,以利于主程序识别。同样计时程序中还会有几个相关的标志,主要是控制程序流的转向。程序中我们都作了较详细的注释,这里不再赘述。硬件电路,我们还是以低价的AT89C2051单片机为微处理单元,这个芯片兼容C51指令系

4、统,在C51上编写的程序,无需任何修改即可方便地移植到这个芯片上来。我们以P0口作为LED的字段位驱动输出,秒的“进位”采用分值闪烁提示,亮0.5秒,熄0.5秒。,P3.1P3.3用于位驱动,使用动态扫描方式显示,每位LED的显示时间1025ms之间均可,扫描频率不能太高,否则每位LED显示的时间过短,亮度太低,不易于观看,以肉眼不感觉到LED闪烁为宜。为了直观,我们的驱动输出没有采用,而是使用了分立元件三极管,但工作原理却是一致的。 这个电路结构决定LED采用共阳极的,可以采用LQ5101BS普通的发光,驱动三极管可采用易得的2SA1015和2SC1815等型号,当然也可使用象S9012,S9013,S9014,2N5401,2N5555等小功率三极管,其它器件没有特殊要求。为便于实验,单片机AT89C2051可采用20P插座,程序编制好后,调试无错,即可烧写到AT89C2051中,值得一提的是,AT89C2051是Falsh程序存储器,程序可反复擦写,对于做实验是非常方便的。专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁