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

📄 key4x412232.lst

📁 12232液晶驱动和时间显示。矩阵键盘源代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.02   KEY4X412232                                                           01/21/2009 22:22:47 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE KEY4X412232
OBJECT MODULE PLACED IN H:\MYPROJ~1\12232~1\KEY4X412232.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE H:\MYPROJ~1\12232~1\KEY4X412232.C DB SB OE

line level    source

   1          #include "reg51.h"
   2          #include"intrins.h"
   3          #define  uchar unsigned char
   4          #define  uint  unsigned int
   5          #define nop  _nop_()                    /*定义空操作指令*/
   6          #define DATE P0     //数据口
   7          //键盘扫描
   8          #define x(n)    {if(n) PIN_KEY1=1; else PIN_KEY1=0;}
   9          #define y(n)    {if(n) PIN_KEY2=1; else PIN_KEY2=0;}
  10          #define z(n)    {if(n) PIN_KEY3=1; else PIN_KEY3=0;}
  11          
  12          sbit E1 = P1^6;
  13          sbit E2 = P1^7;
  14          sbit A0 = P2^7;
  15          sbit cs1=P1^4;
  16          sbit PIN_BUZZER=P3^5;
  17          unsigned char temp,num1;
  18          unsigned char key;
  19          unsigned char i,j;
  20          uint count,num;
  21          static  uchar code *  data pzm;
  22          static  uchar code *  data pzm1;
  23          uchar code zm[]={
  24           /*--  文字:  0  --*/
  25          /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  26          0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,
  27          
  28          /*--  文字:  1  --*/
  29          /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  30          0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,
  31          
  32          /*--  文字:  2  --*/
  33          /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  34          0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,
  35          
  36          /*--  文字:  3  --*/
  37          /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  38          0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,
  39          
  40          /*--  文字:  4  --*/
  41          /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  42          0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,
  43          
  44          /*--  文字:  5  --*/
  45          /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  46          0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,
  47          
  48          /*--  文字:  6  --*/
  49          /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  50          0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,
  51          
  52          /*--  文字:  7  --*/
  53          /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  54          0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,
  55          
C51 COMPILER V8.02   KEY4X412232                                                           01/21/2009 22:22:47 PAGE 2   

  56          /*--  文字:  8  --*/
  57          /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  58          0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,
  59          
  60          /*--  文字:  9  --*/
  61          /*--  宋体12;  此字体下对应的点阵为:宽x高=8x16   --*/
  62          0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,
  63          
  64          };
  65          uchar code zm1[]={
  66          /*--  文字:  欢  --*/
  67          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  68          0x14,0x24,0x44,0x84,0x64,0x1C,0x20,0x18,0x0F,0xE8,0x08,0x08,0x28,0x18,0x08,0x00,
  69          0x20,0x10,0x4C,0x43,0x43,0x2C,0x20,0x10,0x0C,0x03,0x06,0x18,0x30,0x60,0x20,0x00,
  70          
  71          /*--  文字:  迎  --*/
  72          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  73          0x40,0x41,0xCE,0x04,0x00,0xFC,0x04,0x02,0x02,0xFC,0x04,0x04,0x04,0xFC,0x00,0x00,
  74          0x40,0x20,0x1F,0x20,0x40,0x47,0x42,0x41,0x40,0x5F,0x40,0x42,0x44,0x43,0x40,0x00,
  75          
  76          /*--  文字:  使  --*/
  77          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  78          0x40,0x20,0xF0,0x1C,0x07,0xF2,0x94,0x94,0x94,0xFF,0x94,0x94,0x94,0xF4,0x04,0x00,
  79          0x00,0x00,0x7F,0x00,0x40,0x41,0x22,0x14,0x0C,0x13,0x10,0x30,0x20,0x61,0x20,0x00,
  80          
  81          /*--  文字:  用  --*/
  82          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  83          0x00,0x00,0x00,0xFE,0x22,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0xFE,0x00,0x00,
  84          0x80,0x40,0x30,0x0F,0x02,0x02,0x02,0x02,0xFF,0x02,0x02,0x42,0x82,0x7F,0x00,0x00,
  85          
  86          /*--  文字:  本  --*/
  87          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  88          0x08,0x08,0x08,0x08,0x08,0xC8,0x38,0xFF,0x18,0x68,0x88,0x08,0x08,0x08,0x08,0x00,
  89          0x08,0x08,0x04,0x02,0x05,0x04,0x04,0x7F,0x04,0x04,0x04,0x03,0x06,0x0C,0x04,0x00,
  90          
  91          /*--  文字:  系  --*/
  92          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  93          0x00,0x00,0x02,0x22,0xB2,0xAA,0x66,0x62,0x22,0x11,0x4D,0x81,0x01,0x01,0x00,0x00,
  94          0x00,0x40,0x21,0x13,0x09,0x05,0x41,0x81,0x7F,0x01,0x05,0x09,0x13,0x62,0x00,0x00,
  95          
  96          /*--  文字:  统  --*/
  97          /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  98          0x20,0x30,0x2C,0xA3,0x60,0x10,0x84,0xC4,0xA4,0x9D,0x86,0x84,0xA4,0xC4,0x84,0x00,
  99          0x20,0x22,0x23,0x12,0x12,0x92,0x40,0x30,0x0F,0x00,0x00,0x3F,0x40,0x41,0x70,0x00,
 100          
 101          };
 102          sbit PIN_KEY4=P0^4;
 103          sbit PIN_KEY5=P0^5;
 104          sbit PIN_KEY6=P0^6;
 105          sbit PIN_KEY7=P0^7;
 106          
 107          sbit PIN_KEY1=P2^5;
 108          sbit PIN_KEY2=P2^4;
 109          sbit PIN_KEY3=P2^3;
 110          uchar keyscan();
 111          #define LCD_DISPLAYON 0xaf      //af 开显示,
 112          #define LCD_DISPLAYOFF 0xae      //ae 关显示,
 113          #define LCD_DRIVERON 0xa5      //a5 静态显示驱动
 114          #define LCD_DRIVEROFF 0xa4      //a4正常驱动
 115          #define LCD_DUTY16 0xa8          //占空比1/16
 116          #define LCD_DUTY32 0xa9          //占空比1/32
 117          //
