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

📄 p0902-ird.lst

📁 单片机模拟红外线发射
💻 LST
📖 第 1 页 / 共 3 页
字号:
 247          0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00
 248          };
 249          
 250          //---------------------------------------
 251          //名称: 5110LCD初始化函数
 252          //作者:cby
 253          //网站:宁波单片机开发网
 254          //网址:www.nbdpj.com
 255          //邮箱:nbdpj@nbdpj.com
 256          //日期:20081111  
 257          //----------------------------------------- 
 258          void LCD_init(void)
 259          {
 260   1              LCD_write_byte(0x21,0);//LCD功能设置:芯片活动,水平寻址,使用扩展指令
 261   1              LCD_write_byte(0xc5,0);//设置VOP值,室温下的编程范围为3.00-10.68
 262   1              //Vlcd=3.06+(VOP)*0.06,本例VOP为0B0101 0000为十进制的80,Vlcd=7.86V
 263   1              LCD_write_byte(0x20,0);//LCD功能设置:芯片活动,水平寻址,使用基本指令
 264   1              LCD_write_byte(0x0C,0);//设定显示配置:普通模式
 265   1      }
 266          //---------------------------------------
 267          //名称: LCD清屏函数
 268          //作者:cby
 269          //网站:宁波单片机开发网
 270          //网址:www.nbdpj.com
 271          //邮箱:nbdpj@nbdpj.com
 272          //日期:20081111  
 273          //----------------------------------------- 
 274          void LCD_clear(void)
 275          {
 276   1              unsigned char t;
 277   1              unsigned char k;   
 278   1              for(t=0;t<6;t++)
 279   1              { 
 280   2                      for(k=0;k<84;k++)
 281   2                      { 
 282   3                              LCD_write_byte(0,1);                    
 283   3                      } 
 284   2              }
 285   1      }
 286          //---------------------------------------
 287          //名称: 设置坐标函数
 288          //参数:X:0-83 Y:0-5
 289          //作者:cby
 290          //网站:宁波单片机开发网
 291          //网址:www.nbdpj.com
 292          //邮箱:nbdpj@nbdpj.com
 293          //日期:20081111  
 294          //-----------------------------------------   
 295          void LCD_set_XY(unsigned char X, unsigned char Y)
 296          {
 297   1              LCD_write_byte(0x40 | Y, 0);
 298   1              LCD_write_byte(0x80 | X, 0);
 299   1      }
 300          //---------------------------------------
 301          //名称: SPI初始化函数  
 302          //作者:cby
 303          //网站:宁波单片机开发网
C51 COMPILER V8.05a   P0902_IRD                                                            04/01/2009 22:16:33 PAGE 6   

 304          //网址:www.nbdpj.com
 305          //邮箱:nbdpj@nbdpj.com
 306          //日期:20090325 
 307          //-----------------------------------------  
 308          void init_spi()
 309          {
 310   1              P1M0=0X00;
 311   1              P1M1=0XA0;
 312   1              SPCTL=0XD0;
 313   1              SPSTAT=0XC0;    
 314   1      }
 315          //---------------------------------------
 316          //名称: 使用SPI接口写数据到LCD
 317          //参数:dt:写入的数据 command: 1-数据/0-命令
 318          //作者:cby
 319          //网站:宁波单片机开发网
 320          //网址:www.nbdpj.com
 321          //邮箱:nbdpj@nbdpj.com
 322          //日期:20090325  
 323          //-----------------------------------------  
 324          void LCD_write_byte(unsigned char dt, unsigned char command)
 325          {
 326   1              sce=0;
 327   1              dc=command;
 328   1              SPDAT=dt;
 329   1              while(!(SPSTAT&0X80));
 330   1              SPSTAT=0XC0;
 331   1              dc=1;
 332   1              sce=1;
 333   1              sdin=1;
 334   1      }
 335          //---------------------------------------
 336          //名称: 写一个汉字到LCD函数
 337          //参数:x,y:写入汉字的地址 address: 写入汉字在han表格中的位置
 338          //作者:cby
 339          //网站:宁波单片机开发网
 340          //网址:www.nbdpj.com
 341          //邮箱:nbdpj@nbdpj.com
 342          //日期:20081111  
 343          //-----------------------------------------             
 344          void disp16_16(unsigned char x,unsigned char y,unsigned char address) 
 345          { 
 346   1              unsigned char c; 
 347   1              LCD_set_XY(x*8, y); 
 348   1              for(c=0;c<16;c++) 
 349   1              {                       
 350   2                      LCD_write_byte(han[address*32+c],1); 
 351   2              } 
 352   1          LCD_set_XY(x*8, y+1);
 353   1              for(c=16;c<32;c++) 
 354   1              {                       
 355   2                      LCD_write_byte(han[address*32+c],1); 
 356   2              } 
 357   1      } 
 358          //---------------------------------------
 359          //名称: 写一个字符到LCD函数(8*16点阵)
 360          //参数:x,y:写入字符的地址 c: 写入字符在shu表格中的位置
 361          //作者:cby
 362          //网站:宁波单片机开发网
 363          //网址:www.nbdpj.com
 364          //邮箱:nbdpj@nbdpj.com
 365          //日期:20081111  
