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

📄 yanjing12864new.lst

📁 LCD应用系统程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V7.06   YANJING12864NEW                                                       06/10/2008 11:06:13 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE YANJING12864NEW
OBJECT MODULE PLACED IN yanjing12864new.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE yanjing12864new.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          
   2          #include <at89x51.h>
   3          #include <intrins.h>
   4          #include<ds18b20.h>
   5          
   6          #define uchar unsigned char
   7          #define uint  unsigned int
   8          #define lcm P1
   9          sbit p_csl=P2^2;
  10          sbit p_csr=P2^1;
  11          sbit p_di=P2^3;
  12          sbit p_rw=P2^4;
  13          sbit p_e=P2^5;
  14          sbit p_rst=P2^0;
  15          sbit xiayi=P3^5;
  16          sbit sure=P3^6;
  17          sbit fanhui=P3^7;
  18          sbit alarm=P2^6;
  19          uchar code t[];
  20          uchar code tu[];
  21          uchar code tu1[];
  22          uchar code tu2[];
  23          uchar code xzi[];
  24          uchar code zuobiao[];
  25          uchar ye,lie,shu,r,temp,tp[5]={0,0,0,0,0};
  26          uint fanbai=0,shi=3,ge=5;
  27          bit baojing=0,ss=0;
  28          
  29          unsigned int i,h,aa=0,bb=0,dd,xuanzhe=0,ad,rr,q=0,lu=1;
  30          unsigned char ye,lei,shu,yy,zan,zan1,zan2,zan3,zan4,d1=0x00,d2=0x00,d3=0x00,d4=0x00,d5=0x00,date1,ff,gg; 
  31          
  32          uchar code ds18b20_num2[8][8]={
  33                                    {0xAE,0x00,0x00,0x01,0xBC,0x71,0xFD,0x28},
  34                                    {0xEB,0x00,0x00,0x01,0xBC,0x4D,0x22,0x28},
  35                                    {0x3A,0x00,0x00,0x01,0xBC,0x71,0xE7,0x28},
  36                                                            {0x77,0x00,0x00,0x01,0xBC,0x48,0x09,0x28},
  37                                                            {0x48,0x00,0x00,0x01,0xBC,0x58,0xCD,0x28},
  38                                                            {0xA6,0x00,0x00,0x01,0xBC,0x7E,0x36,0x28},
  39                                                            {0x72,0x00,0x00,0x01,0xBC,0x55,0x96,0x28},
  40                                    {0x74,0x00,0x00,0x01,0xBC,0x6D,0xE9,0x28},
  41                                     };
  42          /*uchar code ds18b20_num2[8][8]={
  43                                    {0x8e,0x00,0x00,0x00,0xb8,0xc5,0x30,0x28},
  44                                    {0x16,0x00,0x00,0x00,0xb8,0xc5,0x40,0x28},
  45                                    {0xB9,0x00,0x00,0x00,0xb8,0xc5,0x31,0x28},
  46                                                            {0xe0,0x00,0x00,0x00,0xb8,0xc5,0x32,0x28},
  47                                                            {0xd7,0x00,0x00,0x00,0xb8,0xc5,0x33,0x28},
  48                                    {0x52,0x00,0x00,0x00,0xb8,0xc5,0x34,0x28},
  49                                                            {0x65,0x00,0x00,0x00,0xb8,0xc5,0x35,0x28},
  50                                                            {0x3c,0x00,0x00,0x00,0xb8,0xc5,0x36,0x28},
  51                                    };*/
  52          //uchar ds18b20_num2[8]={0x16,0x00,0x00,0x00,0xb8,0xc5,0x40,0x28};
  53          
  54          /*****函数声明********/
  55          void delay(uint k);
