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

📄 lcd.lst

📁 基于AT89S8253单片机的LCD驱动程序代码
💻 LST
字号:
C51 COMPILER V6.12  LCD                                                                    07/25/2007 15:28:44 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN .\lcd.OBJ
COMPILER INVOKED BY: C:\keil\C51\BIN\C51.EXE .\lcd.c DEBUG OBJECTEXTEND

stmt level    source

   1          /*--------------------------------------------------------------------------------------------------------
             -----*-
   2          
   3            lcd.c(v1.00)
   4          
   5            --------------------------------------------------------------------------------------------------------
             -----
   6          
   7            -these rountine are used for driving FYD12864-0402B LCD module.
   8           
   9           -*-------------------------------------------------------------------------------------------------------
             -----*/
  10          
  11             //简单的LCD显示驱动程序,用于驱动FYD12864-0402B液晶显示模块。
  12          
  13             //fosc=11.0592MHz
  14             //硬件连接:
  15             //LCD上的VSS[1]连接到地
  16             //LCD上的VCC[2]连接到+5V
  17             //LCD上的VOUT[18]串联10K电位器连接到VO
  18             //LCD上的PSB[15]可选择VCC或GND(须加限流电阻100欧)
  19             //LCD上的/RESET[17]接复位电路
  20             //LCD上的A[19]连接VCC
  21             //LCD上的K[20]连接GND
  22          
  23             #include <AT89X52.H>
  24          	#include"port.h"
  25             #include"lcd.h"
  26          
  27             //端口定义应放在端口头文件PORT.H中
  28             //#define Lcd_Bus P1
  29          
  30             //sbit RS=P2^1;  //数据指令选择信号
  31             //sbit RW=P2^2;  //读写控制信号
  32             //sbit E=P2^3;   //使能信号
  33          
  34             #define FIRST_ADDR 0       //定义字符/汉字显示起始位置
  35          
  36             //检查忙位
  37             void chk_busy()
  38             {  
  39   1              RS=0;
  40   1              RW=1;
  41   1              E=1;
  42   1              Lcd_Bus=0xff;
  43   1              while((Lcd_Bus&0x80)==0x80);
  44   1              E=0;
  45   1         }
  46          
  47             //延时子程序
  48             void delay(unsigned int t)
  49             {  
  50   1              unsigned int i,j;
  51   1              for(i=0;i<t;i++)
  52   1              for(j=0;j<10;j++)
C51 COMPILER V6.12  LCD                                                                    07/25/2007 15:28:44 PAGE 2   

  53   1                 ;
  54   1          }
  55          
  56              //写命令到LCD
  57              void write_com(unsigned char cmdcode)
  58              {
  59   1      	      chk_busy();
  60   1      	      RS=0;
  61   1      	      RW=0;
  62   1      	      E=1;
  63   1      	      Lcd_Bus=cmdcode;
  64   1      	      delay(5);//在数据写入的时候加入适当的延时
  65   1      	      E=0;
  66   1      	      delay(5);
  67   1          }
  68          
  69              //写数据到LCD
  70              void write_data(unsigned char Dispdata)
  71              {
  72   1      	      chk_busy();
  73   1      	      RS=1;
  74   1      	      RW=0;
  75   1       	      E=1;
  76   1      	      Lcd_Bus=Dispdata;
  77   1      	      delay(5);//在数据写入的时候加入适当的延时
  78   1      	      E=0;
  79   1      	      delay(5);
  80   1          }
  81          
  82              //初始化LCD显示屏
  83              void lcdreset()
  84              {  
  85   1               delay(2000);
  86   1               write_com(0x30);
  87   1               delay(10);             //选择基本指令集
  88   1               write_com(0x30);       //选择8bit数据流
  89   1               delay(5);
  90   1               write_com(0x0c);       //开显示(无游标、不反白)
  91   1               delay(10);
  92   1               write_com(0x01);       //清除显示,并且设定地址指针为00H
  93   1               delay(500);
  94   1               write_com(0x06);       //指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位
  95   1               delay(0);
  96   1          }
  97          
  98              //清屏命令  
  99              void clrscreen()
 100              { 
 101   1               write_com(0x01);
 102   1               delay(10);
 103   1          }
 104          
 105              //显示字符串
 106              void hzkdis(unsigned char code *s)
 107              {  
 108   1               while(*s>0)
 109   1               {  write_data(*s);
 110   2                  s++;
 111   2                  delay(50);
 112   2               }
 113   1          }
 114          
C51 COMPILER V6.12  LCD                                                                    07/25/2007 15:28:44 PAGE 3   

 115              /*该函数只在测试时使用*/
 116              //测试屏幕显示
 117              void ceshi()
 118              {
 119   1               write_com(0x01);//清除显示,并且设定地址指针为00H
 120   1               delay(5);
 121   1       
 122   1               write_com(0x80);//第一行(如果是地址是:80H,即LCD的第一行的第一个位置显示)
 123   1               hzkdis("乐山师院物电系制"); 
 124   1      
 125   1               write_com(0x90);//第二行(如果是地址是:90H,即LCD的第二行的第一个位置显示)
 126   1               hzkdis("LCD12864点阵液晶");
 127   1       
 128   1               write_com(0x88);//第三行(如果是地址是:88H,即LCD的第二行的第一个位置显示)
 129   1               hzkdis("----测试程序----");
 130   1       
 131   1               write_com(0x98);//第四行(如果是地址是:98H,即LCD的第二行的第一个位置显示)
 132   1               hzkdis("----------黄华彬");
 133   1           }
 134          
 135          /*--------------------------------------------------------------------------------------------------------
             -----*-
 136          
 137            ---------------------------------------THE END OF FILE--------------------------------------------------
             -----
 138          
 139          -*--------------------------------------------------------------------------------------------------------
             -----*/
 140             
 141          


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