版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
博学躬行,尚志明德。——内蒙古工业大学校训设计目的:(题目四号宋体字)通过一个以8位单片机为核心的模拟量数字表的硬件调试过程,掌握具有A/D、七段LED显示、RS-485通信、Watchdog等接口电路的单片机应用系统的设计思想和方法。学习应用系统软件的模块化设计方法,通过源程序的编辑、汇编或编译、链接、仿真调试,完成给定的任务。通过上述过程提高学生工程实践能力和素质。设计任务:要求明确设计任务内容及任务分工等;(内容小四号宋体字)★基本任务:完成蜂鸣器、键盘、七段LED显示器的自检程序设计。(1)蜂鸣器自检要求:利用程序实现两种以上声音。(2)键盘自检要求:确定键盘正确。(3)七段LED显示器自检要求:确定LED显示器每一段均正确。框图(包括自检和任务的框图):硬件编程框图及相关说明主程序框图、子程序框图及相关说明程序清单:要求有明确的程序注解、程序清单可分两栏打印蜂鸣器自检程序BEEP:setbp2.3 ;关喇叭acall delay1 ;调用延时1clr p2.3 ;开喇叭acall DELAY2 ;调用延时2setb p2.3 ;关喇叭acall DELAY2 ;调用延时2clr p2.3 ;开喇叭acall DELAY3 ;调用延时3setb p2.3 ;关喇叭acall DELAY3 ;调用延时3sjmpBEEP ;跳到 beepRETDELAY1:;延时子程序MOV R1,#0FFHCX0:MOVR2,#0FFHCX:DJNZR2,CXDJNZR1,CX0RETDELAY2:延时子程序MOVR1,#0FAHCX1:MOVR2,#0FAHCX2:DJNZR2,CX2DJNZR1,CX1RETDELAY3:延时子程序MOVR1,#0FAHCX3:MOVR2,#0FAHCX4:DJNZ R2,CX4DJNZR1,CX3RET (2)键盘自检程序BEEP:MOV R1,#4H ;设置移位次数LCALL SEL8 ;打开三态门MOV P1,#0FFH ;将P1口设置成I/OMOV A,P1 ;采样LCALL SEL7 ;关闭三态门SJMP CXW1 RETCXW1:RRC A ;把键的值放到进位位JNC CXW2;如果键合上,跳到CXW2,发音子程序DJNZ R1,CXW1;(K1没闭合,就看K2是否闭合;K2没闭合,就看K3是否闭合;K3没闭合,就看K4是否闭合)SJMP BEEP ;四个键都没闭合,就重新采样RETCXW2:CLR P2.3 ;开喇叭LCALL DELAY ;调用延时SETB P2.3 ;关喇叭SJMP BEEP ;发音完毕,跳转到BEEP,重新采样RETSEL7:CLR P2.7;(关闭三态门子程序)SETB P2.6SETB P2.5RETSEL8:SETB P2.7;(打开三态门子程序)SETB P2.6SETB P2.5RETDELAY:MOV R6,#0AH;(延时子程序)CXW3:MOVR7,#0F8HCXW4:DJNZR7,CXW4DJNZR6,CXW3RET设置移位次数设置移位次数打开三态门采样关三态门K1闭合?K2闭合?K4闭合?峰鸣器发音K3闭合?YNNNYYNY调用延时程序(3)七段LED显示器自检程序DT1:CLRP2.5;(使第一位LED有效,并显示从1到9)CLRP2.6CLRP2.7 LCALLcc1 RET DT2:CLRP2.5;(使第二位LED有效,并显示从1到9)CLRP2.6SETBP2.7 LCALLcc1RETDT3:CLRP2.5;(使第三位LED有效,并显示从1到9)SETBP2.6CLRP2.7LCALLcc1RETDT4:CLRP2.5;(使第四位LED有效,并显示从1到9)SETBP2.6SETBP2.7LCALLcc1RETDT5:SETBP2.5;(使第五位LED有效,并显示从1到9)CLRP2.6CLRP2.7LCALLcc1LJMPDT1RETcc1:LCALLSEL0 ;(调用送字型的子程序,使LED显示0到9)LCALLDELAY LCALL SEL1LCALLDELAYLCALL SEL2LCALLDELAYLCALL SEL3LCALLDELAYLCALL SEL4LCALLDELAYLCALL SEL5LCALLDELAYLCALL SEL6LCALLDELAYLCALL SEL7LCALLDELAYLCALL SEL8LCALLDELAYLCALL SEL9LCALLDELAYLCALLSEL10LCALLDELAYRETSEL0:MOVA,#7EH;SEL1到SEL10是送字型子程序,SEL0是送0子程序MOVP0,ALCALLDELAYRETSEL1:MOVA,#0CH;(SEL1是送1子程序) MOVP0,A LCALLDELAYRETSEL2:MOVA,#0B6HMOVP0,A(SEL2是送2子程序)LCALLDELAYRETSEL3:MOVA,#9EH(SEL3是送3子程序)MOVP0,ALCALLDELAYRETSEL4:MOVA,#0CCH(SEL4是送4子程序)MOVP0,ALCALLDELAYRET(SEL5是送5子程序)SEL5:MOVA,#0DAHMOVP0,ALCALLDELAYRET(SEL6是送6子程序)SEL6:MOVA,#0FAHMOVP0,ALCALLDELAYRET(SEL7是送7子程序)SEL7:MOVA,#0EHMOVP0,ALCALLDELAYRET(SEL8是送8子程序)SEL8:MOVA,#0FEHMOVP0,ALCALLDELAYRET(SEL9是送9子程序)SEL9:MOVA,#0DEHMOVP0,ALCALLDELAYRET(SEL10是送小数点子程序,即使小数点亮)SEL10:MOVA,#01HMOVP0,ALCALLDELAYRETDELAY:MOVR6,#9fH(延时子程序)CXW3:MOVR7,#9fHCXW4:DJNZR7,CXW4DJNZR6,CXW3RET(4)一首歌的程序编程思路:歌曲是由音调和节拍有机组合而成。音调是由发音的频率决定的,七种不同频率的方波来产生七种音调,我们用定时器1来控制方波的频率。节拍就是音调持续的时间,节拍用节拍(延时)程序控制。BUZZER EQUP2.3;伪指令,不编译org 0000h ;主程序起始地址ajmp beep ;跳至主程序org 000bh ;定时器1中断地址jmp tim0 ;跳至timer0中断子程序BEEP:LCALL SEL81;打开三态门MOV P1;#0FFH(P1口设置为输入输出口)MOV A,P1;(采样K1键的状态)LCALL SEL71;关三态门SJMP CXW1 RETCXW1:RRCA;(K1的状态送到累加器的进位位)JNCCXW2;(K1闭合,跳到点亮LED并放歌的子程序)SJMPBEEP;(如果K1没闭合,继续扫描键盘)RETCXW2:DT1:CLRP2.5;(选位子程序,选择第一位LED)CLRP2.6setbP2.7 LCALLcc1;(调用LED显示的子程序) mov tmod,#01h ;设timer0在MODE1 mov ie,#82h ;打开定时器1中断start0:CLRP2.5;(选择第一位LED)CLRP2.6setbP2.7 LCALLcc1;(调用LED显示的子程序) mov 30h,#00hnext: mov a,30h mov dptr,#table ;(DPTR指向歌曲的简谱码表的首地址) movc a,@a+dptr取简谱码 mov r2,a ;取到的简谱码暂存于R2 jz end0 ;判断是否取到00(结束码)? anl a,#0fh ;不是结束码,则取低4位(节拍码) mov r5,a ;将节拍码存入R5 mov a,r2 ;将取到的简谱码再载入A swap a ;高低四位交换,也就是节拍码和音调码交换位置 anl a,#0fh ;取低四位(音符码) jnz sing ;取到的音符码是否为零? clr tr0 ;音调码是0,则不发音 jmp d1sing: dec a ;取到的音符码减1(不含0). mov 22h,a ;存入(22H). rl a ;乘2 mov dptr,#table1 ;到音调的频率表table1取相对应的定时器定时初值 movc a,@a+dptr mov th0,a ;给定时器的TH0赋定时处值 mov 21h,a ; mov a,22h ;再载入取的的音符码 rl a ;乘2 inc a ;加1 movc a,@a+dptr ; mov tl0,a ;给定时器的TL0赋定时初值 mov 20h,a;取到的高位字节存入(20H) setb tr0 ;启动timer0d1: call delay ;基本单位时间1/4拍187毫秒 inc 30h ;取简谱码指针加1 jmp next ;取下一个码end0: clr tr0 ;停止timer0 jmp start0 ;重复循环lJMP BEEPRETSEL71:CLR P2.7;关三态门子程序SETB P2.6SETB P2.5RETSEL81:SETB P2.7;开三态门子程序SETB P2.6SETB P2.5RETtim0:;;time0中断服务子程序用来产生方波(音调)的负半波。 push acc ;中断现场保护 push psw mov tl0,20h ;重设定时初值 mov th0,21h cpl BUZZER ;P2.3反相 pop psw ;至堆栈取回psw的值 pop acc ;至堆栈取回a的值 reti ;返回主程序delay: mov r7,#02h ;187毫秒d2:mov r4,#187d3:mov r3,#248 CXW:djnz r3,CXW djnz r4,d3 djnz r7,d2 djnz r5,delay ;延时时间,受节拍码得控制,延时时间也就是音调持续的时间 retcc1:LCALLSEL0;(使LED显示从0到9)LCALLdelay1LCALL SEL1LCALLdelay1LCALL SEL2LCALLdelay1LCALL SEL3LCALLdelay1LCALL SEL4LCALLdelay1LCALL SEL5LCALLdelay1LCALL SEL6LCALLdelay1LCALL SEL7LCALLdelay1LCALL SEL8LCALLdelay1LCALL SEL9LCALLdelay1LCALLSEL10LCALLdelay1retdelay1:MOV R6,#0ffH;(LED显示0到9时的延时子程序)CXW3:MOV R7,#0ffHCXW4:DJNZ R7,CXW4DJNZ R6,CXW3RETRET;SEL0到SEL10是送字型子程序,请参考LED自检的程序,此处不再重述)SEL0:MOVA,#7fHMOVP0,ALCALLdelay1RETSEL1:MOVA,#60HMOVP0,ALCALLdelay1RETSEL2:MOVA,#0B6HMOVP0,ALCALLdelay1RETSEL3:MOVA,#0f2HMOVP0,ALCALLdelay1RETSEL4:MOVA,#0e8HMOVP0,ALCALLdelay1RETSEL5:MOVA,#0dAHMOVP0,ALCALLdelay1RETSEL6:MOVA,#0dFHMOVP0,ALCALLdelay1RETSEL7:MOVA,#70HMOVP0,ALCALLdelay1RETSEL8:MOVA,#0ffHMOVP0,ALCALLdelay1RETSEL9:MOVA,#0fbHMOVP0,ALCALLdelay1RETSEL10:MOVA,#01HMOVP0,ALCALLdelay1RETtable1:DW64580,64684,64777,64820;(table1是各方波(音调)对应的周期表)DW64898,64968,65030,64260DW64400,64524,65058,63835,64021;(table:是简谱码表,也就是歌曲的曲谱表,每个码的高四位是音调,低四位是节拍)table:DB88h,14h,24h,36H,42H,34H,14H,28H,14H,94HDB1fH,88H,14H,24H,34H,32H,42H,54H,14HDB46H,32H,54H,22H,32H,32H,22H,2CH,38H,54H,74HDB76H,62H,68H,54H,52H,62H,74H,62H,52H,3fHDB46H,42H,54H,64H,54H,42H,32H,28H,0a4H,0a2HDB92H,84H,94H,1fH,0b8H,68H,46H,52H,68HDB74H,72H,72H,74H,62H,52H,3fH,0b8H,68HDB46H,52H,68H,64H,62H,62H,64H,42H,32H,2fHDB58H,14H,24H,36H,42H,34H,12H,12H,26H,22H,24H,22H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建师范大学《教育法规与教师职业道德》2023-2024学年第一学期期末试卷
- 福建师范大学《合唱指挥》2021-2022学年第一学期期末试卷
- 福建师范大学《劳动教育》2021-2022学年第一学期期末试卷
- 24秋国家开放大学《护理科研方法》形考任务1-4答案
- 什么是精益管理1
- 高处作业分(升)级表
- 2024届新疆兵地高三下学期4月考数学试题理试题
- 幼儿园消防课件教学
- 2024年威海申请客运从业资格证考试
- 2024年福州客运驾驶员考试选择题及答案解析
- 蛋白的分离纯化
- 16开(19x26)奖状打印模版
- 大班健康《预防手足口病》课件
- 浅谈三新背景下课堂教学方式的变革 论文
- 咽喉癌病历书写
- 数据中心运维管理方案
- 2023年佛山市图书馆招考工作人员笔试参考题库(共500题)答案详解版
- “跨媒介叙事”理论研究
- 大型活动安保服务投标方案
- 非传统安全研究与中国
- 河南省南阳市宛城区2023-2024学年八年级上学期期中地理试题
评论
0/150
提交评论