- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.掌握定时器的应用与编程。
项目四 制作数字时钟; 数字时钟要完成的功能是显示小时、分钟和秒,是一个按秒计数并显示的计数器,其中秒和分钟是60进制,小时是24进制(也可用12进制)计数。我们常见的数字时钟一般采用数码管作为显示工具,有的具有调时和定时等功能。
实训目的
(1)掌握数码管动态显示及编程。
(2)掌握定时/计数器的使用及编程。
(3)掌握独立按键的使用及编程。
(4)掌握使用编程器和ISP下载线烧写程序。
实训内容
任务要求:数字时钟应具有显示小时、分钟和秒的功能,并具有计时和调时的功能。;一、硬件电路制作
1.电路原理图
根据任务要求,数字时钟电路的硬件电路如图4-2所示。
;2.电路制作
对于简单电路,可以在万能实验板上进行电路的插装焊接。制作步骤如下:
①按如图4-2所示电路原理图在万能实验板中绘制电路元器件排列布局图;
②按布局图分别进行元器件的排列、插装;
③按焊接工艺要求对元器件进行焊接,背面用φ0.5~φlmm镀锡裸铜线连接(可以使用双绞网线),直到所有的元器件连接并焊完为止。
数字时钟电路装接图如图4-3所示。
;3.电路的调试
通电之前先用万用表检查各种电源线与地线之间是否有短路现象。
给硬件系统加电,检查所有插座或器件的电源端是否有符合要求的电压值,接地端电压是否0V。;二、编写程序
1.程序流程图
根据数字时钟系统实现的功能,软件要完成的工作是按键扫描和处理、延时1s并计时、显示数值BCD码转换、动态扫描显示程序等。
初始化程序及主程序:初始化程序主要完成定义变量内存分配、初始化缓冲区、初始化T0定时器、初始化中断,开中断、启动定时器;主程序循环执行调用按键处理子程序、调用BCD码转换子程序、调显示子程序,主程序流程图如图4-4所示。
按键扫描子程序:根据硬件电路,两个按键的作用是完成调时,即SW1小时加1、SW2小时加1。扫描过程为逐一轮流检查按键是否按下,如果没有按下,则继续检查下一按键;如果按键按下,延时去抖后执行按键相应功能指令,按键扫描子程序流程图如图4-5所示。
定时器中断服务程序:利用定时器/计数器TO进行50ms的定时,R3计数20次,完成Is计时并加l,判断是不是到60s,到60s分钟加l,判断是不是到60min,到60min小时加1,小时到24时置0,定时器中断服务程序流程图如图4-6所示。;; BCD码转换子程序:小时数值HOUR送A,除以10,A中商为小时十位,送HOUR_2保存,B中余数为小时个位,送HOUR_1保存。分钟数值MIN送A,除以10,A中商为分钟十位,送MIN_2保存,B中余数为分钟个位,送MIN_l保存。
显示时间程序采用动态扫描的方法,PO口输出段码,P2口的P2.0、P2.1、P2.2、P2.3输出位码,依次显示小时十位、小时个位、分钟十位和分钟个位,同时P2.4控制两个发光二极管闪烁。
2. 数字时钟程序
参考程序:
HOUR EQU 40H ;小时变量
MIN EQU 41H ;分钟变量
SEC EQU 42H ;秒变量
HOUR_1 EQU 50H ;小时BCD码个位
HOUR_2 EQU 51H ;小时BCD码十位
MIN_1 EQU 52H ;分钟BCD码个位
MIN_2 EQU 53H ;分钟BCD码十位
SW1 BIT P3.2 ;小时加1按键
SW2 BIT P3.3 ;分钟加1按键
;*****************************************************************;ORG 0000H
LJMP START ;转移到初始化程序
ORG 000BH
LJMP CT0S ;到定时器0的中断服务程序
ORG 0030H
START: ;初始化部分
MOV HOUR,#12 ;初始时间12:00
MOV MIN,#00
MOV R3,#20 ;初始化R3(20次50ms的中断)
MOV TMOD,#01H ;初始化T0定时器,T0工作方式1 ,定时50ms
MOV TH0,#04BH ;送定时器初值
MOV TL0,#0FFH
SETB EA ;开总中断
SETB ET
文档评论(0)