51单片机利用中断触发实现流水灯+Proteus仿真
51单片机利用中断触发实现流水灯
笨死你使用软件:C51单片机框架生成工具。自动生成程序框架。

- Proteus仿真

程序代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| #include<REG52.H> #include <intrins.h> //函数说明...... void Init\_P( );//程序初始化 void delay(unsigned char ms ); //延时函数 void main( ) { //unsigned char i; P2 = 0x01; //P2口初始化 Init\_P( ); //整机初始化函数...... delay(1); //延时函数,延时1ms...... //实例参考...... //TR0=1; //启动T0 //TR1=1; //启动T1 //TR2=1; //启动T2 //TR0=0; //停止T0 //TR0=0; //停止T0 //TR1=0; //停止T1 //TR2=0; //停止T2 //以下加入您的程序代码......
while(1){ } } void Init\_P( ) { EA=1; //开全局中断 EX0=1; //开外部中断0 EX1=1; //开外部中断1 IT0=1; //外部中断0边沿触发 IT1=1; //外部中断1边沿触发 TMOD = 0x50; //T0T1方式控制 TH0= 0x18; // T0高8位 TL0= 0x30; // T0低8位 //T2为波特率发生器模式...... TH1= 0x30; // T1高8位 TL1= 0x88; // T1低8位 SCON = 0x40; //串口模式 //初始化完成...... } void delay(unsigned char ms ) //延时函数 { unsigned char i; while(ms--) for(i=0;i<110;i++); } void interint0() interrupt 0 using 0 //外部中断0处理 { unsigned char i; for(i = 0; i < 7; i++) { P2 = \_cror\_(P2,1); //P2端口向右循环移动1位 delay(200); } } void interint1() interrupt 2 using 0 //外部中断1处理 { unsigned char i; for(i = 0; i < 7; i++) { P2 = \_crol\_(P2,1); //P2端口向左循环移动1位 delay(500); } }
|
程序源码和仿真资源
1 2 3
| 链接:https://pan.baidu.com/s/1LbPY9FK7LQYKC5lF-x\_\_RQ 提取码:uiv2
|
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!