⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 电子时钟
💻 LST
📖 第 1 页 / 共 2 页
字号:
 155   1          LCD_Write_Com(0x0f);//开显示,开光标,闪烁
 156   1              while(1)
 157   1              {
 158   2                 temp=i;
 159   2                 i=Key_Scan();
 160   2                 if(i==temp)
 161   2                   continue;
 162   2                 switch(i)
 163   2                       {
 164   3                        case '1':LCD_Write_Dat_Nmov('1');break;
 165   3                        case '2':LCD_Write_Dat_Nmov('2');break;
 166   3                            case '3':LCD_Write_Dat_Nmov('3');break;
 167   3                            case '4':LCD_Write_Dat_Nmov('4');break;
 168   3                            case '5':LCD_Write_Dat_Nmov('5');break;
 169   3                            case '6':LCD_Write_Dat_Nmov('6');break;
 170   3                            case '7':LCD_Write_Dat_Nmov('7');break;
 171   3                            case '8':LCD_Write_Dat_Nmov('8');break;
 172   3                            case '9':LCD_Write_Dat_Nmov('9');break;
 173   3                            case '0':LCD_Write_Dat_Nmov('0');break;
 174   3                            case 'L':Left();break;
 175   3                            case 'R':Right();break;
 176   3                            default:break;
 177   3                       }
 178   2                 if (i=='B')
 179   2                  {
C51 COMPILER V8.08   MAIN                                                                  04/20/2009 16:06:22 PAGE 4   

 180   3                   date[0]=(LCD_Read_Dat(0x85)-'0')*10+(LCD_Read_Dat(0x86)-'0');
 181   3                       date[1]=(LCD_Read_Dat(0x88)-'0')*10+(LCD_Read_Dat(0x89)-'0');
 182   3                       date[2]=(LCD_Read_Dat(0x8b)-'0')*10+(LCD_Read_Dat(0x8c)-'0');
 183   3                       time[0]=(LCD_Read_Dat(0xc4)-'0')*10+(LCD_Read_Dat(0xc5)-'0');
 184   3                       time[1]=(LCD_Read_Dat(0xc7)-'0')*10+(LCD_Read_Dat(0xc8)-'0');
 185   3                       time[2]=(LCD_Read_Dat(0xca)-'0')*10+(LCD_Read_Dat(0xcb)-'0');
 186   3                       LCD_Write_Com(0x0c);//开显示,关光标,不闪烁
 187   3                       LCD_Write_Com(0x80);
 188   3                   LCD_Write_Dat(' ');              //取消T——调整时间标志
 189   3                       TH0=0x4c;
 190   3               TL0=0x00;
 191   3                       TR0=1;    //定时器0开始计数  
 192   3               ET0=1;   //打开定时器0中断
 193   3                       EA=1;
 194   3                   break;     
 195   3                  }
 196   2              }
 197   1       }
 198          
 199           /********************闹钟设置****************************/
 200          void Clock_C(void)
 201          {
 202   1        unsigned char i,temp;
 203   1        store_i=1;
 204   1        i=0xff;//定义一个没用过的数
 205   1      //  TR1=0;         
 206   1      //  ET1=0;       
 207   1        LCD_Write_Com(0x80);
 208   1        LCD_Write_Dat('C');
 209   1        LCD_Write_Com(0x83);
 210   1        LCD_Write_Com(0x0f);//开显示,开光标,闪烁
 211   1        while(1)
 212   1              {
 213   2                 temp=i;
 214   2                 i=Key_Scan();
 215   2                 if(i==temp)
 216   2                   continue;
 217   2                 switch(i)
 218   2                       {
 219   3                        case '1':LCD_Write_Dat_Nmov('1');break;
 220   3                        case '2':LCD_Write_Dat_Nmov('2');break;
 221   3                            case '3':LCD_Write_Dat_Nmov('3');break;
 222   3                            case '4':LCD_Write_Dat_Nmov('4');break;
 223   3                            case '5':LCD_Write_Dat_Nmov('5');break;
 224   3                            case '6':LCD_Write_Dat_Nmov('6');break;
 225   3                            case '7':LCD_Write_Dat_Nmov('7');break;
 226   3                            case '8':LCD_Write_Dat_Nmov('8');break;
 227   3                            case '9':LCD_Write_Dat_Nmov('9');break;
 228   3                            case '0':LCD_Write_Dat_Nmov('0');break;
 229   3                            case 'L':Left();break;
 230   3                            case 'R':Right();break;
 231   3                            default:break;
 232   3                       }
 233   2                 if (i=='B')
 234   2                  {
 235   3                        store[0]=(LCD_Read_Dat(0x85)-'0')*10+(LCD_Read_Dat(0x86)-'0');
 236   3                        store[1]=(LCD_Read_Dat(0x88)-'0')*10+(LCD_Read_Dat(0x89)-'0');
 237   3                        store[2]=(LCD_Read_Dat(0x8b)-'0')*10+(LCD_Read_Dat(0x8c)-'0');
 238   3                        store[3]=(LCD_Read_Dat(0xc4)-'0')*10+(LCD_Read_Dat(0xc5)-'0');
 239   3                        store[4]=(LCD_Read_Dat(0xc7)-'0')*10+(LCD_Read_Dat(0xc8)-'0');
 240   3                        store[5]=(LCD_Read_Dat(0xca)-'0')*10+(LCD_Read_Dat(0xcb)-'0');
 241   3                        store_c=1;  //闹钟标志
C51 COMPILER V8.08   MAIN                                                                  04/20/2009 16:06:22 PAGE 5   

 242   3                        store_i=0;
 243   3                        LCD_Write_Com(0x80); //清除闹钟显示信息
 244   3                LCD_Write_Dat(' ');
 245   3                        LCD_Write_Com(0x0c);//开显示,关光标,不闪烁
 246   3                        break;
 247   3                      }
 248   2              }         
 249   1      }
 250          
 251          /****************蜂鸣器*****************************/ 
 252           void ring(void)
 253           {
 254   1         SPEAK=0;
 255   1         Delay(30);
 256   1         SPEAK=1;
 257   1       }
 258          void ring_c(void) 
 259          {
 260   1        unsigned char i;
 261   1        i=0xff;
 262   1        while(1)
 263   1        {
 264   2          SPEAK=0;
 265   2          Delay(80);
 266   2              SPEAK=1;
 267   2              Delay(80);
 268   2          SPEAK=0;
 269   2          Delay(80);
 270   2          SPEAK=1;
 271   2              Delay(80);
 272   2          SPEAK=0;
 273   2          Delay(80);
 274   2              SPEAK=1;
 275   2              Delay(80);
 276   2          SPEAK=0;
 277   2          Delay(80);
 278   2              SPEAK=1;
 279   2              Delay(250);
 280   2          Delay(250);
 281   2              Delay(250);     
 282   2              i=Key_Scan();
 283   2              if(i=='B')
 284   2                 {
 285   3                   store_c=0;
 286   3                   break;
 287   3                 }
 288   2        }
 289   1      }
 290          
 291          /*************延时i毫秒函数********************/
 292          void Delay(unsigned char i)
 293          {
 294   1        unsigned char j;
 295   1        while(--i     !=0)
 296   1        {
 297   2           for(j=0;j<125;j++);
 298   2        }
 299   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1527    ----
C51 COMPILER V8.08   MAIN                                                                  04/20/2009 16:06:22 PAGE 6   

   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     19       9
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -