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

📄 sy.lst

📁 本程序能够实现液晶显示
💻 LST
📖 第 1 页 / 共 2 页
字号:
 189   1              Display_num(num3,3,1,16);
 190   1              while(1);
 191   1                      
 192   1      }
 193          
 194          
 195          /******************************************
 196          功能:void check_busy( void )
 197          功能:检查是否LCD忙碌的子程序
 198          实参输入:void
 199          返回值:void
 200          ******************************************/
 201          void check_busy(void) 
 202          {        
 203   1               P1    = 0xff; 
 204   1           RS    = 0; 
 205   1           RW    = 1; 
 206   1           while (1) 
 207   1           {
 208   2                    smNop(); 
 209   2                E =1; 
 210   2                smNop();               
 211   2                        if( P1 < 0x80 ) 
 212   2                            break; 
 213   2                smNop();
 214   2                E =0; 
 215   2            } 
 216   1           E = 0; 
 217   1      }
 218          
 219          /*****************************************
 220          名称:void send_com( unsigned char command )
 221          功能:写指令
 222          实参输入:unsigned char command
 223          返回值:void
 224          *****************************************/
 225          void send_com(const unsigned char command) 
 226          { 
 227   1           check_busy(); 
 228   1           RS = 0; 
 229   1           RW = 0;     
 230   1               P1 = command; 
 231   1           E  = 1; 
 232   1           smNop(); 
 233   1           E = 0; 
 234   1      }
 235          
 236          /********************************************************
 237          名称:void send_com_init( unsigned char command_init )
 238          功能:LCD初始化时的送命令
 239          实参输入:unsigned char command_init
 240          返回值:void
 241          ********************************************************/
C51 COMPILER V7.50   SY                                                                    08/26/2007 14:45:19 PAGE 5   

 242          void send_com_init(const unsigned char command_init ) 
 243          { 
 244   1           RS    = 0; 
 245   1           RW    = 0;
 246   1               P1    = command_init; 
 247   1           E     = 1; 
 248   1           smNop();
 249   1           E     = 0; 
 250   1      }
 251          
 252          /*******************************************************
 253          名称:void send_data( unsigned char data_a )
 254          功能:写数据
 255          实参输入:unsigned char data_a
 256          返回值:void
 257          *******************************************************/ 
 258          void send_data(const unsigned char data_a)
 259          { 
 260   1           check_busy(); 
 261   1           RS    = 1;                 //DB7-DB0为显示数据
 262   1           RW    = 0;             //写入数据
 263   1               P1    = data_a; 
 264   1           E     = 1;         
 265   1           smNop();
 266   1           E     = 0;                         //下降沿
 267   1      }
 268          
 269          /*********************************************************
 270          名称:void clear_LCD( void )
 271          功能:清屏
 272          实参输入:void
 273          返回值:void
 274          *********************************************************/
 275          void clear_LCD(void) 
 276          { 
 277   1           send_com(0x01);  //清除显示//
 278   1           send_com(0x34);  // 功能设定:扩充指令集动作 //
 279   1           send_com(0x30);   //功能设定:基本指令集动作//
 280   1      }
 281          
 282          /*************************************************************
 283          名称:void initial_LCD( void )
 284          功能:LCD初始化
 285          实参输入:void
 286          返回值:void
 287          *************************************************************/
 288          void initial_LCD(void) 
 289          {   
 290   1           PSB = 1;   //并行传送
 291   1           RST = 0;   //复位 
 292   1           _nop_(); 
 293   1           _nop_(); 
 294   1           RST = 1;   //不复位
 295   1           _nop_(); 
 296   1           delay_10us(10); 
 297   1           send_com_init(0x30);//30H--基本指令操作 
 298   1           delay_10us(4); 
 299   1           send_com_init(0x0c);//开显示,关光标,不闪烁。 
 300   1           delay_10us(10); 
 301   1           send_com_init(0x01);//清除显示 
 302   1           delay_ms(10); 
 303   1           send_com_init(0x06);//指定在资料写入或读取时,光标的移动方向,DDRAM的地址计数器(AC)加1。     
C51 COMPILER V7.50   SY                                                                    08/26/2007 14:45:19 PAGE 6   

 304   1      }
 305          
 306          
 307          /*********************************************************************
 308          名称:void Display_num( unsigned char *ptr, unsigned char line, unsigned char col, unsigned char length )
 309          功能:显示字符串                                 2                                        1                                             6
 310          参数输入:unsigned char *ptr, unsigned char line, unsigned char col, unsigned char length
 311          返回值:void
 312          *********************************************************************/
 313          void Display_num( unsigned char *ptr, unsigned char line, unsigned char col, unsigned char length )
 314          {    
 315   1           unsigned char ddram = 0x00;
 316   1               unsigned char i1;
 317   1      
 318   1               if(line == 1)
 319   1                      ddram = 0x80;
 320   1               if(line == 2)
 321   1                      ddram = 0x90;
 322   1               if(line == 3)
 323   1                      ddram = 0x88;
 324   1               if(line == 4)
 325   1                  ddram = 0x98;
 326   1      
 327   1           ddram = ddram + col - 1;
 328   1      
 329   1           send_com( ddram );  //定位显示起始地址
 330   1      
 331   1               for( i1 = 0;i1 < length;i1 ++ )
 332   1               {
 333   2                       send_data( ptr[i1] );//输出单个字符 
 334   2           }            
 335   1      }
 336          
 337          /********************************************************
 338          名称: void Display_ch( unsigned char *ptr, unsigned char line, unsigned char col, unsigned char length )
 339          功能:显示汉字子程序
 340          实参输入:unsigned char *ptr, unsigned char line, unsigned char col, unsigned length
 341          返回值:void
 342          ********************************************************/
 343          void Display_ch( unsigned char *ptr, unsigned char line, unsigned char col, unsigned char length )
 344          {
 345   1      
 346   1               unsigned char ddram = 0x00;
 347   1               unsigned char i1;
 348   1               if(line == 1)
 349   1                      ddram = 0x80;
 350   1               if(line == 2)
 351   1                      ddram = 0x90;
 352   1               if(line == 3)
 353   1                      ddram = 0x88;
 354   1               if(line == 4)
 355   1                  ddram = 0x98;
 356   1      
 357   1               ddram = ddram + col - 1;
 358   1           send_com( ddram );   //定位显示起始地址
 359   1               for( i1 = 0;i1 < length;i1 ++ )
 360   1               {
 361   2                       send_data(ptr[i1*2]);//输出单个字符
 362   2                       send_data(ptr[i1*2+1]); 
 363   2           }            
 364   1      }
 365          /****************************************************************
C51 COMPILER V7.50   SY                                                                    08/26/2007 14:45:19 PAGE 7   

 366          -----------------------------------------------------------------
 367                                     END  OF      MAIN.C
 368          -----------------------------------------------------------------
 369          ****************************************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    400    ----
   CONSTANT SIZE    =     96    ----
   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 + -