1 / 14

项目四 制作数字时钟

项目四 制作数字时钟. 日常生活中的时钟有机械的、数字的,其中数字时钟的特点是使用灵活、方便,在各种场合都经常使用。有的数字时钟除了计时外还有很多其他功能,可以完成很多与时间有关的控制,如定时开关机、微电脑控制打铃仪等。下面我们就来动手制作一个单片机电子时钟。 知识目标 1 .了解定时器的相关知识。 2 .掌握定时器的应用与编程。 3 .理解并运用相关指令。 技能目标 1 .掌握 1 秒定时闪烁电路的制作。 2 .掌握数字时钟电路的制作。 3 .掌握相应电路的程序编写。.

urban
Download Presentation

项目四 制作数字时钟

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 项目四 制作数字时钟 • 日常生活中的时钟有机械的、数字的,其中数字时钟的特点是使用灵活、方便,在各种场合都经常使用。有的数字时钟除了计时外还有很多其他功能,可以完成很多与时间有关的控制,如定时开关机、微电脑控制打铃仪等。下面我们就来动手制作一个单片机电子时钟。 • 知识目标 • 1.了解定时器的相关知识。 • 2.掌握定时器的应用与编程。 • 3.理解并运用相关指令。 • 技能目标 • 1.掌握1秒定时闪烁电路的制作。 • 2.掌握数字时钟电路的制作。 • 3.掌握相应电路的程序编写。

  2. 数字时钟要完成的功能是显示小时、分钟和秒,是一个按秒计数并显示的计数器,其中秒和分钟是60进制,小时是24进制(也可用12进制)计数。我们常见的数字时钟一般采用数码管作为显示工具,有的具有调时和定时等功能。数字时钟要完成的功能是显示小时、分钟和秒,是一个按秒计数并显示的计数器,其中秒和分钟是60进制,小时是24进制(也可用12进制)计数。我们常见的数字时钟一般采用数码管作为显示工具,有的具有调时和定时等功能。 实训目的 (1)掌握数码管动态显示及编程。 (2)掌握定时/计数器的使用及编程。 (3)掌握独立按键的使用及编程。 (4)掌握使用编程器和ISP下载线烧写程序。 实训内容 任务要求:数字时钟应具有显示小时、分钟和秒的功能,并具有计时和调时的功能。

  3. 一、硬件电路制作 1.电路原理图 根据任务要求,数字时钟电路的硬件电路如图4-2所示。

  4. 2.电路制作 对于简单电路,可以在万能实验板上进行电路的插装焊接。制作步骤如下: ①按如图4-2所示电路原理图在万能实验板中绘制电路元器件排列布局图; ②按布局图分别进行元器件的排列、插装; ③按焊接工艺要求对元器件进行焊接,背面用φ0.5~φlmm镀锡裸铜线连接(可以使用双绞网线),直到所有的元器件连接并焊完为止。 数字时钟电路装接图如图4-3所示。

  5. 3.电路的调试 通电之前先用万用表检查各种电源线与地线之间是否有短路现象。 给硬件系统加电,检查所有插座或器件的电源端是否有符合要求的电压值,接地端电压是否0V。

  6. 二、编写程序 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所示。

  7. 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按键 ;*****************************************************************

  8. 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 ET0 ;开定时器0中断 SETB TR0 ;启动定时器 MAIN: LCALL KEYPRESS ;调按键处理子程序 LCALL BCD8421 ;调BCD码转换子程序 LCALL DISPLAY ;调显示子程序 LJMP MAIN ;***************************************************

  9. DELAY: MOV R7,#255 ;延时子程序 D2: DJNZ R7,D2 RET ;*************************************************** KEYPRESS: ;按键处理子程序,p3.2、P3.3为按键的接口 SETB SW1 ;设置为输入 JB SW1,KEY1 ;按键没有按下,查询下一按键 LCALL DELAY ;若按下,延时去抖 JB SW1,KEY1 MOV A,HOUR ;小时变量送A INC A ;小时数加1 MOV HOUR,A ;保存小时数 CJNE A,#24,KEY0 ;如果不等于24,等待按键释放 MOV HOUR,#00H ;如果等于24,则使小时变量送0 KEY0: LCALL DISPLAY ;调显示起延时去抖作用,保证扫描显示不停止 JNB SW1,KEY0 ;没有释放,继续等待 LCALL DISPLAY JNB SW1,KEY0 KEY1: SETB SW2 JB SW2,KRET LCALL DELAY

  10. JB SW2,KRET MOV A,MIN INC A ;分钟变量加1 MOV MIN,A CJNE A,#60,KEY10 ;如果不等于60,等待按键释放 MOV MIN,#00H ;如果等于60,则使分钟变量送0 KEY10: LCALL DISPLAY JNB SW2,KEY10 LCALL DISPLAY JNB SW2,KEY10 KRET: RET ;************************************************** CT0S: ;走时部分。延时1s,秒加1,秒满60分钟加1,分钟满60小时加1 PUSH A ;保护现场 MOV TH0,#04BH ;重新送定时器初值 MOV TL0,#0FFH DJNZ R3,TIMEEND ;中断次数不足20次直接返回 MOV R3,#20 ;中断次数满20次为1秒,重新送计数初值 MOV A,SEC ;秒增加1 INC A MOV SEC,A CJNE A,#60,TIMEEND MOV SEC,#00H MOV A,MIN ;满60秒,分钟加1

  11. INC A MOV MIN,A CJNE A,#60,TIMEEND MOV MIN,#00H MOV A,HOUR ;满60分,小时加1 INC A MOV HOUR,A CJNE A,#24,TIMEEND MOV HOUR,#00H TIMEEND:POP A ;恢复现场 CPL P2.4 RETI ;*********************BCD码转换子程序,变量不大于60,没有百位 BCD8421:MOV A,HOUR MOV B,#0AH DIV AB ;除以10,商为十位,余数为个位 MOV HOUR_2,A MOV HOUR_1,B MOV A,MIN MOV B,#0AH DIV AB MOV MIN_2,A MOV MIN_1,B RET ;*****************************************************************

  12. DISPLAY: ;以下是显示子程序,P1口输出段码,P2口输出位码 MOV P2,#00H ;显示小时的部分 MOV DPTR,#CHAR MOV A,HOUR_2 MOVC A,@A+DPTR MOV P1,A MOV P2,#0FDH LCALL DELAY MOV A,HOUR_1 MOVC A,@A+DPTR MOV P1,A MOV P2,#0FEH LCALL DELAY MOV A,MIN_2 ;显示分钟的部分 MOVC A,@A+DPTR MOV P1,A MOV P2,#0F7H LCALL DELAY MOV A,MIN_1 MOVC A,@A+DPTR MOV P1,A MOV P2,#0FBH LCALL DELAY RET CHAR:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;共阳型字型码表 END

  13. 三、程序的调试与烧写 程序调试无误后,写入单片机的程序存储器,接通电路,观察电路运行情况。 四、项目评价

More Related