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

📄 main.lst

📁 用单片机驱动驱动液晶显示器
💻 LST
字号:
C51 COMPILER V7.06   MAIN                                                                  07/11/2008 19:46:18 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: F:\FengData\keilc51\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

*** WARNING C500 IN LINE 1 OF MAIN.C: MISSING DEVICE (SECURITY KEY NOT FOUND)
   1          #include "reg52.h"
   2          #include <intrins.h>
   3          //#include "LCD1602.h"
   4          //#include "DS1302.h"
   5          #define uint unsigned int
   6          #define uchar unsigned char
   7          sbit  DS1302_CLK = P1^7;              //实时时钟时钟线引脚 
   8          sbit  DS1302_IO  = P1^6;              //实时时钟数据线引脚 
   9          sbit  DS1302_RST = P1^5;              //实时时钟复位线引脚
  10          sbit  wireless_1 = P3^0;
  11          sbit  wireless_2 = P3^1;
  12          sbit  wireless_3 = P3^2;
  13          sbit  wireless_4 = P3^3;
  14          sbit  ACC0 = ACC^0;
  15          sbit  ACC7 = ACC^7;
  16          char hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year;  //秒,分,时到日,月,年位闪的计数
  17          sbit Set = P2^0;       //模式切换键
  18          sbit Up = P2^1;        //加法按钮
  19          sbit Down = P2^2;      //减法按钮
  20          sbit out = P2^3;       //立刻跳出调整模式按钮
  21          sbit DQ = P1^0;        //温度传送数据IO口
  22          char done,count,temp,flag,up_flag,down_flag;
  23          uchar temp_value;      //温度值
  24          uchar TempBuffer[5],week_value[2];
  25          
  26          
  27          
  28          /***********1602液晶显示部分子程序****************/
  29          
  30          
  31          //Port Definitions**********************************************************
  32          sbit LcdRs              = P2^5;
  33          sbit LcdRw              = P2^6;
  34          sbit LcdEn      = P2^7;
  35          sfr  DBPort     = 0x80;         //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口
  36          
  37          //内部等待函数**************************************************************************
  38          unsigned char LCD_Wait(void)
  39          {
  40   1              LcdRs=0;
  41   1              LcdRw=1;        _nop_();
  42   1              LcdEn=1;        _nop_();
  43   1                                                       
  44   1              LcdEn=0;
  45   1              return DBPort;          
  46   1      }
  47          //向LCD写入命令或数据************************************************************
  48          #define LCD_COMMAND                     0      // Command
  49          #define LCD_DATA                        1      // Data
  50          #define LCD_CLEAR_SCREEN        0x01      // 清屏
  51          #define LCD_HOMING              0x02      // 光标返回原点
  52          void LCD_Write(bit style, unsigned char input)
  53          {
  54   1              LcdEn=0;
C51 COMPILER V7.06   MAIN                                                                  07/11/2008 19:46:18 PAGE 2   

  55   1              LcdRs=style;
  56   1              LcdRw=0;                _nop_();
  57   1              DBPort=input;   _nop_();//注意顺序
  58   1              LcdEn=1;                _nop_();//注意顺序
  59   1              LcdEn=0;                _nop_();
  60   1              LCD_Wait();     
  61   1      }
  62          
  63          //设置显示模式************************************************************
  64          #define LCD_SHOW                        0x04    //显示开
  65          #define LCD_HIDE                        0x00    //显示关          
  66          
  67          #define LCD_CURSOR                      0x02    //显示光标
  68          #define LCD_NO_CURSOR           0x00    //无光标                     
  69          
  70          #define LCD_FLASH                       0x01    //光标闪动
  71          #define LCD_NO_FLASH            0x00    //光标不闪动
  72          
  73          void LCD_SetDisplay(unsigned char DisplayMode)
  74          {
  75   1              LCD_Write(LCD_COMMAND, 0x08|DisplayMode);       
  76   1      }
  77          
  78          //设置输入模式************************************************************
  79          #define LCD_AC_UP                       0x02
  80          #define LCD_AC_DOWN                     0x00      // default
  81          
  82          #define LCD_MOVE                        0x01      // 画面可平移
  83          #define LCD_NO_MOVE                     0x00      //default
  84          
  85          void LCD_SetInput(unsigned char InputMode)
  86          {
  87   1              LCD_Write(LCD_COMMAND, 0x04|InputMode);
  88   1      }
  89          
  90          //初始化LCD************************************************************
  91          void LCD_Initial()
  92          {
  93   1              LcdEn=0;
  94   1              LCD_Write(LCD_COMMAND,0x38);           //8位数据端口,2行显示,5*7点阵
  95   1              LCD_Write(LCD_COMMAND,0x38);
  96   1              LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);    //开启显示, 无光标
  97   1              LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);   //清屏
  98   1              LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);       //AC递增, 画面不动
  99   1      }
 100          
 101          //液晶字符输入的位置************************
 102          void GotoXY(unsigned char x, unsigned char y)
 103          {
 104   1              if(y==0)
 105   1                      LCD_Write(LCD_COMMAND,0x80|x);
 106   1              if(y==1)
 107   1                      LCD_Write(LCD_COMMAND,0x80|(x-0x40));
 108   1      }
 109          
 110          //将字符输出到液晶显示
 111          void Print(unsigned char *str)
 112          {
 113   1              while(*str!='\0')
 114   1              {
 115   2                      LCD_Write(LCD_DATA,*str);
 116   2                      str++;
C51 COMPILER V7.06   MAIN                                                                  07/11/2008 19:46:18 PAGE 3   

 117   2              }
 118   1      }
 119          
 120          void Delay1ms(unsigned int count)
 121          {
 122   1              unsigned int i,j;
 123   1              for(i=0;i<count;i++)
 124   1              for(j=0;j<120;j++);
 125   1      }
 126          
 127          /*延时子程序*/
 128          void mdelay(uint delay)
 129          {       uint i;
 130   1              for(;delay>0;delay--)
 131   1                      {for(i=0;i<62;i++) //1ms延时.
 132   2                      {;}
 133   2                      }
 134   1      }
 135          
 136          
 137          
 138          
 139          
 140          
 141          
 142          main()
 143          {
 144   1        Set=1;
 145   1        LCD_Initial();    //液晶初始化
 146   1        while(1)
 147   1        {
 148   2              
 149   2              if(Set==1)
 150   2              {
 151   3               GotoXY(0,0);                  //液晶字符显示位置
 152   3           Print("hello wolf");
 153   3              }
 154   2              else{
 155   3              GotoXY(0,1);
 156   3              Print("hello dong");
 157   3              }
 158   2          Print("hello ");
 159   2          Delay1ms(400);                 //扫描延时
 160   2              }
 161   1      
 162   1      
 163   1      }
 164          
 165          
 166          
 167          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    264    ----
   CONSTANT SIZE    =     29    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     21       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.

C51 COMPILER V7.06   MAIN                                                                  07/11/2008 19:46:18 PAGE 4   


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

⌨️ 快捷键说明

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