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

📄 12864zkb.lst

📁 STC89C58+DS18B20原代码.并将温度显示在128*64的液晶显示屏上
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.06   12864ZKB                                                              09/16/2007 17:58:10 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 12864ZKB
OBJECT MODULE PLACED IN E:\项目资料\200607\12864ZK\12864ZKb.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe E:\项目资料\200607\12864ZK\12864ZKb.c LARGE ROM(LARGE) BR DB OE SB CD

stmt level    source

   1          /*
   2          **长沙太阳人电子有限公司SMG12864ZK并行接口参考程序
   3          **电话:  0731-4167806,4167808
   4          **E-mail: www@sunman.cn
   5          **Create by :谭超  E-mail: tanchao_1@126.com
   6          **最后修改 :  2005年8月25日
   7          */
   8          //#include "STC89C51RC.h"
   9          #include <reg51.h>
  10          #include <intrins.h>
  11          #define uchar unsigned char
  12          #define uint unsigned int
  13          //#include "d1820.h"
  14          //float Read_Temperature(void);
  15           //unsigned char Temp_a,Temp_b; //温度值
  16          //union char_float
  17          //{
  18           //   unsigned char TempChar[2];
  19          //    float TempFloat;
  20          //}CharFloat;
  21           /*
  22          sbit RS = P3^0;
  23          sbit RW = P3^3;
  24          sbit E = P3^4;
  25          sbit PSB = P3^1;          //串并口选择
  26          sbit RES = P3^5;
  27                     */
  28          //sbit RW = P2^1;
  29          //sbit RS = P2^0;
  30          
  31          //sbit E = P2^7;
  32          //sbit CS_DS12C887=P2^3;
  33          //sbit BEEP = P1^6;
  34          //sbit CS_KEY_WR = P2^4;
  35          //sbit CS_KEY_RD = P2^2;
  36           #define LCD P0
  37          
  38          uchar LCDdata;
  39          sbit RS=P3^3;
  40          sbit RW=P3^5;
  41          sbit E=P3^7;
  42          sbit RST=P3^6;
  43          
  44          //sfr AUXR = 0x8e;
  45          
  46          //sbit PSB = P3^1;          //串并口选择
  47          //sbit RES = P3^5;
  48          
  49          #define FIRST_ADDR 0       //定义字符/汉字显示起始位置
  50          //void delay(int useconds) {
  51          //int s;
  52          //for (s=0; s<useconds;s++);
  53          //}
  54          void delay(unsigned int t)
  55          {  unsigned int i,j;
C51 COMPILER V7.06   12864ZKB                                                              09/16/2007 17:58:10 PAGE 2   

  56   1         for(i=0;i<t;i++)
  57   1            for(j=0;j<10;j++)
  58   1               ;
  59   1      }
  60          
  61          //测忙
  62          void chk_busy()
  63          { unsigned char State;
  64   1         RS=0;
  65   1         RW=1;
  66   1         E=1;
  67   1       //  while((P0&0x80)==0x80);
  68   1      delay(0);
  69   1          E=0;
  70   1      }
*** WARNING C280 IN LINE 63 OF E:\项目资料\200607\12864ZK\12864ZKB.C: 'State': unreferenced local variable
  71          
  72          //读数据
  73          unsigned char lcdrd()
  74          {  unsigned char i;
  75   1         P3=0xFB;
  76   1         _nop_();
  77   1         E=1;
  78   1         delay(5);
  79   1         i=P0;
  80   1         _nop_();
  81   1         E=0;
  82   1         return i;
  83   1      }
  84          
  85          //写数据
  86          void lcdwd(unsigned char dispdata)
  87          {  chk_busy();
  88   1         _nop_();
  89   1         RS=1;
  90   1         RW=0;
  91   1         E=1;
  92   1         P0=dispdata;
  93   1         delay(5);
  94   1         _nop_();
  95   1         E=0;
  96   1         _nop_();
  97   1         P0=0xff;
  98   1      }
  99          
 100          //写指令代码
 101          void lcdwc(unsigned char cmdcode)
 102          {  chk_busy();
 103   1         _nop_();
 104   1         RS=0;
 105   1         RW=0;
 106   1         E=1;
 107   1         P0=cmdcode;
 108   1         delay(5);
 109   1         _nop_();
 110   1         E=0;
 111   1         _nop_();
 112   1         P0=0xff;
 113   1      }
 114          
 115          //初始化
 116          void lcdreset()
