📄 shiyan.lst
字号:
C51 COMPILER V7.00 SHIYAN 04/02/2007 11:56:29 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE SHIYAN
OBJECT MODULE PLACED IN shiyan.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE shiyan.c DEBUG OBJECTEXTEND
stmt level source
1 #include <reg51.h>
2 #include <intrins.h>
3
4 #define GDM12864ADataPort P1 //LCD数据线
5
6 sbit DI=P2^2; // 数据\指令 选择
7 sbit RW=P2^1; // 读\写 选择
8 sbit EN=P2^0; // 读\写使能
9 sbit cs1=P2^4; // 片选1
10 sbit cs2=P2^3; // 片选2
11 sbit UP=P0^0;//定义UP
12 sbit DOWN=P0^1;//定义DOWN
13 sbit TEST=P3^0;//定义DOWN
14 unsigned char i,j,t;
15 static int nxx;
16 int t0,t1,t2,t3,tx,k,k0,k1,k2,k3;
17 //*--------函数列表-------
18
19 //状态检查
20 void CheckState()
21 {
22 1 unsigned char dat;
23 1 DI=0;
24 1 RW=1;
25 1 do{
26 2 GDM12864ADataPort=0x00;
27 2 EN=1;
28 2 dat=GDM12864ADataPort;
29 2 EN=0;
30 2 dat=0x80 & dat; //仅当第7位为0时才可操作(判别busy信号)
31 2 }while(!(dat==0x00));
32 1 }
33 /*-----------------------------------------------------------------------------------------------------*/
34 //向LCD发送命令
35 //command :命令
36 SendCommandToLCD(unsigned char command)
37 {
38 1 CheckState();
39 1 RW=0;
40 1 GDM12864ADataPort=command;
41 1 EN=1; EN=0;
42 1 }
43 /*----------------------------------------------------------------------------------------------------*/
44 //写显示数据
45 //dat:显示数据
46 void WriteByte(unsigned char dat)
47 {
48 1
49 1 CheckState();
50 1 DI=1; RW=0;
51 1 GDM12864ADataPort=dat;
52 1 EN=1; EN=0;
53 1 }
54 /*----------------------------------------------------------------------------------------------------*/
55 //读显示数据
C51 COMPILER V7.00 SHIYAN 04/02/2007 11:56:29 PAGE 2
56 unsigned char ReadByte()
57 {
58 1 unsigned char dat;
59 1 CheckState();
60 1 DI=1; RW=1;
61 1 GDM12864ADataPort=0xff;
62 1 EN=1; dat=GDM12864ADataPort; EN=0;
63 1 return(dat);
64 1 }
65 /*----------------------------------------------------------------------------------------------------*/
66 //设定行地址(页)--X 0-7
67 void SetLine(unsigned char line)
68 {
69 1 line=line & 0x07; // 0<=line<=7
70 1 line=line|0xb8; //1011 1xxx
71 1 SendCommandToLCD(line);
72 1 }
73 /*----------------------------------------------------------------------------------------------------*/
74 //设定列地址--Y 0-63
75 void SetColumn(unsigned char column)
76 {
77 1 column=column &0x3f; // 0=<column<=63
78 1 column=column | 0x40; //01xx xxxx
79 1 SendCommandToLCD(column);
80 1 }
81 /*----------------------------------------------------------------------------------------------------*/
82 //设定显示开始行--XX
83 void SetStartLine(unsigned char startline) //0--63
84 {
85 1 startline=startline & 0x07;
86 1 startline=startline|0xc0; //1100 0000
87 1 SendCommandToLCD(startline);
88 1 }
89 /*----------------------------------------------------------------------------------------------------*/
90 //开关显示
91 void SetOnOff(unsigned char onoff)
92 {
93 1 onoff=0x3e | onoff; //0011 111x
94 1 SendCommandToLCD(onoff);
95 1 }
96 /*---------------------------------------------------------------------------------------------------*/
97 //选择屏幕
98 //screen: 0-全屏,1-左屏,2-右屏
99 void SelectScreen(unsigned char screen)
100 { //cs1: 1--左; cs2: 1--右
101 1 switch(screen)
102 1 { case 0: cs1=0;//全屏
103 2 _nop_(); _nop_(); _nop_();
104 2 cs2=0;
105 2 _nop_(); _nop_(); _nop_();
106 2 break;
107 2 case 1: cs1=0;//左屏
108 2 _nop_(); _nop_(); _nop_();
109 2 cs2=1;
110 2 _nop_(); _nop_(); _nop_();
111 2 break;
112 2 case 2: cs1=1;//右屏
113 2 _nop_(); _nop_(); _nop_();
114 2 cs2=0;
115 2 _nop_(); _nop_(); _nop_();
116 2 break;
117 2 }
C51 COMPILER V7.00 SHIYAN 04/02/2007 11:56:29 PAGE 3
118 1 }
119 /*---------------------------------------------------------------------------------------------------*/
120 //延时
121 GDM12864delay()
122 {
123 1 unsigned int i=500;
124 1 while(i--) {;}
125 1 }
126
127 /*---------------------------------------------------------------------------------------------------*/
128 //清屏
129 //screen: 0-全屏,1-左屏,2-右
130 void ClearScreen(unsigned char screen)
131 { unsigned char i,j;
132 1 SelectScreen(screen);
133 1 for(i=0;i<8;i++){
134 2 SetLine(i);
135 2 for(j=0;j<128;j++){
136 3 WriteByte(0x00);
137 3 }
138 2 }
139 1
140 1 }
141 /*---------------------------------------------------------------------------------------------------*/
142 //初始化LCD
143 void InitLCD()
144 { unsigned char i=250; //延时
145 1 while(i--);
146 1
147 1 SelectScreen(0);
148 1 SetOnOff(0); //关显示
149 1 //ClearScreen(0);//清屏
150 1
151 1 SelectScreen(0);
152 1 SetOnOff(1); //开显示
153 1 SelectScreen(0);
154 1 SetStartLine(0); //开始行:0
155 1 }
156 /*----------------------------------------------------------------------------------------------------*/
157
158
159
160 /*----------------------------------------------------------------------------------------------*/
161 unsigned char code ASC[]={
162 /*.--0x2E */
163 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
164 0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00,
165
166 /*'/'--0x2F */
167 0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x00,
168 0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,
169
170 /*0--0x30 */
171 0xF8,0xFC,0x04,0xC4,0x24,0xFC,0xF8,0x00,
172 0x07,0x0F,0x09,0x08,0x08,0x0F,0x07,0x00,
173
174 /*1--0x31 */
175 0x00,0x10,0x18,0xFC,0xFC,0x00,0x00,0x00,
176 0x00,0x08,0x08,0x0F,0x0F,0x08,0x08,0x00,
177
178 /*2--0x32 */
179 0x08,0x0C,0x84,0xC4,0x64,0x3C,0x18,0x00,
C51 COMPILER V7.00 SHIYAN 04/02/2007 11:56:29 PAGE 4
180 0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0C,0x00,
181
182 /*3--0x33 */
183 0x08,0x0C,0x44,0x44,0x44,0xFC,0xB8,0x00,
184 0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00,
185
186 /*4--0x34 */
187 0xC0,0xE0,0xB0,0x98,0xFC,0xFC,0x80,0x00,
188 0x00,0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,
189
190 /*5--0x35 */
191 0x7C,0x7C,0x44,0x44,0xC4,0xC4,0x84,0x00,
192 0x04,0x0C,0x08,0x08,0x08,0x0F,0x07,0x00,
193
194 /*6--0x36 */
195 0xF0,0xF8,0x4C,0x44,0x44,0xC0,0x80,0x00,
196 0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,
197
198 /*7--0x37 */
199 0x0C,0x0C,0x04,0x84,0xC4,0x7C,0x3C,0x00,
200 0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0x00,
201
202 /*8--0x38 */
203 0xB8,0xFC,0x44,0x44,0x44,0xFC,0xB8,0x00,
204 0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,
205
206 /*9--0x39 */
207 0x38,0x7C,0x44,0x44,0x44,0xFC,0xF8,0x00,
208 0x00,0x08,0x08,0x08,0x0C,0x07,0x03,0x00
209 };
210 /*----------------------------------------------------------------------------------------------*/
211 #define CB6AB 0x0000 /*东 */
212 #define CC4CF CB6AB+32 /*南 */
213
214 //从左到右从上到下,纵向8点下高位分粗细体
215 unsigned char code Hztable[]={
216 //" "
217 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
218 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
219 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
220 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
221 //" "
222 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
223 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
224 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
225 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
226 //"唐"
227 0x00,0x00,0x00,0xFE,0xFC,0x84,0xA4,0xA4,
228 0xA5,0xFF,0xFE,0xA4,0xE4,0xF6,0xA4,0x80,
229 0x00,0x80,0x40,0x3F,0x1F,0xFC,0xFA,0x4A,
230 0x4A,0x4F,0x4F,0x4A,0xFB,0xFF,0x10,0x00,
231 //0x00,0x00,0xFC,0x44,0x54,0x54,0x54,0x55,
232 //0xFE,0x54,0x54,0x54,0xF6,0x44,0x40,0x00,
233 //0x40,0x30,0x0F,0x00,0xFD,0x45,0x45,0x45,
234 //0x47,0x45,0x45,0x45,0xFD,0x00,0x00,0x00,
235
236 //"山",
237 0x00,0x00,0xC0,0x80,0x00,0x00,0x00,0x00,
238 0xFE,0xFC,0x00,0x00,0x00,0x00,0xC0,0x80,
239 0x00,0x00,0xFF,0x7F,0x20,0x20,0x20,0x20,
240 0x3F,0x3F,0x20,0x20,0x20,0x20,0xFF,0x7F,
241
C51 COMPILER V7.00 SHIYAN 04/02/2007 11:56:29 PAGE 5
242 //"华",
243 0x00,0x40,0x20,0x30,0xFC,0xF7,0x02,0x80,
244 0x60,0xFF,0xFE,0x18,0x0E,0xC4,0x00,0x00,
245 0x00,0x08,0x08,0x08,0x0B,0x09,0x08,0xFE,
246 0xFE,0x09,0x0B,0x0B,0x0B,0x0B,0x0D,0x08,
247
248 //"光",
249 0x00,0x00,0x80,0x82,0xBC,0x98,0x80,0xFF,
250 0xFE,0x80,0xE0,0xB8,0x9E,0xC4,0x80,0x00,
251 0x00,0x80,0x80,0x40,0x60,0x38,0x1F,0x07,
252 0x00,0x7F,0xFF,0xC0,0xC0,0xC0,0xF0,0x40,
253 //" "
254 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
255 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
256 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
257 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
258 //" "
259 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
260 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
261 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
262 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
263
264 //"自",
265 0x00,0x00,0x00,0xFC,0xF8,0x88,0x8C,0x8F,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -