《单片机打铃系统的》PPT课件.ppt

上传人:ni****g 文档编号:570923486 上传时间:2024-08-07 格式:PPT 页数:40 大小:3.16MB
返回 下载 相关 举报
《单片机打铃系统的》PPT课件.ppt_第1页
第1页 / 共40页
《单片机打铃系统的》PPT课件.ppt_第2页
第2页 / 共40页
《单片机打铃系统的》PPT课件.ppt_第3页
第3页 / 共40页
《单片机打铃系统的》PPT课件.ppt_第4页
第4页 / 共40页
《单片机打铃系统的》PPT课件.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《《单片机打铃系统的》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《单片机打铃系统的》PPT课件.ppt(40页珍藏版)》请在金锄头文库上搜索。

1、目录设计任务设计要求设计步骤单片机原理图主流程图汇编程序清单设计任务用单片机器件为主体,设计一台自动打铃系统。(1)按照设计标准,画出系统框图和系统硬件电路图。(2)完成该课题的程序设计,提交程序设计框图及程序设计清单。(3)提交课程设计报告设计要求基本要求发挥部分(1)基本计时和显示功能(用12小时制显示)。括上下午标志,时、分的数字显示,秒信号指示。(2)能设置当前时间(含上、下午,时,分)(3)能实现基本打铃功能,规定:上午6:00起床铃:打铃5秒、停2秒、再打铃5秒。下午10:30熄灯铃:打铃5秒、停2秒、再打铃5秒。铃声可用小喇叭播放,凡是用到铃声功能的均按此处理(1)增加整点报时功

2、能,整点时响铃5秒,要求有控制启动和关闭功能。(2)增加调整起床铃、熄灯铃时间的功能。(3)增设上午4节课的上下课打铃功能,规定如下:730上课,820下课:830上课,920下课;940上课,1030下课;1040上课,1130下课;每次铃声5秒。(4)特色和创新自选。(1)设计能正常工作的一个单片机最小硬件系统,外围电路包括设置键盘,LCD或LED的显示屏;(2)进行软件设计,利用单片机系统时钟先设计一个高精度的内部时钟系统,最小精确时间为期1秒;(3)在秒计数器的基础上设计一个24小时时钟,并设计若干定时功能;(4)设计打铃执行机构,完成自动打铃功能。原理图:主流程图:汇编程序清单:/*

3、程序名称:51单片机自动打铃系统简要说明:实现24小时制电子钟,8位数码管显示,显示时分秒显示格式:23-59-59(小时十位如果为0则不显示)到预定时间启动蜂鸣器模拟打铃,蜂鸣器BEEP:P3.7打铃方式分起床、熄灯铃和上、下课铃两种系统使用4只按键,3只按键用来调整时间,另一只为强制打铃按钮调整选择键SET_KEY:P1.0;通过选择键选择调整位,选中位闪烁增加键ADD_KEY:P1.1;按一次使选中位加1减少键DEC_KEY;P1.2;按一次使选中位减1如果长按ADD_KEY或DEC_KEY,识别后则进行调时快进,此时停止闪烁如果选中位是秒,则按增加键或减少键都是将秒清零强制打铃键DAL

4、ING_KEY:P1.3;用来强制打铃或强制关闭铃声P0口输出数码管段选信号,P2口输出数码管位选信号。晶振12M编写:JiangX.net最后更新:09/1/2晚*/BEEPEQUP3.7;定义蜂鸣器(电铃)控制信号输出口ORG0000H;程序入口地址LJMPSTARTORG000BH;定时器0中断入口地址LJMPTIMER_0ORG0300H/*程序开始,初始化*/START:SETBBEEP;关闭蜂鸣器(电铃)SETB48H;使用一个bit位用于调时闪烁标志SETB47H;使用一个bit位用于产生脉冲用于调时快进时基CLR45H;关闭响铃方式1标志CLR44H;关闭响铃方式2标志MOVR

5、1,#0;调整选择键功能标志:0正常走时、1调时、2调分、3调秒MOV20H,#00H;用于控制秒基准时钟源的产生MOV21H,#00H;清零秒寄存器MOV22H,#00H;清零分寄存器MOV23H,#00H;清零时寄存器MOV24H,#00H;用于控制调时闪烁的基准时钟的产生MOVIP,#02H;IP,IE初始化MOVIE,#82HMOVTMOD,#01H;设定定时器0工作方式1MOVTH0,#3CHMOVTL0,#0B0H;赋定时初值,定时50msSETBTR0;启动定时器0MOVSP,#40H;重设堆栈指针/*主程序*/MAIN:CJNER1,#00H,MAIN1;是否为正常走时状态LC

6、ALLBIJIAO1;调用起床、熄灯打铃比较子程序LCALLBIJIAO2;调用上、下课打铃比较子程序LCALLDALING1;调用响铃方式1执行子程序LCALLDALING2;调用响铃方式2执行子程序MAIN1:LCALLDISPLAY;调用显示子程序LCALLKEY_SCAN;调用按键检测子程序JZMAIN;无键按下则返回重新循环LCALLSET_KEY;调用选择键处理子程序JB46H,MAIN;如果已进行长按调整(调时快进),则不再执行下面的单步调整LCALLADD_KEY;调用增加键处理子程序LCALLDEC_KEY;调用减少键处理子程序LCALLDALING_KEY;处理强制打铃/强

