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

📄 lcd1302.lst

📁 我做的畢業設計,用AT89S51 控制LCD1602作為顯示. DS1302時鐘芯片顯示時間,DS18B20測量溫度,還有4X4的鍵盤驅動.實現了一個計算功能.可以用PROTUES 仿真軟件仿真,當時
💻 LST
📖 第 1 页 / 共 2 页
字号:
 181           /*************************以下是函数的申明部*************************/
 182           void LCD_init(void);                    //LCD1602初始化
 183           void LCD_send_command(uchar command);   //
 184           void LCD_send_data(uchar dat);
 185           void LCD_write_char(uchar x,uchar y,uchar dat);
 186           void LCD_disp_string(uchar x,uchar y,uchar *Data);
 187          void LCD_disp_string_code(uchar x,uchar y,uchar code *Data);//mingadd
 188           void delay_ms(uint n);
 189           void LCD_check_busy(void);
 190          void GotoXY(unsigned char x, unsigned char y);
 191          void Print(unsigned char *str);
 192           #endif
 193           /******************************************************************
 194           
 195          /#include <reg51.h>
 196          #include "LCD1602.h"
 197          /*******************主函数**********************************/
 198          
 199          /**************LCD1602的初始化***************************/
 200          void LCD_init(void)
 201          {LCD_EN=0;
*** ERROR C202 IN LINE 201 OF LCD1302.C: 'LCD_EN': undefined identifier
 202   1       LCD_send_command(LCD_DISPLAY_DOUBLE_LINE);
 203   1       LCD_send_command(LCD_DISPLAY_DOUBLE_LINE);
 204   1       LCD_send_command(LCD_AC_AUTO_INCREMENT|LCD_MOVE_DISENABLE);
 205   1       LCD_send_command(LCD_DISPLAY_ON|LCD_CURSOR_OFF);
 206   1       LCD_send_command(LCD_CLEAR_SCREEN);
 207   1      }
 208          /********************************************************/
 209           
 210          void LCD_check_busy(void)   //检测LCD状态,看它是不是还在忙呢
 211          {
 212   1       do
 213   1        {
 214   2         LCD_EN=0;
*** ERROR C202 IN LINE 214 OF LCD1302.C: 'LCD_EN': undefined identifier
 215   2         LCD_RS=0;
*** ERROR C202 IN LINE 215 OF LCD1302.C: 'LCD_RS': undefined identifier
 216   2         LCD_RW=1;
*** ERROR C202 IN LINE 216 OF LCD1302.C: 'LCD_RW': undefined identifier
 217   2         LCDIO=0xff;
*** ERROR C202 IN LINE 217 OF LCD1302.C: 'P0': undefined identifier
 218   2         LCD_EN=1;
*** ERROR C202 IN LINE 218 OF LCD1302.C: 'LCD_EN': undefined identifier
 219   2         }
 220   1       // while(1);
 221   1         while(LCD_BUSY==1);//在用Proteus仿真时,注意用屏蔽此语句,在调用GotoXY()时,会进入死循环,
*** ERROR C202 IN LINE 221 OF LCD1302.C: 'LCD_BUSY': undefined identifier
 222   1                                                       //可能在写该控制字时,该模块没有返回写入完备命令,即DBPort&0x80==0x80
 223   1                                                       //实际硬件时打开此语句
 224   1        
 225   1          LCD_EN=0;
 226   1      }
 227          /************LCD1602写命令*******************************/
 228          void LCD_send_command(uchar command)
 229          {
 230   1       LCD_check_busy();
C51 COMPILER V7.50   LCD1302                                                               03/15/2007 23:40:45 PAGE 5   

 231   1       LCD_RS=LOW;
*** ERROR C202 IN LINE 231 OF LCD1302.C: 'LCD_RS': undefined identifier
 232   1       LCD_RW=LOW;
*** ERROR C202 IN LINE 232 OF LCD1302.C: 'LCD_RW': undefined identifier
 233   1       LCD_EN=HIGH;
*** ERROR C202 IN LINE 233 OF LCD1302.C: 'LCD_EN': undefined identifier
 234   1       LCDIO=command;
*** ERROR C202 IN LINE 234 OF LCD1302.C: 'P0': undefined identifier
 235   1       LCD_EN=LOW;
*** ERROR C202 IN LINE 235 OF LCD1302.C: 'LCD_EN': undefined identifier
 236   1      }
 237          /********************************************************/
 238          /*****************LCD1602写数据**************************/
 239          void LCD_send_data(uchar dat)
 240          {
 241   1       LCD_check_busy();
 242   1       LCD_RS=HIGH;
*** ERROR C202 IN LINE 242 OF LCD1302.C: 'LCD_RS': undefined identifier
 243   1       LCD_RW=LOW;
*** ERROR C202 IN LINE 243 OF LCD1302.C: 'LCD_RW': undefined identifier
 244   1       LCD_EN=HIGH;
*** ERROR C202 IN LINE 244 OF LCD1302.C: 'LCD_EN': undefined identifier
 245   1       LCDIO=dat;
*** ERROR C202 IN LINE 245 OF LCD1302.C: 'P0': undefined identifier
 246   1       LCD_EN=LOW;
*** ERROR C202 IN LINE 246 OF LCD1302.C: 'LCD_EN': undefined identifier
 247   1      }
 248          /********************************************************/
 249           void LCD_write_char(uchar x,uchar y,uchar dat)
 250          {
 251   1           unsigned char address;
 252   1           if(dat!=KEY_NOTHING+0x30)  //this if is my add for when the time no key down to do not display anythi
             -ng
*** ERROR C202 IN LINE 252 OF LCD1302.C: 'KEY_NOTHING': undefined identifier
 253   1           {
 254   2           if (y == LINE1) 
 255   2               address = LINE1_HEAD + x;
 256   2           else 
 257   2              address = LINE2_HEAD + x;
 258   2           LCD_send_command(address); 
 259   2          LCD_send_data(dat);
 260   2          }
 261   1      }
 262          
 263          void GotoXY(unsigned char x, unsigned char y)
 264          {
 265   1              if(y==0)
 266   1                      LCD_send_command(0x80|x);
 267   1              if(y==1)
 268   1                      LCD_send_command(0x80|(x-0x40));
 269   1      }
 270          
 271          
 272          void Print(unsigned char *str)
 273          {
 274   1              while(*str!='\0')
 275   1              {
 276   2                      LCD_send_data(*str);
 277   2                      str++;
 278   2              }
 279   1      }
 280          /******************LCD1602显示字符串*********************/