C51 COMPILER V8.02   KEY4X412232                                                           01/21/2009 22:22:47 PAGE 3   

 118          #define LCD_END 0xee          /*关闭“读-修改-写”模式,并把列地址指针
 119                                        恢复到打开“读-修改-写”模式前的位置。*/
 120          
 121          #define LCD_RESET 0xe2          /*初始化。① 设置显示初始行为第一行;
 122                                        ②页地址设置为第三页。*/
 123          
 124          #define LCD_RWMODE 0xe0          /*“读-修改-写”模式 。执行该指令以后,
 125                                        每执行一次写数据,指令列地址自动加1;
 126                                        但执行读数据指令时列地址不会改变。
 127                                        这个状态一直持续到执行“END”指令。
 128                                        注意:在“读-修改-写”模式下,
 129                                        除列地址设置指令之外,其他指令照常执行。 */
 130          #define LCD_STARTLINE0 0xc0      //设置显示起始行 可以加0-31
 131          #define LCD_PAGE0 0xb8          //页地址设置        可以加0-3
 132          #define LCD_COLUMNADDR0 0x00  //列地址设置     可以加0-60
 133          
 134          #define LCD_ON() LCD_Command(LCD_DISPLAYON)
 135          #define LCD_OFF() LCD_Command(LCD_DISPLAYOFF)
 136          #define LCD_StaticON() LCD_Command(LCD_DRIVERON)
 137          #define LCD_StaticOFF() LCD_Command(LCD_DRIVEROFF)
 138          #define LCD_Select16() LCD_Command(LCD_DUTY16)
 139          #define LCD_Select32() LCD_Command(LCD_DUTY32)
 140          #define LCD_StartRW() LCD_Command(LCD_RWMODE)
 141          #define LCD_EndRW() LCD_Command(LCD_END)
 142          #define LCD_Reset() LCD_Command(LCD_RESET)
 143          #define LCD_SetStartLine(i) LCD_Command(LCD_STARTLINE0|i)
 144          #define LCD_SetPage(i) LCD_Command(LCD_PAGE0|i)
 145          #define LCD_SetColumn(i) LCD_Command(LCD_COLUMNADDR0|i)
 146           void delay1s();
 147           void LCD_Command(uchar);
 148           void LCD_SetRam(bit zhucongmian,uchar ndata);
 149           void LCD_Init();
 150           void clrscr(void);
 151           drawword(uchar liedizhi,uchar layer,uchar wenzi);
 152          /******************************************************************************************
 153          * 函数名称    :LCD_Command
 154          * 功能描述    :写命令
 155          * 参数        :  参数名称:    输入/输出?     类型            描述
 156          *
 157          * 返回值      :
 158          * 作者        :
 159          * 创建日期    :2006-12-19
 160          * 全局变量    :
 161          * 全局静态变量:
 162          * 局部静态变量:
 163          *----------------------------------------修改历史------------------------------------------
 164          * 当前版本    :                         修改人:                  修改日期:
 165          * 修改说明    :
 166          ******************************************************************************************/
 167          void delay1()
 168          {    ; ;
 169   1       }
 170          void LCD_Command(uchar nCommand)
 171          {
 172   1              A0=0;
 173   1      
 174   1              E1=1;
 175   1      
 176   1              E2=1;
 177   1      
 178   1              DATE=nCommand;
 179   1      
C51 COMPILER V8.02   KEY4X412232                                                           01/21/2009 22:22:47 PAGE 4   

 180   1              E1=0;
 181   1      
 182   1              E2=0;
 183   1      
 184   1      }
 185          /******************************************************************************************
 186          * 函数名称    :LCD_SetRam
 187          * 功能描述    :送显示数据ndata,setMS为0主,1从
 188          * 参数        :  参数名称:    输入/输出?     类型            描述
 189          *
 190          * 返回值      :
 191          * 作者        :
 192          * 创建日期    :2006-12-19
 193          * 全局变量    :

⌨️ 快捷键说明

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