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

📄 lcd.lst

📁 温度控制PWM
💻 LST
字号:
C51 COMPILER V6.23a  LCD                                                                   12/11/2007 13:18:32 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN .\obj\Lcd.obj
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE driver\Lcd.c BROWSE DEBUG OBJECTEXTEND PRINT(.\lst\Lcd.lst) O
                    -BJECT(.\obj\Lcd.obj) 

stmt level    source

   1          #include<reg52.h>
   2          #include <intrins.h>
   3          #include "Lcd.H"
   4          #define uchar unsigned char
   5          #define uint   unsigned int
   6          unsigned char flag;
   7          
   8          sbit CS = P2^7;
   9          sbit SID= P2^6;
  10          sbit CLK= P2^5;
  11          
  12          
  13          uchar code addr[]={ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, 
  14                              0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, 
  15                              0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
  16                              0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f };//DDRAM地址
  17           
  18          uchar code datshu[]={ 0x30,/*0*/ 0x31,/*1*/0x32,/*2*/0x33,/*3*/   //数字库:0123456789.
  19                                  0x34,/*4*/ 0x35,/*5*/0x36,/*6*/0x37,/*7*/
  20                                  0x38,/*8*/ 0x39,/*9*/0x2e,/*.*/0x41,/*A*/0x56 /*V*/};
  21          
  22          
  23          /*********************************************************/
  24          /*Header:Lcd.h
  25          /*File Name:Lcd.c 
  26          /*Author: 陈培炜,杨帆
  27          /*Data;2007
  28          /*Function:程序内部调用的函数
  29          /*********************************************************/
  30          void Send(unsigned char senddata);
  31          void WriteCmd( uchar cmd );
  32          void WriteData( uchar Data );
  33          
  34          void displayChar( uchar *x_add, uchar *dat );
  35          void HanZiString(uchar x,uchar *p);
  36          
  37          void DispOrder(unsigned char x);
  38          void WriteRAM( uchar Data );
  39          
  40          void delay(unsigned int t);
  41          
  42          /*****************************初始化子程序******************************/
  43          void InitLcd(void)
  44          {
  45   1      
  46   1        CS = 1;
  47   1        WriteCmd( 0x30 );
  48   1        delay( 150 );//延时150us
  49   1      
  50   1        WriteCmd(0x30);
  51   1        delay( 45 );//延时45us
  52   1      
  53   1        WriteCmd( 0x0C );
  54   1        delay( 150 );//延时150us
C51 COMPILER V6.23a  LCD                                                                   12/11/2007 13:18:32 PAGE 2   

  55   1        
  56   1        WriteCmd( 0x01 );
  57   1        delay( 15000 );//延时12MS
  58   1        
  59   1        WriteCmd(0x06);
  60   1      }
  61          /*********************************************/
  62          /*Header:Lcd.h
  63          /*File Name:Lcd.c 
  64          /*Author: 陈培炜,杨帆
  65          /*Data;2007
  66          /*Function:
  67          /*********************************************/
  68          
  69          void cls(void)
  70          {
  71   1              WriteCmd( 0x01 );
  72   1          delay( 15000 );//延时12MS
  73   1      
  74   1      }
  75          
  76          /*****************************延时子程序***************************/
  77          void delay( uint t )
  78          {
  79   1        while( t-- );      
  80   1      }
  81          /*********************************************************** 
  82          /*Header:Lcd.h
  83          /*File Name:Lcd.c 
  84          /*Author: 陈培炜,杨帆
  85          /*Data;2007
  86          /*Function:
  87          ***********************************************************/
  88          void DelayUS(unsigned int n)       //N us延时函数
  89            {
  90   1         unsigned int i=0;
  91   1         for (i=0;i<n;i++)
  92   1             _nop_();
  93   1        }
  94          /*********************************************************** 
  95          /*Header:Lcd.h
  96          /*File Name:Lcd.c 
  97          /*Author: 陈培炜,杨帆
  98          /*Data;2007
  99          /*Function:
 100          ***********************************************************/
 101          void Send(unsigned char senddata)
 102          {
 103   1              unsigned char i;
 104   1              for(i=0;i<8;i++)
 105   1              {
 106   2                      if((senddata)&0x80)
 107   2                          SID = 1;
 108   2                      else
 109   2                              SID = 0;        
 110   2                      CLK = 1;
 111   2                      _nop_();
 112   2                      CLK = 0;
 113   2                      senddata<<=1;
 114   2              }
 115   1      }
 116          
