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

📄 1602_display.lst

📁 完成了温度采集并显示的功能
💻 LST
字号:
C51 COMPILER V7.10   1602_DISPLAY                                                          05/24/2008 18:19:06 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE 1602_DISPLAY
OBJECT MODULE PLACED IN .\output\1602_display.obj
COMPILER INVOKED BY: C:\C51\BIN\C51.EXE source\1602_display.c BROWSE DEBUG OBJECTEXTEND PRINT(.\list\1602_display.lst) O
                    -BJECT(.\output\1602_display.obj)

line level    source

   1          #include <aduc834.h>
   2          #include"..\headers\1602.h"
   3          
   4          
   5          extern unsigned char code CGTAB[32];
   6          bit LCD_BUSY;
   7          void LCD_Init()
   8          {
   9   1              unsigned char data i;
  10   1              WR_CMD(Mode_2row_5_10); //8位数据接口,5x7点阵,单行显示
  11   1              for(i=0;i<3;i++)                //厂家要求,未明原因
  12   1              {
  13   2                      LCD_En=1;
  14   2                      LCD_En=0;                       //下降沿操作
  15   2                      Wait(1000);
  16   2              }
  17   1              //WR_CMD(Mode_2row_5_7);        //8位数据模式,2行显示,5x7点阵
  18   1              WR_CMD(Scr_clc);                //清屏
  19   1              WR_CMD(Dis_NoCur);      //光标闪烁
  20   1      //      WR_CMD(Mode_Cur_R);
  21   1              WR_CGRAM(CGTAB,32,0x00);//      建立CGRAM字库 
  22   1              
  23   1      }
  24          /***********短延时子程序*************************/
  25          
  26          void Wait(int data length)
  27          {
  28   1              while (length >=0)
  29   1              length--;
  30   1      }
  31          
  32          /**********写指令子程序*****************************/
  33          
  34          void WR_CMD(unsigned char command)
  35          
  36          {       while(CHECK_LCD_BUSY());
  37   1              LCD_RS  = 0;//CODE REGESTER
  38   1              LCD_RW  = 0;//WRITE MODE
  39   1              DAT_BUS = command;
  40   1              LCD_En  = 1; //下降沿触发使能
  41   1              LCD_En  = 0;
  42   1      }
  43          
  44          /**********写显示数据子程序**********************************/
  45          
  46          void WR_DAT(unsigned char dat)
  47          
  48          {       
  49   1          while(CHECK_LCD_BUSY());
  50   1              LCD_RS  = 1;//DATA REGESTER
  51   1              LCD_RW  = 0;//WRITE MODE
  52   1              
  53   1                DAT_BUS = dat; //向总线写数据
  54   1                LCD_En  = 1; //下降沿触发使能
C51 COMPILER V7.10   1602_DISPLAY                                                          05/24/2008 18:19:06 PAGE 2   

  55   1                LCD_En  = 0;
  56   1      
  57   1      }
  58          
  59          /********建立CGRAM字库**********************************/
  60          
  61          void WR_CGRAM(unsigned char *CGTAB,unsigned char counter,unsigned char address)
  62          {
  63   1      
  64   1              unsigned char data i;
  65   1      
  66   1          WR_CMD(0x40|address);                  //设置CGRAM的地址
  67   1      
  68   1              for(i=0;i<counter;i++)
  69   1              {
  70   2                      WR_DAT(CGTAB[i]);  //自定义字符数据写入CGRAM
  71   2                      
  72   2              }
  73   1      
  74   1      
  75   1      }
  76          /*****************DDRAM地址指针设置*************************/
  77          
  78          void DDRAM_ADDR_SET(unsigned char row,unsigned char column)
  79          {
  80   1         unsigned char address;
  81   1         address = column;
  82   1         if (row==2)
  83   1         {
  84   2               address |= 0x40;               //修正第二行显示地址40H--67H
  85   2         }
  86   1         address |= 0x80 ;                    //设置DDRAM地址指针命令
  87   1         WR_CMD(address);
  88   1      
  89   1      }
  90          
  91          /******************BUSY位检测子程序******************************/
  92          
  93          unsigned char CHECK_LCD_BUSY()
  94          {
  95   1       unsigned char temp1;
  96   1       LCD_RS  = 0;
  97   1       LCD_RW  = 1;                                    //读LCD状态
  98   1       DAT_BUS = 0xFF;
  99   1       LCD_En  = 1;
 100   1       temp1   = DAT_BUS;                              //状态值读入
 101   1       LCD_En  = 0;
 102   1       temp1 &= 0x80;                                  //取最高位,把其他位屏蔽
 103   1       return temp1;
 104   1      
 105   1      }


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

C51 COMPILER V7.10   1602_DISPLAY                                                          05/24/2008 18:19:06 PAGE 3   


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

⌨️ 快捷键说明

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