今天是: <%response.write formatdatetime(date(),1)%> 电子制作天地网站欢迎您的光临,欢迎提出宝贵意见或建议。本站信息产业部备案: 粤ICP备05114582号
 
用单片机AT89C2051制作的倒计时器
AT89C2051 TIMER

时间:2012-4-15 21:16:32 来源:互联网 作者:不详 编辑: 【关闭


关键字:AT89C2051,定时电路图

作者:吴汉清
本文介绍的用单片机AT89C2051制作的计时器,采用倒计时方式,剩余时间一目了然。时间到了还会发出报警声。
  一、硬件电路工作原理
  电路见附图,由单片机电路和数码显示电路等组成。使用复位和开始两个按钮,用三位数码管分别显示分和秒。
  AT89C205l、TX、R1、C1等组成单片机电路。数码管DS1~DS3、VT1~VT3、R3~R12等组成数码显示电路。本机采用动态显示方式,使用共阳数码管,P3.3~P3.5口作数码管的位码输出,通过三极管驱动数码管。P1.0~P1.6口作段码输出,用以驱动数码管的各字段。BL是自带振荡器的讯响器。当P3.0输出低电平时,BL发出报警声。
用单片机AT89C2051制作的倒计时器电路图AT89C2051 TIMER
  二、软件设计
  程序用C语言编写,由主程序、定时器T0中断服务程序、定时器T1中断服务程序、延时子程序等模块组成。主程序主要完成程序的初始化和对开始按键S1的检测。
  TO中断服务程序由动态扫描显示等部分组成。T0的中断时间设置为5ms。采用三位显示,T0每中断一次显示一位,3次中断,即15ms,刷新一次数据。程序中用到三个数组:DisoTab[l0]用来存放字形码;BitTab[3]存放位驱动码;DispBuf[3]存放待显示的数,其中DispBuf[0]存放分钟数,DispBuf[1]、DispBuf[2]分别存放秒的十位和个位。T1中断服务程序用作时间计数。中断时间设置为50ms。为了获得1秒钟的时间。使用了变量n,T1每中断一次n加l。当n=20时即得到1秒的时间。程序中s作秒计数,m作分计数,它们的初始值为s=0。m=5。当n计满20时s减l(当s为0时结果取59):当s计满60个数时m减1:m、s均为0说明5分钟的定时时间到。BL发出1秒钟报警声。
  在计时过程中。如果要提前结束计时,只需按一下复位键S2,这时数码显示5:00;当按开始键S1后。倒计时开始。
  三、元器件选择与安装
  DS1~DS3选共阳LED数码管,BL选用内部带振荡器的讯响器。其余元器件的参数见附图。
  先将C语言源程序用KEILC51编译成目标文件。即HEX文件。再用编程器将HEX文件写入AT89C205l中。安装时,将表示分的数码管DSI和表示秒的数码管DS2、DS3分开一定的距离。

◆相关文章◆
◆ 编辑推荐 ◆
用户:
更多评论
您要为您所发的言论的后果负责,故请各位遵纪守法并注意语言文明。60个字以内
留言:
验证码:
 
 
 

免责声明:
●本站所有内容均来自网络,以学习为目的,如果侵犯了您的利益,请来信告知,立即删除,站长邮件为"diy+dzdiy.com",请将"+"变更为"@"
●电子制作存在风险,请注意人身安全,如果您在根据本站电路进行制作过程中发生伤害,本站不负任何责任。

版权所有:www.dzdiy.com © 2001-2019 本站信息产业部备案: 粤ICP备05114582号