clock_show_time_data.lst
来自「这是一段开始学单片机时写的LCD程序」· LST 代码 · 共 381 行 · 第 1/2 页
LST
381 行
179 //*************************************************
C51 COMPILER V7.50 CLOCK_SHOW_TIME_DATA 07/25/2007 10:48:55 PAGE 4
180 uchar LCD_GET_FLAG(void)
181 {
182 1 SEND_IN=0xff;
183 1 LCD_RS=0;
184 1 LCD_RW=1;
185 1 LCD_E=1;
186 1 _nop_();
187 1 _nop_();
188 1 return(SEND_IN);
189 1 }
190 //*************************************************
191 //函数功能:在LCD第一行输出“time: : :”
192 //输入变量:*DATA
193 //输出变量:无
194 //调用模块:LCD_SEND_COMMAND(),LCD_SEND_DATA()
195 //*************************************************
196 void LCD_DISPLAY_COLON(uchar *DATA)
197 {
198 1 int x=1;
199 1 LCD_SEND_COMMAND(LCD_LINE1); //发送显示位置命令
200 1 for(;x<(17)&&*DATA!='\0';x++)
201 1 {
202 2 LCD_SEND_DATA(*DATA++); //发送数据
203 2 }
204 1 }
205 //*************************************************
206 //函数功能:在LCD第二行输出“date:”
207 //输入变量:*DATA
208 //输出变量:无
209 //调用模块:LCD_SEND_COMMAND(),LCD_SEND_DATA()
210 //*************************************************
211 void LCD_DISPLAY_DATE(uchar *DATA)
212 {
213 1 int x=1;
214 1 LCD_SEND_COMMAND(LCD_LINE2); //发送显示位置命令
215 1 for(;x<(17)&&*DATA!='\0';x++)
216 1 {
217 2 LCD_SEND_DATA(*DATA++); //发送数据
218 2 }
219 1 }
220 //*************************************************
221 //函数功能:显示时,分,秒
222 //输入变量:无
223 //输出变量:无
224 //调用模块:LCD_SEND_COMMAND(),LCD_SEND_DATA()
225 //*************************************************
226 void LCD_DISPLAY_STR(void)
227 {
228 1 LCD_SEND_COMMAND(LCD_LINE1+5); //发送显示位置命令
229 1 LCD_SEND_DATA(DISPLAY[hour_2]); //发送时十位数据
230 1 LCD_SEND_COMMAND(LCD_LINE1+6); //发送显示位置命令
231 1 LCD_SEND_DATA(DISPLAY[hour_1]); //发送时个位数据
232 1 LCD_SEND_COMMAND(LCD_LINE1+8); //发送显示位置命令
233 1 LCD_SEND_DATA(DISPLAY[minute_2]); //发送分十位数据
234 1 LCD_SEND_COMMAND(LCD_LINE1+9); //发送显示位置命令
235 1 LCD_SEND_DATA(DISPLAY[minute_1]); //发送分个位数据
236 1 LCD_SEND_COMMAND(LCD_LINE1+11); //发送显示位置命令
237 1 LCD_SEND_DATA(DISPLAY[second_2]); //发送秒十位数据
238 1 LCD_SEND_COMMAND(LCD_LINE1+12); //发送显示位置命令
239 1 LCD_SEND_DATA(DISPLAY[second_1]); //发送秒个位数据
240 1 LCD_SEND_COMMAND(LCD_LINE2+5); //发送显示位置命令
241 1 LCD_SEND_DATA(DISPLAY[year_4]); //发送年千位数据
C51 COMPILER V7.50 CLOCK_SHOW_TIME_DATA 07/25/2007 10:48:55 PAGE 5
242 1 LCD_SEND_COMMAND(LCD_LINE2+6); //发送显示位置命令
243 1 LCD_SEND_DATA(DISPLAY[year_3]); //发送年百位数据
244 1 LCD_SEND_COMMAND(LCD_LINE2+7); //发送显示位置命令
245 1 LCD_SEND_DATA(DISPLAY[year_2]); //发送年十位数据
246 1 LCD_SEND_COMMAND(LCD_LINE2+8); //发送显示位置命令
247 1 LCD_SEND_DATA(DISPLAY[year_1]); //发送个个位数据
248 1 LCD_SEND_COMMAND(LCD_LINE2+10); //发送显示位置命令
249 1 LCD_SEND_DATA(DISPLAY[month_2]); //发送月十位数据
250 1 LCD_SEND_COMMAND(LCD_LINE2+11); //发送显示位置命令
251 1 LCD_SEND_DATA(DISPLAY[month_1]); //发送月个位数据
252 1 LCD_SEND_COMMAND(LCD_LINE2+13); //发送显示位置命令
253 1 LCD_SEND_DATA(DISPLAY[date_2]); //发送日十位数据
254 1 LCD_SEND_COMMAND(LCD_LINE2+14); //发送显示位置命令
255 1 LCD_SEND_DATA(DISPLAY[date_1]); //发送日个位数据
256 1
257 1 }
258 //*****************************************
259 //
260 //定时器0的溢出中断程序
261 //
262 //*****************************************
263 void timer0(void) interrupt 1 using 0
264 {
265 1 t++;
266 1 if(t==4000)
267 1 {
268 2 t=0;
269 2 second_1++;
270 2 if(second_1==10)
271 2 {
272 3 second_1=0;
273 3 second_2++;
274 3 if(second_2==6)
275 3 {
276 4 second_2=0;
277 4 minute_1++;
278 4 if(minute_1==10)
279 4 {
280 5 minute_1=0;
281 5 minute_2++;
282 5 if(minute_2==6)
283 5 {
284 6 minute_2=0;
285 6 hour_1++;
286 6 if(hour_1==10)
287 6 {
288 7 hour_1=0;
289 7 hour_2++;
290 7 }
291 6 if(hour_1==4&&hour_2==2)
292 6 {
293 7 hour_1=0;
294 7 hour_2=0;
295 7 date_1++;
296 7 if(date_1==10)
297 7 {
298 8 date_1=0;
299 8 date_2++;
300 8 }
301 7 if(date_2==3&&date_1==1)
302 7 {
303 8 date_2=0;
C51 COMPILER V7.50 CLOCK_SHOW_TIME_DATA 07/25/2007 10:48:55 PAGE 6
304 8 month_1++;
305 8 if(month_1==10)
306 8 {
307 9 month_1=0;
308 9 month_2++;
309 9 }
310 8 if(month_1==3&&month_2==1)
311 8 {
312 9 month_1=1;
313 9 month_2=0;
314 9 year_1++;
315 9 if(year_1==10)
316 9 {
317 10 year_1=0;
318 10 year_2++;
319 10 if(year_2==10)
320 10 {
321 11 year_2=0;
322 11 year_3++;
323 11 if(year_3==10)
324 11 {
325 12 year_3=0;
326 12 year_4++;
327 12 if(year_4==10)
328 12 {
329 13 year_4=0;
330 13 }
331 12 }
332 11 }
333 10 }
334 9 }
335 8 }
336 7
337 7
338 7 }
339 6 }
340 5 }
341 4
342 4 }
343 3
344 3 }
345 2
346 2 }
347 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 932 ----
CONSTANT SIZE = 37 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 32 15
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?