|
|
閑暇之余做了一個簡單的流水燈,設計思路先將LED燈從0-7逐個顯示,然后再從7-0逐個顯示。如果產生外部中斷(即按鈕按下),則8個LED燈全亮,之后又恢復流水燈狀態。附帶開發板的操作現象,開發板原理圖。- #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()//中斷設置
- {
- EA=1;
- EX0=1;
- }
- void DD()
- {
- uint i=0;//定義i=0,以便下面的調用
- led=0xfe;//1111 1110
- delay(30000);
- while(1)
- {
- for(i=0;i<7;i++)
- {
- led=_crol_(led,1);//1111 1101 (A,B),A是左移的值,B是左移的位數
- 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);
- }
- }
復制代碼 |
-
-
流水燈.7z
2020-9-1 19:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
1.6 MB, 下載次數: 53, 下載積分: 黑幣 -5
評分
-
查看全部評分
|