欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

单片机综合实验 - 02 | 中断与定时/计数器实验

发布时间:2023/12/29 编程问答 56 豆豆
生活随笔 收集整理的这篇文章主要介绍了 单片机综合实验 - 02 | 中断与定时/计数器实验 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

一、实验目的和任务

1、掌握80C51单片机外部中断的初始化及中断服务子程序设计方法。

2、掌握80C51单片机定时器/计数器的程序控制方法。

二、实验原理简介

中断是指在突发事件到来时先中止当前正在进行的工作,转而去处理突发事件。待处理完成后,再返回到原先被中止的工作处,继续进行随后的工作。引起突发事件的来源称为中断源,中断源要求服务的请求称为中断请求,对中断请求提供的服务称为中断服务,中断管理系统处理事件的过程称为中断响应过程。80C51单片机至少包括5个中断源:

INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。(本实验用)

INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。

T0:定时器/计数器0中断,由T0计满回零引起。(本实验用)

T1:定时器/计数器l中断,由T1计满回零引起。

TI/RI:串口中断,串口完成一帧字符发送/接收后引起。

本实验对应的硬件电路与实验三相同(见图3.6.1)。P0口用于控制发光管L101~L108,口线输出0(低电平)时,对应的发光管点亮,口线输出1(高电平)时,对应的发光管熄灭。P3口的4根口线连接独立按键KX0~KX3,其中KX0对应外部中断0,进行KX0按键动作的时候可以触发外部中断。

注意:在做本实验时,须将拨码开关JUMP2置为接通状态(向左)。

三、实验内容和步骤

1、编写一段程序,用P0口作为控制端口,使实验箱上的LED轮流点亮(走马灯)。用外部中断0/KX0控制走马灯的暂停/继续。

   

ORG 0000HLJMP MAINORG 0003HLJMP ZEX0ORG 0100H MAIN: MOV SP,#60HSETB IT0SETB EX0SETB EAMOV A,#0FEHMOV R5,#00H NEXT: CJNE R5,#00H,NEXTMOV P0,AACALL DELAYRL ASJMP NEXT ;延时子程序 DELAY: MOV R2,#3 DELAY2: MOV R3,#200 DELAY3: MOV R4,#200 DJNZ R4,$DJNZ R3,DELAY3DJNZ R2,DELAY2RET ;外部中断0服务子程序 ZEX0: PUSH ACCSETB RS0MOV R2,#2ACALL DELAY2CLR RS0JB P3.2,EXITMOV A,R5XRL A,#0FFHMOV R5,A EXIT: POP ACCCLR IE0RETI
  • 观察实验结果,解释如何实现走马灯的暂停和继续。
  • 比较电平触发和边沿触发时走马灯控制的难易程度。

答:  走马灯的暂停和继续是通过外部按下按键而使单片机触发外部中断0,此时会进入外部中断0服务子程序,然后通过异或操作指令来修改工作寄存器R5的值为FFH,使其在跳出外部中断0服务子程序之后在NEXT: CJNE  R5,#00H,NEXT这条程序中进入死循环,而无法执行程序下面的位左移操作。在控制走马灯时经过验证电平触发相比边沿触发要困难。

2、编写一段程序,用P0口作为控制端口,使实验箱的LED轮流点亮(走马灯)。用定时/计数器0控制走马灯切换速度。

  

ORG 0000HLJMP MAINORG 000BHLJMP ZIT0ORG 0100H MAIN: MOV SP,#60HMOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HMOV R6,#1MOV R7,#0FEHSETB ET0SETB EASETB TR0SJMP $ ;定时中断0服务子程序 ZIT0: DJNZ R6,ZRETMOV A,R7MOV P0,ARL AMOV R7,AMOV R6,#1 ZRET: MOV TH0,#3CHMOV TL0,#0B0HRETIEND
  • 修改R6=0或1时,观察走马灯的速度快慢。
  • ZRET处没有重置初值时的走马灯的速度与 ZRET处有重置初值时的走马灯的速度的比较。
  • R6=50时,改变T0的初值,设为最大、最小时,比较走马灯的速度。
  • 去掉R6的软件辅助延时,是否可以?速度怎样?

答:经过验证,R6=0时走马灯的速度慢,R6=1时走马灯的速度快,原因是在DJNZ  R6,ZRET这条程序中,R6=0时DJNZ的减一操作进行了255次,也就是装载了255次TH0和HL0的值,而R6=1时只执行了1次。ZRET处没有重置初值时的走马灯的速度相比有重置初值时要慢,原因是没有重置初值,那么初值为0。当R6=50时,T0的初值设为最大时走马灯的速度要比T0的初值设为最小时要快。不可以去掉R6的软件辅助延时,此时走马灯的速度快到人眼无法识别。

总结

以上是生活随笔为你收集整理的单片机综合实验 - 02 | 中断与定时/计数器实验的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。