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

📄 lcd12864.lst

📁 由51单片机与12864组成 俄罗斯方块游戏程序 keil工程
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.05a   LCD12864                                                             11/13/2007 09:15:28 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          //*************************************************************************************************
   9          //*                                                                                                                                                                                               *
  10          //*                      ********************************读忙标志位*********************************              *
  11          //*                                                                                                                                                                                               *
  12          //*************************************************************************************************
  13          bit bCheckBusy()
  14          {
  15   1              LCDPORT=0xFF;
  16   1              RW=1;
  17   1              DI=0;
  18   1              E=1;
  19   1              E=0;
  20   1              return BUSYSTATUS; 
  21   1      }
  22          
  23          //*************************************************************************************************
  24          //*                                                                                                                                                                                               *
  25          //*                      ********************************写数据*********************************                          *
  26          //*                                                                                                                                                                                               *
  27          //*************************************************************************************************
  28          void vWriteData(unsigned char ucData)
  29          {
  30   1              while(bCheckBusy());
  31   1              LCDPORT=0xFF;
  32   1      
  33   1              RW=0;
  34   1              DI=1;
  35   1              LCDPORT=ucData;
  36   1              E=1;
  37   1              E=0;
  38   1      }
  39          
  40          //*************************************************************************************************
  41          //*                                                                                                                                                                                               *
  42          //*                      ********************************写指令*********************************                          *
  43          //*                                                                                                                                                                                               *
  44          //*************************************************************************************************
  45          void vWriteCMD(unsigned char ucCMD)
  46          {
  47   1              while(bCheckBusy());
  48   1              LCDPORT=0xFF;
  49   1      
  50   1              RW=0;
  51   1              DI=0;
  52   1              LCDPORT=ucCMD;
  53   1              E=1;
  54   1              E=0;
C51 COMPILER V8.05a   LCD12864                                                             11/13/2007 09:15:28 PAGE 2   

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

⌨️ 快捷键说明

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