源程序如下- #include<reg52.h>
- #include<intrins.h>
- sbit key1=P3^4;
- sbit key2=P3^5;
- sbit key3=P3^6;
- int k,n,a,b;
- k=40;//定時器裝初值為50ms 40次即2s
- //延時函數
- void delay(int xms)
- {
- int i,j;
- for(i=xms;i>0;i--)
- for(j=110;j>0;j--);
- }
- //按鍵掃描
- void keyscan()
- {
- if(key1==0)
- {
- delay(10);
- if(key1==0)
- {
- b=~b;//取反改變流水燈方向
- while(!key1);
- }
- }
- if(key2==0&&(k>=10&&k<80))
- {
- delay(10);
- if(key2==0)
- {
- k=(k+10);//加10 增加500ms
- while(!key2);
- }
- }
- if(key3==0&&(k>10&&k<=80))
- {
- delay(10);
- if(key3==0)
- {
- k=(k-10);//減10 減少500ms
- while(!key3);
- }
- }
- }
- void main()
- {
- a=0xfe;
- P0=a;
- TMOD=0x01;
- TH0=(65536-45872)/256;
- TL0=(65536-45872)%256;
- EA=1;
- ET0=1;
- TR0=1;
- while(1)
- {
- keyscan();
- }
- }
- void T0_time() interrupt 1
- {
- TH0=(65536-45872)/256;
- TL0=(65536-45872)%256;
- n++;
- if(n==k)
- {
- n=0;
- if(b)
- {
- a=_cror_(a,1);
- P0=a;
- }
- if(!b)
- {
- a=_crol_(a,1);
- P0=a;
- }
- }
- }
復制代碼 源程序附件下載
定時器控制流水燈.rar
(26.68 KB, 下載次數: 28)
2018-12-7 13:39 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|