C51 COMPILER V8.05a   P0902_IRD                                                            04/01/2009 22:16:33 PAGE 7   

 366          //----------------------------------------- 
 367          void disp8_16(unsigned char x,unsigned char y,unsigned char c) 
 368          { 
 369   1              unsigned char i; 
 370   1              LCD_set_XY(x*8, y);
 371   1              for(i=0; i<8;i++) 
 372   1              {
 373   2                      LCD_write_byte(shuzi[c*16+i],1); 
 374   2              }       
 375   1          LCD_set_XY(x*8, y+1);
 376   1              for(i=8; i<16;i++) 
 377   1              {
 378   2                      LCD_write_byte(shuzi[c*16+i],1);
 379   2              }  
 380   1      } 
 381          //---------------------------------------
 382          //名称: 初始化函数      
 383          //作者:cby
 384          //网站:宁波单片机开发网
 385          //网址:www.nbdpj.com
 386          //邮箱:nbdpj@nbdpj.com
 387          //日期:20081111  
 388          //----------------------------------------- 
 389          void init()
 390          {
 391   1              P2M0=0x0c;
 392   1              P2M1=0x00; 
 393   1      }
 394          //---------------------------------------
 395          //名称: 按键扫描函数    
 396          //作者:cby
 397          //网站:宁波单片机开发网
 398          //网址:www.nbdpj.com
 399          //邮箱:nbdpj@nbdpj.com
 400          //日期:20081111  
 401          //----------------------------------------- 
 402          unsigned char scakey()
 403          {
 404   1              h1=0;
 405   1              h2=1;
 406   1              _nop_();
 407   1              if(l1==0)
 408   1              {
 409   2                      return 1;               
 410   2              }
 411   1              else if(l2==0)
 412   1              {
 413   2                      return 2;
 414   2              }
 415   1              h1=1;
 416   1              h2=0;
 417   1              _nop_();
 418   1              if(l1==0)
 419   1              {
 420   2                      return 3;
 421   2              }
 422   1              else if(l2==0)
 423   1              {
 424   2                      return 4;
 425   2              }
 426   1              return 0;
 427   1      }
C51 COMPILER V8.05a   P0902_IRD                                                            04/01/2009 22:16:33 PAGE 8   

 428          //---------------------------------------
 429          //名称: 按键处理函数    
 430          //作者:cby
 431          //网站:宁波单片机开发网
 432          //网址:www.nbdpj.com
 433          //邮箱:nbdpj@nbdpj.com
 434          //日期:20081111  
 435          //----------------------------------------- 
 436          void keypro()
 437          {
 438   1              unsigned char buf;
 439   1              buf=scakey();
 440   1              if(buf==0)
 441   1              {
 442   2                      if(keybit==0)
 443   2                      {
 444   3                              if(++keycon>2000)
 445   3                              {
 446   4                                      keycon=0;
 447   4                                      keybit=1;
 448   4                                      LCD_clear();            //清屏幕
 449   4                              }
 450   3                      }
 451   2              }
 452   1              else if(buf==1)                   //K1键处理程序
 453   1              {
 454   2                      if(keybit==1)
 455   2                      {
 456   3                              keybit=0;                          
 457   3                              disp16_16(0,0,0);       //已
 458   3                              disp16_16(2,0,1);       //按
 459   3                              disp16_16(4,0,2);       //下
 460   3                              disp8_16(6,0,20);       //K  
 461   3                              disp8_16(7,0,1);        //1      
 462   3                              disp16_16(8,0,3);       //键   
 463   3                              send_all(0x00,0x08);
 464   3                              while(l1==0)
 465   3                              {
 466   4                                      repeat();       
 467   4                              }
 468   3                      }                                       
 469   2              }
 470   1              else if(buf==2)                   //K2键处理程序
 471   1              {
 472   2                      if(keybit==1)
 473   2                      {
 474   3                              keybit=0;               
 475   3                          disp16_16(0,0,0);   //已
 476   3                              disp16_16(2,0,1);       //按
 477   3                              disp16_16(4,0,2);       //下
 478   3                              disp8_16(6,0,20);       //K  
 479   3                              disp8_16(7,0,2);        //2      
 480   3                              disp16_16(8,0,3);       //键   
 481   3                              send_all(0x00,0x09);
 482   3                              while(l2==0)
 483   3                              {
 484   4                                      repeat();       
 485   4                              }
 486   3                      }                       
 487   2              }
 488   1              else if(buf==3)                   //K3键处理程序
 489   1              {
C51 COMPILER V8.05a   P0902_IRD                                                            04/01/2009 22:16:33 PAGE 9   

 490   2                      if(keybit==1)
 491   2                      {
 492   3                              keybit=0;                               
 493   3                          disp16_16(0,0,0);   //已
 494   3                              disp16_16(2,0,1);       //按
 495   3                              disp16_16(4,0,2);       //下
 496   3                              disp8_16(6,0,20);       //K  
 497   3                              disp8_16(7,0,3);        //3 
 498   3                              disp16_16(8,0,3);       //键 
 499   3                              send_all(0x00,0x11);  
 500   3                              while(l1==0)
 501   3                              {

⌨️ 快捷键说明

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