📄 12864
字号:
180 * 全局静态变量:
181 * 局部静态变量:
182 *----------------------------------------修改历史------------------------------------------
183 * 当前版本 : 修改人: 修改日期:
184 * 修改说明 :
185 ******************************************************************************************/
186 unsigned char ReadData( void )
187 {
188 1 CheckBusy();
189 1 SendByte(0xfe); //11111,RW(1),RS(1),0
190 1 return ReceiveByte();
191 1 }
192 /******************************************************************************************
193 * 函数名称 :Delay
194 * 功能描述 :
195 * 参数 : 参数名称: 输入/输出? 类型 描述
196 *
197 * 返回值 :
198 * 作者 :
199 * 创建日期 :2006-12-19
200 * 全局变量 :
201 * 全局静态变量:
202 * 局部静态变量:
203 *----------------------------------------修改历史------------------------------------------
204 * 当前版本 : 修改人: 修改日期:
205 * 修改说明 :
206 ******************************************************************************************/
207 void Delay(unsigned int MS)
208 {
209 1 unsigned char us,usn;
210 1 while(MS!=0) //for 12M
211 1 { usn = 2;
212 2 while(usn!=0)
213 2 {
214 3 us=0xf5;
215 3 while (us!=0){us--;};
216 3 usn--;
217 3 }
218 2 MS--;
219 2 }
220 1 }
221 /******************************************************************************************
222 * 函数名称 :DelayKey
223 * 功能描述 :
224 * 参数 : 参数名称: 输入/输出? 类型 描述
225 *
226 * 返回值 :
227 * 作者 :
228 * 创建日期 :2006-12-19
229 * 全局变量 :
230 * 全局静态变量:
231 * 局部静态变量:
232 *----------------------------------------修改历史------------------------------------------
233 * 当前版本 : 修改人: 修改日期:
234 * 修改说明 :
235 ******************************************************************************************/
236 void DelayKey(unsigned int Second , unsigned int MS100)
237 { //输入精确到0.1S,是用","
238 1 unsigned int i;
239 1 for(i=0;i<Second*100+MS100*10;i++)
240 1 {
241 2 if(Key==0)
C51 COMPILER V7.50 12864_串行C51演蔩程序 07/24/2007 11:25:30 PAGE 5
242 2 {
243 3 Delay(20);
244 3 while(Key==0) {Delay(20);}
245 3 break;
246 3 }
247 2 else Delay(10);
248 2 }
249 1 }
250 /******************************************************************************************
251 * 函数名称 :LcmInit
252 * 功能描述 :
253 * 参数 : 参数名称: 输入/输出? 类型 描述
254 *
255 * 返回值 :
256 * 作者 :
257 * 创建日期 :2006-12-19
258 * 全局变量 :
259 * 全局静态变量:
260 * 局部静态变量:
261 *----------------------------------------修改历史------------------------------------------
262 * 当前版本 : 修改人: 修改日期:
263 * 修改说明 :
264 ******************************************************************************************/
265 void LcmInit( void )
266 {
267 1 WriteCommand(0x30); //8BitMCU,基本指令集合
268 1 WriteCommand(0x03); //AC归0,不改变DDRAM内容
269 1 WriteCommand(0x0C); //显示ON,游标OFF,游标位反白OFF
270 1 WriteCommand(0x01); //清屏,AC归0
271 1 WriteCommand(0x06); //写入时,游标右移动
272 1 }
273
274 /******************************************************************************************
275 * 函数名称 :LcmClearTXT
276 * 功能描述 :文本区清RAM函数
277 * 参数 : 参数名称: 输入/输出? 类型 描述
278 *
279 * 返回值 :
280 * 作者 :
281 * 创建日期 :2006-12-19
282 * 全局变量 :
283 * 全局静态变量:
284 * 局部静态变量:
285 *----------------------------------------修改历史------------------------------------------
286 * 当前版本 : 修改人: 修改日期:
287 * 修改说明 :
288 ******************************************************************************************/
289 void LcmClearTXT( void )
290 {
291 1 unsigned char i;
292 1 WriteCommand(0x30); //8BitMCU,基本指令集合
293 1 WriteCommand(0x80); //AC归起始位
294 1 for(i=0;i<64;i++)
295 1 WriteData(0x20);
296 1 }
297
298 /******************************************************************************************
299 * 函数名称 :LcmClearBMP
300 * 功能描述 :图形区清RAM函数
301 * 参数 : 参数名称: 输入/输出? 类型 描述
302 * 图形区和文本区显示在两个不同的RAM区
303 * 返回值 :
C51 COMPILER V7.50 12864_串行C51演蔩程序 07/24/2007 11:25:30 PAGE 6
304 * 作者 :
305 * 创建日期 :2006-12-19
306 * 全局变量 :
307 * 全局静态变量:
308 * 局部静态变量:
309 *----------------------------------------修改历史------------------------------------------
310 * 当前版本 : 修改人: 修改日期:
311 * 修改说明 :
312 ******************************************************************************************/
313 void LcmClearBMP( void )
314 {
315 1 unsigned char i,j;
316 1 WriteCommand(0x34); //8Bit扩充指令集,即使是36H也要写两次
317 1 WriteCommand(0x36); //绘图ON,基本指令集里面36H不能开绘图
318 1 for(i=0;i<32;i++) //12864实际为256x32
319 1 {
320 2 WriteCommand(0x80|i); //行位置
321 2 WriteCommand(0x80); //列位置
322 2 for(j=0;j<32;j++) //256/8=32 byte
323 2 WriteData(0);
324 2 }
325 1 }
326 /******************************************************************************************
327 * 函数名称 :PutStr
328 * 功能描述 :
329 * 参数 : 参数名称: 输入/输出? 类型 描述
330 *
331 * 返回值 :
332 * 作者 :
333 * 创建日期 :2006-12-19
334 * 全局变量 :
335 * 全局静态变量:
336 * 局部静态变量:
337 *----------------------------------------修改历史------------------------------------------
338 * 当前版本 : 修改人: 修改日期:
339 * 修改说明 :
340 ******************************************************************************************/
341 void PutStr(unsigned char row,unsigned char col,unsigned char *puts)
342 {
343 1 WriteCommand(0x30); //8BitMCU,基本指令集合
344 1 WriteCommand(AC_TABLE[8*row+col]); //起始位置
345 1 while(*puts != '\0') //判断字符串是否显示完毕
346 1 {
347 2 if(col==8) //判断换行
348 2 { //若不判断,则自动从第一行到第三行
349 3 col=0;
350 3 row++;
351 3 }
352 2 if(row==4) row=0; //一屏显示完,回到屏左上角
353 2 WriteCommand(AC_TABLE[8*row+col]);
354 2 WriteData(*puts); //一个汉字要写两次
355 2 puts++;
356 2 WriteData(*puts);
357 2 puts++;
358 2 col++;
359 2 }
360 1 }
361 /******************************************************************************************
362 * 函数名称 :PutBMP
363 * 功能描述 :
364 * 参数 : 参数名称: 输入/输出? 类型 描述
365 *
C51 COMPILER V7.50 12864_串行C51演蔩程序 07/24/2007 11:25:30 PAGE 7
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -