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 + -
显示快捷键?