📄 hd66421.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 + -