单片机外部中断实验报告.docxVIP

  • 1743
  • 0
  • 约2.76千字
  • 约 6页
  • 2019-09-27 发布于广东
  • 举报
实验三外部中断 实验报告 班级: 学号: 姓名: 教师: 一、 实验目的 1、 掌握单片机外部中断的原理及过程。 2、 掌握单片机外部中断程序的设计方法。 3、 掌握单片机外部中断时屮断方式的选择方法。 二、 实验内容 如下图所示,P3.2设为输入,P2设为输出位,连冇8个发光二极管D1?D每当发 生外部中断吋,发光二极管以向下流水灯的方式点亮。分别选择边沿触发外部中断 放是和电平触发外部屮断方式两种。 二、编程提不 1、P3 U是8位准双向口,具有双重功能: 第一功能和P1 口一样,作为输入输出口,也冇字节操作和位操作两种方式,每一位可 分别定义为输入或输出;第二功能定义如下: P3.0 RXD串行输入口 P3.1 TXD串行输出口 P3.2 INTO外部中断0请求输入线 P3.3 INT1外部中断1请求输入线 P3.4 T0定时器/计数器T0外部计数器脉冲输入线 P3.5 T1定吋器/计数器T1外部计数器脉冲输入线 P3.6 WR外部数据存贮器写脉冲输出线 P3.7 RD外部数据存贮器读脉冲输出线 2、各中断服务程序入口地址: 外部屮断0 03H 定时器/计数器T1溢出中断 0BH 外部中断1 13H 定时器/计数器 1BH 串行口中断 23H 3、外部中断的产生条件 屮断允许寄存器IE: 外部中断源允许中断(中断0: EX0=l;中断1: EXIT)。 CPU 开中断(EA=l)o 外部中断方式CPU发出中断申请。 4、外部屮断方式的选择 控制TCON: TF1 TR1 TFO TRO IT1 IEO no 1T0是选择文字则外部中断0请求(INTO)边沿触发方式或电平触发方式的控制位。前一方 式 ITO=1,后一方式 IT0=0o IT1是选择外部中断1请求(INT1)为边沿触发方式或电平触发方式的控制位。前一方式 IT1 = 1,后一方式 ITl=0o 当8031复位后,TCON被清0o 5、外部中断电路 负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或 者去抖动延时程序,保证每次只产生单脉冲,构成边沿触发方式外部中断电路。边沿触发的 最大优点在于不会丢失中断。只要中断请求负跳变的宽度大于1个机器周期,单片机就能 够采样到屮断请求信号,单片机将采样到的信号琐存到中断请求标志寄存器屮,硬件白动置 IEO为1,即使单片机暂吋不响应,这个标,忐也不会丢失,只有在外部屮断响应Z后,硬件 才将IEO清除。 低电平触发的外部中断与边沿触发的外部屮断,其屮断过程基木相似。唯-不同在于屮 断请求信号的保持?撤消。在边沿触发中,单片机TCON寄存器专门有一位作它的请求标 志,当负跳变后,单片机将中断请求标志DEI (INT1中断为IE 1, INTO屮断为IEO)自动置 1,由IE1请求屮断,在响应屮断时,又由单片机白动清除IE1。但是对于电平触发方式, 单片机中没有专门的请求标志,响应中断时也不能口动清除请求信号。在实际应用中,常常 是在单片机外增加一个触发器作为中断请求标志,当中断请求发生时置触发器为0,使INT1 为低电平,在单片机响应这个中断后,利用软件(占用另一?根I/O线,例如P3.1)发出复位 脉冲,使该触发器置1,撤消中断请求。这种电路使请求中断的低电平能够保持足够的吋间, 一直到中断发生为止,因而不会丢失中断请求。低电平的吋间又不致太长,只要进入中断服 务程序,在返冋之前,就撤消请求信号,因而也不会产生多余的屮断动作。 四、实验器材 仿真器、FI标系统实验板、直流电源 五、实验步骤 1、 边沿触发式外部中断o实验 (1) P3.2设为边沿触发方式,连接外部复位开关,编程使每次中断流水灯向下移 位一次,屮断程序屮不延时去抖动,观察结果。 (2) P3.2设为边沿触发方式,连接外部复位开关,编程使每次中断流水灯向下移 位一次,中断程序中采用延时去抖动,观察结果。 (3) P3.3设为边沿触发方式,连接外部RS触发器硕件去抖动的开关,编程使每次 中断流水灯向下移位一次,中断程序中不延时去抖动,观察结果。 2、 电平触发式外部中断实验 P3.3设为电平触发方式,连接外部RS触发器硕件去抖动的开关,编程使每次 中断流水灯向下移位一次,中断程序中不延时去抖动,观察结果。 C源程序清单 #include STC12C5A60S2?h ^define uchar unsigned char uchar i=0; uchar numi [] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; void delay(uchar k ); void main() EA=1; EXO=1; ITO二1; wh i1e (1) { if(EXO==O)

文档评论(0)

1亿VIP精品文档

相关文档