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

📄 stc eeprom.lst

📁 Stc89c58RD+ eeprom 的驱动程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 173          
 174                          
 175                  void controldat(unsigned char dat[])//指令数据
 176                  {       unsigned char i;
 177   1                  unsigned char d;
 178   1                      i=strlen(dat);
 179   1                  for(d=0;d<i;d++)    writecmd(dat[d]);
C51 COMPILER V6.23a  STC_EEPROM                                                            07/25/2007 14:52:15 PAGE 4   

 180   1              }
 181                  
 182          
 183                  void displaydat(unsigned char address,unsigned char dat[])//显示的数据
 184                  {       unsigned char i;
 185   1                  unsigned char d;
 186   1                      i=strlen(dat);
 187   1                      writecmd(address);
 188   1                  for(d=0;d<i;d++)    { writedata(dat[d]); }
 189   1              }
 190                          
 191                  
 192                  
 193                  
 194                  
 195                  
 196                  
 197                  
 198                          unsigned char  byteread(unsigned char addh,unsigned char addl)
 199                  {
 200   1               ISP_ADDRH  =  addh;
 201   1               ISP_ADDRL  =  addl;
 202   1               ISP_CONTR  =  ISP_ENABLE;        //设置等待时间,并允许ISP操作
 203   1               ISP_CMD    =  ISP_BYTE_READ; //选择字节读读操作
 204   1               ISP_TRIG   =  0X46;
 205   1               _nop_();
 206   1               _nop_();
 207   1               ISP_TRIG   =  0XB9;
 208   1               _nop_();
 209   1               _nop_();
 210   1               return    ISP_DATA;
 211   1              }
 212          
 213                  void bytewrite(unsigned char addh,unsigned char addl,unsigned char dat)
 214                  {
 215   1               ISP_DATA   =  dat;
 216   1               ISP_ADDRH  =  addh;
 217   1               ISP_ADDRL  =  addl;
 218   1               ISP_CONTR  =  ISP_ENABLE;        //设置等待时间,并允许ISP操作
 219   1               ISP_CMD    =  ISP_BYTE_PROGRAM; //选择字节写操作
 220   1               ISP_TRIG   =  0X46;
 221   1               _nop_();
 222   1               _nop_();
 223   1               ISP_TRIG   =  0XB9;
 224   1               _nop_();
 225   1               _nop_();
 226   1              }
 227          
 228                  void sectorerase(unsigned char addh,unsigned char addl )
 229                  {
 230   1               ISP_ADDRH  =  addh;
 231   1               ISP_ADDRL  =  addl;
 232   1               ISP_CONTR  =  ISP_ENABLE;        //设置等待时间,并允许ISP操作
 233   1               ISP_CMD    =  ISP_BYTE_SECTOR_ERASE; //选择扇区擦除操作
 234   1               ISP_TRIG   =  0X46;
 235   1               _nop_();
 236   1               _nop_();
 237   1               ISP_TRIG   =  0XB9;
 238   1               _nop_();
 239   1               _nop_();
 240   1              }
 241                  
C51 COMPILER V6.23a  STC_EEPROM                                                            07/25/2007 14:52:15 PAGE 5   

 242                  
 243                  
 244                          
 245          //*********
 246                  void main()
 247                  {       unsigned char x=0x80;unsigned char y=0x80;
 248   1                      unsigned char d,i;
 249   1                      void delayms(unsigned int time);
 250   1                      void delay50us(unsigned int time);
 251   1                      void init();
 252   1                      void writecmd(unsigned char dat);
 253   1                      void writedata(unsigned char dat);
 254   1                      void controldat(unsigned char dat[]);//指令数据
 255   1                      void displaydat(unsigned char address,unsigned char dat[]);//显示的数据
 256   1                      init();
 257   1      
 258   1              //      writecmd(0x30); delay50us(1);
 259   1                      writecmd(0x01); delay50us(1);//controldat(0x0f); delay50us(1);
 260   1                      writecmd(0x0c); delay50us(1);
 261   1      
 262   1              
 263   1              /*      writecmd(0x36); delay50us(10);
 264   1              //      controldat(0x06); delay50us(1);
 265   1              //      controldat(0x3f); delay50us(1);
 266   1      
 267   1              //      controldat(0x80); delay50us(1);
 268   1              //      controldat(0x04); delay50us(1);
 269   1      
 270   1      
 271   1      //              writecmd(0x05);
 272   1      //              displaydat(0x90,"曾南东是个大大大");    delay50us(1);
 273   1      //              displaydat(0x88,"曾南东是个大大大");    delay50us(1);
 274   1      //              delayms(65534);
 275   1              //      displaydat(&n[0]);   delay50us(1);
 276   1              //      controldat(0x0a); delay50us(1); 
 277   1              //      displaydat(&n[0]);   delay50us(1);
 278   1              //      controldat(0x05); delay50us(1);         
 279   1              //      displaydat(0xDE);   delay50us(1);
 280   1              //      displaydat("i");   delay50us(1);
 281   1              //      displaydat("我");   delay50us(1);       
 282   1                      
 283   1                      
 284   1              //      delayms(1000);
 285   1              //      writecmd(0x01); delay50us(10); 
 286   1                      
 287   1                      writecmd(y);    delay50us(1);
 288   1                      writecmd(x);    delay50us(1);
 289   1                      for(d=0;d<32;d++)
 290   1                      {        y++;
 291   1                              for(i=0;i<16;i++)
 292   1                              {
 293   1                                      writedata(tab[d][i]);delay50us(1);
 294   1                                       } 
 295   1                              
 296   1                               writecmd(y); delay50us(1); 
 297   1                               writecmd(0x80);  delay50us(1);
 298   1                      }
 299   1                      x=0x88; y=0x80;
 300   1                      writecmd(y);    delay50us(1);
 301   1                      writecmd(x);    delay50us(1);
 302   1                      for(d=32;d<65;d++)
 303   1                      {       
C51 COMPILER V6.23a  STC_EEPROM                                                            07/25/2007 14:52:15 PAGE 6   

 304   1                              for(i=0;i<16;i++)
 305   1                              {       
 306   1                                      writedata(tab[d][i]);delay50us(1); 
 307   1                              }
 308   1                               y++; 
 309   1                               writecmd(y);   delay50us(1);
 310   1                               writecmd(x);   delay50us(1);
 311   1                              }
 312   1              //      delayms(200);                   */
 313   1                      writecmd(0x30);     delay50us(1);
 314   1                      writecmd(0x01);     delay50us(1);
 315   1      
 316   1                      displaydat(0x90,"作者:");
 317   1                      displaydat(0x88,"  裴建国  杨统芳");
 318   1                      displaydat(0x98,"  童月雷 07.6.14");
 319   1                      displaydat(0x80,"无线语音  据传输");
 320   1                      writecmd(0x84);
 321   1                      writedata(0xca);  //“数”在keil里面不能转换内码,故单独写
 322   1                      writedata(0xfd);
 323   1                      delayms(1000);  
 324   1                      d='9';
 325   1                      sectorerase(0x80,0x00);
 326   1                      delayms(20);
 327   1                      bytewrite(0x80,0x00,d);
 328   1                      delayms(5);
 329   1                      i=byteread(0x80,0x00);
 330   1                      writecmd(0x01);
 331   1                      writecmd(0x90);
 332   1                      writedata(i);
 333   1                      delayms(4000);
 334   1      
 335   1                                                                                                                                                                
 336   1       }      


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    429    ----
   CONSTANT SIZE    =   1082    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      12
   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 + -