版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-. z单片机课程设计之自动打铃系统这是我们本学期的单片机课程设计题目,程序就是在昨天的数字钟的根底上增加了一些容,不想继续做了,还有一门考试要复习。设计一台自动打铃系统一、设计任务用单片机器件为主体,设计一台自动打铃系统。1按照设计标准,画出系统框图和系统硬件电路图。2完成该课题的程序设计,提交程序设计框图及程序设计清单。3提交课程设计报告二、设计要求一根本要求1根本计时和显示功能(用12小时制显示)。包括上下午标志,时、分的数字显示,秒信号指示。2能设置当前时间(含上、下午,时,分)3能实现根本打铃功能,规定:上午6:00起床铃:打铃5秒、停2秒、再打铃5秒。下午10:30熄灯铃:打铃5秒
2、、停2秒、再打铃5秒。铃声可用小喇叭播放,但凡用到铃声功能的均按此处理二发挥局部1增加整点报时功能,整点时响铃5秒,要求有控制启动和关闭功能。2增加调整起床铃、熄灯铃时间的功能。3增设上午4节课的上下课打铃功能,规定如下: 730 上课,820下课:830上课,920下课;940 上课,1030下课;1040上课,1130下课;每次铃声5秒。4特色和创新自选。三、设计步骤1设计能正常工作的一个单片机最小硬件系统,外围电路包括设置键盘,LCD或LED的显示屏;2进展软件设计,利用单片机系统时钟先设计一个高精度的部时钟系统,最小准确时间为期1秒;3在秒计数器的根底上设计一个24小时时钟,并设计假设
3、干定时功能;4设计打铃执行机构,完成自动打铃功能。四、课程设计说明书要求后面略.公开我的主要设计资料:主程序流程图:汇编程序清单:/*程序名称:51单片机自动打铃系统简要说明:实现24小时制电子钟,8位数码管显示,显示时分秒显示格式:23-59-59小时十位如果为0则不显示到预定时间启动蜂鸣器模拟打铃,蜂鸣器BEEP:P3.7打铃方式分起床、熄灯铃和上、下课铃两种系统使用4只按键,3只按键用来调整时间,fpc连接器,防水连接器,连接器论坛,供给 .ljqw./sell另一只为强制打铃按钮调整选择键SET_KEY:P1.0;通过选择键选择调整位,选中位闪烁增加键ADD_KEY:P1.1;按一次使
4、选中位加1减少键DEC_KEY;P1.2;按一次使选中位减1如果长按ADD_KEY或DEC_KEY,识别后则进展调时快进,此时停顿闪烁如果选中位是秒,则按增加键或减少键都是将秒清零强制打铃键DALING_KEY:P1.3;用来强制打铃或强制关闭铃声 P0口输出数码管段选信号,P2口输出数码管位选信号。晶振12M编写:Jiang*.net最后更新:09/1/2晚*/BEEP EQU P3.7;定义蜂鸣器电铃控制信号输出口ORG 0000H;程序入口地址LJMP START ORG 000BH;定时器0中断入口地址LJMP TIMER_0ORG 0300H/*程序开场,初始化*/START: SE
5、TB BEEP;关闭蜂鸣器电铃SETB 48H;使用一个bit位用于调时闪烁标志SETB 47H;使用一个bit位用于产生脉冲用于调时快进时基CLR 45H;关闭响铃方式1标志CLR 44H;关闭响铃方式2标志MOV R1,#0;调整选择键功能标志:0正常走时、1调时、2调分、3调秒MOV 20H,#00H;用于控制秒基准时钟源的产生MOV 21H,#00H;清零秒存放器MOV 22H,#00H;清零分存放器MOV 23H,#00H;清零时存放器MOV 24H,#00H;用于控制调时闪烁的基准时钟的产生MOV IP,#02H;IP,IE初始化MOV IE,#82H MOV TMOD,#01H;
6、设定定时器0工作方式1MOV TH0,#3CH MOV TL0,#0B0H;赋定时初值,定时50ms SETB TR0;启动定时器0 MOV SP,#40H;重设堆栈指针/*主程序*/MAIN:CJNE R1,#00H,MAIN1;是否为正常走时状态LCALL BIJIAO1;调用起床、熄灯打铃比拟子程序LCALL BIJIAO2;调用上、下课打铃比拟子程序LCALL DALING1;调用响铃方式1执行子程序LCALL DALING2;调用响铃方式2执行子程序MAIN1: LCALL DISPLAY ;调用显示子程序LCALL KEY_SCAN ;调用按键检测子程序JZ MAIN;无键按下则返
7、回重新循环LCALL SET_KEY ;调用选择键处理子程序 46H,MAIN;如果已进展长按调整调时快进,则不再执行下面的单步调整LCALL ADD_KEY;调用增加键处理子程序LCALL DEC_KEY;调用减少键处理子程序LCALL DALING_KEY;处理强制打铃/强制关闭铃声键LJMP MAIN ;重新循环/*定时中断效劳程序*/ TIMER_0: PUSH ACC PUSH PSW ;保护现场MOV TH0,#3CHMOV TL0,#0B0H ;重新赋定时初值CPL 47H;产生脉冲用于调时快进时基INC 24HMOV A,24HCJNE A,#10,ADD_TIME;产生0.5
8、秒基准时钟,用于调时闪烁CPL 48H;取反调时闪烁标志位MOV 24H,#00HADD_TIME:INC 20H MOV A,20H CJNE A,#20,RETI1;产生1秒基准时钟MOV 20H,#00H ;一秒钟时间到,清零20H MOV A,21HADD A,#01HDA A ;作十进制调整MOV 21H,A CJNE A,#60H,RETI1 MOV 21H,#00H ;一分钟到MOV A,22H ADD A,#01H DA A MOV 22H,A CJNE A,#60H,RETI1 MOV 22H,#00H ;一小时到MOV A,23H ADD A,#01H DA A MOV 2
9、3H,A CJNE A,#24H,RETI1 MOV 23H,#00H ;到24点,清零小时RETI1: POP PSW POP ACC ;恢复现场RETI ;中断返回/*显示处理*/ DISPLAY:MOV A,21H ;秒ANL A,#0FH MOV 2FH,A;转换出秒个位,存入2FH MOV A,21H ANL A,#0F0H SWAP A MOV 2EH,A;转换出秒十位,存入2EH 46H,MIN;如果长按按键调时快进,则跳过闪烁处理CJNE R1,#3,MIN;如果R1为3,闪烁秒位待调整 48H,MINMOV 2FH,#0AH;使该位为10,查表得到使该位不显示的输出MOV 2
10、EH,#0AHMIN:MOV A,22H ;分ANL A,#0FH MOV 2DH,A;转换出分个位,存入2DH MOV A,22H ANL A,#0F0H SWAP A MOV 2CH,A;转换出分十位,存入2CH 46H,HOUR;如果长按按键调时快进,则跳过闪烁处理CJNE R1,#2,HOUR;如果R1为2,闪烁分位待调整 48H,HOURMOV 2DH,#0AH;使该位为10,查表得到使该位不显示的输出MOV 2CH,#0AHHOUR:MOV A,23H ;时ANL A,#0FHMOV 2BH,A;转换出时个位,存入2BH MOV A,23H ANL A,#0F0H SWAP A M
11、OV 2AH,A;转换出时十位,存入2AH 46H,DISP;如果长按按键调时快进,则跳过闪烁处理CJNE R1,#1,DISP;如果R1为1,闪烁时位待调整 48H,DISPMOV 2BH,#0AH;使该位为10,查表得到使该位不显示的输出MOV 2AH,#0AH/*数码管动态扫描显示*/DISP:MOV DPTR,#TABLEMOV A,2FHMOVC A,A+DPTRMOV P0,ACLR P2.7LCALL DELAYSETB P2.7;显示秒个位MOV A,2EHMOVC A,A+DPTRMOV P0,ACLR P2.6LCALL DELAYSETB P2.6;显示秒十位MOV A,
12、#0BFHMOV P0,ACLR P2.5LCALL DELAYSETB P2.5;显示-MOV A,2DHMOVC A,A+DPTRMOV P0,ACLR P2.4LCALL DELAYSETB P2.4;显示分个位MOV A,2CHMOVC A,A+DPTRMOV P0,ACLR P2.3LCALL DELAYSETB P2.3;显示分十位MOV A,#0BFHMOV P0,ACLR P2.2LCALL DELAYSETB P2.2;显示-MOV A,2BHMOVC A,A+DPTRMOV P0,ACLR P2.1LCALL DELAYSETB P2.1;显示时个位MOV DPTR,#TA
13、BLE1;该位使用TABLE1以消除前置0MOV A,2AHMOVC A,A+DPTRMOV P0,ACLR P2.0LCALL DELAYSETB P2.0;显示时十位RET/*按键检测子程序*/ KEY_SCAN: CLR 46H;关闭长按调整调时快进标志MOV P1,#0FFH ;将P1口设置成输入状态MOV A,P1 CPL A ANL A,#0FH ;P1口低4位连接4个按键,只判断该4位JZ E*IT_KEY ;无键按下则返回LCALL DELAY;延时去抖动MOV A,P1;重新判断CPL A ANL A,#0FH JZ E*IT_KEY ;键盘去抖动MOV R5,A ;临时将键
14、值存入R5MOV R4,#00H;用于控制调时快进速度;设置为00H是为了在进入长按处理前加长延时区分用户的长按与短按,防止误快进LOOP:;进入长按处理LCALL DISPLAY;使长按时显示正常MOV A,P1 CPL A ANL A,#0FH 47H,LOOP1INC R4;调时快进间隔时间基准加1LOOP1:CJNE R1,#03H,LOOP2;如果调秒时长按,则不处理LJMP LOOP3LOOP2:CJNE R4,#99H,LOOP3MOV R4,#70H;确认用户长按后,重新设定起始值,加快调时快进速度SETB 46H;长按调整调时快进标志LCALL ADD_KEYLCALL DE
15、C_KEYLOOP3:JNZ LOOP ;等待键释放MOV A,R5;输出键值RETE*IT_KEY:RET/*延时子程序*/DELAY:MOV R7,#150 DJNZ R7,$RET/*选择键处理子程序*/ SET_KEY: CJNE R5,#01H,E*IT;选择键键值INC R1;调整选择功能标志加一SETB BEEPCJNE R1,#4,E*ITMOV R1,#0MOV 24H,#00H;调时闪烁基准清零RET/*增加键处理子程序*/ ADD_KEY: CJNE R5,#02H,E*IT;增加键键值CJNE R1,#01H,NE*T1;选择键功能标志为1,调时,否则跳出MOV A,2
16、3HADD A,#01HDA AMOV 23H,ACJNE A,#24H,E*ITMOV 23H,#00HNE*T1:CJNE R1,#02H,NE*T2;选择键功能标志为2,调分,否则跳出MOV A,22HADD A,#01HDA AMOV 22H,ACJNE A,#60H,E*ITMOV 22H,#00HNE*T2:CJNE R1,#03H,E*IT;选择键功能标志为3,调秒,否则跳出MOV 21H,#00H;如增加键按下直接清零秒RET/*减少键处理子程序*/ DEC_KEY: CJNE R5,#04H,E*IT;减少键键值CJNE R1,#01H,NE*T3;选择键功能标志为1,调时,
17、否则跳出MOV A,23HADD A,#99HDA AMOV 23H,ACJNE A,#99H,E*ITMOV 23H,#23HNE*T3:CJNE R1,#02H,NE*T4;选择键功能标志为2,调分,否则跳出MOV A,22HADD A,#99HDA AMOV 22H,ACJNE A,#99H,E*ITMOV 22H,#59HNE*T4:CJNE R1,#03H,E*IT;选择键功能标志为3,调秒,否则跳出MOV 21H,#00H;如较少键按下直接清零秒RET/*强制响铃键处理子程序*/ DALING_KEY: CJNE R5,#08H,E*IT;选择键键值CPL BEEPRET/*万用返
18、回程序*/E*IT: RET/*数码管字形编码表*/TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;字形显示编码TABLE1:DB 0FFH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH ;小时位的十位数编码,该位如果为0则不显示/*打铃时间比照程序起床、熄灯*/BIJIAO1:MOV A,23HCJNE A,#06H,B0MOV A,22HCJNE A,#00H,B0;6:00到SETB 45H;开启响铃方式1RETB0:MOV A,23HCJNE A,#22H,E*IT_1
19、MOV A,22HCJNE A,#30H,E*IT_1;22:30到SETB 45H;开启响铃方式1RETE*IT_1:CLR 45HRET/*打铃时间比照程序上、下课*/BIJIAO2:MOV A,23HCJNE A,#07H,B1MOV A,22HCJNE A,#30H,B1;7:30SETB 44H;开启响铃方式2RETB1:MOV A,23HCJNE A,#08H,B2MOV A,22HCJNE A,#20H,B2;8:20SETB 44HRETB2:MOV A,23HCJNE A,#08H,B3MOV A,22HCJNE A,#30H,B3;8:30SETB 44HRETB3:MOV A,23HCJNE A,#09H,B4MOV A,22HCJNE A,#20H,B4;9:20SETB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件信息行业助理工作内容
- 电视台主持人工作总结
- 小学数学教学工作总结巩固基础培养逻辑思维
- 律师工作实践感悟
- 2024融资借款合同范本大全
- 2024版医疗行业赞助协议3篇
- 2025年度四人创业团队股份合作协议书修订版3篇
- 2025年度公共交通工具消毒服务承包合同模板
- 2025年度二人合伙开设艺术画廊及艺术品经营合同3篇
- 室内装修工地培训
- 英语-山东省淄博市2024-2025学年第一学期高三期末摸底质量检测试题和答案
- 亿欧智库-2024中国智能驾驶城区NOA功能测评报告
- 甘肃2024年甘肃培黎职业学院引进高层次人才历年参考题库(频考版)含答案解析
- 水利水电工程安全管理制度例文(三篇)
- 2025年超星尔雅学习通《劳动通论》章节测试题库及参考答案(培优)
- 2024预防流感课件完整版
- 新疆乌鲁木齐市(2024年-2025年小学六年级语文)统编版质量测试(上学期)试卷及答案
- 人教版2024-2025学年第一学期八年级物理期末综合复习练习卷(含答案)
- 特殊教育多媒体教室方案
- 兽医学英语词汇【参考】
- 二年级数学(上)计算题专项练习
评论
0/150
提交评论