按鍵控制漸快的流水燈,最慢為1s的間隔,最快為100ms的間隔,每按一次加快100ms
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (15.74 KB, 下載次數: 41)
下載附件
2018-5-9 04:13 上傳
0.jpg (41.99 KB, 下載次數: 50)
下載附件
2018-5-9 04:12 上傳
單片機源程序如下:
- #include<reg51.h> //定義特殊功能寄存器的頭文件
- #include<intrins.h>
- #define NOP _nop_()
- #ifndef _Dly_nms_h__
- #define _Dly_nms_h__ //K1位變量定義
- typedef unsigned char Uchar; //數據類型重命名
- unsigned int a=0;
- void Dly_nms(unsigned int time) //延時函數
- {unsigned char i;
- for(;time>0;time--)
- {for(i=0;i<247;i++)
- {NOP;}
- }
- }
- #endif
- void INT0sev() interrupt 0 //外中斷0的函數
- { while(K1==0); //等待按鍵釋放
- if(a<900)
- a=a+100;
- IE0=0; //清中斷標志
- }
- void main() //主函數
- {
- unsigned char C,b=0;
- C=0xFE;
- EA=1;EX0=1;IT0=1; //外中斷0初始化
- for(;;) //循環函數
- {
- P1=C; //數據輸出
- C=_crol_(C,1); //循環左移
- Dly_nms(1000-a); //調用延時函數
- }
- }
復制代碼
所有資料51hei提供下載:
按鍵控制漸快的流水燈,最慢為1s的間隔,最快為100ms的間隔,每按一次加快100ms.zip
(62.38 KB, 下載次數: 36)
2018-5-8 22:55 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|