分享16位跑馬燈,利用中斷,功能左跑馬+右跑馬
5@ND@D[HT0@D6F`05_O@TI8.png (5.96 KB, 下載次數: 53)
下載附件
部分圖
2019-11-18 18:47 上傳
單片機源程序如下:
- #include <reg52.h>
- void delay(unsigned int z)
- {
- unsigned int x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- int k1=0,fx=0,k2=0;
- void main(void)
- { unsigned char i,j,l=0x80;
- EA=1;EX0=1;EX1=1;IT0=1;IT1=1;IP=0x04;P0=0x01;
- P0=0x00;
- P2=0x00;
- while(1)
- { if(k2==0){ //
- if(k1==0){ //方向
-
- if(l>=0x80){fx=0;P2=0x80;delay(300);}
- if(l<=0x01){fx=1;P0=1;delay(300);}
- if(fx==0){P0=l;l=l>>1;P2=0;delay(300);}
- else{P2=l;l=l<<1;P0=0;delay(300);}
- }else{
- if(l>=0x80){fx=1;P0=0x80;delay(300);}
- if(l<=0x01){fx=0;P2=1;delay(300);}
- if(fx==0){P0=l;l=l<<1;P2=0;delay(300);}
- else{P2=l;l=l>>1;P0=0;delay(300);}
- }
- }
- }
- }
- void INT_0() interrupt 0 //中斷
- {
- if(k1==0)k1=1;else k1=0;
- }
- void INT_1() interrupt 2 //反向
- {
- if(k2==0)k2=1;else k2=0;
- /*P0=0xaa;
- P2=0x55;
- delay(700);
- P0=0x55;
- P2=0xaa;
- delay(700);
- P0=0;P2=0; */
- }
復制代碼
51hei.png (4.53 KB, 下載次數: 59)
下載附件
2019-11-19 16:10 上傳
所有資料51hei提供下載:
51,.16位跑馬.zip
(16.66 KB, 下載次數: 25)
2019-11-18 18:47 上傳
點擊文件名下載附件
仿真+源文件 下載積分: 黑幣 -5
|