dataandtime.lst
来自「本源程序是基于AT89C51单片机的」· LST 代码 · 共 292 行 · 第 1/2 页
LST
292 行
133 4 case 0x0b :{while((P1&0x0f)!=0x0f) //等待按键释放
134 5 ;
135 5 return 3; //P1.2上的键按下
136 5 };break;
137 4 case 0x07 :{while((P1&0x0f)!=0x0f) //等待按键释放
138 5 ;
139 5 return 4; //P1.3上的键按下
140 5 };break;
141 4 default :return 0;
142 4 }
143 3 }
144 2 }
145 1 else
146 1 return 0;
147 1 }
148 /***按键处理*************************************************************************
149 按键返回值说明:返回值用十六进制数表示,
150 十位上的数值表示按键类型: 1--单击 按下时间<700ms
151 2--长击 按下时间>700ms但<1s
152 3--连击 按下时间>1s
153 个位上的数值圾示按键的编号 1--表示1号键,2表示2号键……
154 ************************************************************************************
155 unsigned char Key_Manage(unsigned char keys)
156 {
157 unsigned char key=0;
158 //Delay1ms(250);
159 Delay1ms(100);
160 if(Key_Scan())
161 {key=(0x10|keys);}
162 return key; }*/
163
164
165 //主程序
166 main()
167 { float i=0; unsigned char o;
168 1 LCD_Initial();
169 1 LCD_Print(" HangKaiKun");
170 1 LCD_GoToXY(0,1);
171 1 LCD_Print(" ");
172 1 IT1=1;
173 1 IE=0x88;
174 1 EA=1;
175 1 EX1=1;
176 1 while(1)
177 1 {o=Key_Scan();
178 2 if(o)
C51 COMPILER V7.50 DATAANDTIME 04/20/2007 12:49:12 PAGE 4
179 2 year++ ;
180 2
181 2
182 2
183 2
184 2 while(Temperature_sin)
185 2 {float i;
186 3 i=ReadTemperature();
187 3 //i=DS18B20_Initial();
188 3 IntToStr(i);
189 3 LCD_GoToXY(9,2);
190 3 LCD_Print(temp);
191 3 Temperature_sin=0;
192 3 }
193 2 }
194 1 }
195 /***中断1服务程序(用于完成计时和日历转变和刷新,以及判断定时是否已到)***************/
196 void int1(void) interrupt 2 using 1
197 {
198 1 second++;
199 1 if((second%2==0))
200 1 Temperature_sin=1 ;
201 1 if(second==60)
202 1 { second=0;
203 2 minute++;
204 2
205 2 if(minute==60)
206 2 { minute=0 ;
207 3 hour++ ;
208 3 if(hour==24)
209 3 { hour=0 ;
210 4 week++ ;
211 4 day++ ;
212 4 if(week==8)
213 4 week=1 ;
214 4 if(day<=days)
215 4 { day=1 ;
216 5 month++ ;
217 5 if(month==13)
218 5 { month=1 ;
219 6 year++ ;
220 6 if(year==100)
221 6 year=0 ;
222 6 }
223 5 }
224 4 }
225 3 }
226 2 }
227 1 if((Timer_hour==hour)&&(Timer_minute==minute))
228 1 Timer_sin=1;
229 1 CharToStr(second) ;
230 1 LCD_GoToXY(6,2) ;
231 1 LCD_Print(DATA) ;
232 1 CharToStr(minute) ;
233 1 LCD_GoToXY(3,2) ;
234 1 LCD_Print(DATA) ;
235 1 LCD_Print(":") ;
236 1 CharToStr(hour) ;
237 1 LCD_GoToXY(0,2) ;
238 1 LCD_Print(DATA) ;
239 1 LCD_Print(":") ;
240 1 WeekToStr(week) ;
C51 COMPILER V7.50 DATAANDTIME 04/20/2007 12:49:12 PAGE 5
241 1 LCD_GoToXY(12,1) ;
242 1 LCD_Print(Week_Str);
243 1 CharToStr(day) ;
244 1 LCD_GoToXY(8,1) ;
245 1 LCD_Print(DATA) ;
246 1 CharToStr(month) ;
247 1 LCD_GoToXY(5,1) ;
248 1 LCD_Print(DATA) ;
249 1 LCD_Print("-") ;
250 1 CharToStr(year) ;
251 1 LCD_GoToXY(2,1) ;
252 1 LCD_Print(DATA) ;
253 1 LCD_Print("-") ;
254 1 LCD_GoToXY(0,1) ;
255 1 LCD_Print("20") ;
256 1 }
257
258
*** WARNING C316 IN LINE 258 OF DataAndTime.c: unterminated conditionals
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1230 ----
CONSTANT SIZE = 37 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 59 13
IDATA SIZE = ---- ----
BIT SIZE = 2 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?