7、制关闭铃声键LJMPMAIN;重新循环/*定时中断服务程序*/TIMER_0:PUSHACCPUSHPSW;保护现场MOVTH0,#3CHMOVTL0,#0B0H;重新赋定时初值CPL47H;产生脉冲用于调时快进时基INC24HMOVA,24HCJNEA,#10,ADD_TIME;产生0.5秒基准时钟,用于调时闪烁CPL48H;取反调时闪烁标志位MOV24H,#00HADD_TIME:INC20HMOVA,20HCJNEA,#20,RETI1;产生1秒基准时钟MOV20H,#00H;一秒钟时间到,清零20HMOVA,21HADDA,#01HDAA;作十进制调整MOV21H,ACJNEA,#60

8、H,RETI1MOV21H,#00H;一分钟到MOVA,22HADDA,#01HDAAMOV22H,ACJNEA,#60H,RETI1MOV22H,#00H;一小时到MOVA,23HADDA,#01HDAAMOV23H,ACJNEA,#24H,RETI1MOV23H,#00H;到24点,清零小时RETI1:POPPSWPOPACC;恢复现场RETI;中断返回/*显示处理*/DISPLAY:MOVA,21H;秒ANLA,#0FHMOV2FH,A;转换出秒个位,存入2FHMOVA,21HANLA,#0F0HSWAPAMOV2EH,A;转换出秒十位,存入2EHJB46H,MIN;如果长按按键(调时快

9、进),则跳过闪烁处理CJNER1,#3,MIN;如果R1为3,闪烁秒位待调整JB48H,MINMOV2FH,#0AH;使该位为10,查表得到使该位不显示的输出MOV2EH,#0AHMIN:MOVA,22H;分ANLA,#0FHMOV2DH,A;转换出分个位,存入2DHMOVA,22HANLA,#0F0HSWAPAMOV2CH,A;转换出分十位,存入2CHJB46H,HOUR;如果长按按键(调时快进),则跳过闪烁处理CJNER1,#2,HOUR;如果R1为2,闪烁分位待调整JB48H,HOURMOV2DH,#0AH;使该位为10,查表得到使该位不显示的输出MOV2CH,#0AHHOUR:MOVA

10、,23H;时ANLA,#0FHMOV2BH,A;转换出时个位,存入2BHMOVA,23HANLA,#0F0HSWAPAMOV2AH,A;转换出时十位,存入2AHJB46H,DISP;如果长按按键(调时快进),则跳过闪烁处理CJNER1,#1,DISP;如果R1为1,闪烁时位待调整JB48H,DISPMOV2BH,#0AH;使该位为10,查表得到使该位不显示的输出MOV2AH,#0AH/*数码管动态扫描显示*/DISP:MOVDPTR,#TABLEMOVA,2FHMOVCA,A+DPTRMOVP0,ACLRP2.7LCALLDELAYSETBP2.7;显示秒个位MOVA,2EHMOVCA,A+D

11、PTRMOVP0,ACLRP2.6LCALLDELAYSETBP2.6;显示秒十位MOVA,#0BFHMOVP0,ACLRP2.5LCALLDELAYSETBP2.5;显示“-”MOVA,2DHMOVCA,A+DPTRMOVP0,ACLRP2.4LCALLDELAYSETBP2.4;显示分个位MOVA,2CHMOVCA,A+DPTRMOVP0,ACLRP2.3LCALLDELAYSETBP2.3;显示分十位MOVA,#0BFHMOVP0,ACLRP2.2LCALLDELAYSETBP2.2;显示“-”MOVA,2BHMOVCA,A+DPTRMOVP0,ACLRP2.1LCALLDELAYSET

12、BP2.1;显示时个位MOVDPTR,#TABLE1;该位使用TABLE1以消除前置0MOVA,2AHMOVCA,A+DPTRMOVP0,ACLRP2.0LCALLDELAYSETBP2.0;显示时十位RET/*按键检测子程序*/KEY_SCAN:CLR46H;关闭长按调整(调时快进)标志MOVP1,#0FFH;将P1口设置成输入状态MOVA,P1CPLAANLA,#0FH;P1口低4位连接4个按键,只判断该4位JZEXIT_KEY;无键按下则返回LCALLDELAY;延时去抖动MOVA,P1;重新判断CPLAANLA,#0FHJZEXIT_KEY;键盘去抖动MOVR5,A;临时将键值存入R5

13、MOVR4,#00H;用于控制调时快进速度;设置为00H是为了在进入长按处理前加长延时区分用户的长按与短按,防止误快进LOOP:;进入长按处理LCALLDISPLAY;使长按时显示正常MOVA,P1CPLAANLA,#0FHJB47H,LOOP1INCR4;调时快进间隔时间基准加1LOOP1:CJNER1,#03H,LOOP2;如果调秒时长按,则不处理LJMPLOOP3LOOP2:CJNER4,#99H,LOOP3MOVR4,#70H;确认用户长按后,重新设定起始值,加快调时快进速度SETB46H;长按调整(调时快进)标志LCALLADD_KEYLCALLDEC_KEYLOOP3:JNZLOO

14、P;等待键释放MOVA,R5;输出键值RETEXIT_KEY:RET/*延时子程序*/DELAY:MOVR7,#150DJNZR7,$RET/*选择键处理子程序*/SET_KEY:CJNER5,#01H,EXIT;选择键键值INCR1;调整选择功能标志加一SETBBEEPCJNER1,#4,EXITMOVR1,#0MOV24H,#00H;调时闪烁基准清零RET/*增加键处理子程序*/ADD_KEY:CJNER5,#02H,EXIT;增加键键值CJNER1,#01H,NEXT1;选择键功能标志为1,调时,否则跳出MOVA,23HADDA,#01HDAAMOV23H,ACJNEA,#24H,EXI

15、TMOV23H,#00HNEXT1:CJNER1,#02H,NEXT2;选择键功能标志为2,调分,否则跳出MOVA,22HADDA,#01HDAAMOV22H,ACJNEA,#60H,EXITMOV22H,#00HNEXT2:CJNER1,#03H,EXIT;选择键功能标志为3,调秒,否则跳出MOV21H,#00H;如增加键按下直接清零秒RET/*减少键处理子程序*/DEC_KEY:CJNER5,#04H,EXIT;减少键键值CJNER1,#01H,NEXT3;选择键功能标志为1,调时,否则跳出MOVA,23HADDA,#99HDAAMOV23H,ACJNEA,#99H,EXITMOV23H,

16、#23HNEXT3:CJNER1,#02H,NEXT4;选择键功能标志为2,调分,否则跳出MOVA,22HADDA,#99HDAAMOV22H,ACJNEA,#99H,EXITMOV22H,#59HNEXT4:CJNER1,#03H,EXIT;选择键功能标志为3,调秒,否则跳出OV21H,#00H;如较少键按下直接清零秒RET/*强制响铃键处理子程序*/DALING_KEY:CJNER5,#08H,EXIT;选择键键值CPLBEEPRET/*万用返回程序*/EXIT:RET/*数码管字形编码表*/TABLE:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,

17、90H,0FFH;字形显示编码TABLE1:DB0FFH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH;小时位的十位数编码,该位如果为0则不显示/*打铃时间对比程序(起床、熄灯)*/BIJIAO1:MOVA,23HCJNEA,#06H,B0MOVA,22HCJNEA,#00H,B0;6:00到SETB45H;开启响铃方式1RETRETB0:MOVA,23HCJNEA,#22H,EXIT_1MOVA,22HCJNEA,#30H,EXIT_1;22:30到SETB45H;开启响铃方式1RETEXIT_1:CLR45HRET/*打铃时间对比程序(上、下课)

18、*/BIJIAO2:MOVA,23HCJNEA,#07H,B1MOVA,22HCJNEA,#30H,B1;7:30SETB44H;开启响铃方式2RETB1:MOVA,23HCJNEA,#08H,B2MOVA,22HCJNEA,#20H,B2;8:20SETB44HRETB2:MOVA,23HCJNEA,#08H,B3MOVA,22HCJNEA,#30H,B3;8:30SETB44HRETB3:MOVA,23HCJNEA,#09H,B4MOVA,22HCJNEA,#20H,B4;9:20SETB44HRETB4:MOVA,23HCJNEA,#09H,B5MOVA,22HCJNEA,#40H,B5

19、;9:40SETB44HRETB5:MOVA,23HCJNEA,#10H,B6MOVA,22HCJNEA,#30H,B6;10:30SETB44HRETB6:MOVA,23HCJNEA,#10H,B7MOVA,22HCJNEA,#40H,B7;10:40SETB44HRETB7:MOVA,23HCJNEA,#11H,EXIT_2MOVA,22HCJNEA,#30H,EXIT_2;11:30SETB44HRETEXIT_2:CLR44HRET/*响铃方式1程序(响5秒停2秒再响5秒)*/DALING1:JNB45H,EXIT_DALINGMOVA,21H;响铃起始时间由秒实时控制CJNEA,#00H,L1CLRBEEPL1:MOVA,21HCJNEA,#05H,L2SETBBEEPL2:CJNEA,#07H,L3CLRBEEPL3:CJNEA,#12H,EXIT_DALINGSETBBEEPRET/*响铃方式2程序(响5秒)*/DALING2:JNB44H,EXIT_DALINGMOVA,21H;响铃起始时间由秒实时控制CJNEA,#00H,L4CLRBEEPL4:MOVA,21HCJNEA,#05H,EXIT_DALINGSETBBEEPRETEXIT_DALING:RETEND;程序结束

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号