|
|
在單片機(jī)的P2口上接8只LED組成流水燈。使用一個(gè)按鍵開(kāi)關(guān)來(lái)控制流水燈的變化。開(kāi)關(guān)斷開(kāi)是,流水燈是左右循環(huán)閃爍,當(dāng)開(kāi)關(guān)按下時(shí),流水燈進(jìn)行交替閃爍。開(kāi)關(guān)斷開(kāi)恢復(fù)左右循環(huán)閃爍。很簡(jiǎn)單的一個(gè)程序,適合剛開(kāi)始學(xué)習(xí)單片機(jī)做流水燈的新手學(xué)習(xí)。- #include<reg52.h>
- #include<intrins.h>
- void delay(int z) //延時(shí)程序
- {
- int x,y;
- for(x=0;x<=z;x++)
- for(y=0;y<=255;y++);
- }
- void init_tx() //中斷初始化函數(shù)
- {
- EA=1; //開(kāi)中斷
- EX1=1; //允許外部中斷1中斷請(qǐng)求
- IT1=0; //外部中斷1觸發(fā)方式為跳沿觸發(fā)方式
- IP=0X00; //設(shè)置中斷優(yōu)先級(jí)
- }
- void main()
- {
- unsigned char LED;
- init_tx();
- LED=0x00; //初始化LED燈
- P2=LED;
- while(1)
- {
- unsigned char i,j;
- LED=0x80;
- P2= LED; //點(diǎn)亮一個(gè)LED燈
- delay(100);
- for(i=0;i<=6;i++) //右移流水燈模塊
- {
- LED=_cror_(LED,1);
- P2=LED;
- delay(100);
- }
- LED=0X01;
- P2= LED; //點(diǎn)亮最后一個(gè)燈
- delay(100);
- for(j=0;j<=6;j++) //左移流水燈模塊
- {
- LED=_crol_(LED,1);
- P2= LED;
- delay(100);
- }
- }
- }
- void tx1() interrupt 2 //外部中斷1處理程序
- {
- unsigned char temp;
- temp=P2; //保護(hù)現(xiàn)場(chǎng)
- P2=0xaa; //點(diǎn)亮4個(gè)LED燈
- delay(200);
- P2=0x55; //點(diǎn)亮另外4個(gè)LED燈
- delay(200);
- P2=temp; //返回現(xiàn)場(chǎng)
- }
-
復(fù)制代碼
|
-
-
花樣流水燈.rar
2016-5-22 01:19 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
28.05 KB, 下載次數(shù): 18, 下載積分: 黑幣 -5
評(píng)分
-
查看全部評(píng)分
|