lcd drive.lst

来自「12位ADmax1241和1602液晶显示的一个经典的例子,文件里包括prote」· LST 代码 · 共 120 行

LST
120
字号
C51 COMPILER V8.05a   LCD_DRIVE                                                            09/01/2008 14:47:36 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE LCD_DRIVE
OBJECT MODULE PLACED IN LCD DRIVE.OBJ
COMPILER INVOKED BY: C:\Program Files\keil\C51\BIN\C51.EXE LCD DRIVE.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg51.h>
   2          #include "LCD1602.h"
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          #define High 1
   6          #define Low     0
   7          int t;
   8          sbit cs=P1^7;
   9          sbit sclk=P1^6;
  10          sbit dout=P1^5;
  11          sbit P30=P3^0;
  12          sbit P31=P3^1;
  13          sbit P32=P3^2;
  14          sbit P33=P3^3;
  15          sbit P34=P3^4;
  16          sbit P35=P3^5;
  17          sbit P36=P3^6;
  18          sbit P37=P3^7;
  19          unsigned char a[5];
  20          unsigned char b[5];
  21          unsigned char TempBuffer[10];
  22          
  23          /***************************************
  24              max1241读转换结果
  25          ****************************************/
  26          uint read_max1241()
  27                   {
  28   1                uint voltage_temp=0;
  29   1                uchar ucloop=12;
  30   1                cs=High;
  31   1                //dout=low;
  32   1                sclk=Low;
  33   1                cs=Low;
  34   1            while(dout==0);//EOC信号为高表示转换结束
  35   1                sclk=High;
  36   1                sclk=Low;
  37   1            while(ucloop--)
  38   1                 {
  39   2                      sclk=High;//上升沿数据稳定并读出
  40   2                      voltage_temp<<=1;
  41   2                  if(dout==1)
  42   2                  voltage_temp+=1;
  43   2                  sclk=Low;
  44   2                      };       
  45   1                //sclk=low;
  46   1                cs=High;
  47   1                return voltage_temp;
  48   1                }
  49          
  50          void IntToStr(unsigned char *str, unsigned char n) 
  51          {
  52   1              char i, j;
  53   1          t=read_max1241();
  54   1              b[0]=(t/10000)%10;         //取得整数值到数组           
  55   1              b[1]=(t/1000)%10;                                       
C51 COMPILER V8.05a   LCD_DRIVE                                                            09/01/2008 14:47:36 PAGE 2   

  56   1              b[2]=(t/100)%10;                                        
  57   1              b[3]=(t/10)%10;                                         
  58   1              b[4]=(t/1)%10;
  59   1          for(i=0; i<5; i++)                          
  60   1              a[i]=b[i];
  61   1          for(i=0; i<5; i++)         //转成ASCII码                    
  62   1              a[i]=a[i]+'0';                                                                                             
             -                      
  63   1              for(i=0; a[i]=='0' && i<=3; i++);                       
  64   1              for(j=5-n; j<i; j++)       //填充空格                   
  65   1                      { *str=' ';  str++; }                                   
  66   1              for(; i<5; i++)                                         
  67   1                      { *str=a[i]; str++; }  //加入有效的数字                 
  68   1              *str='\0'; 
  69   1      }
  70           
  71          void Delay1ms(unsigned int count)
  72          {
  73   1              unsigned int i,j;
  74   1              for(i=0;i<count;i++)
  75   1              for(j=0;j<120;j++);
  76   1      }
  77          
  78          main()
  79          {   
  80   1              LCD_Initial();
  81   1              GotoXY(0,0);
  82   1              Print("The 1602LCD Test");
  83   1              GotoXY(0,1);
  84   1              Print("Input NO.:       ");
  85   1      
  86   1              while(1)
  87   1              { 
  88   2                      IntToStr(&TempBuffer[0],5);
  89   2                      GotoXY(11,1);
  90   2                      Print(&TempBuffer[0]);
  91   2                      Delay1ms(100);
  92   2              }
  93   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    536    ----
   CONSTANT SIZE    =     35    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     22       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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