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

📄 hd66421.lst

📁 单片机接口技术实用子程序配套源代码:里面有许多基本实用的例子
💻 LST
字号:
C51 COMPILER V7.06   HD66421                                                               04/17/2005 14:21:50 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE HD66421
OBJECT MODULE PLACED IN HD66421.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil20\C51\BIN\C51.EXE HD66421.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //-----------------------函数声明--------------------------------------------------------
   2          #include"stdio.h"
   3          #include"absacc.h"
   4          #include"reg51.h"
   5          //-----------------------LCD接口管脚声明--------------------------------------------------------
   6          sbit LCD_RS=P3^0;  //寄存器选择信号
   7          sbit LCD_RD=P3^1;  //读选择信号
   8          sbit LCD_WR=P3^2;  //写选择信号
   9          sbit LCD_CS=P3^3;  //片选信号
  10          #define DATA_IO P1
  11          //-----------------------定义各命令字--------------------------------------------------------
  12          #define LCD_R0TURNOFF 0x18     //设置控制寄存器1(R0)的状态
  13                                         //00011000B左边第二位为0表示关闭显示
  14          #define LCD_R0TURNON  0x58     //设置控制寄存器1(R0)的状态
  15                                         //01011000B左边第二位为1表示开启显示
  16          #define LCD_R1CON2    0x11      //设置控制寄存器2(R1)的状态
  17                                         //00010001B选择1/11偏置电压,8BIT宽度,4级固定灰度
  18                                                                     //            100行显示,y地址自动增1,启动闪烁功能               、、
  19          #define LCD_R16dbd    0x2F     //设置控制寄存器16,选择刷新率和对比度
  20                                         //00111111B 选择刷新率为7,对比比度15/31
  21          unsigned char PAGE;            //当前显示页码标志
  22          //--------------------------------------------------------------------------------------------------
  23          // 函数名称: LCD_WRITE_index
  24          // 入口参数: index 索引号
  25          // 函数功能: 些索引寄存器
  26          //--------------------------------------------------------------------------------------------------
  27          void LCD_WRITE_index(unsigned char index)
  28          {
  29   1          LCD_RD=1;
  30   1          LCD_CS=0;
  31   1          LCD_RS=0;
  32   1              LCD_WR=0;
  33   1              DATA_IO=index;//写索引代码
  34   1              LCD_WR=1;
  35   1              LCD_RS=1;
  36   1         }
  37          //--------------------------------------------------------------------------------------------------
  38          // 函数名称: LCD_WRITE_DATA
  39          // 入口参数: ndata 数据寄存器状态值
  40          // 函数功能: 将ndata写入数据寄存器
  41          //--------------------------------------------------------------------------------------------------
  42          void LCD_WRITE_data(unsigned char ndata)
  43          {
  44   1          LCD_RD=1;
  45   1          LCD_CS=0;
  46   1          LCD_RS=1;
  47   1              LCD_WR=0;
  48   1              DATA_IO=ndata;//写设置值
  49   1              LCD_WR=1;
  50   1         }
  51          //--------------------------------------------------------------------------------------------------
  52          // 函数名称:  READ_data
  53          // 返回值:   ndata 数据寄存器状态值
  54          // 函数功能: 读数据寄存器的设置值
  55          //--------------------------------------------------------------------------------------------------
C51 COMPILER V7.06   HD66421                                                               04/17/2005 14:21:50 PAGE 2   

  56          unsigned char READ_data(void)
  57          {
  58   1          unsigned char ndata;
  59   1          LCD_CS=0;
  60   1              LCD_WR=1;    
  61   1          LCD_RS=1;
  62   1              LCD_RD=0;
  63   1              ndata=DATA_IO;//读数据寄存器的设置值
  64   1              LCD_RD=1;
  65   1              return(ndata);
  66   1         }
  67          //--------------------------------------------------------------------------------------------------
  68          // 函数名称:  LCD_init
  69          // 函数功能:  初始化设置
  70          //--------------------------------------------------------------------------------------------------
  71          void LCD_init(void)
  72          {
  73   1          LCD_WRITE_index(0);
  74   1              LCD_WRITE_data(LCD_R0TURNOFF);        //写控制寄存器1,关闭显示
  75   1              LCD_WRITE_index(1);
  76   1              LCD_WRITE_data(LCD_R1CON2);           //写控制寄存器2,选择1/11偏置电压,8BIT宽度,4级固定灰度
  77   1                                                                        //            100行显示,y地址自动增1,启动闪烁功能  
  78   1              LCD_WRITE_index(5);                   
  79   1              LCD_WRITE_data(0);                    //写R5寄存器,选择显示起始行
  80   1              LCD_WRITE_index(0x10);
  81   1              LCD_WRITE_data(LCD_R16dbd);            //设置控制寄存器16,选择刷新率和对比度
  82   1                                             //00111111B 选择刷新率为7,对比比度15/31
  83   1          PAGE=0;                            //当前页标志
  84   1         }
  85          //--------------------------------------------------------------------------------------------------
  86          // 函数名称:  WRITE_BYTE2ram
  87          // 入口参数:  show_data要显示数据
  88          // 函数功能:  往显示RAM中写入1BYTE数据
  89          //--------------------------------------------------------------------------------------------------
  90          void WRITE_BYTE2ram(unsigned char show_data)
  91          {
  92   1          LCD_WRITE_index(4);
  93   1              LCD_WRITE_data(show_data);         //往显示RAM中写入1BYTE数据
  94   1         }
  95          //--------------------------------------------------------------------------------------------------
  96          // 函数名称:  setting_x
  97          // 入口参数:  x
  98          // 函数功能:  写x地址寄存器,设置x坐标
  99          //--------------------------------------------------------------------------------------------------
 100          void setting_x(unsigned char x)
 101          {
 102   1          LCD_WRITE_index(2);
 103   1              LCD_WRITE_data(x);        
 104   1         }
 105          //--------------------------------------------------------------------------------------------------
 106          // 函数名称:  setting_y
 107          // 入口参数:  y
 108          // 函数功能:  写y地址寄存器,设置y坐标
 109          //--------------------------------------------------------------------------------------------------
 110          void setting_y(unsigned char y)
 111          {
 112   1          LCD_WRITE_index(3);
 113   1              LCD_WRITE_data(y);        
 114   1         }


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V7.06   HD66421                                                               04/17/2005 14:21:50 PAGE 3   

   CODE SIZE        =    119    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1    ----
   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 + -