单片机电子二班1315212017江璐实验三.doc_第1页
单片机电子二班1315212017江璐实验三.doc_第2页
单片机电子二班1315212017江璐实验三.doc_第3页
单片机电子二班1315212017江璐实验三.doc_第4页
单片机电子二班1315212017江璐实验三.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

评阅单片机实验报告三姓名 江璐 学号 1315212017 时间 2015.10.26 地点 机电大楼B526 实验题目 中断、定时器实验 一、实验目的1. 学习外部中断和定时器的工作原理及使用方法。2. 学习外部中断和定时器的初始化程序、应用程序的编写和调试。二、实验主要仪器和环境PC机、WAVE软件、仿真器+仿真头、实验板、电源等。三、实验说明本实验1通过开关向单片机提出中断请求,单片机响应中断进行计数,并通过LED数码管指示出计数值,从而观察中断的请求、响应的过程。实验2通过单片机的定时器产生延时,模拟交通灯控制的方法。通过本实验学生可以掌握单片机中断和定时器的工作原理及使用方法以及中断和定时器的初始化程序、应用程序的编写和调试。 四、实验内容1、开关S0S1连接P3口做输入,P0输出接LED数码管,通过S2产生外部中断请求(/INT0)信号,在中断服务程序中完成十进制递增计数,并将计数值显示在LED数码管上,要求分别采用电平触发和边沿触发。按上述要求完成S3产生外部中断请求。编写初始化程序和中断服务程序。(注意开关抖动处理)2、P10-P17作输入口接拨动开关S0-S7;P0.0-P0.7作输出口,接发光二极管L1L8,编写程序读取开关状态,将此状态在对应的发光二极管上显示出来,要求发光二极管(LED)按亮0.5秒、暗0.5秒闪烁,LED亮的同时,从P2.0送出1kHz的音频信号到音频驱动电路发声(持续0.5秒),将开关编号(07)显示在LED数码管上。要求延时采用内部定时器T0,音频的产生采用内部定时器T1。编写初始化程序和中断服务程序。五、实验1电路连线P00 - LED0 P3.2(/INT0)- S2 P01 - LED1 P02 - LED2 P03 - LED3 P04 - LED4 P05 - LED5 P06 - LED6 P07 - LED7 外部中断请求输入abcdefgh(dp) a b c d e f g h(dp) P2.7 P2.6 P2.5 P2.4P2.3 P2.2P2.1 P2.0 实验2: LED数码管各段与I/O的连接 ORG 0000H AJMP MAIN ORG 0003H AJMP INT_0 ORG 0013H AJMP INT_1ORG 0100HMAIN: CLR EA ;关CPU中断SETB EX0 ;开外部中断0 SETB EX1 ;开外部中断1 CLR IT0 ;设置外部中断0为电平触发方式 SETB IT1 ;设置外部中断1为跳沿触发方式 MOV R0,#00H MOV DPTR,#TABLE ;DPTR指向表头 ACALL DISP ;初始显示0 SETB EA ;开总中断 SJMP $ ;等待中断INT_0: CLR EA ;关总中断 ACALL DELAY ;消抖 JB P3.2,OUT0 ;判断是否真的触发 INC R0 ;触发显示加一 CJNE R0,#0AH,DISP0 ;显示到10清0 MOV R0,#00HDISP0: ACALL DISPOUT0: SETB EA ;重开总中断 RETIINT_1: CLR EA ACALL DELAY JB P3.3,OUT1 INC R0 CJNE R0,#0AH,DISP1 MOV R0,#00HDISP1: ACALL DISPOUT1: SETB EA RETI;显示子程序DISP: MOV A,R0 MOVC A,A+DPTR MOV P0,A RET;延时子程序DELAY: MOV R5,#100 ;D1: MOV R6,#20D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RETTABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;七段数码管共阴编码 END六、实验程序流程框图、实验程序1、边沿触发 初始化 ORG 0000HLJMP MAINORG 0003H 初始化开中断LJMP INT ORG 0110HMAIN:SETB EA ;EA位置1,CPU开中断 结束 SETB EX0 ;EX0位置1,允许外部中断0产生中断 CLR IT0 ;外部中断0为跳沿触发方式 中断入口 MOV SP,#65H ;设置堆栈指针 MOV P3,#0FFH ;准双向口用前置1 去抖动 MOV P2,#0FFH ;检测口置1WAIT: SJMP $ ;等待中断INT: ACALL DELAY ;消除抖动N释放按键 JB P3.2, OV ;避免由于放健时的上升沿,产生中断进行第二次显示 PUSH PSW ;现场保护Y PUSH A 现场保护 MOV R2,#10 MOV A,#00HLOOP:MOV P0, A ;循环实现连续显示09 R2=10 MOV DPTR,#TAB ;所查表的首地址赋给DPTR MOVC A,A+DPTR MOV P2,A 显示数字 ACALL DELAY MOV A,P0N INC A R2=0? DJNZ R2, LOOP POP A ;恢复现场 Y POP PSW 恢复现场 SETB EA 中断返回OV: RETITAB: DB 0FCH,60H,0DAH,0F2H,66H ; DB 0B6H,0BEH,0E0H,0FEH,0F6H;DELAY: ;0.5S的延时程序 DEL: MOV R7,#10 DEL1: MOV R6,#246 电平触发流程图如下: DEL2: MOV R5,#100 DEL3: DJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1 RET ;返回主程序END 2、 电平触发ORG 0000HLJMP MAIN ORG 0003HLJMP INTORG 0110HMAIN:SETB EA ;EA位置1,CPU开中断 SETB EX0 ;EX0位置1,允许外部中断0产生中断 CLR IT0 ;外部中断0为电平触发方式 MOV SP,#65H ;设置堆栈指针 MOV P3,#0FFH ;准双向口用前置1 MOV P2,#0FFH ;检测口置1WAIT: SJMP $ ;等待中断INT: ACALL DELAY ;消除抖动 PUSH PSW ;现场保护 PUSH A MOV R2,#10 MOV A,#00HLOOP:MOV P0, A ;循环实现连续显示19 MOV DPTR,#TAB ;所查表的首地址赋给DPTR MOVC A,A+DPTR MOV P2,A ACALL DELAY MOV A,P0 INC A DJNZ R2, LOOP POP A ;恢复现场 POP PSW SETB EA RETI TAB: DB 0FCH,60H,0DAH,0F2H,66H ; DB 0B6H,0BEH,0E0H,0FEH,0F6H; DELAY: ;0.5S的延时程序 DEL: MOV R7,#10 DEL1: MOV R6,#246 DEL2: MOV R5,#100 DEL3: DJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1 RET ;返回主程序 END 实验二 ORG 0000H ; 初始化 AJMP MAIN ORG 000BH ;中断一入口地址 AJMP T0 ORG 001BH ;中断二入口地址 AJMP T1 ORG 0100HMAIN: MOV SP,#66H MOV TMOD,#11H ;中断0,1都工作在方式1 MOV TL0,#0B0H ;中断0,延时50ms MOV TH0,#03CH MOV TL1,#0CH ;中断1延时0.5ms,产生1KHz的信号 MOV TH1,#0FEH SETB PT1 MOV IE,#0AH ;允许T0中断 允许T1中断,等价于SETB ET0 SETB ET1 SETB EA ;开总中断 SETB TR0 ;开中断T0, CLR TR1 ;关闭T1 MOV R2,#00H ;计数清0 MOV R0,#10 ;T1中断次数 MOV P1 ,#0ffHSEARCH:MOV A,P1 CJNE A,#0FFH,LOOK ;判断有没有按键按下 MOV P2,#00H ;无按键则数码管不显示 MOV P0,#00H ;无按键则LED不显示 SJMP SEARCHLOOK: ACALL DELAY10MS ;去抖 CJNE A,#0FFH,FIND;判断有没有按键按下 SJMP SEARCHFIND: RRC A ;检查是哪一个按键按下 JNC DISPLAY ;如果进位位为0则执行数码管转换 INC R2 AJMP FIND DISPLAY: MOV DPTR,#TAB MOV A, R2 MOVC A,A+DPTR MOV P2,A; SJMP MAINTAB: DB 0FCH,60H,0DAH,0F2H,66H ; DB 0B6H,0BEH,0E0H,0FEH,0F6H;T0: MOV TL0,#0B0H ;中断0子程序 MOV TH0,#03CH DJNZ R0,RETURN ;50ms循环10次 MOV R0,#0AH MOV A,P1 CJNE A,#0FFH, LOOP1 ;判断有没有按键按下 MOV P2,#00H ;无按键则数码管不显示 MOV P0,#00H ;无按键则LED不显示 SJMP RETURNLOOP1:CPL F0 JNB F0,LOOP2 SETB TR1 MOV A,P1 CPL A MOV P0,A SJMP RETURNLOOP2:CLR TR1 MOV P0,#00H RETURN: RETIT1: MOV TL1,#0CH ;重装初值 MOV TH1,#0FEHDO: CPL P2.0 ;有按键按下则送1KHz的信号 RETI DELAY10MS: ;10MS延时程序 MOV R7,#20 D1: MOV R6,#250 DJNZ R6,$ DJNZ R7,D1 RET END定时器0中断开始流程图: 初始化N够0.5秒否?YN有键按下?N中断返回是否有键按下?Y 去抖NY F0取反有键按下?N开T1中断,蜂鸣器响F0=0?Y输入值右移一位到CyNY全灭了LED,关T1中断Y计数值加1查表,送数码管显示Cy=0?7、 思考题1、外部中断采用电平触发和边沿触发处理方法上又何不同?解:电平触发和沿触发处理方法上有一下不同点:a.电平触发可以消除抖动,而沿触发消除抖动就没有意义了。b.电平触发只要P3.2是低电平中断就会一直响应,而沿触发则只有下降沿的时候中断才能响应。此实验中电平触发在中断服务程序中加了一段300ms的延时程序,来防止计数过快人无法反应过来的情况。而沿触发方式则没有这一项。2、 阐述定时器几种工作方式所实现的功能及

温馨提示

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

评论

0/150

提交评论