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

📄 lcd.lst

📁 不带字库的edm12864p
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   LCD                                                                   08/17/2007 14:21:05 PAGE 1   


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

line level    source

   1          #include<reg51.h>
   2          #include<absacc.h>
   3          #include<INTRINS.H>
   4          #define uint unsigned int
   5          sbit P1_0=P1^0;
   6          sbit P1_1=P1^1;
   7          sbit P1_2=P1^2;
   8          sbit P2_0=P2^3;
   9          sbit P2_1=P2^4;
  10          sbit P2_2=P2^5;
  11          sbit P2_3=P2^0;
  12          sbit P2_4=P2^1;
  13          sbit P2_5=P2^2; 
  14          #define Lcdbusy 0x80    //LCD忙判断位   
  15          #define uchar unsigned char
  16          #define key XBYTE[0x2fff]
  17          uchar (*PP)[32],*Q,rr,(*QQ)[16];
  18          uchar I,X,Y,KK=0,LL=0,KK2=0,LL2=0,KK0=0,LL0=0;
  19          unsigned long F=0;
  20          uint flag2=0,flag3=0;
  21          uchar code HZI11[5][32]={                                                         //汉字(16*16)
  22          {0x00,0x02,0x02,0xC2,0x02,0x02,0x02,0x02,0xFE,0x82,0x82,0x82,0x82,0x82,0x02,0x00,
  23          0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x00},
  24          {0x02,0xF2,0x12,0x12,0x3E,0x00,0x04,0x84,0x44,0xB5,0x86,0x84,0xE4,0x44,0x04,0x00,
  25          0x01,0x23,0x41,0x81,0x7F,0x00,0x21,0x71,0x29,0x25,0x22,0x21,0x28,0x70,0x20,0x00},
  26          {0x10,0x60,0x01,0xE6,0x00,0xF8,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x18,0x08,0x00,
  27          0x04,0x04,0xFF,0x40,0x30,0x8F,0x80,0x41,0x26,0x18,0x18,0x26,0x61,0xC0,0x40,0x00},
  28          {0x20,0x3C,0x20,0x20,0xBF,0x24,0x24,0x00,0xF2,0x1A,0xD6,0x12,0x12,0xF2,0x02,0x00,
  29          0x44,0x43,0x20,0x10,0x0B,0x04,0x43,0x40,0x27,0x18,0x07,0x08,0x10,0x27,0x60,0x00},
  30          {0x00,0x0C,0x14,0xA4,0x04,0x64,0x35,0xAE,0x64,0x24,0x14,0xA4,0x14,0x04,0x04,0x00,
  31          0x08,0x0A,0x09,0x08,0x08,0x0A,0x0B,0xFE,0x0A,0x0B,0x0C,0x08,0x09,0x0A,0x08,0x00}};
  32          uchar code HZI22[]={                                                              //正弦波(64*32)
  33          0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0x70,0x38,0x1C,0x0C,0x06,0x07,0x03,0x03,   
  34          0x03,0x03,0x03,0x03,0x07,0x06,0x1C,0x38,0x70,0xE0,0xC0,0x00,0x00,0x00,0x00,0x00,
  35          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  36          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  37          0xC0,0xF0,0x78,0x1C,0x0F,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  38          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x0F,0x1E,0x78,0xE0,0x80,
  39          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  40          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  41          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  42          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x07,
  43          0x0F,0x3C,0x70,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  44          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x70,0x38,0x1C,0x0E,0x07,
  45          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  46          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  47          0x00,0x00,0x00,0x01,0x03,0x07,0x0E,0x1C,0x38,0x30,0x60,0x60,0x60,0x40,0x60,0x60,
  48          0x60,0x60,0x30,0x30,0x18,0x1C,0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00};
  49          uchar code HZI0[2][16]={                                                            //":0"(8*8)
  50          {0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00},
  51          {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00}};
  52          uchar code HZI1[3][16]={                                                            //"100"(每个字符8*8)
  53          {0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00},
  54          {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},
  55          {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00}};
