📄 show.lst
字号:
C51 COMPILER V7.10 SHOW 06/18/2007 11:05:54 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE SHOW
OBJECT MODULE PLACED IN show.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE source\show.c BROWSE DEBUG OBJECTEXTEND PRINT(.\show.lst) OBJECT(show.obj)
line level source
1
2 /*
3 *********************************************************************************************************
4 *
5 * 文 件 名 : LCD240160b.c
6 *
7 * 作 者 : Aoker
8 *
9 * 创建日期 : 2004年12月7日
10 * 描 述 : LCD的接口驱动函数
11 * 备 注: 如果显示图形时有阴影的竖状条幅出现可以给液晶的读写命令加大延时.
12 *
13 * 版 本 : 1.0
14 *********************************************************************************************************
15 */
16
17 #include <REG935.H>
18 #include"..\SOURCE\general.h"
19 #include "..\SOURCE\Lcd.h"
20 #include <math.h>
21 extern BYTE code ASCII[][16];
22 bit CS;
23
24
25 /*********************************************************************************************************
26 * 函数名称: LcdWriteCmd
27 *
28 * 功能描述: 向LCD写入指令
29 *
30 * 入口参数: bCmd,命令代码
31 *
32 * 出口参数: 无
33 *
34 * 全局变量: 无
35 *
36 * 调用模块: 无
37 *
38 * 作 者: Aoker
39 * 创建时间: 2004年12月7日
40 ********************************************************************************************************/
41 static void LcdWriteCmd(BYTE bCmd)
42 {
43 1 RD = 1;
44 1
45 1 _nop_ ();
46 1 _nop_ ();
47 1 _nop_ ();
48 1
49 1 A0 = 1;
50 1 _nop_ ();
51 1 _nop_ ();
52 1 _nop_ ();
53 1 P0 = bCmd;
54 1 _nop_ ();
55 1 _nop_ ();
C51 COMPILER V7.10 SHOW 06/18/2007 11:05:54 PAGE 2
56 1 _nop_ ();
57 1 CS = 0;
58 1 _nop_ ();
59 1 _nop_ ();
60 1 _nop_ ();
61 1 _nop_ ();
62 1 _nop_ ();
63 1 _nop_ ();
64 1 WR = 0;
65 1 _nop_ ();
66 1 _nop_ ();
67 1 _nop_ ();
68 1 WR = 1;
69 1 _nop_ ();
70 1 _nop_ ();
71 1 _nop_ ();
72 1 CS = 1;
73 1 _nop_ ();
74 1 _nop_ ();
75 1 _nop_ ();
76 1 }
77
78 /*********************************************************************************************************
79 * 函数名称: LcdWriteData
80 *
81 * 功能描述: 向LCD写入数据
82 *
83 * 入口参数: bData,液晶写入数据
84 *
85 * 出口参数: 无
86 *
87 * 全局变量: 无
88 *
89 * 调用模块: 无
90 *
91 * 作 者: Aoker
92 * 创建时间: 2004年12月7日
93 ********************************************************************************************************/
94 static void LcdWriteData(BYTE bData)
95 {
96 1 RD = 1;
97 1 _nop_ ();
98 1 _nop_ ();
99 1 _nop_ ();
100 1 A0 = 0;
101 1 _nop_ ();
102 1 _nop_ ();
103 1 _nop_ ();
104 1 P0 = bData;
105 1 _nop_ ();
106 1 _nop_ ();
107 1 _nop_ ();
108 1 CS = 0;
109 1 _nop_ ();
110 1 _nop_ ();
111 1 _nop_ ();
112 1 WR = 0;
113 1 _nop_ ();
114 1 _nop_ ();
115 1 _nop_ ();
116 1 WR = 1;
117 1 _nop_ ();
C51 COMPILER V7.10 SHOW 06/18/2007 11:05:54 PAGE 3
118 1 _nop_ ();
119 1 _nop_ ();
120 1 CS = 1;
121 1 _nop_ ();
122 1 _nop_ ();
123 1 _nop_ ();
124 1 }
125
126 /*********************************************************************************************************
127 * 函数名称: LcdRead
128 *
129 * 功能描述: 读出数据或光标地址
130 *
131 * 入口参数: 无
132 *
133 * 出口参数: 数据或光标地址
134 *
135 * 全局变量: 无
136 *
137 * 调用模块: 无
138 *
139 * 作 者: Aoker
140 * 创建时间: 2004年12月7日
141 *-------------------------------------------------------------------------------------------------------
142 * 修 改 人: Aoker
143 *
144 * 说 明: 2004年12月7日的创建的程序读液晶数据不对,造成在显示图形或汉字时,只能在横坐标整除8的位置处才能
145 * 正确显示,其他位置处显示时会出现竖状的阴影条幅. 改正之后,如果还出现,则可在液晶的读写函数里加
146 * 大延时即可解决.
147 *
148 * 修改时间: 2004年12月10日
149 ********************************************************************************************************/
150 static BYTE LcdRead(void){
151 1
152 1 BYTE bStatus;
153 1
154 1 /*
155 1 P0 = 0xff;
156 1 A0 = 1;
157 1 RD = 0;
158 1 bStatus = P0;
159 1 CS = 0;
160 1 RD = 1;
161 1 CS = 1;
162 1 */
163 1 P0 = 0xff;
164 1 _nop_ ();
165 1 _nop_ ();
166 1 _nop_ ();
167 1 RD = 1;
168 1 _nop_ ();
169 1 _nop_ ();
170 1 _nop_ ();
171 1 A0 = 1;
172 1 _nop_ ();
173 1 _nop_ ();
174 1 _nop_ ();
175 1 CS = 0;
176 1 _nop_ ();
177 1 _nop_ ();
178 1 _nop_ ();
179 1 RD = 0;
C51 COMPILER V7.10 SHOW 06/18/2007 11:05:54 PAGE 4
180 1 _nop_ ();
181 1 _nop_ ();
182 1 _nop_ ();
183 1 bStatus = P0;
184 1 _nop_ ();
185 1 _nop_ ();
186 1 _nop_ ();
187 1 CS = 1;
188 1 _nop_ ();
189 1 _nop_ ();
190 1 _nop_ ();
191 1 RD = 1;
192 1 _nop_ ();
193 1 _nop_ ();
194 1 _nop_ ();
195 1
196 1 return(bStatus);
197 1 }
198
199 /*********************************************************************************************************
200 * 函数名称: LcdInit
201 *
202 * 功能描述: LCD初始化
203 *
204 * 入口参数: 无
205 *
206 * 出口参数: 无
207 *
208 * 全局变量: 无
209 *
210 * 调用模块: LcdWriteCmd(),
211 * LcdWriteData(),
212 *
213 * 作 者: Aoker
214 * 创建时间: 2004年12月7日
215 ********************************************************************************************************/
216 void LcdInit(void)
217 {
218 1
219 1 BYTE i;
220 1
221 1 const BYTE SYSTAB[8] = {0x30,0x87,0x07,0x1D,0x42,0x9f,0x1e,0x00};
222 1 const BYTE SCRTAB[8] = {0x00,0x00,0xA0,0xC0,0x12,0xA0,0x80,0x25};
223 1 // CCU_init(80);
224 1 LcdWriteCmd(0x40);
225 1 for(i=0; i<8; i++)
226 1 {
227 2 LcdWriteData(SYSTAB[i]);
228 2 }
229 1
230 1 LcdWriteCmd(0x44);
231 1 for(i=0; i<8; i++)
232 1 {
233 2 LcdWriteData(SCRTAB[i]);
234 2 }
235 1
236 1 LcdWriteCmd(0x5A);
237 1 LcdWriteData(0x00);
238 1 LcdWriteCmd(0x5B);
239 1 LcdWriteData(0x0C);
240 1 LcdWriteCmd(0x59);
241 1 LcdWriteData(0x04);
C51 COMPILER V7.10 SHOW 06/18/2007 11:05:54 PAGE 5
242 1 }
243
244 /*********************************************************************************************************
245 * 函数名称: LcdClr
246 *
247 * 功能描述: 清除整个LCD屏幕
248 *
249 * 入口参数: 无
250 *
251 * 出口参数: 无
252 *
253 * 全局变量: 无
254 *
255 * 调用模块: LcdWriteCmd(),
256 * LcdWriteData(),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -