外部中断 0 和1 控制双向流水灯设计(2页)Good is good, but better carries it
精益求精,善益求善
外部中断 0 和 1 控制双向流水灯设计一.外部中断的基本知识中断是为单片机具有对外部或内部的事件实时处理而设置的,中断功能是单片机最重要的功能之一
51 打片机内部共有 5 个中断源,外部中断 0,外部中断 1,定时器/计数器 0 中断,定时器/计数器 1 中断,串行口中断
例:EX0 为外部中断 0 允许位,EX0=1,打开外部中断 0 中断;EX0=0,关闭外部中断 0 中断
IT0 为外部中断 0 触发方式选择位,IT0=0,为电平触发方式,每个机器周期的 S5P2 采样 INT0 引脚,若 INT0 为低电平,则置 1,否则清0;IT0=1,为跳变沿触发方式,当一个机器周期采样到 INT0 为低电平常,则IE1 置 1
IE1=1,表示外部中断正在向 CPU 申请中断
当 CPU 响应中断,转向中断服务程序时,该位由硬件清 0
二. 双向流水灯程序设计#include #include #define uint unsigned int#define uchar unsigned charuchar led1=0xfe;uchar led2=0x7f;void delay(uint x) //延时子程序{ uint i,j; for(i=x;i>0;i--) for(j=120;j>0;j--);}void main() //main 主程序{ EA=1; //开总中断 EX0=1; //开外部中断 0 EX1=1; IT0=0; IT1=0; //外部中断 1 的处罚方式为电平触发方式 while(1);}void int0()interrupt 0{ uint a; for(a=0;a