C51 COMPILER V7.50   LCD                                                                   08/17/2007 14:21:05 PAGE 2   

  56          uchar code HZI2[3][16]={                                                            //"200"(每个字符8*8)
  57          {0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00},
  58          {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},
  59          {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00}};
  60          uchar code HZI3[3][16]={                                                            //"300"(每个字符8*8)
  61          {0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00},
  62          {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00},
  63          {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00}};
  64          void delay1(void)                        //延时10us
  65          {
  66   1         uchar i;
  67   1         for(i=5;i>0;i--);
  68   1      }
  69          void delay2(void)                        //延时2s
  70          {
  71   1         uchar i,j,k;
  72   1         for(i=2;i>0;i--)
  73   1         for(j=255;j>0;j--)
  74   1         for(k=255;k>0;k--);
  75   1      }
  76          void delay3(void)                        //延时1s
  77          {
  78   1         uchar i,j,k;
  79   1         for(i=1;i>0;i--)
  80   1         for(j=175;j>0;j--)
  81   1         for(k=255;k>0;k--);
  82   1      }
  83          void lcdbusy(void)                      //判忙子程序
  84                  {
  85   1                 P2_0=0;              
  86   1                 P2_1=1;              
  87   1             P0=0xFF; 
  88   1                 P2_2=1;_nop_();              
  89   1             while(P0&Lcdbusy!=0x00);
  90   1             P2_2=0;
  91   1              }
  92          void WRI(uchar r)                       //写指令子程序
  93          {
  94   1         lcdbusy();                           //判忙
  95   1         P2_2=0;
  96   1         P2_1=0;
  97   1         P2_0=0;
  98   1         P0=r;
  99   1         P2_2=1;
 100   1         delay1();
 101   1         P2_2=0;
 102   1      }
 103          void WRD(uchar r1)                     //写数据子程序
 104          {
 105   1         lcdbusy();                          //判忙
 106   1         P2_2=0;
 107   1         P2_1=0;
 108   1         P2_0=1;
 109   1         P0=r1;
 110   1         P2_2=1;
 111   1         delay1();
 112   1         P2_2=0;
 113   1      }
 114          void clear(void)                       //清屏子程序
 115          { 
 116   1          uchar RR,RR1,RR2,page;
 117   1          page=0xB8;                         //设置页地址
C51 COMPILER V7.50   LCD                                                                   08/17/2007 14:21:05 PAGE 3   

 118   1          for(RR2=8;RR2>0;RR2--)             //8页
 119   1          {
 120   2                 RR1=page;
 121   2             WRI(RR1);
 122   2             RR1=0x40;
 123   2             WRI(RR1);
 124   2             for(RR=128;RR>0;RR--)           //128列
 125   2             {
 126   3                RR1=0x00;                    //送0,清显示
 127   3                WRD(RR1);
 128   3             }
 129   2                 page++;
 130   2          }
 131   1      }
 132          void outhz0(uchar(*p0)[16],uchar x0,uchar y0)          //取数送显示(":0")
 133          {
 134   1          uchar rr00,rr01,rr05;
 135   1          for(rr00=2;rr00>0;rr00--)        //共两页
 136   1          {     
 137   2                rr01=y0+0x40;       //设置列地址
 138   2                WRI(rr01);
 139   2                rr01=x0+0xB9;       //设置页地址
 140   2                WRI(rr01);
 141   2                        while(KK0<2)        //共两个字符
 142   2                        {
 143   3                                for(rr05=8;rr05>0;rr05--)        //一个字符8列显示
 144   3                                {
 145   4                                    rr01=*(*(p0+KK0)+LL0);       //取数
 146   4                        WRD(rr01);
 147   4                        delay1();
 148   4                        LL0++; 
 149   4                                }
 150   3                     break;            
 151   3                    }                                                                            
 152   2                    x0++;                                                                         
 153   2          }
 154   1              LL0=0;KK0++;
 155   1          rr01=0xC0;         //设置显示起始行
 156   1          WRI(rr01);
 157   1          rr01=0x3F;         //开显示                                     
 158   1          WRI(rr01);
 159   1              rr00=5;            //延时显示
 160   1          for(rr00=5;rr00>0;rr00--)
 161   1          {
 162   2              delay3();
 163   2          } 
 164   1      }
 165          void outhz11(uchar(*p)[32],uchar x,uchar y)       //取数送显示(汉字)
 166          {
 167   1          uchar rr0,rr1,rr5;
 168   1          for(rr0=2;rr0>0;rr0--)
 169   1          {     
 170   2                rr1=y+0x40;
 171   2                WRI(rr1);
 172   2                rr1=x+0xB9;
 173   2                WRI(rr1);
 174   2                        while(KK<5)
 175   2                        {
 176   3                                for(rr5=16;rr5>0;rr5--)
 177   3                                {
 178   4                                    rr1=*(*(p+KK)+LL);
 179   4                        WRD(rr1);
C51 COMPILER V7.50   LCD                                                                   08/17/2007 14:21:05 PAGE 4   

 180   4                        delay1();
 181   4                        LL++; 
 182   4                                }
 183   3                     break;            
 184   3                    }                                                                            
 185   2                    x++;                                                                         
 186   2          }
 187   1              LL=0;KK++;
 188   1          rr1=0xC0;
 189   1          WRI(rr1);
 190   1          rr1=0x3F;
 191   1          WRI(rr1);
 192   1              rr0=5;
 193   1          for(rr0=5;rr0>0;rr0--)
 194   1          {
 195   2              delay3();

⌨️ 快捷键说明

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