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

📄 lcd12864.lst

📁 液晶显示的单片机源程序
💻 LST
字号:
C51 COMPILER V7.50   LCD12864                                                              12/12/2008 21:32:05 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE LCD12864
OBJECT MODULE PLACED IN lcd12864.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd12864.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*
   2          ***************************************************************************
   3          *
   4          *                                       (C) Copyright 2007,单片机初学者园地
   5          *                          All Rights reserved.
   6          *
   7          *项目名称:    51单片机学习开发系统
   8          *                
   9          *本文件名称:LCD12864.c 
  10          *       
  11          * 完成作者 : 单片机初学者 http://blog.ednchina.com/ahai0306/   
  12          * 当前版本 : V1.0        
  13          * 完成日期 : 2007年4月1日
  14          * 描    述 :  
  15          *                此程序实现,完成12864液晶(ST790)的驱动程序,可以显示任意的ASCII字符和中文字符
  16          *             
  17          *              
  18          ****************************************************************************
  19          */
  20          
  21          #include "Lcd12864.h"
  22          #include <INTRINS.H>
  23          
  24          
  25          sbit  EN=P3^4;
  26          sbit  RW=P3^6;
  27          sbit  RS=P3^7;
  28          sbit  Lcd_RST=P0^3;
  29          
  30          
  31          
  32          #define NOP  _nop_(); _nop_()
  33          
  34          void delay(uint16 data i)
  35          {
  36   1        while(i--);
  37   1      }
  38          
  39          uint8 CheckBusy(void)
  40          {
  41   1        uint8 a;
  42   1              RS=0;
  43   1              RW=1;
  44   1              NOP;
  45   1              EN=1;
  46   1              NOP;
  47   1              P2=0xff;
  48   1              a=P2;
  49   1              EN=0;
  50   1            if(a&0x80)
  51   1               return OK;
  52   1                 else 
  53   1                  return NOK;
  54   1      }
  55          void SendLcdCommand (uint8 command)
C51 COMPILER V7.50   LCD12864                                                              12/12/2008 21:32:05 PAGE 2   

  56          {
  57   1              NOP;NOP;
  58   1               
  59   1      //      delay(500); 
  60   1              while(CheckBusy()); 
  61   1              RS=0;
  62   1              RW=0;
  63   1              P2=command;
  64   1              EN=1;
  65   1              NOP;NOP;
  66   1              EN=0;
  67   1      }       
  68                  
  69          void SendLcdData (uint8 dat)
  70          {
  71   1              NOP;NOP;
  72   1              while(CheckBusy());
  73   1      //      delay(500);
  74   1              RS=1;
  75   1              RW=0;
  76   1              P2=dat;
  77   1              EN=1;
  78   1              NOP;NOP;
  79   1              EN=0;
  80   1      }
  81          
  82          void LCD_init(void)
  83          {       
  84   1              Lcd_RST = 0;
  85   1              delay(5000);
  86   1              Lcd_RST = 1;
  87   1              delay(500);
  88   1                      
  89   1              SendLcdCommand(0x34);//扩充指令操作
  90   1              SendLcdCommand(0x30);//基本指令操作
  91   1              SendLcdCommand(0x01);//清除显示
  92   1              SendLcdCommand(0x06);//指定在资料写入或读取时,光标的移动方向
  93   1              SendLcdCommand(0x0c);//开显示,关光标,不闪烁
  94   1      }
  95          
  96          void Clear_display(void)
  97          {
  98   1        SendLcdCommand(0x01);//清除显示
  99   1      }
 100          
 101          void  Disp_lcd( uint8  x, uint8  y, uint8 *chinese )
 102          {
 103   1        uint8  xtemp;;
 104   1        switch(x)
 105   1        { 
 106   2          case 0: xtemp=0x80+y; break;
 107   2              case 1: xtemp=0x90+y; break;
 108   2              case 2: xtemp=0x88+y; break;
 109   2              case 3: xtemp=0x98+y; break;
 110   2              default:break;
 111   2              }
 112   1      //      xtemp== x%2*0x10 + x/2*0x08 + y + 0x80;
 113   1         SendLcdCommand(xtemp);
 114   1         do
 115   1              {
 116   2                      SendLcdData(*chinese);
 117   2                      chinese++;
C51 COMPILER V7.50   LCD12864                                                              12/12/2008 21:32:05 PAGE 3   

 118   2              }while(*chinese!=0);
 119   1       }


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