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

📄 shiyan.lst

📁 89c51多级菜单翻页功能12864,给想要的人参考
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.00  SHIYAN                                                                 04/02/2007 11:56:29 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE SHIYAN
OBJECT MODULE PLACED IN shiyan.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE shiyan.c DEBUG OBJECTEXTEND

stmt level    source

   1          #include <reg51.h>
   2          #include <intrins.h>
   3          
   4          #define GDM12864ADataPort P1 //LCD数据线
   5          
   6          sbit DI=P2^2; // 数据\指令 选择
   7          sbit RW=P2^1; // 读\写 选择
   8          sbit EN=P2^0; // 读\写使能
   9          sbit cs1=P2^4; // 片选1
  10          sbit cs2=P2^3; // 片选2
  11          sbit UP=P0^0;//定义UP
  12          sbit DOWN=P0^1;//定义DOWN
  13          sbit TEST=P3^0;//定义DOWN
  14          unsigned char i,j,t;
  15          static int nxx;
  16          int t0,t1,t2,t3,tx,k,k0,k1,k2,k3;
  17          //*--------函数列表-------
  18          
  19          //状态检查
  20          void CheckState()
  21          {
  22   1         unsigned char dat;
  23   1         DI=0;
  24   1         RW=1;
  25   1         do{
  26   2            GDM12864ADataPort=0x00;
  27   2            EN=1; 
  28   2                dat=GDM12864ADataPort;
  29   2            EN=0;
  30   2            dat=0x80 & dat; //仅当第7位为0时才可操作(判别busy信号)
  31   2            }while(!(dat==0x00));
  32   1           }
  33          /*-----------------------------------------------------------------------------------------------------*/
  34          //向LCD发送命令
  35          //command :命令
  36          SendCommandToLCD(unsigned char command)
  37          {
  38   1         CheckState();
  39   1         RW=0;
  40   1         GDM12864ADataPort=command;
  41   1         EN=1; EN=0;
  42   1      }
  43          /*----------------------------------------------------------------------------------------------------*/
  44          //写显示数据
  45          //dat:显示数据
  46          void WriteByte(unsigned char dat)
  47          {  
  48   1      
  49   1         CheckState();
  50   1         DI=1; RW=0;
  51   1         GDM12864ADataPort=dat;
  52   1         EN=1; EN=0;
  53   1        }
  54          /*----------------------------------------------------------------------------------------------------*/
  55          //读显示数据
