1、 主主程程序序中中断断服服务务程程序序中断请求中断请求断点断点中断返回中断返回符号符号名名 称称中断引起原因中断引起原因中断服务中断服务程序入口程序入口INT0 外部中断外部中断0P3.2引脚的低电引脚的低电平或下降沿信号平或下降沿信号0003HINT1 外部中断外部中断1P3.3引脚的低电引脚的低电平或下降沿信号平或下降沿信号0013H符号符号名名 称称中断引起原因中断引起原因中断服务中断服务程序入口程序入口T0定时器定时器0中断中断定时计数器定时计数器0计数回计数回零溢出零溢出000BHT1定时器定时器1中断中断定时计数器定时计数器1计数回计数回零溢出零溢出001BHT2定时器定时器2中断
2、中断定时计数器定时计数器2中断中断(TF2或或T2EX信号)信号)002BHTI/RI 串行口中断串行口中断串行通信完成一帧串行通信完成一帧数据发送或接收引数据发送或接收引起中断起中断0023HTF1 TR1 TF0 TR0IE1IT1IE0IT0T1请请求求有有/无无T1工工作作启启/停停T0请请求求有有/无无T0工工作作启启/停停INT1请请求有求有/无无INT1方式方式下沿下沿/低电低电平平INT0请求请求有有/无无INT0方式方式下沿下沿/低电低电平平9FH9EH 9DH 9CH 9BH 9AH 99H 98HTIRI位位7位位6位位5位位4位位3位位2位位1位位0 EA-ET2 ES
3、 ET1 EX1 ET0EX0中断中断总控总控允允/禁禁不不用用T2允允/禁禁串串行行口口允允/禁禁T1允允/禁禁INT1允允/禁禁T0允允/禁禁INT0允允/禁禁-PT2PSPT1 PX1 PT0 PX0无用无用位位无用无用位位T2高高/低低串行串行口口高高/低低T1高高/低低INT1高高/低低T0高高/低低INT0高高/低低XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1
4、.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51R110k1234567820191817161514139121011U2LED-BARGRAPH-RED23456781RP1RESPACK-7K1/-声明区声明区-#include /定义定义MCS-51寄存器的头文件寄存器的头
5、文件#include/这个头文件是这个方法的核心,它包含了逐步移这个头文件是这个方法的核心,它包含了逐步移位位函函数功数功能能/-延迟函数延迟函数-voiddelay(intx)inti,j;for(i=0;ix;i+)/大循环大约延迟大循环大约延迟0.5*xms for(j=0;j60;j+);/该循环大约延迟该循环大约延迟0.5ms/-定义外部中断定义外部中断0的中断处理子程序的中断处理子程序-voidextern0()interrupt0inti;EX0=0;delay(20);/延时去抖动延时去抖动EX0=1;LED=0 xfe;/LED=11111110;因为低电平因为低电平0表示灯
6、亮表示灯亮 while(1)delay(100);/延迟时间延迟时间:100*0.5ms=0.5s P1=_crFl_(P1,1);/led灯从上向下循环闪亮灯从上向下循环闪亮 /-主程序主程序-main()EA=1;/开总中断开总中断EX0=1;/开外部中断开外部中断0IT0=0;/外部中断外部中断0的中的中断断方方式为低电平响应式为低电平响应EX1=1;/开外部中断开外部中断1P1=0 xAA;/灯隔一盏点亮一个灯隔一盏点亮一个while(1);/-外部中断程序外部中断程序-/功能功能:通过消抖电路产生中断,并在数码管上显示通过消抖电路产生中断,并在数码管上显示/-#include#def
7、ineucharunsignedcharuchari;unsignedcharcodetable=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71,0 x00;/-主程序主程序-main()EA=1;EX1=1;IT1=1;P2=0 x3f;while(1);/-中断服务程序中断服务程序-time0()interrupt2i+;if(i16)P2=tabi;elsei=0;/当计数超过当计数超过15时,重新计时,重新计数数P2=0 x3f;XTAL218
8、XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A14
9、27U1AT89C51U2AND_3D1D2D3R410kR510kR610kR110kR210kR310k按键按键1按键按键2按键按键3/-声明区声明区-#include /定义定义MCS-51寄存器的头文件寄存器的头文件/-定义外部中断定义外部中断1的中断处理子程序的中断处理子程序-voidextern1()interrupt1switch(P0)Case0 xfe:P1=0 xfe;break;Case0 xfd:P1=0 xfd;break;Case0 xfb:P1=0 xfb;break;/-主程序主程序-main()EA=1;/开总中断开总中断EX1=1;/开外部中断开外部中断IT1=0;/外部中断外部中断0的中断方式的中断方式为为低低电平响应电平响应while(1);