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

📄 main.lst

📁 LCM-12864汉字液晶显示驱动程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   MAIN                                                                  12/30/2005 12:13:31 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SRC\main.c BROWSE DEBUG OBJECTEXTEND PRINT(.\main.lst) OBJECT(main.obj)

line level    source

   1          //***********************************************************
   2          //*标题:自制板实验 - ZZ005_12864LCD(带汉字库)菜单演示
   3          //*硬件:自制板
   4          //*文件:ZZ005.c
   5          //*日期:2006-1-1
   6          //*版本:1.0
   7          //*作者:lluct
   8          //*邮箱:lluct@hotmail.com
   9          //*********************************************************
  10          //*描述:
  11          //*             
  12          //*                     按KEY1键进行菜单选择
  13          //*********************************************************
  14          //*【版权】 lluct, GPL
  15          //*【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!
  16          //*********************************************************
  17          //头文件
  18          #include        <regx52.h>
  19          #include        <intrins.h>
  20          #include        <string.h>
  21          
  22          #define uchar unsigned char                                             //自定义关键字
  23          //-----------------------------------------------
  24          //TS12864并口相关设定//
  25          #define BUSY_FLAG       P0_7                                            //液晶模块忙标志
  26          #define BG_LED_SET      P1_7                                            //液晶背景光控制
  27          #define MPU_RS_CH       P2_0                                            //寄存器选择输入
  28          #define MPU_RW_CH       P2_1                                            //读写控制
  29          #define MPU_ENABLE      P2_2                                            //使能控制
  30          #define MPU_PS_CH       P2_3                                            //串/并传输控制
  31          #define MPU_RESET       P2_5                                            //液晶复位控制
  32          #define LCD_DATA        P0                                                      //液晶数据口
  33          //-----------------------------------------------
  34          #define LOW                     0                                                       //低电平
  35          #define HIGH            1                                                       //高电平
  36          #define OFF                     0                                                       //逻辑关
  37          #define ON                      1                                                       //逻辑开
  38          //-----------------------------------------------
  39          //液晶模块指令集定义
  40          #define cClearDisplay   0x01                                    //清显示指令
  41          #define cEntryModeSet   0x06                                    //设置输入模式
  42          #define cDisplayOnCtrl  0x0c                                    //设置开显控制
  43          #define cFunctionSetB   0x30                                    //功能设定(基本指令)
  44          #define cFunctionSetE   0x34                                    //功能设定(扩充指令)
  45          #define cFuncDrawOn             0x36                                    //设置绘图功能
  46          //-----------------------------------------------
  47          uchar lcdPosX, lcdPosY;                                                 //X,Y坐标
  48          uchar halfScr, halfLineCnt, basicBlock;                 //半屏,半屏行数,N*8块
  49          uchar data key1Times;                                                   //按键1次数
  50          uchar key1Save, key1Check;                                              //按键1保存和检测
  51          //-----------------------------------------------
  52          uchar code powerOnPhoto [] = {                                  //开机画面
  53           0xFF,0xFF,0xFF,0xFE,0x00,0x3E,0x18,0x00,
  54                0x00,0x00,0x00,0x00,0x1F,0x3F,0xFF,0xFF,
  55                0xFF,0xFF,0xFF,0xF2,0x00,0x1E,0x1C,0x00,
C51 COMPILER V7.50   MAIN                                                                  12/30/2005 12:13:31 PAGE 2   

  56                0x00,0x00,0x00,0x00,0x07,0xBF,0xFF,0xFF,
  57                0xFF,0xFF,0xFF,0xF3,0x00,0x0E,0x0C,0x00,
  58                0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFF,
  59                0xFF,0xFF,0xFF,0xF5,0x80,0x04,0x06,0x00,
  60                0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,
  61                0xFF,0xFF,0xFF,0xFC,0x80,0x00,0x06,0x00,
  62                0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,
  63                0xFF,0xFF,0xFF,0xFE,0xC0,0x00,0x02,0x00,
  64                0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,
  65                0xFF,0xFF,0xFF,0xFF,0x7C,0x00,0x03,0x00,
  66                0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,
  67                0xFF,0xFF,0xFF,0xFF,0xFD,0x00,0x03,0x00,
  68                0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,
  69                0xFF,0xFF,0xFF,0xFF,0xFD,0x1C,0x03,0x00,
  70                0x00,0x00,0x04,0x20,0x00,0x1F,0xFF,0xFF,
  71                0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,
  72                0x00,0x00,0x3E,0x2C,0x00,0x0F,0xFF,0xFF,
  73                0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,
  74                0x00,0x00,0x7E,0xE9,0x00,0x0F,0xFF,0xFF,
  75                0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,
  76                0x00,0x00,0xFF,0xFF,0x00,0x07,0xFF,0xFF,
  77                0xFF,0xFF,0xFF,0xFF,0xFF,0xF9,0xE0,0x00,
  78                0x00,0x01,0xFF,0xFF,0xC0,0x07,0xFF,0xFF,
  79                0xFF,0xFF,0xFF,0xFF,0xCF,0xF8,0xE0,0x00,
  80                0x00,0x03,0xFF,0xFF,0xF0,0x03,0xFF,0xFF,
  81                0xFF,0xFF,0xFF,0xFF,0xEF,0xFC,0xE0,0x60,
  82                0x00,0x03,0xDF,0xFF,0xF8,0x03,0xFF,0xFF,
  83                0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x60,
  84                0x00,0x03,0xFF,0xF9,0xFC,0x00,0xFF,0xFF,
  85                0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x60,
  86                0x00,0x00,0x7F,0xF3,0xFE,0x01,0xFF,0xFF,
  87                0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x60,
  88                0x00,0x00,0x1F,0x7F,0xFE,0x01,0xFF,0xFF,
  89                0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x60,
  90                0x00,0x00,0x08,0x1F,0xFA,0x01,0x7F,0xFF,
  91                0xFF,0xFF,0xFF,0xB0,0x60,0x00,0x00,0xE0,
  92                0x00,0x00,0x00,0x00,0x78,0x00,0x7F,0xFF,
  93                0xFF,0xFF,0xFF,0xD0,0x00,0x00,0x00,0xE0,
  94                0x00,0x00,0x00,0x00,0x39,0x00,0x7F,0xFF,
  95                0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0xE0,
  96                0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,
  97                0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x01,0xE0,
  98                0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,
  99                0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x01,0xE0,
 100                0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,
 101                0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x01,0xC0,
 102                0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,
 103                0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x03,0xC0,
 104                0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,
 105                0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x07,0xC0,
 106                0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,
 107                0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x07,0xC0,
 108                0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,
 109                0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x0F,0x80,
 110                0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,
 111                0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x0F,0x80,
 112                0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,
 113                0xFF,0xFF,0xFF,0x88,0x00,0x00,0x0E,0x00,
 114                0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,
 115                0xFF,0xFF,0xFF,0x80,0x00,0x00,0x1C,0x30,
 116                0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,
 117                0xFF,0xFF,0xFF,0xA0,0x00,0x00,0x1C,0x38,
C51 COMPILER V7.50   MAIN                                                                  12/30/2005 12:13:31 PAGE 3   

 118                0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,
 119                0xFF,0xFF,0xFF,0x90,0x00,0x00,0x18,0x38,
 120                0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,
 121                0xFF,0xFF,0xFF,0x98,0x00,0x00,0x18,0xFC,
 122                0x0E,0x00,0x00,0x00,0x00,0x00,0x7F,0xFF,
 123                0xFF,0xFF,0xFF,0x80,0x00,0x00,0x19,0xFD,
 124                0x1F,0x80,0x00,0x00,0x00,0x00,0x7F,0xFF,
 125                0xFF,0xFF,0xFF,0xC4,0x00,0x00,0x39,0xFE,
 126                0xBF,0x80,0x00,0x00,0x00,0x00,0xFF,0xFF,
 127                0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x31,0xFE,
 128                0xFF,0x80,0x00,0x00,0x00,0x00,0xFF,0xFF,
 129                0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x38,0xFF,
 130                0xC7,0x80,0x00,0x00,0x00,0x00,0xBF,0xFF,
 131                0xFF,0xFF,0xFF,0xD0,0x00,0x00,0x38,0x75,
 132                0x87,0x80,0x00,0x00,0x00,0x01,0xBF,0xFF,
 133                0xFF,0xFF,0xFF,0xD0,0x00,0x00,0x38,0x70,
 134                0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,
 135                0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x3C,0xC0,
 136                0x00,0x30,0x00,0x00,0x00,0x01,0xFF,0xFF,
 137                0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x1F,0xE0,
 138                0x00,0x20,0x00,0x00,0x00,0x02,0xFF,0xFF,
 139                0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,
 140                0x00,0x00,0x00,0x00,0x00,0x02,0xFF,0xFF,
 141                0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,
 142                0x00,0x00,0x00,0x00,0x00,0x06,0xFF,0xFF,
 143                0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,
 144                0x00,0x00,0x00,0x00,0x00,0x04,0xFF,0xFF,
 145                0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,
 146                0x00,0x00,0x00,0x00,0x00,0x05,0xFF,0xFF,
 147                0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,
 148                0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,
 149                0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,
 150                0x00,0x00,0x00,0x00,0x00,0x0B,0xF7,0xFE,
 151                0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,
 152                0x00,0x00,0x00,0x00,0x00,0x13,0xF7,0xFF,
 153                0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,
 154                0x00,0x00,0x00,0x00,0x00,0x13,0xFF,0xFF,
 155                0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,
 156                0x00,0x00,0x00,0x00,0x00,0x11,0xFF,0xFF,
 157                0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,0x00,
 158                0x00,0x00,0x00,0x00,0x00,0x11,0xFD,0xFF,
 159                0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x01,0x18,
 160                0x00,0x00,0x00,0x00,0x00,0x01,0xBC,0xF7,
 161                0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x07,0x7F,
 162                0xFE,0x00,0x00,0x00,0x00,0x03,0xBC,0xFF,
 163                0xFF,0xFF,0xFF,0xFE,0x00,0x00,0x0F,0xFF,
 164                0xFE,0xC0,0x00,0x00,0x00,0x03,0xFE,0xEF,
 165                0xFF,0xFF,0xFF,0xF9,0x00,0x00,0x7F,0xFF,
 166                0xFF,0xC0,0x00,0x00,0x00,0x03,0xFE,0x6F,
 167                0xFF,0xFF,0xFF,0xF9,0x00,0x00,0x7F,0xE3,
 168                0x9F,0xC0,0x00,0x00,0x00,0x03,0xFE,0xFF,
 169                0xFF,0xFF,0xFF,0xFC,0x00,0x01,0xFF,0xC0,
 170                0x0F,0xF0,0x00,0x00,0x00,0x07,0xFE,0xFF,
 171                0xFF,0xFF,0xFF,0xFC,0x00,0x01,0xFE,0xC0,
 172                0x05,0xFC,0x00,0x00,0x00,0x07,0xCE,0xFF,
 173                0xFF,0xFF,0xFF,0xFC,0x00,0x03,0xFF,0xCB,
 174                0x4D,0xFF,0x80,0x00,0x00,0x07,0xFE,0xFF,
 175                0xFF,0xFF,0xFF,0xFE,0x00,0x03,0xFC,0x00,
 176                0x00,0xFF,0xC0,0x00,0x00,0x0E,0x00,0xF7,
 177                0xFF,0xFF,0xFF,0xFE,0x00,0x01,0xC0,0x00,
 178                0x00,0x0F,0xC0,0x00,0x00,0x06,0x01,0xFF,
 179                0xFF,0xFF,0xFF,0xFE,0x00,0x00,0x1D,0x00,
C51 COMPILER V7.50   MAIN                                                                  12/30/2005 12:13:31 PAGE 4   

 180                0x00,0x01,0xC0,0x00,0x00,0x0E,0x03,0xFF
 181          };
 182          //-----------------------------------------------
 183          sbit    KEY1 = P3^2;                                                    //按键1定义
 184          sbit    KEY2 = P3^3;                                                    //按键2定义
 185          sbit    KEY3 = P3^4;                                                    //按键3定义
 186          sbit    KEY4 = P3^5;                                                    //按键4定义
 187          sbit    BEEP = P3^7;                                                    //蜂鸣器定义
 188          //-----------------------------------------------
 189          //子程序声明和用法
 190          bit scanKey1 (void);
 191          //按键1检测
 192          void procKey (void);
 193          //按键处理子程序
 194          void lcdInit (void);
 195          //初始化LCD子程序
 196          void lcdClear (void);
 197          //清除LCD文本屏幕子程序
 198          void lcdWriteCommand (uchar Command); 
 199          //写入控制命令到LCD子程序
 200          //输入参数:LCD控制指令
 201          void lcdWriteData (uchar Data); 
 202          //写入显示数据到LCD子程序
 203          //输入参数:显示数据
 204          void checkLcdBusy (void); 
 205          //检测LCD忙碌子程序
 206          void displayPhoto (uchar *bmp, uchar bmpCls); 
 207          //全屏显示图形子程序
 208          //输入参数:*bmp=图形数据 
 209          //bmpCls=清除图形屏幕选项(OFF为不清屏,即显示图形,ON为清屏)
 210          void convertChar (uchar CX, CY, width); 
 211          //字符反白显示
 212          //输入参数:CX=要反白字符的行(0-3)
 213          //CY=要反白字符的列(0-7)
 214          //width=要反白字符的长度(1-16)
 215          void wrPosition (void); 
 216          //坐标写入子程序
 217          void dispString (uchar X, Y, speed, uchar *msg); 
 218          //显示字符串子程序
 219          //输入参数:X=行(0-3), Y=列(0-7), speed=显示速度(毫秒), msg=字符数据
 220          void beepBl (void);
 221          //蜂鸣器响一声子程序
 222          void delayMs (uchar ms); 
 223          //延时(毫秒)子程序
 224          //输入参数:毫秒数
 225          void delaySec (uchar sec); 
 226          //延时(秒)子程序
 227          //输入参数:秒数
 228          //===============================================
 229          
 230          
 231          void main (void)
 232          {
 233   1              uchar InitLine;
 234   1              BG_LED_SET = LOW;
 235   1              
 236   1              key1Times = 0;
 237   1              key1Check = 0x01;
 238   1              lcdInit ();
 239   1              
 240   1              lcdClear();
 241   1              displayPhoto(powerOnPhoto, OFF);
C51 COMPILER V7.50   MAIN                                                                  12/30/2005 12:13:31 PAGE 5   

 242   1              delaySec(6);
 243   1              lcdClear();
 244   1              dispString(0, 0, 1, "┏━━━━━━┓");
 245   1              dispString(1, 0, 1, "┃12864LCD测试┃");
 246   1              dispString(2, 0, 1, "┃画面人物宝儿┃");
 247   1              dispString(3, 0, 1, "┗━━━━━━┛");
 248   1              delaySec(6);
 249   1              lcdClear();
 250   1              dispString(0, 1, 100, "请稍等片刻");
 251   1              dispString(2, 0, 100, "系统初始化。。。");
 252   1              for (InitLine = 0; InitLine < 17; InitLine++)
 253   1              {
 254   2                      convertChar(2, 0, InitLine);
 255   2                      delaySec(2);
 256   2              }
 257   1              lcdClear();
 258   1              dispString(2, 0, 1, "按K1键继续。。。");
 259   1              convertChar(2, 0, 16);
 260   1      
 261   1              while(1)
 262   1              {
 263   2                      if (scanKey1())
 264   2                      {
 265   3                              delayMs(10);
 266   3                              if (scanKey1())

⌨️ 快捷键说明

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