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

📄 lcd12864.lst

📁 单片机的俄罗斯方块程序,含Proteus 仿真文件及详细注释
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.05a   LCD12864                                                             11/06/2007 16:45:41 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE LCD12864
OBJECT MODULE PLACED IN .\Target\LCD12864.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\LCD12864.c BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\LST\
                    -LCD12864.lst) OBJECT(.\Target\LCD12864.obj)

line level    source

   1          //*************************************************************************************************
   2          //*                                                                                                                                                                                               *
   3          //*                      ******************************LCD12864驱动程序**************************                         *
   4          //*                                                                                                                                                                                               *
   5          //*************************************************************************************************
   6          #include "includes.h"
   7          
   8          #define RST P2_0
   9          #define E P2_1
  10          #define RW P2_2
  11          #define DI P2_3
  12          #define CS1 P2_5
  13          #define CS2     P2_4
  14          #define LCDPORT P0
  15          
  16          
  17          #define BUSYSTATUS P0_7                           //忙状态位。
  18          
  19          #define LCDSTARTROW 0xC0                          //设置起始行指令。
  20          #define LCDPAGE 0xB8                              //设置页指令。
  21          #define LCDLINE 0x40                              //设置列指令。
  22          
  23          
  24          
  25          
  26          //*************************************************************************************************
  27          //*                                                                                                                                                                                               *
  28          //*                      ********************************读忙标志位*********************************              *
  29          //*                                                                                                                                                                                               *
  30          //*************************************************************************************************
  31          bit bCheckBusy()
  32          {
  33   1              LCDPORT=0xFF;
  34   1              RW=1;
  35   1              DI=0;
  36   1              E=1;
  37   1              E=0;
  38   1              return BUSYSTATUS; 
  39   1      }
  40          
  41          //*************************************************************************************************
  42          //*                                                                                                                                                                                               *
  43          //*                      ********************************写数据*********************************                          *
  44          //*                                                                                                                                                                                               *
  45          //*************************************************************************************************
  46          void vWriteData(unsigned char ucData)
  47          {
  48   1              while(bCheckBusy());
  49   1              LCDPORT=0xFF;
  50   1      
  51   1              RW=0;
  52   1              DI=1;
  53   1              LCDPORT=ucData;
  54   1              E=1;
C51 COMPILER V8.05a   LCD12864                                                             11/06/2007 16:45:41 PAGE 2   

  55   1              E=0;
  56   1      }
  57          
  58          //*************************************************************************************************
  59          //*                                                                                                                                                                                               *
  60          //*                      ********************************写指令*********************************                          *
  61          //*                                                                                                                                                                                               *
  62          //*************************************************************************************************
  63          void vWriteCMD(unsigned char ucCMD)
  64          {
  65   1              while(bCheckBusy());
  66   1              LCDPORT=0xFF;
  67   1      
  68   1              RW=0;
  69   1              DI=0;
  70   1              LCDPORT=ucCMD;
  71   1              E=1;
  72   1              E=0;
  73   1      }
  74          
  75          //*************************************************************************************************
  76          //*                                                                                                                                                                                               *
  77          //*                      ********************************LCD初始化函数*******************************             *
  78          //*                                                                                                                                                                                               *
  79          //*************************************************************************************************
  80          void vLCDInitialize()
  81          {
  82   1              CS1=1;
  83   1              CS2=1;
  84   1              vWriteCMD(0x38);                //8位形式,两行字符。
  85   1              vWriteCMD(0x0F);                //开显示。
  86   1              vWriteCMD(0x01);                //清屏。
  87   1              vWriteCMD(0x06);                //画面不动,光标右移。
  88   1              vWriteCMD(LCDSTARTROW); //设置起始行。
  89   1      }
  90          
  91          //*************************************************************************************************
  92          //*                                                                                                                                                                                               *
  93          //*                      ******************************显示自定义行*********************************              *
  94          //*                                                                                                                                                                                               *
  95          //*************************************************************************************************
  96          //在8×128的格子里显示自定义长度的一行
  97          void vShowCustomRow(unsigned char ucPage,unsigned char ucLine,unsigned char ucWidth,unsigned char *ucaRow)
  98          {
  99   1              unsigned char ucCount;                             //取值范围:ucPage:0~7;ucLine:0~127;
 100   1              if(ucLine<64)                                              //ucWidth:0~127;ucLine+ucWidth<1128。
 101   1                      {
 102   2                      CS1=1;
 103   2                      CS2=0;
 104   2                      vWriteCMD(LCDPAGE+ucPage);
 105   2                      vWriteCMD(LCDLINE+ucLine);
 106   2                      if((ucLine+ucWidth)<64)
 107   2                              {

⌨️ 快捷键说明

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