C51 COMPILER V7.06   12864ZKB                                                              09/16/2007 17:58:10 PAGE 3   

 117          {  delay(2000);
 118   1         lcdwc(0x30);       //选择基本指令集
 119   1         lcdwc(0x30);       //选择8bit数据流
 120   1         delay(5);
 121   1         lcdwc(0x0c);       //开显示(无游标、不反白)
 122   1         delay(5);
 123   1         lcdwc(0x01);       //清除显示,并且设定地址指针为00H
 124   1         delay(5);
 125   1         lcdwc(0x06);       //指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位
 126   1      }
 127          
 128          void hzkdis(unsigned char code *s)
 129          {  while(*s>0)
 130   1         {  lcdwd(*s);
 131   2            s++;
 132   2            delay(500);
 133   2         }
 134   1      }
 135          
 136          void hzklib()
 137          {
 138   1        unsigned char TempString[16];
 139   1      //  sprintf(TempString,"温度:%f,",26.45);
 140   1         lcdwc(0x80+FIRST_ADDR);
 141   1         hzkdis(TempString);
*** WARNING C259 IN LINE 141 OF E:\项目资料\200607\12864ZK\12864ZKB.C: 'parameter': pointer: different mspace
 142   1      
 143   1         lcdwc(0x80+FIRST_ADDR);
 144   1         hzkdis("温度:Read_Temperature() ,");
 145   1         lcdwc(0x90+FIRST_ADDR);
 146   1         hzkdis("乡音无改鬓毛衰。");
 147   1         lcdwc(0x88+FIRST_ADDR);
 148   1         hzkdis("儿童相见不相识,");
 149   1         lcdwc(0x98+FIRST_ADDR);
 150   1         hzkdis("笑问客从何处来。");
 151   1      }
 152          
 153          //整屏显示
 154          //当ii=0时显示上面128×32
 155          //当ii=8时显示下面128×32
 156          void lcdfill(unsigned char disdata)
 157          {  unsigned char x,y,ii;
 158   1         for(ii=0;ii<9;ii+=8)
 159   1            for(y=0;y<0x20;y++)
 160   1               for(x=0;x<8;x++)
 161   1               {  lcdwc(0x36);
 162   2                  lcdwc(y+0x80);        //行地址
 163   2                  lcdwc(x+0x80+ii);     //列地址
 164   2                  lcdwc(0x30);
 165   2                  lcdwd(disdata);
 166   2                  lcdwd(disdata);
 167   2               }
 168   1      }
 169          
 170          //当ii=0时显示上面128×32
 171          //当ii=8时显示下面128×32
 172          void lcdfill_upright(unsigned char disdata)
 173          {  unsigned char x,y,ii;
 174   1         unsigned char i,f,k;
 175   1         for(ii=0;ii<9;ii+=8)
 176   1            for(y=0;y<4;y++)
 177   1            {  f=disdata;
C51 COMPILER V7.06   12864ZKB                                                              09/16/2007 17:58:10 PAGE 4   

 178   2               for(i=0;i<8;i++)
 179   2               {  if((f&1)==1)
 180   3                     k=0xff;
 181   3                  else
 182   3                     k=0;
 183   3                  for(x=0;x<8;x++)
 184   3                  {  lcdwc(0x36);
 185   4                     lcdwc(y*8+i+0x80);
 186   4                     lcdwc(x+0x80+ii);
 187   4                     lcdwc(0x30);
 188   4                     lcdwd(k);
 189   4                     lcdwd(k);
 190   4                  }
 191   3                  f>>=1;
 192   3               }
 193   2            }
 194   1      }
 195          
 196          main()
 197          {
 198   1      unsigned char i,t1;
 199   1      //float t1;
 200   1      // Read_Temperature();
 201   1      
 202   1      
 203   1      /*union char_int
 204   1      {
 205   1         unsigned char TempChar[2];
 206   1         UINT TempInt;
 207   1      }CharInt;*/
 208   1      
 209   1      
 210   1      // AUXR =0;
 211   1      //  BEEP = 0;
 212   1       // CS_KEY_RD =1;
 213   1       // CS_KEY_WR =1;
 214   1       i=0x55;
 215   1      //   RES=0;
 216   1       _nop_();
 217   1       //  RES=1;
 218   1         while(1)
 219   1         { // PSB=1;
 220   2           /* E =0;
 221   2            E= 1;
 222   2            E = 0;
 223   2            RW=1;
 224   2            RW=0;
 225   2            RS=0;
 226   2            RS=1;
 227   2            P0 = 0xAA;*/
 228   2          //  CS_DS12C887=1;
 229   2      
 230   2            lcdreset();       //初始化LCD屏
 231   2            lcdwc(0x01);
 232   2            delay(1000);
 233   2           lcdfill(0xff);
 234   2            delay(6000);
 235   2            lcdfill(i);               //显示竖条
 236   2            delay(6000);
 237   2            lcdfill_upright(i);       //显示横条
 238   2            delay(6000);
 239   2            lcdfill(0);
C51 COMPILER V7.06   12864ZKB                                                              09/16/2007 17:58:10 PAGE 5   

 240   2            lcdwc(0x01);
 241   2            delay(1000);
 242   2            hzklib();
 243   2            delay(4000);
 244   2            i=~i;
 245   2             for(;;){}
 246   2         }
 247   1      }
*** WARNING C280 IN LINE 198 OF E:\项目资料\200607\12864ZK\12864ZKB.C: 't1': unreferenced local variable
C51 COMPILER V7.06   12864ZKB                                                              09/16/2007 17:58:10 PAGE 6   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION L?0050 (BEGIN)
0000 C2B5              CLR     RW
0002 D2B7              SETB    E
0004 AF01              MOV     R7,AR1
0006 8F80              MOV     P0,R7
0008         L?0051:
0008 7F05              MOV     R7,#05H
000A 7E00              MOV     R6,#00H
             ; FUNCTION _delay (BEGIN)
                                           ; SOURCE LINE # 54
;---- Variable 't' assigned to Register 'R6/R7' ----
                                           ; SOURCE LINE # 55
                                           ; SOURCE LINE # 56
;---- Variable 'i' assigned to Register 'R4/R5' ----
000C E4                CLR     A
000D FD                MOV     R5,A
000E FC                MOV     R4,A
000F         ?C0001:
000F C3                CLR     C
0010 ED                MOV     A,R5
0011 9F                SUBB    A,R7
0012 EC                MOV     A,R4
0013 9E                SUBB    A,R6
0014 5015              JNC     ?C0007
                                           ; SOURCE LINE # 57
;---- Variable 'j' assigned to Register 'R2/R3' ----
0016 E4                CLR     A
0017 FB                MOV     R3,A
0018 FA                MOV     R2,A

⌨️ 快捷键说明

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