C51 COMPILER V7.06   YANJING12864NEW                                                       06/10/2008 11:06:13 PAGE 2   

  56          void wcode(uchar c,uchar csl,uchar csr);
  57          void wdata(uchar c,uchar csl,uchar csr);
  58          void set_statrline(uchar i);
  59          void set_xy(uchar x,uchar y);
  60          void dison_off(uchar o);
  61          void reset();
  62          void lcd_init(void);
  63          void lw(uchar x,uchar y,uchar dd);//写数据函数
  64          void disp_Hz(uchar xx,uchar yy,uchar n,uchar fb);//显示汉字
  65          void disp_Ez(uchar xx,uchar yy,uchar n,uchar fb);
  66          
  67          //延时
  68          void delay(uint k)
  69          {       uint i;
  70   1          for(;k>0;k--)
  71   1               {      for(i=0;i<124;i++)
  72   2                    {;}
  73   2                }
  74   1      }
  75          
  76          //
  77          
  78          
  79          //LCM忙判断
  80          void lcd_busy(void)
  81          {       p_di=0;
  82   1          p_rw=1;
  83   1          /*lcm=0xff;
  84   1          while(1)
  85   1           {  p_e=1;
  86   1              if(lcm<0x80)
  87   1               break;
  88   1              p_e=0;
  89   1           }
  90   1          p_e=0;*/
  91   1      }
  92          //写指令到LCM
  93          void wcode(uchar c,uchar csl,uchar csr)
  94          {       p_csl=csl;
  95   1          p_csr=csr;
  96   1          lcd_busy();
  97   1          p_di=0;
  98   1          p_rw=0;
  99   1          lcm=c;//将变量C赋予LCM
 100   1          p_e=1;
 101   1          p_e=0;
 102   1      }
 103          //写数据到LCM子函数
 104          void wdata(uchar c,uchar csl,uchar csr)
 105          {       p_csl=csl;
 106   1          p_csr=csr;
 107   1          lcd_busy();
 108   1          p_di=1;
 109   1          p_rw=0;
 110   1          lcm=c;//将变量C赋予LCM
 111   1          p_e=1;
 112   1          p_e=0;
 113   1      }
 114          //设定起始行
 115          void set_startline(uchar i)
 116          {       i=0xc0+i;
 117   1          wcode(i,1,1);
C51 COMPILER V7.06   YANJING12864NEW                                                       06/10/2008 11:06:13 PAGE 3   

 118   1      }
 119          //定位X方向,Y方向
 120          void set_xy(uchar x,uchar y)
 121          {       x=x+0x40;
 122   1          y=y+0xb8;
 123   1          wcode(x,1,1);
 124   1          wcode(y,1,1);
 125   1      }
 126          //屏幕开启、关闭
 127          void dison_off(uchar o)
 128          {       o=o+0x3e;  //o为1为开,为0是关
 129   1          wcode(o,1,1);
 130   1      }
 131          //复位子函数
 132          void reset()
 133          {//delay(1000);
 134   1              p_rst=0;
 135   1          delay(20);
 136   1          p_rst=1;
 137   1         delay(20);
 138   1      }
 139          //LCM初始化
 140          void lcd_init(void)
 141          {       uchar x,y;
 142   1          reset();
 143   1          dison_off(0);
 144   1          for(y=0;y<8;y++) 
 145   1           { for(x=0;x<128;x++)
 146   2               lw(x,y,0);
 147   2            }
 148   1          dison_off(1);
 149   1         set_startline(0);
 150   1      }
 151          //写数据到LCM
 152          void lw(uchar x,uchar y,uchar dd)
 153          {       if(x>=64)
 154   1            { 
 155   2                 set_xy(x-64,y);
 156   2             wdata(dd,0,1);
 157   2            }
 158   1           else
 159   1                { set_xy(x,y);
 160   2                  wdata(dd,1,0);
 161   2                }
 162   1        }
 163          void xieshuju(uint csl,uint csr)
 164           {
 165   1        wcode(ye,csl,csr);
 166   1        wcode(lie,csl,csr);
 167   1        wdata(shu,csl,csr);
 168   1        }
 169          
 170          void xianshi(uchar y1,uchar l1,uint k,uint csl,uint csr)
 171            {
 172   1         uchar j;
 173   1         lie=l1;
 174   1         for(j=0;j<8;j++,lie++)
 175   1         {
 176   2          ye=y1;
 177   2          shu=t[2*j+16*k];
 178   2              if (fanbai==1) shu=~shu;
 179   2          xieshuju(csl,csr);
C51 COMPILER V7.06   YANJING12864NEW                                                       06/10/2008 11:06:13 PAGE 4   

 180   2              ye++;
 181   2              shu=t[2*j+1+16*k];
 182   2              if (fanbai==1) shu=~shu;
 183   2              xieshuju(csl,csr);
 184   2              }
 185   1              ye--;
 186   1         }
 187          
 188          void caidanhanshu(uint b)
 189          {
 190   1        xianshi(r,0x60,b,1,0); 
 191   1        b++;
 192   1        xianshi(r,0x68,b,1,0); 
 193   1         b++;
 194   1        xianshi(r,0x70,b,1,0); 
 195   1         b++;
 196   1        xianshi(r,0x78,b,1,0); 
 197   1         b++;
 198   1        xianshi(r,0x40,b,0,1); 
 199   1         b++;
 200   1        xianshi(r,0x48,b,0,1); 
 201   1         b++;
 202   1        xianshi(r,0x50,b,0,1); 
 203   1         b++;
 204   1        xianshi(r,0x58,b,0,1); 
 205   1       }
 206           void qinglin()
 207            {
 208   1        xianshi(r,0x60,10,1,0); 
 209   1        xianshi(r,0x68,10,1,0); 
 210   1        xianshi(r,0x70,10,1,0); 
 211   1        xianshi(r,0x78,10,1,0); 
 212   1        xianshi(r,0x40,10,0,1); 
 213   1        xianshi(r,0x48,10,0,1); 
 214   1        xianshi(r,0x50,10,0,1); 
 215   1        xianshi(r,0x58,10,0,1);
 216   1         }
 217          void qingpin()
 218            {
 219   1       for(lie=0x40;lie<=0x7f;lie++)
 220   1        {
 221   2               for(ye=0xb8;ye<=0xbf;ye++)
 222   2             {
 223   3                  shu=0x00;
 224   3                      xieshuju(1,1);
 225   3                  }
 226   2               }
 227   1      
 228   1        }
 229          
 230          void xieyihangzi(uchar ye1,uint zi)
 231            {
 232   1       ye=ye1;
 233   1         for(lie=0x50;lie<=0x78;zi++)
 234   1         {
 235   2         xianshi(ye,lie,zi,1,0);
 236   2          } 
 237   1         
 238   1       for(lie=0x40;lie<=0x68;zi++)
 239   1           {
 240   2         xianshi(ye,lie,zi,0,1);
 241   2           } 
C51 COMPILER V7.06   YANJING12864NEW                                                       06/10/2008 11:06:13 PAGE 5   

 242   1         }
 243          
 244          void wenduchuli()
 245             {
 246   1          if((gao>>4)==0)
 247   1       {
 248   2       temp=(gao<<4)|(di>>4);
 249   2       tp[0]=temp/100;
 250   2       tp[1]=(temp%100)/10;
 251   2       tp[2]=temp%10;
 252   2       tp[3]=(di&0x0f)*625/1000;
 253   2       }
 254   1       else
 255   1        {
 256   2      if(di==0)
 257   2       {
 258   3       di=~di+1;
 259   3       gao=~gao+1;
 260   3       }
 261   2        else
 262   2       {
 263   3        di=~di+1;
 264   3        gao=~gao;
 265   3        }
 266   2       tp[0]=191;
 267   2       temp=(gao<<4)|(di>>4);
 268   2      
 269   2       tp[1]=temp/10;
 270   2       tp[2]=temp%10;
 271   2         }
 272   1        }     
 273          
 274          void xiexiaozi(uchar a,uchar b,uint c,uint csl,uint csr)
 275           {
 276   1       uchar i;
 277   1        ye=a;
 278   1        lie=b;
 279   1        for(i=0;i<4;i++)
 280   1        {

⌨️ 快捷键说明

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