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

📄 displaylcd.lst

📁 STC单片机控制8位8段式液晶显示程序
💻 LST
字号:
C51 COMPILER V8.02   DISPLAYLCD                                                            09/30/2007 17:06:43 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE DISPLAYLCD
OBJECT MODULE PLACED IN displaylcd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE displaylcd.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <stdarg.h>
   2          #include <string.h>
   3          #include <stdlib.h>
   4          #include <stdio.h>
   5          #include <ctype.h>
   6          #include "reg52.h"
   7          #include "intrins.h"
   8          #define    uchar   unsigned char
   9          #define    uint    int
  10          /***************************HT1621常数定义*****************************/
  11          #define    RAMSIZE     16             //RAM区16字节
  12          #define    BIAS        0x52           //1/3偏压,4个公共口
  13          #define    RC256K      0x30           //片内RC振荡器
  14          #define    SYSEN       0x02           //打开系统振荡器
  15          #define    SYSDIS      0x00           //关闭系统振荡器河LCD偏压发生器
  16          #define    LCDON       0x06           //打开LCD偏压发生器
  17          #define    SYSDIS      0X00           /*关闭振荡发生器*/
*** WARNING C317 IN LINE 17 OF displaylcd.c: attempt to redefine macro 'SYSDIS'
  18          #define    LCDOFF      0X04           /*显示关闭*/
  19          #define    TONE4       0X80           /*设置BZ 输出频率为4K*/
  20          #define    TONEON      0X12           /*打开BZ 音频输出*/
  21          #define    TONEOFF     0X10           /*关闭BZ 音频输出*/
  22          #define    CLRWDT      0X1c           /*清零WDT*/
  23          #define    F1          0X40           /*WDT设置为4 秒溢出*/
  24          #define    IRQEN       0X10           /*IRQ 输出禁止*/
  25          #define    IRQDIS      0X00           /*IRQ 输出允许*/
  26          #define    WDTEN       0X0e           /*打开WDT*/
  27          #define    WDTDIS      0X0a           /*关闭WDT*/
  28          #define    TIMERDIS    0X08           /*关闭时基输出*/
  29          /***************************HT1621常数定义***************************
  30          #define    RAMSIZE     16             //RAM区16字节
  31          #define    BIAS        0x29           //1/3偏压,4个公共口
  32          #define    RC256K      0x18           //片内RC振荡器
  33          #define    SYSEN       0x01           //打开系统振荡器
  34          #define    SYSDIS      0x00           //关闭系统振荡器河LCD偏压发生器
  35          #define    LCDON       0x03           //打开LCD偏压发生器
  36          #define    lcd_osci    0x14          //   XTAL 32
  37          #define    wtd_dis     0x05
  38          #define    wtd_en      0x07 
  39          #define    irq_dis     0x80
  40          #define    irq_en      0x88
  41          #define    f1          0xa0
  42          #define    f8          0xa3
  43          #define    clr_wtd     0x0e
  44             ********************************************************/
  45          //#define    sbit HT_WR       P1^2          //读写线
  46          //#define    sbit HT_CS       P1^1        //片选线
  47          //#define    sbit HT_DATA     P1^3           //数据线 
  48                      sbit    HT_WR   =  P1^3;          
  49                          sbit    HT_CS   =  P1^2;
  50                  sbit    HT_DATA =  P1^1;
  51          void   EnableHt1621(void);
  52          void   SendBitToHt1621(uchar nbit,uchar n);
  53          void   SendCommandToHt1621(uchar command);
  54          void   ResetHt1621(void);
