📄 lcdmain.lst
字号:
156
157 init()
158 {
159 1 RDB=1;
160 1 RESET=0;
161 1 delay(200);
162 1 RESET=1;
163 1 delay(200);
164 1 init_uc1698();
165 1 RAM_ADDRESS();
166 1 refresh();
167 1 }
168
169 void init_serial()
170 {
171 1 TMOD=0x20;
172 1 TH1=0xcb;
173 1 TL1=0xcb;
174 1 TR1=1;
175 1 SM0=0;
176 1 SM1=1;
177 1 REN=1;
178 1 ES=1;
C51 COMPILER V8.05a LCDMAIN 04/20/2009 18:39:19 PAGE 4
179 1 }
180 SPI_init()
181 {
182 1 EA=1;
183 1 ES=1; //开串口中断 (须和SPI中断使能位都置高 才能使能SPI中断)
184 1 SPCTL=0xc8; //SPI控制寄存器 (从机模式 时钟极性为低有效 时钟线后延触发移位)
185 1 SPCFG=0x00; //该配置寄存器最高位--SPI字节数据传送结束标志位
186 1
187 1 }
188 void look()
189 {
190 1 unsigned char cnt;
191 1 for(cnt=0;cnt<receibufnum;cnt++)
192 1 {
193 2 ES=0;
194 2 SBUF=dispbuf[cnt];
195 2 while(!TI);
196 2 TI=0;
197 2 ES=1;
198 2 }
199 1 }
200 void initstrpui(void)
201 {
202 1 uchar i, j;
203 1
204 1 for(i=0; i<7; i++)
205 1 for(j=0; j<11; j++)
206 1 {strpui[i][j]=0;}
207 1
208 1 strpui[0][0] ='U';
209 1 strpui[0][1] ='a';
210 1 strpui[0][2] =':';
211 1 strpui[0][6] ='.';
212 1 strpui[0][8] ='V';
213 1
214 1 strpui[1][0] ='U';
215 1 strpui[1][1] ='b';
216 1 strpui[1][2] =':';
217 1 strpui[1][6] ='.';
218 1 strpui[1][8] ='V';
219 1
220 1 strpui[2][0] ='U';
221 1 strpui[2][1] ='c';
222 1 strpui[2][2] =':';
223 1 strpui[2][6] ='.';
224 1 strpui[2][8] ='V';
225 1
226 1 strpui[3][0] ='I';
227 1 strpui[3][1] ='a';
228 1 strpui[3][2] =':';
229 1 strpui[3][5] ='.';
230 1 strpui[3][8] ='A';
231 1
232 1 strpui[4][0] ='I';
233 1 strpui[4][1] ='b';
234 1 strpui[4][2] =':';
235 1 strpui[4][5] ='.';
236 1 strpui[4][8] ='A';
237 1
238 1 strpui[5][0] ='I';
239 1 strpui[5][1] ='c';
240 1 strpui[5][2] =':';
C51 COMPILER V8.05a LCDMAIN 04/20/2009 18:39:19 PAGE 5
241 1 strpui[5][5] ='.';
242 1 strpui[5][8] ='A';
243 1
244 1 strpui[6][0] ='C';
245 1 strpui[6][1] ='T';
246 1 strpui[6][2] =':';
247 1 for(i=0; i<7; i++)
248 1 {
249 2 GUI_DispStringAt(&strpui[i][0], 0, 0);
250 2 CopyRAMToLCD(0, i*16, 81, 15+i*16);
251 2 }
252 1 }
253
254 void main(void)
255 {
256 1 RUN_LED=0;
257 1 init();
258 1 init_serial(); //串口初始化
259 1 SPI_init();//SPI初始化
260 1 // GUI_DispStringAt(strp, 0, 0);
261 1 // CopyRAMToLCD(0, 0, 159, 15); //写液晶"XJT-5000/f"
262 1 RUN_LED=1;
263 1 initstrpui();
264 1 while(1)
265 1 {
266 2 RUN_LED=1;
267 2 if(fflag==1)
268 2 {
269 3 fflag=0;
270 3 RUN_LED=0;
271 3 datapro();
272 3 look();
273 3
274 3 // for(i=0; i<7; i++)
275 3 // {GUI_DispStringAt(&strpui[0][0], 0, 0);}
276 3 if(disnum >=1 ) CopyRAMToLCD(0, (disnum-1)*16, 81, 15+(disnum-1)*16);
277 3 #if 0
if((disnum==1)||(disnum==2)||(disnum==3))
{
GUI_DispStringAt(strpu, 0, 0);
CopyRAMToLCD(0, 0, 159, 15); //写液晶"XJT-5000/f"
}
else if((disnum==4)||(disnum==5)||(disnum==6))
{
GUI_DispStringAt(strpi, 0, 0);
CopyRAMToLCD(0, 16, 159, 31); //写液晶"XJT-5000/f
}
#endif
289 3 }
290 2 }
291 1 }
292 void serial() interrupt 4
293 {
294 1 while(!SPCFG); //等待SPI接受数据结束,SPI中断硬件置位SPCFG最高位(一字节数据传送结束标志,须软件清零)
295 1 receibuf[i++]=SPDAT;
296 1 SPCFG=0; //软件清零数据传送结束标志位
297 1 if(i==8)
298 1 {
299 2 i=0;
300 2 fflag=1;
301 2 }
302 1 }
C51 COMPILER V8.05a LCDMAIN 04/20/2009 18:39:19 PAGE 6
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1194 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 96 ----
PDATA SIZE = ---- ----
DATA SIZE = 22 4
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -