|
閑暇之余做了一個簡單的流水燈,設(shè)計思路先將LED燈從0-7逐個顯示,然后再從7-0逐個顯示。如果產(chǎn)生外部中斷(即按鈕按下),則8個LED燈全亮,之后又恢復(fù)流水燈狀態(tài)。附帶開發(fā)板的操作現(xiàn)象,開發(fā)板原理圖。- #include <reg52.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit K=P3^2;//啟動按鈕,外部中斷
- uchar led;
- void delay(uint x)
- {
- while(x--);
- }
- void XX()//中斷設(shè)置
- {
- EA=1;
- EX0=1;
- }
- void DD()
- {
- uint i=0;//定義i=0,以便下面的調(diào)用
- led=0xfe;//1111 1110
- delay(30000);
- while(1)
- {
- for(i=0;i<7;i++)
- {
- led=_crol_(led,1);//1111 1101 (A,B),A是左移的值,B是左移的位數(shù)
- P1=led;
- delay(30000);
- }
- for(i=0;i<7;i++)
- {
- led=_cror_(led,1);//0111 1111
- P1=led;
- delay(30000);
- }
- }
- }
- void main()
- {
- XX();
- DD();
- }
- void XX1() interrupt 0
- {
- delay(1000);//防抖
- if(K==0)
- {
- P1 = 0X00;
- delay(30000);
- }
- }
復(fù)制代碼 |
-
-
流水燈.7z
2020-9-1 19:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
1.6 MB, 下載次數(shù): 53, 下載積分: 黑幣 -5
評分
-
查看全部評分
|