C51 COMPILER V8.02   DISPLAYLCD                                                            09/30/2007 17:06:43 PAGE 2   

  55          void   SetupHt1621(void);
  56          void   SendByteToHt1621(uchar addr,uchar byte);
  57          void   SendStringToHt1621(uchar addr,uchar *ptr,uchar len);
  58          void   Ht1621DisplayAll(void);
  59          void   Delay(void);
  60          void   Delay1s(void);
  61          /**********************************************************************
  62          延时函数 用于调整CLK 脉冲宽度
  63          ***********************************************************************/
  64          void Delay(void)
  65          {
  66   1        uchar i;
  67   1        for(i=0;i<10;i++){}; 
  68   1      }
  69          
  70          /**********************************************************************
  71          长延时函数
  72          ***********************************************************************/
  73          void Delay1s(void)
  74          {
  75   1      uchar i;
  76   1      uint j;
  77   1      
  78   1      for(i=0;i<100;i++)
  79   1      for(j=0;j<1300;j++);
  80   1      }
  81          
  82          /*********************************************************************************
  83          函数名称:void  EnableHt1621(void)
  84          函数功能:使能HT1621
  85          函数输入:无
  86          函数输出:无
  87          **********************************************************************************/
  88          void  EnableHt1621(void)
  89          {
  90   1           HT_CS=0;            
  91   1           HT_WR=1;            
  92   1               Delay();
  93   1           HT_WR=0;
  94   1               Delay(); 
  95   1      }
  96          /*********************************************************************************
  97          函数名称:SendBitToHt1621(uchar nbit,uchar n)
  98          函数功能:向HT1621发送数据
  99          函数输入:nbit:发送的位串    n:发送的位数
 100          函数输出:无
 101          *********************************************************************************/
 102          void  SendBitToHt1621(uchar nbit,uchar n)
 103          {
 104   1           uchar i; 
 105   1           for(i=0;i<n;i++)
 106   1           {
 107   2              if(nbit>=0x80)        
 108   2                HT_DATA=1; 
 109   2              else
 110   2                HT_DATA=0;
 111   2              HT_WR=0;
 112   2                      Delay();
 113   2              HT_WR=1;
 114   2                      Delay();
 115   2              nbit<<=1;
 116   2           }
C51 COMPILER V8.02   DISPLAYLCD                                                            09/30/2007 17:06:43 PAGE 3   

 117   1      }
 118          /************************************************/
 119          void  SenddataBitToHt1621(uchar nbit,uchar n)
 120          {
 121   1           uchar i; 
 122   1           for(i=0;i<n;i++)
 123   1           {
 124   2              if(nbit>=0x80)        
 125   2                HT_DATA=1; 
 126   2              else
 127   2                HT_DATA=0;
 128   2              HT_WR=0;
 129   2                      Delay();
 130   2              HT_WR=1;
 131   2                      Delay();
 132   2              nbit>>=1;
 133   2           }
 134   1      }
 135          /***********************************************************************************
 136          函数名称:void  sendcommandtoht1621(uchar command)
 137          函数功能:发送命令到HT1621
 138          函数输入:command:命令参数
 139          函数输出:无
 140          ***********************************************************************************/
 141          void  SendCommandToHt1621(uchar command)
 142          {
 143   1           EnableHt1621();
 144   1           SendBitToHt1621(0x80,4);
 145   1           SendBitToHt1621(command,8);
 146   1           HT_WR=1;
 147   1           Delay();
 148   1               HT_CS=1;
 149   1           Delay();
 150   1               HT_DATA=1;
 151   1      }
 152          /***********************************************************************************
 153          函数名称:void  ResetHt1621(void)
 154          函数功能:复位HT1621
 155          函数输入:无
 156          函数输出:无
 157          ***********************************************************************************/
 158          void  ResetHt1621(void)
 159          {
 160   1           HT_WR=1;
 161   1           Delay();
 162   1               HT_CS=1;
 163   1           Delay();
 164   1               HT_DATA=1;
 165   1      }
 166          /***********************************************************************************
 167          函数名称:void  SetupHt1621(void)
 168          函数功能:初始化HT1621
 169          函数输入:无
 170          函数输出:无
 171          ***********************************************************************************/
 172          void  SetupHt1621(void)                  
 173          {          
 174   1           SendCommandToHt1621(SYSEN);
 175   1          // SendCommandToHt1621(lcd_osci);
 176   1           SendCommandToHt1621(BIAS);       
 177   1           SendCommandToHt1621(RC256K);     
 178   1          // SendCommandToHt1621(F1);    
C51 COMPILER V8.02   DISPLAYLCD                                                            09/30/2007 17:06:43 PAGE 4   

 179   1           SendCommandToHt1621(WDTDIS);
 180   1          // SendCommandToHt1621(IRQDIS);
 181   1           SendCommandToHt1621(LCDON);    
 182   1      }
 183          /***********************************************************************************
 184          函数名称:void  SendByteToHt1621(uchar addr,uchar byte)
 185          函数功能:初始化HT1621
 186          函数输入:addr:地址   byte:发送的字节
 187          函数输出:无
 188          ***********************************************************************************/
 189          void  SendByteToHt1621(uchar addr,uchar byte)                     
 190          {
 191   1           addr<<=3;
 192   1           EnableHt1621(); 
 193   1           SendBitToHt1621(0xA0,3);       
 194   1           SendBitToHt1621(addr,6);        
 195   1           SendBitToHt1621(byte,8);       
 196   1           HT_WR=1;
 197   1           //NOP();
 198   1           Delay();
 199   1               HT_CS=1;  
 200   1      }
 201          /*********************************************************************************************************
             -*****************
 202          //函数名称:void  SendStringToHt1621(uchar addr,uchar *ptr,uchar len)
 203          //函数功能:发送字符串给HT1621
 204          //函数输入:addr:起始地址   ptr:发送的字符串   len:发送的字符串长度
 205          //函数输出:无
 206          **********************************************************************************************************
             -*****************/
 207          void  SendStringToHt1621(uchar addr,uchar *ptr,uchar len)
 208          {
 209   1           uchar i;
 210   1           addr<<=2;
 211   1           EnableHt1621(); 
 212   1           SendBitToHt1621(0xa0,3);               
 213   1           SendBitToHt1621(addr,6);                
 214   1           if((len+addr)>RAMSIZE)len=RAMSIZE-addr;   
 215   1           for(i=0;i<len;i++)                        
 216   1           {      
 217   2                SendBitToHt1621(ptr[i],8);           
 218   2           }
 219   1           HT_CS=1;
 220   1      }
 221          
 222          
 223          /******test*******/
 224          void  main(void)
 225          {
 226   1        uchar a,temp,add;
 227   1        uchar addr;
 228   1        temp=0xad;
 229   1        //a=0x5f;
 230   1        addr=0x02;
 231   1       // add=0x01;
 232   1       
 233   1        ResetHt1621();
 234   1        SetupHt1621();
 235   1        while(1)
 236   1        {
 237   2              SendByteToHt1621(addr,temp);
 238   2          Delay1s();
C51 COMPILER V8.02   DISPLAYLCD                                                            09/30/2007 17:06:43 PAGE 5   

 239   2              Delay1s();
 240   2              Delay1s();
 241   2              temp++;
 242   2              if(temp== 0xff) temp = 0;
 243   2        }
 244   1        //SendByteToHt1621(add<<=2,a);
 245   1        //SendStringToHt1621(0,a,5);
 246   1        
 247   1      }
*** WARNING C280 IN LINE 226 OF DISPLAYLCD.C: 'a': unreferenced local variable
*** WARNING C280 IN LINE 226 OF DISPLAYLCD.C: 'add': unreferenced local variable


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    348    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       9
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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