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

📄 lcddrivers.lst

📁 键盘控制游戏液竟晶12864的,通过一般的控制新片就可以实现!供大家参考
💻 LST
字号:
C51 COMPILER V8.08   LCDDRIVERS                                                            06/18/2007 18:45:10 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE LCDDRIVERS
OBJECT MODULE PLACED IN LCDDrivers.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCDDrivers.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /**********************************************************
   2          *YM12864R-3 液晶驱动(3线串行方式)  LCD Module
   3          *控制芯片:ST7920         
   4          *版本:V1.3
   5          *日期:2007-6-6
   6          *创建人:飞扬
   7          **********************************************************/
   8          #include <AT89x52.H>
   9          /************* 用累加器操作速度比较快 *******************/
  10          sbit B_0 = B^0;
  11          sbit B_7 = B^7;
  12          
  13          /******************  液晶模块引脚定义  *******************/
  14          
  15          sbit LCD_CS  = P1^0;//LCD模块片选端,高电平有效
  16          sbit LCD_SID = P1^1;//LCD串行数据输入端
  17          sbit LCD_CLK = P1^2;//LCD串行同步时钟,上升沿读取SID数据
  18          
  19          /**************** 常用操作命令和参数定义 *****************/
  20          
  21          #define DisplayClear 0x01 //清屏指令(00000001)
  22          #define ReturnHome       0x02 //光标回到"00H"(0000001X)
  23          #define EntryMode        0x06 //进入点设定,光标右移,AC加1(00000110)
  24          #define DisplayOn        0x0c //整体显示开,光标关,反白关
  25          #define DisplayOff       0x08 //整体显示关
  26          #define CursorOn         0x0e //光标显示开
  27          #define Reverse          0x0d //反白显示开
  28          #define Basic            0x30 //基本指令
  29          /************************************************/
  30          #define Extend           0x34 //扩充指令
  31          #define SleepOn          0x08 //进入睡眠模式
  32          #define SleepOff         0x0c //脱离睡眠模式
  33          #define PlotOn           0x36 //绘图开
  34          #define PlotOff          0x34 //绘图关
  35          
  36          #define uchar  unsigned char //定义下方便使用
  37          
  38          /**********************************************************
  39          *函数名:SendData
  40          *功能:发送数据
  41          *说明:向LCD发送一个字节数据
  42          *输入:ucDat
  43          *返回:无
  44          **********************************************************/
  45          void SendData(uchar ucDat)
  46          {
  47   1        uchar i;
  48   1        B = ucDat;
  49   1        for (i=8;i>0;i--)
  50   1        {
  51   2              LCD_CLK = 0;
  52   2              LCD_SID = B_7;
  53   2              LCD_CLK = 1;
  54   2              B <<= 1;
  55   2        }
C51 COMPILER V8.08   LCDDRIVERS                                                            06/18/2007 18:45:10 PAGE 2   

  56   1      }
  57          
  58          /**********************************************************
  59          *函数名:ReceiveData
  60          *功能:接收数据
  61          *说明:接收来自LCD的一个字节的数据
  62          *输入:无
  63          *返回:B
  64          **********************************************************/
  65          uchar ReceiveData()
  66          {
  67   1        uchar i;
  68   1        for (i=8;i>0;i--)
  69   1        {
  70   2               LCD_CLK = 0;
  71   2               B  <<= 1;
  72   2               LCD_CLK = 1;
  73   2               B_0 = LCD_SID;
  74   2        }
  75   1        return (B);
  76   1      }
  77          
  78          /**********************************************************
  79          *函数名:ReadBusyFlag
  80          *功能:读忙碌标志和AC
  81          *说明:
  82          *输入:
  83          *返回:B
  84          **********************************************************/
  85          uchar ReadBusyFlag()
  86          {
  87   1        uchar ucDat1,ucDat2;
  88   1        LCD_CS = 1;
  89   1        SendData(0xfc); //发送读忙碌标志指令
  90   1        ucDat1 = ReceiveData();//
  91   1        ucDat2 = ReceiveData();
  92   1        LCD_CS = 0;
  93   1        B = (ucDat2>>4)|(ucDat1&0xf0);
  94   1        return (B);
  95   1      }
  96          
  97          /**********************************************************
  98          *函数名:LCDWriteData
  99          *功能:写数据到LCD
 100          *说明:
 101          *输入: Dat
 102          *返回: 无
 103          **********************************************************/
 104          void LCDWriteData(uchar Dat)
 105          {
 106   1        uchar ucDat;
 107   1        LCD_CS = 0;
 108   1        do {
 109   2                      ucDat = ReadBusyFlag(); //忙碌判断
 110   2               } while (ucDat&0x80);
 111   1        LCD_CS = 1;
 112   1        SendData(0xfa); //发送写数据指令
 113   1        SendData(Dat&0xf0);//发送高4位
 114   1        SendData(Dat<<4);      //发送低4位
 115   1        LCD_CS = 0;
 116   1      }
 117          
C51 COMPILER V8.08   LCDDRIVERS                                                            06/18/2007 18:45:10 PAGE 3   

 118          /**********************************************************
 119          *函数名:LCDWriteCommand
 120          *功能:写指令到LCD
 121          *说明:
 122          *输入: Dat
 123          *返回: 无
 124          **********************************************************/
 125          void LCDWriteCommand (uchar Dat)
 126          {
 127   1        uchar ucDat;
 128   1        LCD_CS = 0;
 129   1        do {
 130   2                      ucDat = ReadBusyFlag();//忙碌标志
 131   2               } while (ucDat&0x80);
 132   1        LCD_CS = 1;
 133   1        SendData(0xf8); //发送写指令到LCD
 134   1        SendData(Dat&0xf0);//发送高4位
 135   1        SendData(Dat<<4);      //发送低4位
 136   1        LCD_CS = 0;
 137   1      }
 138          
 139          /**********************************************************
 140          *函数名: LCDInit
 141          *功能:初始化
 142          *说明:液晶初始化函数
 143          *输入:无
 144          *返回:无
 145          **********************************************************/
 146          void LCDInit()
 147          {
 148   1        LCDWriteCommand(Basic);       //基本指令集
 149   1        LCDWriteCommand(DisplayOn);   //显示开,光标关,发白关
 150   1        LCDWriteCommand(DisplayClear);//清屏
 151   1        LCDWriteCommand(EntryMode);   //进入点设定,光标右移,AC加1
 152   1      }
 153          /**********************************************************
 154          *函数名: 
 155          *功能:
 156          *说明:
 157          *输入:
 158          *返回:
 159          **********************************************************/
 160          
 161          
 162          /**********************************************************
 163          *函数名:
 164          *功能:
 165          *说明:
 166          *输入:
 167          *返回:
 168          **********************************************************/
 169          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    149    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
C51 COMPILER V8.08   LCDDRIVERS                                                            06/18/2007 18:45:10 PAGE 4   

END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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