📄 lcd12864.lst
字号:
C51 COMPILER V8.05a LCD12864 11/13/2007 09:15:28 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE LCD12864
OBJECT MODULE PLACED IN .\Target\LCD12864.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\LCD12864.c BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\LST\
-LCD12864.lst) OBJECT(.\Target\LCD12864.obj)
line level source
1 //*************************************************************************************************
2 //* *
3 //* ******************************LCD12864驱动程序************************** *
4 //* *
5 //*************************************************************************************************
6 #include "includes.h"
7
8 //*************************************************************************************************
9 //* *
10 //* ********************************读忙标志位********************************* *
11 //* *
12 //*************************************************************************************************
13 bit bCheckBusy()
14 {
15 1 LCDPORT=0xFF;
16 1 RW=1;
17 1 DI=0;
18 1 E=1;
19 1 E=0;
20 1 return BUSYSTATUS;
21 1 }
22
23 //*************************************************************************************************
24 //* *
25 //* ********************************写数据********************************* *
26 //* *
27 //*************************************************************************************************
28 void vWriteData(unsigned char ucData)
29 {
30 1 while(bCheckBusy());
31 1 LCDPORT=0xFF;
32 1
33 1 RW=0;
34 1 DI=1;
35 1 LCDPORT=ucData;
36 1 E=1;
37 1 E=0;
38 1 }
39
40 //*************************************************************************************************
41 //* *
42 //* ********************************写指令********************************* *
43 //* *
44 //*************************************************************************************************
45 void vWriteCMD(unsigned char ucCMD)
46 {
47 1 while(bCheckBusy());
48 1 LCDPORT=0xFF;
49 1
50 1 RW=0;
51 1 DI=0;
52 1 LCDPORT=ucCMD;
53 1 E=1;
54 1 E=0;
C51 COMPILER V8.05a LCD12864 11/13/2007 09:15:28 PAGE 2
55 1 }
56
57 //*************************************************************************************************
58 //* *
59 //* ********************************LCD初始化函数******************************* *
60 //* *
61 //*************************************************************************************************
62 void vLCDInitialize()
63 {
64 1 CS1=1;
65 1 CS2=1;
66 1 vWriteCMD(0x38); //8位形式,两行字符。
67 1 vWriteCMD(0x0F); //开显示。
68 1 vWriteCMD(0x01); //清屏。
69 1 vWriteCMD(0x06); //画面不动,光标右移。
70 1 vWriteCMD(LCDSTARTROW); //设置起始行。
71 1 }
72 //*************************************************************************************************
73 //* *
74 //* ******************************设置显示位置********************************* *
75 //* *
76 //*************************************************************************************************
77 vSetPosition(unsigned char ucPage,unsigned char ucLine)
78 {
79 1 if(ucLine<64)
80 1 {
81 2 CS1=1;
82 2 CS2=0;
83 2 }
84 1 else
85 1 {
86 2 CS1=0;
87 2 CS2=1;
88 2 }
89 1 vWriteCMD(LCDPAGE+ucPage);
90 1 vWriteCMD(LCDLINE+ucLine%64);
91 1 }
92 //*************************************************************************************************
93 //* *
94 //* ******************************显示自定义行********************************* *
95 //* *
96 //*************************************************************************************************
97 //在8×128的格子里显示自定义长度的一行
98 void vShowCustomRow(unsigned char ucPage,unsigned char ucLine,unsigned char ucWidth,unsigned char *ucaRow)
99 {
100 1 unsigned char ucCount; //取值范围:ucPage:0~7;ucLine:0~127;
101 1 //ucWidth:0~127;ucLine+ucWidth<128。
102 1 for(ucCount=0;ucCount<ucWidth;ucCount++)
103 1 {
104 2 vSetPosition(ucPage,ucLine+ucCount);
105 2 vWriteData(*(ucaRow+ucCount));
106 2 }
107 1 }
108
109 //*************************************************************************************************
110 //* *
111 //* ******************************清除指定范围********************************* *
112 //* *
113 //*************************************************************************************************
114 void vCleanCustom(unsigned char ucRow,unsigned char ucLine,unsigned char ucWidth,unsigned char ucHigh)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -