- /*********************************************************************************************
- 修改:劉海龍
- 程序名:測試
- /*********************************************************************************************/
- #include <reg52.h>
- sbit relay1=P1^3;
- sbit relay2=P1^4;
- sbit k=P0^0;
- unsigned char cou, TIME_HH,TIME_MM,TIME_SS;
- void main()
- {
- TMOD=0x01;
- TH0 = 0x3c; // 重置定時常數
- TL0 = 0xb0;
- EA=1; ET0=1;
- TR0=0;
- while(1){
- if(k==0){
- TR0=1;//如果k按鍵按下開始計時
- relay1=0;//繼電器1通電
- }
- }
- }
- void timer0() interrupt 1
- {
- cou++; // 軟計數器加1
- if(cou > 19){ // 計數值到100(1s)
- cou = 0; // 軟計數器清零
- TIME_SS++; // 秒計數器加1(進位10ms*100=1s)
-
- if(TIME_SS > 59){ // 秒計數值到60
-
- TIME_SS = 0; // 秒計數器清零
- TIME_MM++; // 分計數器加1(進位60s=1m)
- if(TIME_MM > 59){ // 分計數到60
- TIME_MM = 0; // 分計數器清零
- TIME_HH++; // 時計數器加1(進位60m=1h)
- if(TIME_HH = 0)relay1=0;
- if(TIME_HH = 1)relay1=1;//1小時到關繼電器1
- if(TIME_HH = 2)relay2=0;//又到1小時開繼電器2
- if(TIME_HH = 3)relay2=1;//又到一小時關繼電器2
- if(TIME_HH = 4){ // 計數到4h
- TIME_HH = 0; // 時計數器清零重新循環
- relay1=0;
- }
- }
- }
- }
- TH0 = 0x3c; // 重置定時常數
- TL0 = 0xb0;
-
-
- }
- /************************************END*********************************************************/
復制代碼 |