C51 COMPILER V7.01 TIME_1 04/20/2010 19:53:43 PAGE 1 C51 COMPILER V7.01, COMPILATION OF MODULE TIME_1 OBJECT MODULE PLACED IN TIME_1.OBJ COMPILER INVOKED BY: C:\Keil\C51\Bin\c51.exe TIME_1.c DB OE stmt level source 1 #define _TIME_1_C_ 2 #include 3 #include 4 #include "time_1.h" 5 #include "8LED.H" 6 7 void TIME2_ROUTING() interrupt 5 8 { 9 1 TF2=0; 10 1 Led(); 11 1 } 12 13 void INIT_TIME2() 14 { 15 1 RCAP2H=0XF8; 16 1 RCAP2L=0XCC;//1MS 17 1 ET2=1; 18 1 TR2=1; 19 1 } 20 21 void InitInterrupt() 22 { 23 1 INIT_TIME2(); 24 1 25 1 IN_SECOND; 26 1 IN_MINUTE; 27 1 IN_HOUR; 28 1 } 29 30 #define INIT 0 31 #define KEY_SB1 1 32 #define KEY_SB2 2 33 #define FLASH 3 34 #define CLOCK 4 35 36 void Init_task()_task_ INIT 37 { 38 1 InitInterrupt(); 39 1 40 1 os_create_task(KEY_SB1); 41 1 os_create_task(FLASH); 42 1 os_create_task(CLOCK); 43 1 os_delete_task(INIT); 44 1 } 45 #define SB1 P3_0 46 bit A=0; 47 void KEY_SB1_Task(void) _task_ KEY_SB1 48 { 49 1 unsigned int keytime=0; 50 1 while (1) 51 1 { 52 2 if(SB1==0) 53 2 { 54 3 if(++keytime==200) 55 3 { C51 COMPILER V7.01 TIME_1 04/20/2010 19:53:43 PAGE 2 56 4 if(FLASH_Mode==0) 57 4 { 58 5 if(A)FLASH_Mode=5; 59 5 else FLASH_Mode=1,os_delete_task(CLOCK); 60 5 61 5 os_create_task(KEY_SB2); 62 5 } 63 4 else FLASH_Mode=0,os_create_task(CLOCK),os_delete_task(KEY_SB2); 64 4 65 4 } 66 3 } 67 2 else 68 2 { 69 3 if(keytime!=0) 70 3 { 71 4 if(keytime<200&&keytime>=2) 72 4 { 73 5 if(FLASH_Mode!=0) 74 5 { //按键在设置状态下松开 75 6 FLASH_Mode++; 76 6 if(FLASH_Mode==8)FLASH_Mode=5; 77 6 else if(FLASH_Mode==4)FLASH_Mode=1; 78 6 } 79 5 else 80 5 { //按键在非设置状态下松开 81 6 A=!A; 82 6 if(A) 83 6 { 84 7 IN_A_SECOND; 85 7 IN_A_MINUTE; 86 7 IN_A_HOUR; 87 7 } 88 6 else 89 6 { 90 7 IN_SECOND; 91 7 IN_MINUTE; 92 7 IN_HOUR; 93 7 } 94 6 } 95 5 } 96 4 keytime=0; 97 4 } 98 3 } 99 2 os_wait(K_TMO,1,0); 100 2 } 101 1 } 102 103 void add() 104 { 105 1 switch (FLASH_Mode) 106 1 { 107 2 case 1:Hour++;IN_HOUR; break; 108 2 case 2:Minute++;IN_MINUTE;break; 109 2 case 3:Second++;IN_SECOND;break; 110 2 111 2 case 5:A_Hour++;IN_A_HOUR; break; 112 2 case 6:A_Minute++;IN_A_MINUTE;break; 113 2 case 7:A_Second++;IN_A_SECOND;break; 114 2 115 2 default: break; 116 2 } 117 1 } C51 COMPILER V7.01 TIME_1 04/20/2010 19:53:43 PAGE 3 118 #define SB2 P3_4 119 void KEY_SB2_Task(void) _task_ KEY_SB2 120 { 121 1 unsigned char keytimeSB2=0; 122 1 for (;;) 123 1 { 124 2 if(SB2==0) 125 2 { 126 3 keytimeSB2++; 127 3 if(keytimeSB2==2)add(); 128 3 else if(keytimeSB2>=200&&keytimeSB2<204) 129 3 { 130 4 add(); 131 4 os_wait(K_TMO,100,0); 132 4 } 133 3 else if(keytimeSB2>204) 134 3 { 135 4 add(); 136 4 os_wait(K_TMO,10,0); 137 4 } 138 3 139 3 140 3 } 141 2 else 142 2 keytimeSB2=0; 143 2 os_wait(K_TMO,1,0); 144 2 } 145 1 } 146 147 148 //#define KEY_IO P1 149 //void Key_Task(void) _task_ KEY 150 //{ 151 // unsigned int keytime=0; 152 // unsigned char temp; 153 // while (1) 154 // { 155 // KEY_IO=0xf0; 156 // if (KEY_IO!=0xf0) 157 // { 158 // if (++keytime>=300) 159 // { 160 // temp=KEY_IO; 161 // KEY_IO=temp|0x0f; 162 // switch (KEY_IO) 163 // { 164 // case 0X77: break; 165 // case 0X7b: break; 166 // case 0X7d: break; 167 // case 0X7e: break; 168 // 169 // case 0Xb7: break; 170 // case 0Xbb: break; 171 // case 0Xbd: break; 172 // case 0Xbe: break; 173 // 174 // case 0Xd7: break; 175 // case 0Xdb: break; 176 // case 0Xdd: break; 177 // case 0Xde: break; 178 // 179 // case 0Xe7: break; C51 COMPILER V7.01 TIME_1 04/20/2010 19:53:43 PAGE 4 180 // case 0Xeb: break; 181 // case 0Xed: break; 182 // case 0Xee: break; 183 // default: break; 184 // } 185 // } 186 // } 187 // else 188 // keytime=0; 189 // os_wait(K_TMO,1,0); 190 // } 191 //} 192 193 194 void FLASH_TASK(void) _task_ FLASH 195 { 196 1 while(1) 197 1 { 198 2 switch (FLASH_Mode) 199 2 { 200 3 case 1: 201 3 str[0]=str[1]=17; 202 3 os_wait(K_TMO,30,0); 203 3 IN_HOUR; 204 3 os_wait(K_TMO,30,0); 205 3 break; 206 3 case 2: 207 3 str[3]=str[4]=17; 208 3 os_wait(K_TMO,30,0); 209 3 IN_MINUTE; 210 3 os_wait(K_TMO,30,0); 211 3 break; 212 3 case 3: 213 3 str[6]=str[7]=17; 214 3 os_wait(K_TMO,30,0); 215 3 IN_SECOND; 216 3 os_wait(K_TMO,30,0); 217 3 break; 218 3 219 3 case 5: 220 3 str[0]=str[1]=17; 221 3 os_wait(K_TMO,30,0); 222 3 IN_A_HOUR; 223 3 os_wait(K_TMO,30,0); 224 3 break; 225 3 case 6: 226 3 str[3]=str[4]=17; 227 3 os_wait(K_TMO,30,0); 228 3 IN_A_MINUTE; 229 3 os_wait(K_TMO,30,0); 230 3 break; 231 3 case 7: 232 3 str[6]=str[7]=17; 233 3 os_wait(K_TMO,30,0); 234 3 IN_A_SECOND; 235 3 os_wait(K_TMO,30,0); 236 3 break; 237 3 default: break; 238 3 } 239 2 os_wait(K_TMO,1,0); 240 2 } 241 1 } C51 COMPILER V7.01 TIME_1 04/20/2010 19:53:43 PAGE 5 242 243 void CLOCK_TASK(void) _task_ CLOCK 244 { 245 1 while(1) 246 1 { 247 2 os_wait(K_TMO,100,0); 248 2 if(++Second>59) 249 2 { 250 3 Second=0; 251 3 if(++Minute>59) 252 3 { 253 4 Minute=0; 254 4 if (++Hour>23) 255 4 { 256 5 Hour=0; 257 5 } 258 4 } 259 3 } 260 2 if(!A) 261 2 { 262 3 IN_SECOND; 263 3 IN_MINUTE; 264 3 IN_HOUR; 265 3 } 266 2 267 2 } 268 1 } 269 270 MODULE INFORMATION: STATIC OVERLAYABLE CODE SIZE = 966 ---- CONSTANT SIZE = 18 ---- XDATA SIZE = ---- ---- PDATA SIZE = ---- ---- DATA SIZE = 16 3 IDATA SIZE = ---- ---- BIT SIZE = 1 ---- END OF MODULE INFORMATION. C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)