C51 COMPILER V7.50   LCD1302                                                               03/15/2007 23:40:45 PAGE 6   

 281          void LCD_disp_string(uchar x,uchar y,uchar *Data)
 282          {
 283   1       if(y==LINE1)
 284   1       {
 285   2        if(x<LINE_LENGTH)
 286   2        {
 287   3         LCD_send_command(LINE1_HEAD+x);
 288   3         for(;x<LINE_LENGTH&&*Data!='\0';x++)
 289   3         {
 290   4          LCD_send_data(*(Data++));
 291   4         }
 292   3         if(*Data!='\0')
 293   3         {
 294   4          x=0;
 295   4          y=LINE2;
 296   4         }
 297   3        }
 298   2       }
 299   1       if(y==LINE2)
 300   1       {
 301   2        LCD_send_command(LINE2_HEAD+x);
 302   2        for(;x<LINE_LENGTH&&*Data!='\0';x++)
 303   2        {
 304   3         LCD_send_data(*(Data++));
 305   3        }
 306   2       }
 307   1      }
 308          /****************************************************************/
 309          
 310           //ming add  display code string
 311          /******************LCD1602显示字符串*********************/
 312          void LCD_disp_string_code(uchar x,uchar y,uchar code *Data)
 313          {
 314   1       if(y==LINE1)
 315   1       {
 316   2        if(x<LINE_LENGTH)
 317   2        {
 318   3         LCD_send_command(LINE1_HEAD+x);
 319   3         for(;x<LINE_LENGTH&&*Data!='\0';x++)
 320   3         {
 321   4          LCD_send_data(*(Data++));
 322   4         }
 323   3         if(*Data!='\0')
 324   3         {
 325   4          x=0;
 326   4          y=LINE2;
 327   4         }
 328   3        }
 329   2       }
 330   1       if(y==LINE2)
 331   1       {
 332   2        LCD_send_command(LINE2_HEAD+x);
 333   2        for(;x<LINE_LENGTH&&*Data!='\0';x++)
 334   2        {
 335   3         LCD_send_data(*(Data++));
 336   3        }
 337   2       }
 338   1      }
 339          /****************************************************************/
 340          /********************延时函数***********************************/
 341            
 342          /***************************************************************/
C51 COMPILER V7.50   LCD1302                                                               03/15/2007 23:40:45 PAGE 7   

 343          void delay_ms(uint n)
 344          {
 345   1       uint i,j;
 346   1       for(i=n;i>0;i--)
 347   1          for(j=0;j<1140;j++)
 348   1          ;
 349   1      }
 350          /*********************************************************************/ 

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

⌨️ 快捷键说明

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