电子时钟制作_第1页
电子时钟制作_第2页
电子时钟制作_第3页
电子时钟制作_第4页
电子时钟制作_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目基本技能项目基本知识程序调试与烧写

键盘接口电路及编程

知识点二知识点四LED数码管接口电路及编程知识点一MCS-51单片机定时/计数器

知识点三1项目五地震报警器的制作项目学习目标项目学习目标学习方式学时技能目标①掌握一秒定时电路的制作与编程。②掌握数码显示电路的制作与编程。③掌握电子时钟电路的制作与编程学生实际制作,教师指导调试和维修6课时知识目标①了解数码管的结构,掌握数码管接口方式和编程方法。②了解键盘工作原理,掌握独立式按键的接口方式和编程。③了解定时器的相关知识,掌握定时器的应用与编程教师讲授重点:数码管编程方法;独立式按键的处理和编程;定时器的应用与编程4课时2任务一一秒定时闪烁电路的制作任务要求单片机的P2.0作输出口,接一个LED发光二极管,通过编程实现发光二极管以1s为周期,亮0.5s,灭0.5s。

项目基本技能31.硬件电路制作

(1)电路原理图4(2)制作要点及元器件清单51秒定时闪烁参考程序ORG0000H ;程序开始LJMPSTART ;转初始化程序ORG001BH ;定时/计数器1中断入口地址LJMPRT1 ;转定时/计数器1中断服务程序ORG0030H ;初始化程序开始START: MOVTMOD,#10H ;定时/计数器1,工作方式1MOVTH1,#3CH ;设置计数初值MOVTL1,#0B0H ;设置计数初值MOVR2,#05H ;设置记录中断次数初值SETBEA ;开启总中断允许SETBET1 ;开启定时/计数器1中断允许SETBTR1 ;启动定时/计数器1MAIN: NOP ;主程序不执行任何任务,只是等待中断LJMPMAIN 2.程序编写61秒定时闪烁参考程序;中断服务程序RT1:MOVTH1,#3CH;定时/计数器1中断服务子程序,置计数初值MOVTL1,#0B0HDJNZR2,BACK ;中断次数少于5次直接返回MOVR2,#05H ;重新置中断次数初值CPLP2.0 ;P2.0取反BACK:RETI ;中断返回END7任务二LED数码显示电路的制作任务要求单片机的P0口作输出口,接一个数码管,通过编程实现数码管循环显示十进制数字0~9。单片机的P0口作输出口,接两个数码管,通过编程实现数码管循环显示十进制数字0~59。81.LED显示器静态显示0~9(1)硬件电路制作9(2)软件设计NUMEQU40h ;定义数字变量ORG0000HLJMPSTART ;转移到初始化程序ORG0030HSTART: MOVNUM,#00H ;初始化变量初值MAIN: MOVA,NUM ;数字送入AMOVDPTR,#CHAR ;字型码首地址存放DPTRMOVCA,@A+DPTR ;数字对应字型码送入AMOVP0,A ;字型码送P0口显示LCALLDELAY ;延时MOVA,NUM ;数字送入AINCA ;加1CJNEA,#0AH,AA ;不等于10转AABB:MOVA,#00H ;等于10,送初值0AA:MOVNUM,A ;保存数字LJMPMAIN ;循环,继续显示 10DELAY: MOVR7,#1EH ;延时子程序D3: MOVR6,#21HD2: MOVR5,#0FAHD1: DJNZR5,D1DJNZR6,D2DJNZR7,D3RETCHAR: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;共阳型字型码表END112.LED显示器动态显示0~59(1)硬件电路制作12(2)软件设计SECEQU42H ;秒位变量SEC_1EQU40H ;秒BCD码个位SEC_2EQU41H ;秒BCD码十位ORG0000HLJMPSTART ;到主程序ORG000BHLJMPCT0S ;到定时器0的中断服务程序ORG0030HSTART: MOVR3,#20;初始化R3(20次50ms的中断)MOV TMOD,#01H ;T0工作方式1,定时50msMOV TH0,#04BHMOV TL0,#0FFHSETBEA ;开总中断SETBET0MOVSEC,#00H ;开定时器0中断SETBTR0 ;启动定时器MAIN: LCALLBCD8421LCALL DISPLAY ;调显示子程序LJMPMAIN13DELAY: MOVR7,#255 ;延时子程序D1: DJNZR7,D1RETCT0S: PUSHA ;1s的中断服务程序MOV TH0,#04BHMOV TL0,#0FFHDJNZR3,EE ;不到1s,中断返回MOV R3,#20MOV A,SECINCA ;秒加1MOVSEC,A ;保存秒数值CJNEA,#60,EEMOVSEC,#00H ;满60s置0EE: POPARETIBCD8421:MOVA,SECMOVB,#0AHDIVABMOVSEC_1,BMOVSEC_2,ARET14DISPLAY: ;秒显示子程序MOVP2,#00HMOVA,SEC_2 ;显示秒的十位MOVDPTR,#CHARMOVCA,@A+DPTRMOVP0,AMOVP2,#02HLCALLDELAYMOVA,SEC_1 ;显示秒的个位MOVCA,@A+DPTRMOVP0,AMOVP2,#01HLCALLDELAYRETCHAR: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;共阳型字型码表END15任务三电子时钟的制作任务要求单片机的P0口作段控,P2口作位控,接6个数码管,通过编程实现6位数码电子时钟功能。161.硬件电路制作