C51 COMPILER V7.00  SHIYAN                                                                 04/02/2007 11:56:29 PAGE 2   

  56          unsigned char ReadByte()
  57          {
  58   1         unsigned char dat;
  59   1         CheckState();
  60   1         DI=1; RW=1;
  61   1         GDM12864ADataPort=0xff;
  62   1         EN=1; dat=GDM12864ADataPort; EN=0;
  63   1         return(dat);
  64   1        }
  65          /*----------------------------------------------------------------------------------------------------*/
  66          //设定行地址(页)--X 0-7
  67          void SetLine(unsigned char line)
  68          {
  69   1        line=line & 0x07; // 0<=line<=7
  70   1        line=line|0xb8; //1011 1xxx
  71   1        SendCommandToLCD(line);
  72   1      }
  73          /*----------------------------------------------------------------------------------------------------*/
  74          //设定列地址--Y 0-63
  75          void SetColumn(unsigned char column)
  76          {
  77   1        column=column &0x3f; // 0=<column<=63
  78   1        column=column | 0x40; //01xx xxxx
  79   1        SendCommandToLCD(column);
  80   1      }
  81          /*----------------------------------------------------------------------------------------------------*/
  82          //设定显示开始行--XX
  83          void SetStartLine(unsigned char startline) //0--63
  84          {
  85   1        startline=startline & 0x07;
  86   1        startline=startline|0xc0; //1100 0000
  87   1        SendCommandToLCD(startline);
  88   1       }
  89          /*----------------------------------------------------------------------------------------------------*/
  90          //开关显示
  91          void SetOnOff(unsigned char onoff)
  92          {
  93   1      onoff=0x3e | onoff; //0011 111x
  94   1      SendCommandToLCD(onoff);
  95   1      }
  96          /*---------------------------------------------------------------------------------------------------*/
  97          //选择屏幕
  98          //screen: 0-全屏,1-左屏,2-右屏
  99          void SelectScreen(unsigned char screen)
 100          { //cs1: 1--左; cs2: 1--右
 101   1         switch(screen)
 102   1         { case 0: cs1=0;//全屏
 103   2                   _nop_(); _nop_(); _nop_(); 
 104   2                   cs2=0; 
 105   2                   _nop_(); _nop_(); _nop_(); 
 106   2                   break; 
 107   2           case 1: cs1=0;//左屏
 108   2                   _nop_(); _nop_(); _nop_(); 
 109   2                   cs2=1;
 110   2                   _nop_(); _nop_(); _nop_(); 
 111   2                   break;
 112   2           case 2: cs1=1;//右屏
 113   2                   _nop_(); _nop_(); _nop_(); 
 114   2                   cs2=0;
 115   2                   _nop_(); _nop_(); _nop_(); 
 116   2                   break;
 117   2         }
C51 COMPILER V7.00  SHIYAN                                                                 04/02/2007 11:56:29 PAGE 3   

 118   1      }
 119          /*---------------------------------------------------------------------------------------------------*/
 120          //延时
 121          GDM12864delay()
 122             {
 123   1          unsigned int i=500;
 124   1          while(i--) {;}
 125   1          }
 126          
 127          /*---------------------------------------------------------------------------------------------------*/
 128          //清屏
 129          //screen: 0-全屏,1-左屏,2-右
 130          void ClearScreen(unsigned char screen)
 131             { unsigned char i,j;
 132   1           SelectScreen(screen);
 133   1           for(i=0;i<8;i++){
 134   2                      SetLine(i);
 135   2                    for(j=0;j<128;j++){
 136   3                                WriteByte(0x00);
 137   3                                 }
 138   2                           }
 139   1                                               
 140   1          }
 141          /*---------------------------------------------------------------------------------------------------*/
 142          //初始化LCD
 143          void InitLCD() 
 144          { unsigned char i=250; //延时
 145   1      while(i--);
 146   1      
 147   1      SelectScreen(0);
 148   1      SetOnOff(0); //关显示
 149   1      //ClearScreen(0);//清屏
 150   1      
 151   1      SelectScreen(0);
 152   1      SetOnOff(1); //开显示
 153   1      SelectScreen(0);
 154   1      SetStartLine(0); //开始行:0
 155   1      }
 156          /*----------------------------------------------------------------------------------------------------*/
 157          
 158          
 159          
 160          /*----------------------------------------------------------------------------------------------*/
 161          unsigned char code ASC[]={
 162          /*.--0x2E       */
 163               0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 164               0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,
 165          
 166          /*'/'--0x2F       */
 167               0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x00,
 168               0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,
 169          
 170          /*0--0x30       */
 171                   0xF8,0xFC,0x04,0xC4,0x24,0xFC,0xF8,0x00,
 172               0x07,0x0F,0x09,0x08,0x08,0x0F,0x07,0x00,
 173          
 174          /*1--0x31       */
 175                   0x00,0x10,0x18,0xFC,0xFC,0x00,0x00,0x00,
 176               0x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00,
 177          
 178          /*2--0x32       */
 179                   0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00,
C51 COMPILER V7.00  SHIYAN                                                                 04/02/2007 11:56:29 PAGE 4   

 180               0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00,
 181          
 182          /*3--0x33       */
 183                   0x08,0x0C,0x44,0x44,0x44,0xFC,0xB8,0x00,
 184               0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00,
 185          
 186          /*4--0x34       */
 187                   0xC0,0xE0,0xB0,0x98,0xFC,0xFC,0x80,0x00,
 188               0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,
 189          
 190          /*5--0x35       */
 191                   0x7C,0x7C,0x44,0x44,0xC4,0xC4,0x84,0x00,
 192               0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00,
 193          
 194          /*6--0x36       */
 195                   0xF0,0xF8,0x4C,0x44,0x44,0xC0,0x80,0x00,
 196               0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,
 197          
 198          /*7--0x37       */
 199                   0x0C,0x0C,0x04,0x84,0xC4,0x7C,0x3C,0x00,
 200               0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x00,
 201          
 202          /*8--0x38       */
 203                   0xB8,0xFC,0x44,0x44,0x44,0xFC,0xB8,0x00,
 204               0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,
 205          
 206          /*9--0x39       */
 207                   0x38,0x7C,0x44,0x44,0x44,0xFC,0xF8,0x00,
 208               0x00,0x08,0x08,0x08,0x0C,0x07,0x03,0x00
 209          };
 210          /*----------------------------------------------------------------------------------------------*/
 211          #define  CB6AB  0x0000    /*东  */
 212          #define  CC4CF  CB6AB+32  /*南  */
 213          
 214          //从左到右从上到下,纵向8点下高位分粗细体
 215          unsigned char code Hztable[]={
 216          //"  "
 217                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 218                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 219                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 220                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 221          //"  "
 222                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 223                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 224                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 225                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 226          //"唐"
 227                0x00,0x00,0x00,0xFE,0xFC,0x84,0xA4,0xA4,
 228                0xA5,0xFF,0xFE,0xA4,0xE4,0xF6,0xA4,0x80,
 229                0x00,0x80,0x40,0x3F,0x1F,0xFC,0xFA,0x4A,
 230                0x4A,0x4F,0x4F,0x4A,0xFB,0xFF,0x10,0x00,
 231                          //0x00,0x00,0xFC,0x44,0x54,0x54,0x54,0x55,
 232                //0xFE,0x54,0x54,0x54,0xF6,0x44,0x40,0x00,
 233                //0x40,0x30,0x0F,0x00,0xFD,0x45,0x45,0x45,
 234                //0x47,0x45,0x45,0x45,0xFD,0x00,0x00,0x00,
 235          
 236          //"山", 
 237                0x00,0x00,0xC0,0x80,0x00,0x00,0x00,0x00,
 238                0xFE,0xFC,0x00,0x00,0x00,0x00,0xC0,0x80,
 239                0x00,0x00,0xFF,0x7F,0x20,0x20,0x20,0x20,
 240                0x3F,0x3F,0x20,0x20,0x20,0x20,0xFF,0x7F,
 241          
C51 COMPILER V7.00  SHIYAN                                                                 04/02/2007 11:56:29 PAGE 5   

 242          //"华", 
 243                0x00,0x40,0x20,0x30,0xFC,0xF7,0x02,0x80,
 244                0x60,0xFF,0xFE,0x18,0x0E,0xC4,0x00,0x00,
 245                0x00,0x08,0x08,0x08,0x0B,0x09,0x08,0xFE,
 246                0xFE,0x09,0x0B,0x0B,0x0B,0x0B,0x0D,0x08,
 247          
 248          //"光", 
 249                0x00,0x00,0x80,0x82,0xBC,0x98,0x80,0xFF,
 250                0xFE,0x80,0xE0,0xB8,0x9E,0xC4,0x80,0x00,
 251                0x00,0x80,0x80,0x40,0x60,0x38,0x1F,0x07,
 252                0x00,0x7F,0xFF,0xC0,0xC0,0xC0,0xF0,0x40,
 253          //"  "
 254                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 255                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 256                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 257                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 258          //"  "
 259                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 260                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 261                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 262                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 263          
 264          //"自", 
 265                0x00,0x00,0x00,0xFC,0xF8,0x88,0x8C,0x8F,

⌨️ 快捷键说明

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