本文主要以“加、减计时器的设计和实现”为例,详细介绍了单片机的设计和制作。
一、设计要求
该设计即可做日常用的闹表,又可做体育比赛中的计时器。其设计时间达到23:59:59。设计功能要求如下:
(一)、设置在任意时刻开始加计时或减计时的控制开关;
(二)、设置可设定初值开关:设置秒初值开关、设置分初值开关、设置时初值开关;
(三)、设置定时闹铃开关;
(四)、设置在任意时刻人为暂停开关,并使闹铃有铃声;
控制部分用单片机AT89C51来实现。
显示部分用共阴极8段数码管,其中时、分、秒的分段“:”,将分、秒的十位数码管倒置与时、分个位的点组合而成。用AT89C51的P0.0~P0.7并接6个数码管做时、分、秒的显示。
选择7个按钮开关分别做:
1、加、减控制开关SW1,接单片机AT89C51的1.4口;2、定时开关:S(调秒)、M(调分)、H(调时)分别接单片机AT89C51的P1.0、P1.1、P1.2口。
3、定时闹铃开关SW3接单片机AT89C51的P1.6口与蜂鸣器的“+”连接;
4、暂停开关SW2接单片机AT89C51的P1.4口;
5、关闭显示开关SW4接6个数码管的供电端。
电路原理图如下图所示:
三、软件编程
程序由五部分组成:
(1)主程序START:用于初始化,流程图如下图;
(2)调试功能程序NK1用于判断按键S、M、H是否按下,若有按下则调整计时器初值。当S按下一次则秒增加1秒,按下的次数与秒增加值一样;同样的M、H按下的次数与其增加值都对应。流程图如下图。
(3)取时、分、秒BCD码程序DISP
用于取出时、分、秒的BCD码,并把秒的BCD码存放于40H、41H单元,分的BCD码存放于42H、43H单元,时的BCD码存放于44H、45H单元。
(4)显示子程序INT_T0用于把时、分、秒送到数码管显示,并当SW1未按下时,实现加计时。流程图如下图。
(5)减计时子程序JIANJISHU当SW1按下时实现减计时。流程图如下图。
(6)INU1用于整点和暂停时响铃。流程图如下图。
四、程序仿真调试和烧录
单片机软件很多,其中可以软件仿真的软件如Keil C51(3)。该设计中的程序可以通过Keil C51中的Dpj8.dll仿真。仿真的时候,把程序中的S、M、H分别用P3.2、P3.3、P3.4代替,仿真以下程序,可以看到时钟的加计时功能和时、分、秒的调节功能的实现。再把SW1、SW2分别用P3.3、P3.4代替,仿真以下程序,可以看到减计时和暂停功能的实现。
当仿真无误后,用对应的烧录器把程序烧录到单片机中,然后插到电路板上进行调试。
五、安装与调试
1、AT89C51最好不要直接焊接在电路板内,应先用一个与之对应的插座焊接,以方便修改调试程序。
2、数码管要先用万用表测量各个引脚,且判断出是共阴还是共阳的数码管。把两个数码管倒装(如附图把数码观的小数点用于显示时与分、分与秒之问的“:“。
3、全部焊接好后,就对单片机编程调试;31脚()接高电平即VCC。
-
单片机
+关注
关注
6044文章
44632浏览量
639396 -
计时器
+关注
关注
1文章
426浏览量
32904
发布评论请先 登录
相关推荐
51单片机的倒计时器程序
基于单片机技术的机械设备计时器的研制
![基于<b class='flag-5'>单片机</b>技术的机械设备<b class='flag-5'>计时器</b>的研制](https://file1.elecfans.com//web2/M00/A5/51/wKgZomUMN-KAFeJ5AABLtgHBqac881.jpg)
单片机计时器的设计分析
![<b class='flag-5'>单片机</b><b class='flag-5'>计时器</b>的设计分析](https://file.elecfans.com/web2/M00/4A/0D/pYYBAGKhvI-AB_QjAABblqCTAM0430.png)
51单片机计时器中断
基于单片机系统的篮球计分计时器的设计
![基于<b class='flag-5'>单片机</b>系统的篮球计分<b class='flag-5'>计时器</b>的设计](https://file.elecfans.com/web2/M00/49/69/poYBAGKhwK-AH1UXAAAgrT_lPV0123.png)
采用Proteus与Keil软件实现基于单片机的计时器系统设计
![采用Proteus与Keil软件实现基于<b class='flag-5'>单片机</b>的<b class='flag-5'>计时器</b>系统设计](https://file.elecfans.com/web1/M00/62/24/pIYBAFuHibOAFXjWAAA9PsrvVm4804.jpg)
基于51单片机的计时器设计
![基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b>的<b class='flag-5'>计时器</b>设计](https://file.elecfans.com/web1/M00/AB/62/pIYBAF2yq5yALzMXAADLmwvddnU156.png)
单片机怎么通过按键控制计时器的开始和停止_超详细!51单片机寄存器功能一览表...
![<b class='flag-5'>单片机</b>怎么通过按键控制<b class='flag-5'>计时器</b>的开始和停止_超详细!<b class='flag-5'>51</b><b class='flag-5'>单片机</b>寄存<b class='flag-5'>器</b>功能一览表...](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
单片机计时器
![<b class='flag-5'>单片机</b><b class='flag-5'>计时器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用51单片机开发板制作60秒时钟计时器
![使用<b class='flag-5'>51</b><b class='flag-5'>单片机</b>开发板<b class='flag-5'>制作</b>60秒时钟<b class='flag-5'>计时器</b>](https://file1.elecfans.com/web2/M00/AD/47/wKgZomVApuaAc-e5AAFICXzLLrQ941.jpg)
评论