用時間模擬ADC結果控制進度條。給你一個程序構架,變量按需自行調整。
- #include <reg51.h>
- #define uint unsigned int
- #define uchar unsigned char
- uchar code table[]={0xff,0xfe,0xfc,0xf8,0xf0};
- uchar num,min;
- bit flag;
- void InitTimer0(void)//50毫秒@12.000MHz
- {
- TMOD = 0x01;
- TH0 = 0x3C;
- TL0 = 0xB0;
- EA = 1;
- ET0 = 1;
- TR0 = 1;
- }
- void main(void)
- {
- uchar i=0,j;
- InitTimer0();
- while(1)
- {
- if(flag)//周期250ms
- {
- flag=0;
- if(min<2) {P1=table[i];j=0;}
- else if(min<4) {P1=table[i];j=1;}
- else if(min<6) {P1=table[i];j=2;}
- else if(min<8) {P1=table[i];j=3;}
- else if(min>=8){P1=table[i];j=4;}
- i++;
- if(i>4)i=j;
- }
- }
- }
- void Timer0Interrupt(void) interrupt 1
- {
- static char i;
- TH0 = 0x3C;
- TL0 = 0xB0;
- i++;
- if(i>=5)//250ms
- {
- i=0;
- flag=1;
- if(++num>=240)//分鐘
- {
- num=0;
- if(min<8)
- min++;
- }
- }
- }
復制代碼 |