C51 COMPILER V6.23a  LCD                                                                   12/11/2007 13:18:32 PAGE 3   

 117          
 118          /*******************************写指令子程序***************************/
 119          void WriteCmd( uchar cmd )
 120          {       
 121   1              Send(0xf8);
 122   1              Send(cmd&0xf0);
 123   1              Send(cmd<<4);   
 124   1              DelayUS(20);
 125   1      }
 126          
 127          /***********************************写数据子程序****************************/
 128          void WriteData(unsigned char Data)
 129          {
 130   1              Send(0xfa);
 131   1              Send(Data&0xf0);
 132   1              Send(Data<<4);
 133   1              DelayUS(20);     
 134   1      }
 135          /***************************************************************/
 136          void WriteRAM( uchar Data )
 137          {
 138   1              Send(0xfa);           //11111010
 139   1              Send(Data&0xf0);      //xxxx0000
 140   1              Send(Data<<4);        //xxxx0000
 141   1              delay(20);     
 142   1      }
 143          
 144          /********************显示字符*************************************/
 145          void displayChar( uchar *x_add, uchar *dat )
 146          {
 147   1           WriteCmd( *x_add );//1xxx,xxxx 设定DDRAM 7位地址xxx,xxxx到地址计数器AC
 148   1           WriteData( *dat );
 149   1      }
 150          
 151          /***************************显示字符串**************************************/
 152          
 153          void HanZiString(uchar x,uchar *p)
 154          {       
 155   1              uchar ad;
 156   1              ad = addr[x];
 157   1              WriteCmd(ad);           
 158   1              while (*p!='\0')
 159   1              {
 160   2                      WriteRAM(*(p++));
 161   2              }
 162   1      }
 163          
 164          /*********************************************************/
 165          /*Header:Lcd.h
 166          /*File Name:Lcd.c 
 167          /*Author: 陈培炜,杨帆
 168          /*Data;2007
 169          /*Function:温度与占空比的显示函数
 170          /*********************************************************/
 171          void disp(unsigned char tempreture,unsigned int high)
 172          {
 173   1              unsigned char a,b;
 174   1              unsigned int z; 
 175   1              HanZiString(0,"温度      ℃");
 176   1              a = tempreture/10;
 177   1              b = tempreture%10;
 178   1              displayChar( &addr[3],&datshu[a] );
C51 COMPILER V6.23a  LCD                                                                   12/11/2007 13:18:32 PAGE 4   

 179   1              displayChar( &addr[4],&datshu[b] );
 180   1      
 181   1              z = high/100;
 182   1              a = z/10;
 183   1              b = z%10;
 184   1              HanZiString(8,"占空比     /100 ");      
 185   1              displayChar( &addr[12],&datshu[a] );
 186   1              displayChar( &addr[13],&datshu[b] );
 187   1      }
 188          
 189          /*********************************************/
 190          /*
 191          /*       设定温度范围显示函数
 192          /*********************************************/
 193          void disp2(unsigned char dt,unsigned char ut,unsigned char flag)
 194          {
 195   1              unsigned char t,d;
 196   1                      
 197   1              HanZiString(0,"设定温度范围:");
 198   1              HanZiString(11,"——");
 199   1      
 200   1              if(flag == 0)
 201   1              {
 202   2                      HanZiString(17,"__");
 203   2                      HanZiString(21,"  ");
 204   2              }
 205   1              else
 206   1              {
 207   2                      HanZiString(17,"  ");   
 208   2                      HanZiString(21,"__");
 209   2              }
 210   1      
 211   1              t = dt/10;
 212   1              d = dt%10;
 213   1              displayChar( &addr[9],&datshu[t] );
 214   1              displayChar( &addr[10],&datshu[d] );
 215   1      
 216   1              t = ut/10;
 217   1              d = ut%10;
 218   1              displayChar( &addr[13],&datshu[t] );
 219   1              displayChar( &addr[14],&datshu[d] );
 220   1      }
 221          /*********************************************/
 222          /*********************************************/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    617    ----
   CONSTANT SIZE    =    100    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1      18
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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