📄 lcd.lst
字号:
C51 COMPILER V7.10 LCD 12/14/2004 10:51:15 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN .\Lcd.obj
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE ..\SourceFile\Lcd.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\L
-cd.lst) OBJECT(.\Lcd.obj)
line level source
1 /*************************************************/
2
3 /**************液晶显示屏*******************/
4
5 /***************2003年1月20日*******************/
6
7 /************WROTE BY WANGSW********************/
8
9
10
11
12
13 #include <absacc.h> /*XBYTE绝对外部内存空间头文件*/
14 #include <string.h>
15 #include <intrins.h>
16 #include "define.h"
17 #include "ascii.h"
18 #include "lcd.h"
19
20
21 #ifdef DP_51
22 #define WLCD XBYTE[0xF800] /*r定义WLCD为写LCD的内容*/
23 #define RLCD XBYTE[0xF801] /*r定义RLCD为读LCD的内容*/
24 #define RS XBYTE[0xF802] /*对于TG19264A1,RS=0为命令,RS=1为数据*/
25 #endif
26
27 #ifdef TG19264
28 #define MAX_COLUMN 64
29 #define MAX_PAGE 8
30 #endif
31
32
33 #define SendCtr(value) RS = 0; RS = 0; WLCD = value;
34 #define SendData(value) RS = 1; RS = 1; WLCD = value;
35
36 /*******************************************************************/
37 //static void SendCtr(byte value);
38 //static void SendData(byte value);
39 static void SetPage(byte value);
40 static void SetColumn(byte value);
41 static void InitTg19264(void);
42
43
44
45
46 /******************************************************************************************
47 *函数名: SetPage
48 *参数: value 设置的页码值,从0~7有效
49 *返回值: 无
50 *描述: 对于TG19264液晶屏,设置当前操作的页码值
51 *编写: 王绍伟
52 *版本信息: V1.0 2003年8月15日
53 ******************************************************************************************/
54 static void SetPage(byte value)
C51 COMPILER V7.10 LCD 12/14/2004 10:51:15 PAGE 2
55 {
56 1 #ifdef TG19264
57 1 SendCtr(0xB8 + value);
58 1 #endif
59 1 }
60
61
62 /******************************************************************************************
63 *函数名: SetColumn
64 *参数: value 设置的X坐标位置,从0~63有效
65 *返回值: 无
66 *描述: 设置当前液晶屏操作的X坐标位置
67 *编写: 王绍伟
68 *版本信息: V1.0 2003年8月15日
69 ******************************************************************************************/
70 static void SetColumn(byte value)
71 {
72 1 #ifdef TG19264
73 1 SendCtr(0x40 + value);
74 1 #endif
75 1 }
76
77
78 /******************************************************************************************
79 *函数名: InitTg19264
80 *参数: 无
81 *返回值: 无
82 *描述: 初始化液晶屏Tg19264,对液晶屏从DDRAM中哪一行开始显示数
83 据以及设置初始的页码值和X坐标位置
84 *编写: 王绍伟
85 *版本信息: V1.0 2003年8月15日
86 ******************************************************************************************/
87 static void InitTg19264(void)
88 {
89 1 SendCtr(0xC0); /*起始显示DDRAM行(D5-D0)为第0行*/
90 1 SendCtr(0xB8); /*起始页位置(D2-D0)为第0页*/
91 1 SendCtr(0x40); /*X方向起始位置(D5-D0)为0*/
92 1 }
93
94
95 /******************************************************************************************
96 *函数名: lcd_init
97 *参数: 无
98 *返回值: 无
99 *描述: 液晶屏初始化程序,主要是清屏,开显示
100 *编写: 王绍伟
101 *版本信息: V1.0 2003年8月15日
102 ******************************************************************************************/
103 extern void lcd_init(void)
104 {
105 1 #ifdef TG19264
106 1 InitTg19264();
107 1 #endif
108 1 lcd_clear();
109 1 SendCtr(0x3F); /*显示ON/OFF D0*/
110 1 }
111
112
113 /******************************************************************************************
114 *函数名: lcd_clear
115 *参数: 无
116 *返回值: 无
C51 COMPILER V7.10 LCD 12/14/2004 10:51:15 PAGE 3
117 *描述: LCD清屏程序
118 *编写: 王绍伟
119 *版本信息: V1.0 2003年8月15日
120 ******************************************************************************************/
121 extern void lcd_clear(void)
122 {
123 1 byte page;
124 1 byte column;
125 1
126 1 for(page = 0; page < MAX_PAGE; page++)
127 1 {
128 2 RS = 0; /*r发送命令*/
129 2 WLCD = 0xB8 + page; /*r设置清空的页码*/
130 2 _nop_();
131 2 WLCD = 0x40; /*r设置清空的X坐标起始位置为0*/
132 2 _nop_();
133 2 RS = 1; /*r发送数据*/
134 2 _nop_();
135 2 for(column = 0; column < MAX_COLUMN; column++)
136 2 {
137 3 WLCD = 0x00; /*r相应显示寄存器清零*/
138 3 _nop_();
139 3 _nop_();
140 3 _nop_();
141 3 _nop_();
142 3 _nop_();
143 3 _nop_();
144 3 _nop_();
145 3 _nop_();
146 3 _nop_();
147 3 _nop_();
148 3 _nop_();
149 3 }
150 2 }
151 1 }
152
153
154 /******************************************************************************************
155 *函数名: lcd_display_graphic
156 *参数: XStart X轴起始位置,为像素点位置
157 YStart Y轴起始位置,为像素点位置
158 Width 图像宽度像素值
159 Height 图像高度像素值
160 bReverseDisplay 标识是否反显
161 GraphicIndex 图像显示索引
162 *返回值: 无
163 *描述: 显示一幅图像的程序
164 *编写: 王绍伟
165 *版本信息: V1.0 2003年8月15日
166 ******************************************************************************************/
167 extern void lcd_display_graphic( /*为整个PAGE显示,不能任意位置*/
168 byte XStart,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -