|
8個LED燈組成流水燈,兩個中斷優(yōu)先級,一個小程序
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
單片機源程序如下:
- #include<reg52.h>
- #include<intrins.h>
- #define uint unsigned int //對數(shù)據(jù)類型進行聲明定義
- #define uchar unsigned char
- sbit k3=P3^2;//定義按鍵K3
- #define led P1//定義P2口是led
- sbit k4=P3^3;//定義按鍵K4
- void delay(uint z)//延時函數(shù)
- {
- uint x,y;
- for(x=5;x>0;x--)
- for(y=z;y>0;y--);
- }
- void Int0Init()//設(shè)置INT0
- {
- IT0=1;//跳變沿出發(fā)方式(下降沿)
- EX0=1;//打開INT0的中斷允許。
- EA=1;//打開總中斷
- }
- void Int1Init()//設(shè)置INT1
- {
- IT1=1;//跳變沿出發(fā)方式(下降沿)
- EX1=1;//打開INT1的中斷允許。
- EA=1;//打開總中斷
- }
- void main()//主函數(shù)
- { PX0=1;PX1=0;
- Int1Init();//設(shè)置外部中斷1
- Int0Init();//設(shè)置外部中斷0
- }
- void Int0() interrupt 0//外部中斷0的中斷函數(shù)
- { int i,u;
- led=0x01;
- for(u=5;u>0;u--)
- {
- for(i=0;i<7;i++)
- {
- led=_crol_(led,1);
- delay(5000);//延時消抖
- }
- }
- }
- void Int1() interrupt 2//外部中斷1的中斷函數(shù)
- { int i,u;
- led=0x80;
- for(u=5;u>0;u--)
- {
- for(i=0;i<7;i++)
- {
- led=_cror_(led,1);
- delay(5000);//延時消抖
- }
- }
- }
復(fù)制代碼
所有資料51hei提供下載:
中斷.zip
(44.19 KB, 下載次數(shù): 7)
2018-11-16 21:27 上傳
點擊文件名下載附件
|
評分
-
查看全部評分
|