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

📄 51.lst

📁 设计一电子钟
💻 LST
📖 第 1 页 / 共 2 页
字号:
 167   4                        EEP=EEP+2 ;  /*加一页*/
 168   4                    }
 169   3                        
 170   3                   ISendByte(EEP,point,sen);
 171   3                   if(0xFF==point-1) 
 172   3                    { 
 173   4                        point=0x00; /*页内指针复位*/
 174   4                        EEP=EEP+2 ;  /*加一页*/
 175   4                    }
 176   3                               ISendByte(EEP,point,min);
 177   3                   if(0xFF==point-1) 
 178   3                    { 
 179   4                        point=0x00; /*页内指针复位*/
C51 COMPILER V7.04   51                                                                    10/09/2008 16:47:44 PAGE 4   

 180   4                        EEP=EEP+2 ;  /*加一页*/
 181   4                    }
 182   3                               ISendByte(EEP,point,hour);
 183   3                   if(0xFF==point-1) 
 184   3                    { 
 185   4                        point=0x00; /*页内指针复位*/
 186   4                        EEP=EEP+2 ;  /*加一页*/
 187   4                    }
 188   3                               while(!s5);     /*等待按键松开  开始写入回复故障的时间*/
 189   3                   wflag=0;    //故障清除
 190   3                   id=1;
 191   3                   ISendByte(EEP,point,id);
 192   3                   point++;
 193   3                   if(0xFF==point-1) 
 194   3                    { 
 195   4                        point=0x00; /*页内指针复位*/
 196   4                        EEP=EEP+2 ;  /*加一页*/
 197   4                    }
 198   3                        
 199   3                   ISendByte(EEP,point,sen);
 200   3                   if(0xFF==point-1) 
 201   3                    { 
 202   4                        point=0x00; /*页内指针复位*/
 203   4                        EEP=EEP+2 ;  /*加一页*/
 204   4                    }
 205   3                               ISendByte(EEP,point,min);
 206   3                   if(0xFF==point-1) 
 207   3                    { 
 208   4                        point=0x00; /*页内指针复位*/
 209   4                        EEP=EEP+2 ;  /*加一页*/
 210   4                    }
 211   3                               ISendByte(EEP,point,hour);
 212   3                   if(0xFF==point-1) 
 213   3                    { 
 214   4                        point=0x00; /*页内指针复位*/
 215   4                        EEP=EEP+2 ;  /*加一页*/
 216   4                    }
 217   3      
 218   3                    }
 219   2                 }
 220   1      }
 221          
 222          void serial()
 223          {
 224   1        if(recvflag==1)
 225   1                                      {
 226   2                                              ES=0; //关串行中断
 227   2                                              recvflag=0;
 228   2                          if(wflag==1)
 229   2                          {
 230   3                              SBUF=id;
 231   3                                              while(!TI);     //确定发送完毕
 232   3                                                  TI=0;
 233   3                          }
 234   2                          else if(wflag==0)
 235   2                          {
 236   3                                                      SBUF='o';       
 237   3                                                      while(!TI);     //确定发送完毕
 238   3                                                      TI=0;
 239   3                                  SBUF='k';   
 240   3                                                      while(!TI);     //确定发送完毕
 241   3                                                      TI=0;
C51 COMPILER V7.04   51                                                                    10/09/2008 16:47:44 PAGE 5   

 242   3                          }
 243   2                                              
 244   2                                      
 245   2                                              ES=1;
 246   2                                      }
 247   1      }
 248          
 249          void main()
 250          {
 251   1      
 252   1          
 253   1              ISendByte(PCF8583,PCF8583_Ctr,0x00);             /*reset*/
 254   1              /*************************************************************************
 255   1              NOTE: 向分0x03,向秒0x02写入0 ,向hour0x04写入0x00;
 256   1              *************************************************************************/
 257   1              
 258   1              ISendByte(PCF8583,Sen,0x00); 
 259   1              ISendByte(PCF8583,Min,0x00);
 260   1              ISendByte(PCF8583,Hour,0x00);   /*写入00 00000000  bit7,bit6=0->24小时制*/
 261   1          
 262   1          /*设置定时器0,50ms中断,用于LED的动态显示*/        
 263   1          TMOD=0x01;
 264   1              TH0=(65536-5000)/256;
 265   1              TL0=(65536-5000)%256;
 266   1              EA=1;
 267   1              ET0=1;
 268   1              TR0=1;
 269   1          
 270   1          /*串口中断设置*/
 271   1          
 272   1              TMOD=0x20;//设置定时器1为工作方式2
 273   1              TH1=0xfd;
 274   1              TL1=0xfd; //9600bps
 275   1              TR1=1;
 276   1              REN=1;
 277   1              SM0=0;
 278   1              SM1=1;
 279   1              EA=1;
 280   1              ES=1;    //开串口中断
 281   1      
 282   1      
 283   1              while(1)
 284   1              {
 285   2              
 286   2                      keyscan();
 287   2                      save();
 288   2                      serial();
 289   2                      if(0==flag)
 290   2                      {
 291   3                              sen=IRcvByte(PCF8583,Sen); 
 292   3                              min=IRcvByte(PCF8583,Min);
 293   3                              hour=IRcvByte(PCF8583,Hour);
 294   3                      }
 295   2              
 296   2              
 297   2              
 298   2                                                                       
 299   2              
 300   2              }
 301   1      
 302   1      }
 303          
C51 COMPILER V7.04   51                                                                    10/09/2008 16:47:44 PAGE 6   

 304          void timer0() interrupt 1 
 305          {
 306   1              TH0=(65536-5000)/256;
 307   1              TL0=(65536-5000)%256;
 308   1              display(1,2,hour);
 309   1              display_(3);
 310   1          display(4,5,min);
 311   1              display_(6);
 312   1          display(7,8,sen);   
 313   1      }
 314          
 315          void ser() interrupt 4 
 316          
 317          {
 318   1          uchar a;
 319   1          RI=0;  //RI清零
 320   1      
 321   1              a=SBUF;
 322   1              if(a==0xaa) recvflag=1;
 323   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1175    ----
   CONSTANT SIZE    =     22    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      9      15
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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