(1)电路原理图CPU按键17显示电路18(2)制作要点及元器件清单19(1)程序流程图2.程序编写2021(2)参考程序 ;变量定义和内存分配KEY_BUFEQU33H ;键盘缓冲区KEYTEMPEQU34H ;临时按键值HOUREQU40H ;小时变量MINEQU 41H ;分钟变量SECEQU 42H ;秒变量HOUR_1EQU50H ;小时BCD码个位HOUR_2EQU51H ;小时BCD码十位MIN_1EQU52H ;分钟BCD码个位MIN_2EQU53H ;分钟BCD码十位SEC_1EQU54H ;秒BCD码个位SEC_2EQU55H ;秒BCD码十位SW1BITP1.0 ;小时加1按键SW2BITP1.1 ;小时减1按键SW3BITP1.2 ;分钟加1按键SW4BITP1.3 ;分钟减1按键ORG0000HLJMPSTART ;转移到初始化程序ORG000BHLJMPCT0S ;到定时器0的中断服务程序22ORG0030HSTART: ;初始化部分MOV33H,#00H ;初始化缓冲区MOVHOUR,#12 ;初始时间12:30:00MOVMIN,#30MOVSEC,#00MOVR3,#20 ;初始化R3(20次50ms的中断)MOVTMOD,#01H ;初始化T0定时器,T0工作方式1,定时50msMOVTH0,#04BH ;送定时器初值MOVTL0,#0FFHSETBEA ;开总中断SETBET0 ;开定时器0中断SETBTR0 ;启动定时器MAIN: LCALLKEYPRESS ;调按键处理子程序LCALLBCD8421 ;调BCD码转换子程序LCALLDISPLAY ;调显示子程序LJMPMAIN23DELAY: MOVR7,#255 ;延时子程序D2: DJNZR7,D2RETKEYPRESS: ;按键处理子程序,P1口为按键的接口SETBSW1 ;设置为输入JBSW1,KEY1 ;按键没有按下,查询下一按键LCALLDELAY ;若按下,延时去抖JBSW1,KEY1MOVA,HOUR ;小时变量送入AINCA ;小时数加1MOVHOUR,A ;保存小时数CJNEA,#24,KEY0 ;如果不等于24,等待按键释放MOVHOUR,#00H ;如果等于24,则使小时数等于0KEY0: LCALLDISPLAY ;调显示起延时去抖作用,保证扫描显示不停止JNBSW1,KEY0 ;没有释放,继续等待LCALLDISPLAYJNBSW1,KEY0KEY1: SETBSW2JBSW2,KEY2LCALLDELAYJBSW2,KEY2MOVA,HOURDECA ;小时变量减1MOVHOUR,ACJNEA,#255,KEY10 ;0减1等于255MOVHOUR,#2324KEY10: LCALLDISPLAYJNBSW2,KEY10LCALLDISPLAYJNBSW2,KEY10KEY2: SETBSW3JBSW3,KEY3LCALLDELAYJBSW3,KEY3MOVA,MININCA ;分钟变量加1MOVMIN,ACJNEA,#60,KEY20MOVMIN,#00HKEY20: LCALLDISPLAYJNBSW3,KEY20LCALLDISPLAYJNBSW3,KEY20KEY3: SETBSW4JBSW4,KRETLCALLDELAYJBSW4,KRETMOVA,MINDECA ;分钟变量减1MOVMIN,ACJNEA,#255,KEY30 ;0减1等于255MOVMIN,#59KEY30: LCALLDISPLAYJNBSW4,KEY30LCALLDISPLAYJNBSW4,KEY30KRET: RET25CT0S: ;走时部分。延时1s,秒加1,秒满60,分钟加1,分钟满60,小时加1PUSHA ;保护现场MOV TH0,#04BH ;重新送定时器初值MOV TL0,#0FFHDJNZR3,TIMEEND ;中断次数不足20次直接返回MOV R3,#20 ;中断次数满20次为1s,重新送计数初值MOV A,SEC ;秒增加1INCAMOV SEC,ACJNEA,#60,TIMEENDMOV SEC,#00HMOV A,MIN ;秒满60,分钟加1INCAMOV MIN,ACJNEA,#60,TIMEENDMOVMIN,#00HMOV A,HOUR ;分钟满60,小时加1INCAMOV HOUR,ACJNEA,#24,TIMEENDMOV HOUR,#00HTIMEEND:POPA ;恢复现场RETI26;BCD码转换子程序,变量不大于60,没有百位BCD8421:MOVA,HOURMOVB,#0AHDIVAB ;除以10,商为十位,余数为个位MOVHOUR_2,AMOVHOUR_1,BMOVA,MINMOVB,#0AHDIVABMOVMIN_2,AMOVMIN_1,BMOVA,SECMOVB,#0AHDIVABMOVSEC_2,AMOVSEC_1,BRET27DISPLAY:;以下是显示子程序,P0口输出段码,P2口输出位码,MOV P2,#00H ;显示小时的部分MOV DPTR,#CHARMOV A,HOUR_2MOVCA,@A+DPTRMOV P0,AMOVP2,#02HLCALLDELAYMOV A,HOUR_1MOVCA,@A+DPTRMOV P0,AMOVP2,#01HLCALL DELAY;显示分钟的部分MOV A,MIN_2MOVCA,@A+DPTRMOV P0,AMOVP2,#08HLCALLDELAYMOV A,MIN_1MOVCA,@A+DPTRMOV P0,AMOVP2,#04HLCALLDELAY28;显示秒的部分MOV A,SEC_2MOVCA,@A+DPTRMOV P0,AMOV P2,#20HLCALLDELAYMOV A,SEC_1MOVCA,@A+DPTRMOV P0,AMOV P2,#10HLCALLDELAYRETCHAR:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;共阳型字型码表END29任务四程序调试与烧写

使用仿真器调试程序。程序调试完成后,使用编程器将编译的十六进制文件烧写入单片机,将单片机从编程器上取下,插入电路板的IC插座,给电路板接上5V电源,观察电路运行情况。30知识点一LED数码管接口电路及编程

项目基本知识1.数码管简介31显示字形码32(1)LED数码管静态显示接口2.LED数码管静态显示(2)LED数码管静态显示编程

字形码存放在数据表格中,通常在DPTR内存放数据表格首地址,A存放要显示的数据,利用MOVCA,@A+DPTR这条指令查找字形码。

33(1)LED数码管动态显示接口3.LED数码管动态显示(2)LED数码管动态显示编程

动态扫描频率太低,LED数码管将出现闪烁现象;频率太高,由于每个LED数码管点亮的时间太短,LED数码管的亮度太低,无法看清。因此,在编程时,常采用调用延时子程序来达到要求的保持时间,一般取几毫秒为宜。

34知识点二键盘接口电路及编程

1.键盘工作原理机械式按键在按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。抖动时间的长短与开关的机械特性有关,一般为5~10ms。352.独立式按键

对于独立式按键主程序可以采用不断查询的方法来进行处理,即如果只有一个独立式按键,检测是否闭合,如果闭合,则去除键抖动后再执行按键程序;如果有多个独立式按键,可以依次逐个查询处理。

36知识点三MCS-51单片机定时/计数器

1.定时、计数的概念

(1)计数概念(2)计数器的容量(3)定时(4)溢出(5)任意定时及计数的方法37(1)定时/计数器的方式控制字2.定时/计数器概述

38(2)定时/计数器的4种工作方式①工作方式0。定时/计数器的工作方式0称为13位定时/计数方式。它由TL的低5位和TH的8位构成13位的计数器,TL的高3位未用。②工作方式1。工作方式1是16位的定时/计数方式,M1M0为01,其他特性与工作方式0相同。③工作方式2。工作方式2是16位加法计数器,TH0和TL0具有不同功能,其中,TL0是8位计数器,TH0是重置初值的8位缓冲器。方式2具有初值自动装入功能,每当计数溢出,就会打开高、低8位之间的开关,预置数进入低8位。这是由硬件自动完成的,不需要由人工干预。④工作方式3。定时/计数器工作于方式3时,定时器T0被分解成两个独立的8位计数器TL0和TH0。

39(1)定时/计数器的初始化3.定时/计数器初始化及应用

①确定工作方式—对TMOD赋值。如“MOVTMOD#10H”,表明定时器1工作在方式1,且工作在定时器方式。②预置定时或计数的初值—直接将初值写入TH0、TL0或TH1、TL1。③根据需要开启定时/计数器中断—直接对IE寄存器赋值。如MOVIE,#82H,表明允许定时器T0中断。④启动定时/计数器工作—将TR0或TR1置“1”。40解:因方式0采用13位计数器,其最大定时时间为:8192×1

s=8.192ms,因此,定时时间不可能像方式1一样选择50ms,但可选择定时时间为5ms,再循环200次。定时时间选定后,再确定计数值为5000,则定时器1的初值为:X=M−计数值=8192−5000=3192=C78H=00B因13位计数器中TL1的高3位未用,应填写0,TH1占高8位,所以,X的实际填写值应为:X=11000B=6318H即TH1=63H,TL1=18H,又因采用方式0定时,故TMOD=00H。例6.1用定时器1方式0实现1s的延时。(2)定时/计数器的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论