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

📄 23.lst

📁 1602LCD显示代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   23                                                                    03/25/2008 09:55:11 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 23
OBJECT MODULE PLACED IN 23.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 3\23.c BROWSE DEBUG OBJECTEXTEND PRINT(.\23.lst) OBJECT(23.obj)

stmt level    source

   1          #include <sst89E564RD.H>
   2          #include<intrins.h>
   3          
   4          #define uchar unsigned char
   5          #define uint  unsigned int
   6          
   7          #define disdata  P0       //显示数据码输出口
   8          
   9          #define channel_0  0x02   //单通道0输入选择
  10          #define channel_1  0x03   //单通道1输入选择
  11          
  12          sbit ADC_CS = P3^4;        //片选端
  13          sbit ADC_CLK= P1^0;        //时钟端
  14          sbit ADC_DI = P1^1;        //数据输入输出复用
  15          sbit ADC_DO = P1^1;        //DI和DO端都接在P1.1
  16          
  17          sbit  ACC0=ACC^0;          //通道与输入方式控制字
  18          sbit  ACC1=ACC^1;          //通道与输入方式控制字
  19          
  20          sbit LCD_RS = P2^0;             
  21          sbit LCD_RW = P2^1;
  22          sbit LCD_EN = P2^2;
  23          
  24          uint data dis[4]={0x00,0x00,0x00,0x00}; 
  25                                    //定义3个显示数据单元和一个数据存储单元
  26          
  27          uchar code dis4[] = {"DIGITALVOLTMETER"};
  28          uchar code dis5[] = {" VOLTAGE:  .  V "};
  29          
  30          /********************************************************************/
  31          /*                                                                  */
  32          /*  延时函数                                                        */
  33          /*                                                                  */
  34          /********************************************************************/
  35          
  36          void delay(uchar ms)
  37          {
  38   1          while(ms--)
  39   1              {
  40   2            uchar i;
  41   2                for(i=0;i<250;i++)  
  42   2                 {
  43   3                  _nop_();                       
  44   3                      _nop_();
  45   3                      _nop_();
  46   3                      _nop_();
  47   3                 }
  48   2              }
  49   1      }               
  50          
  51          /********************************************************************/
  52          /*                                                                  */
  53          /*检查LCD忙状态                                                     */
  54          /*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。       */
  55          /*                                                                  */
C51 COMPILER V7.06   23                                                                    03/25/2008 09:55:11 PAGE 2   

  56          /********************************************************************/ 
  57          
  58          bit lcd_busy()
  59           {                          
  60   1          bit result;
  61   1          LCD_RS = 0;
  62   1          LCD_RW = 1;
  63   1          LCD_EN = 1;
  64   1          _nop_();
  65   1          _nop_();
  66   1          _nop_();
  67   1          _nop_();
  68   1          result = (bit)(P0&0x80);
  69   1          LCD_EN = 0;
  70   1          return result; 
  71   1       }
  72          
  73          /********************************************************************/
  74          /*                                                                  */
  75          /*写指令数据到LCD                                                   */
  76          /*RS=L,RW=L,E=高脉冲,D0-D7=指令码。                              */
  77          /*                                                                  */
  78          /********************************************************************/
  79          
  80          void lcd_wcmd(uchar cmd)
  81          
  82          {                          
  83   1         while(lcd_busy());
  84   1          LCD_RS = 0;
  85   1          LCD_RW = 0;
  86   1          LCD_EN = 0;
  87   1          _nop_();
  88   1          _nop_(); 
  89   1          P0 = cmd;
  90   1          _nop_();
  91   1          _nop_();
  92   1          _nop_();
  93   1          _nop_();
  94   1          LCD_EN = 1;
  95   1          _nop_();
  96   1          _nop_();
  97   1          _nop_();
  98   1          _nop_();
  99   1          LCD_EN = 0;  
 100   1      }
 101          
 102          /********************************************************************/
 103          /*                                                                  */
 104          /*写显示数据到LCD                                                   */
 105          /*RS=H,RW=L,E=高脉冲,D0-D7=数据。                                */
 106          /*                                                                  */
 107          /********************************************************************/
 108          
 109          void lcd_wdat(uchar dat)
 110          {                          
 111   1         while(lcd_busy());
 112   1          LCD_RS = 1;
 113   1          LCD_RW = 0;
 114   1          LCD_EN = 0;
 115   1          P0 = dat;
 116   1          _nop_();
 117   1          _nop_();
C51 COMPILER V7.06   23                                                                    03/25/2008 09:55:11 PAGE 3   

 118   1          _nop_();
 119   1          _nop_();
 120   1          LCD_EN = 1;
 121   1          _nop_();
 122   1          _nop_();
 123   1          _nop_();
 124   1          _nop_();
 125   1          LCD_EN = 0; 
 126   1      }
 127          
 128          /********************************************************************/
 129          /*                                                                  */
 130          /*  LCD初始化设定                                                   */
 131          /*                                                                  */
 132          /********************************************************************/
 133          
 134          void lcd_init()
 135          {                        
 136   1          lcd_wcmd(0x38);      //16*2显示,5*7点阵,8位数据
 137   1          delay(5);
 138   1          lcd_wcmd(0x38);         
 139   1          delay(5);
 140   1          lcd_wcmd(0x38);         
 141   1          delay(5);
 142   1      
 143   1          lcd_wcmd(0x0c);      //显示开,关光标
 144   1          delay(5);
 145   1          lcd_wcmd(0x06);      //移动光标
 146   1          delay(5);
 147   1          lcd_wcmd(0x01);      //清除LCD的显示内容
 148   1          delay(5);
 149   1      }
 150          
 151          /********************************************************************/
 152          /*                                                                  */
 153          /*  设定显示位置                                                    */
 154          /*                                                                  */

⌨️ 快捷键说明

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