14
项项项 项项项项项项 项项项项项项项项项项项项 项项项项 项项项项项项项项项项项项项项项 项项项 项项项项项项项项项项项 、,、,。 项项项项项项项项项项项项项项项项项项项 项项项项项项项项项项项项项项项 项项项项项项项 项项项项项项项项项项 项项 ,,、。 项项项项项项项项 项项项项项项项项项 一。 项项项项 1 项项项项项项项项项项项 .。 2 项项项项项项项项项项项项 .。 3 项项项项项项项项项项 .。 项项项项 1 项项 1 项项项项项项项项项项2 项项项项项项项项项项项项 .。 3 项项项项项项项项项项项项 .。

项目四 制作数字时钟

  • Upload
    urban

  • View
    176

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: 项目四  制作数字时钟

项目四 制作数字时钟

日常生活中的时钟有机械的、数字的,其中数字时钟的特点是使用灵活、方便,在各种场合都经常使用。有的数字时钟除了计时外还有很多其他功能,可以完成很多与时间有关的控制,如定时开关机、微电脑控制打铃仪等。下面我们就来动手制作一个单片机电子时钟。

知识目标1 .了解定时器的相关知识。2 .掌握定时器的应用与编程。3 .理解并运用相关指令。

技能目标1 .掌握 1 秒定时闪烁电路的制作。2 .掌握数字时钟电路的制作。3 .掌握相应电路的程序编写。

Page 2: 项目四  制作数字时钟

数字时钟要完成的功能是显示小时、分钟和秒,是一个按秒计数并显示的计数器,其中秒和分钟是 60 进制,小时是 24 进制(也可用 12 进制)计数。我们常见的数字时钟一般采用数码管作为显示工具,有的具有调时和定时等功能。

实训目的 (1) 掌握数码管动态显示及编程。 (2) 掌握定时/计数器的使用及编程。 (3) 掌握独立按键的使用及编程。 (4) 掌握使用编程器和 ISP 下载线烧写程序。

实训内容任务要求:数字时钟应具有显示小时、分钟和秒的功能,并具有计时和调时的功能。

Page 3: 项目四  制作数字时钟

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

Page 4: 项目四  制作数字时钟

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

Page 5: 项目四  制作数字时钟

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

Page 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 所示。

Page 7: 项目四  制作数字时钟
Page 8: 项目四  制作数字时钟

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 EQU42H ; 秒变量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 按键;*****************************************************************

Page 9: 项目四  制作数字时钟

ORG 0000HLJMP START ;转移到初始化程序ORG 000BHLJMP CT0S ;到定时器 0的中断服务程序ORG 0030HSTART: ;初始化部分MOV HOUR,#12 ;初始时间 12:00MOV MIN,#00MOV R3,#20 ;初始化 R3( 20次 50ms的中断)MOV TMOD,#01H ;初始化 T0定时器, T0工作方式 1 ,定时 50msMOV TH0,#04BH ;送定时器初值MOV TL0,#0FFHSETB EA ;开总中断SETB ET0 ;开定时器 0中断SETB TR0 ;启动定时器MAIN: LCALL KEYPRESS ;调按键处理子程序LCALL BCD8421 ;调 BCD码转换子程序LCALL DISPLAY ;调显示子程序LJMP MAIN;***************************************************

Page 10: 项目四  制作数字时钟

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

Page 11: 项目四  制作数字时钟

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

Page 12: 项目四  制作数字时钟

INC AMOV MIN,ACJNE A,#60,TIMEENDMOV MIN,#00HMOV A,HOUR ;满 60 分,小时加 1INC A MOV HOUR,ACJNE A,#24,TIMEENDMOV HOUR,#00HTIMEEND:POP A ;恢复现场CPL P2.4RETI;*********************BCD 码转换子程序,变量不大于 60 ,没有百位BCD8421:MOV A,HOURMOV B,#0AHDIV AB ; 除以 10 ,商为十位,余数为个位MOV HOUR_2,AMOV HOUR_1,BMOV A,MINMOV B,#0AHDIV ABMOV MIN_2,AMOV MIN_1,BRET;*****************************************************************

Page 13: 项目四  制作数字时钟

DISPLAY: ; 以下是显示子程序, P1口输出段码, P2口输出位码MOV P2,#00H ; 显示小时的部分MOV DPTR,#CHARMOV A,HOUR_2MOVC A,@A+DPTRMOV P1,AMOV P2,#0FDHLCALL DELAYMOV A,HOUR_1MOVC A,@A+DPTRMOV P1,AMOV P2,#0FEHLCALL DELAYMOV A,MIN_2 ; 显示分钟的部分MOVC A,@A+DPTRMOV P1,AMOV P2,#0F7HLCALL DELAYMOV A,MIN_1MOVC A,@A+DPTRMOV P1,AMOV P2,#0FBHLCALL DELAYRETCHAR:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;共阳型字型码表END

Page 14: 项目四  制作数字时钟

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

四、项目评价项目检测 分值 评分标准 学生自评 教师评估 项目总评

任务知识内容

定时 /计数器的基础知识 10

能叙述定时 /计数器的结构和工作原理

掌握定时 /计数器的编程 20

掌握定时 /计数器的初始化编程

1s定时闪烁电路的制作 20 设计制作出电路并编程

数字时钟电路的制作 30 设计制作出电路并编程

安全操作 10 工具使用、仪表安全

现场管理 10出勤情况、现场纪律、

协作精神