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

📄 zdbwnl.lst

📁 万年历+温度+闹钟.dan单片机应用上的一些小代码。
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.50   ZDBWNL                                                                12/22/2005 13:04:37 PAGE 5   

 203          0x70,0xF0,0x11,0x1F,0x1C,0x00,0x00,0x07,0x1C,0x18,0x08,0x18,0xF0,0x80,0x01,0x07,
 204          0xFC,0x00,0x00,0xFF,0xFF,0x00,0x00,0xE1,0x31,0x21,0x33,0xCF,0x3C,0x27,0x63,0x26,
 205          0x06,0x00,0x60,0x64,0x24,0x64,0xFC,0x1F,0x03,0x01,0x01,0x01,0x00,0x00,0x00,0x00,
 206          0x00,0x00,0x3F,0xFF,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0xFF,0x00,0x00,
 207          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x03,
 208          0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
 209          0x00,0x00,0x30,0x30,0x18,0x18,0x08,0x0C,0x04,0x06,0x03,0x01,0x01,0x00,0x00,0x00,
 210          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,
 211          0x00,0x01,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x01,0x00,0x00,0x00,
 212          0x01,0x03,0x03,0x01,0x01,0x03,0x03,0x01,0x00,0x00,0x00,0x03,0x03,0x02,0x02,0x02,
 213          0x02,0x02,0x02,0x02,0x02,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 214          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 215          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 216          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 217          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 218          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 219          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 220          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 221          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
 222          };
 223          
 224          /******************************************************************************/
 225          void Delay(int num)//延时函数
 226          {
 227   1              while(num--) ;
 228   1      }
 229          
 230          /*12864driver.c*/
 231          /******************************************************************************/
 232          void Delay12864(unsigned int t)//
 233          {
 234   1              unsigned int i,j;
 235   1              for(i=0;i<t;i++)
 236   1              {
 237   2                      for(j=0;j<10;j++);
 238   2              }
 239   1      }
 240          
 241          /******************************************************************************/
 242          void write_com(unsigned char cmdcode)//写命令到LCD
 243          {
 244   1              Di = 0;
 245   1              RW = 0;
 246   1      
 247   1              Lcd_Bus = cmdcode;
 248   1          Delay12864(0);
 249   1              Enable = 1;
 250   1              Delay12864(0);
 251   1              Enable = 0;
 252   1      }
 253          
 254          /******************************************************************************/
 255          void write_data(unsigned char Dispdata)//写数据到LCD
 256          {
 257   1              Di = 1;
 258   1              RW = 0;
 259   1      
 260   1              Lcd_Bus = Dispdata;
 261   1              Delay12864(0);
 262   1              Enable = 1;
 263   1              Delay12864(0);
 264   1              Enable = 0;
C51 COMPILER V7.50   ZDBWNL                                                                12/22/2005 13:04:37 PAGE 6   

 265   1      }
 266          
 267          /*******************************************************************************/
 268          void frame(void)//显示边框
 269          {
 270   1              unsigned char i;
 271   1              Mcs = 1;
 272   1              Scs = 1;
 273   1              write_com(Page_Add+0);
 274   1              write_com(Col_Add+0);
 275   1              for(i=0;i<64;i++) 
 276   1              {
 277   2                      write_data(0x01);
 278   2              }
 279   1              write_com(Page_Add+7);
 280   1              write_com(Col_Add+0);
 281   1              for(i=0;i<64;i++)
 282   1              {
 283   2                      write_data(0x80);
 284   2              }
 285   1              for(i=0;i<8;i++)
 286   1              {
 287   2                      Mcs=0;
 288   2                      Scs=1;
 289   2                      write_com(Page_Add+i);
 290   2                      write_com(Col_Add+63);
 291   2                      write_data(0xff);
 292   2                      Mcs=1;
 293   2                      Scs=0;
 294   2                      write_com(Page_Add+i);
 295   2                      write_com(Col_Add+0);
 296   2                      write_data(0xff);
 297   2              }
 298   1      }
 299          
 300          /******************************************************************************/
 301          void Clr_Scr(void)//清除内存
 302          {
 303   1              unsigned char j,k;
 304   1              Mcs=1;Scs=1;
 305   1              write_com(Page_Add+0);
 306   1              write_com(Col_Add+0);
 307   1      
 308   1              for(k=0;k<8;k++)
 309   1              {
 310   2                      write_com(Page_Add+k);
 311   2                      for(j=0;j<64;j++)
 312   2                      {
 313   3                              write_data(0x00);
 314   3                      }
 315   2              }
 316   1      }
 317          
 318          /*******************************************************************************/
 319          void Disp_Img(unsigned char code *img)//显示12864图片
 320          {
 321   1              unsigned char j,k;
 322   1              for(k=0;k<8;k++)
 323   1              {
 324   2                      Mcs=1;
 325   2                      Scs=0;
 326   2                      Delay(10);
C51 COMPILER V7.50   ZDBWNL                                                                12/22/2005 13:04:37 PAGE 7   

 327   2                      write_com(Page_Add+k);
 328   2                      write_com(Col_Add+0);
 329   2                      for(j=0;j<64;j++) 
 330   2                      {
 331   3                              write_data(img[k*128+j]);
 332   3                      }
 333   2                      Mcs=0;
 334   2                      Scs=1;
 335   2                      Delay(10);
 336   2                      write_com(Page_Add+k);
 337   2                      write_com(Col_Add+0);
 338   2                      for(j=64;j<128;j++)
 339   2                  {
 340   3                              write_data(img[k*128+j]);
 341   3                      }
 342   2              }
 343   1      }
 344          
 345          /*******************************************************************************/
 346          void Disp_Chinese(unsigned char pag,unsigned char col,  char code *hzk)
 347          {   //指定位置显示汉字16*16
 348   1              unsigned char j=0,i=0;
 349   1      
 350   1              for(j=0;j<2;j++)
 351   1              {
 352   2                      write_com(Page_Add+pag+j);
 353   2                      write_com(Col_Add+col);
 354   2                      for(i=0;i<16;i++) 
 355   2                      {
 356   3                              write_data(hzk[16*j+i]);
 357   3                      }
 358   2              }
 359   1      }
 360          
 361          /*******************************************************************************/
 362          void Disp_Digit(unsigned char pag,unsigned char col, unsigned char code *hzk)
 363          {   //指定位置显示字母或数字8*16
 364   1              unsigned char j=0, i=0;
 365   1      
 366   1              for(j=0;j<2;j++)
 367   1              {
 368   2                      write_com(Page_Add+pag+j);
 369   2                      write_com(Col_Add+col);
 370   2                      for(i=0;i<8;i++) 
 371   2                      {
 372   3                              write_data(hzk[8*j+i]);
 373   3                      }
 374   2              }
 375   1      }
 376          
 377          /********************************************************************************/
 378          void Init_lcd(void)//初始化LCD屏
 379          {
 380   1              Lcd_Rst=0;
 381   1              Delay12864(100);
 382   1              Lcd_Rst=1;
 383   1              Delay12864(100);
 384   1      
 385   1              Mcs=1;  Scs=1;
 386   1      
 387   1              Delay12864(100);
 388   1              write_com(Disp_Off);
C51 COMPILER V7.50   ZDBWNL                                                                12/22/2005 13:04:37 PAGE 8   

 389   1              write_com(Page_Add+0);
 390   1              write_com(Start_Line+0);
 391   1              write_com(Col_Add+0);
 392   1              write_com(Disp_On);
 393   1      }
 394                  
 395          /*******************************************************************************/
 396          void Init_DS18B20(void)//初始化ds1820
 397          {
 398   1              unsigned char x=0;
 399   1              DQ = 1;    //DQ复位
 400   1              Delay(8);  //稍做延时
 401   1              DQ = 0;    //单片机将DQ拉低
 402   1              Delay(80); //精确延时 大于 480us
 403   1              DQ = 1;    //拉高总线
 404   1              Delay(14);
 405   1              x=DQ;      //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
 406   1              Delay(20);
 407   1      }
 408          
 409          /******************************************************************************/
 410          unsigned char ReadOneChar(void)//读一个字节
 411          {
 412   1              unsigned char i=0;
 413   1              unsigned char dat = 0;
 414   1              for (i=8;i>0;i--)
 415   1              {
 416   2                      DQ = 0; // 给脉冲信号
 417   2                      dat>>=1;
 418   2                      DQ = 1; // 给脉冲信号
 419   2                      if(DQ)
 420   2                      dat|=0x80;
 421   2                      Delay(4);
 422   2              }
 423   1              return(dat);
 424   1      }
 425          
 426          /******************************************************************************/
 427          void WriteOneChar(unsigned char dat)//写一个字节
 428          {
 429   1              unsigned char i=0;
 430   1              for (i=8; i>0; i--)
 431   1              {
 432   2                      DQ = 0;
 433   2                      DQ = dat&0x01;
 434   2                      Delay(5);
 435   2                      DQ = 1;
 436   2                      dat>>=1;
 437   2              }
 438   1      }
 439          
 440          /******************************************************************************/
 441          unsigned int ReadTemperature(void)//读取温度
 442          {
 443   1              unsigned char a=0;
 444   1              unsigned char b=0;
 445   1              unsigned int t=0;
 446   1              float tt=0;
 447   1              Init_DS18B20();
 448   1              WriteOneChar(0xCC); // 跳过读序号列号的操作
 449   1              WriteOneChar(0x44); // 启动温度转换
 450   1              Init_DS18B20();

⌨️ 快捷键说明

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