ts12864a.lst
来自「此程序是GPS的定位程序」· LST 代码 · 共 410 行 · 第 1/2 页
LST
410 行
191 /*编写日期: 2007-3-17 */
192 /*****************************************************************/
193 void Dis_Play(unsigned char x,unsigned char y,unsigned char dis_value)
194 {
195 1 LCD_Set_xy(x,y);
196 1 LCD_Write_Data(dis_value);
197 1 }
198
199 void LCD_Init(void)
200 {
201 1
202 1 LCD_CSA = 1;
203 1 delay_17us();
204 1 LCD_CSB = 1; //控制器全开
205 1 delay_17us();
206 1 LCD_Write_Command(0x3f); //开显示
207 1 delay_17us();
208 1 LCD_Write_Command(0xc0); //设置起始地址
209 1 delay_17us();
210 1
211 1 }
212
213 /*****************************************************************/
214 /*函数名称: Display_Character.c */
215 /*函数功能: 显示汉字,fb==1:反白显示 */
216 /*函数说明: 具体说明如下:
217 x---------------------------------------------横轴位置
218 y---------------------------------------------纵轴位置
219 n-------------------------------------数据在表中的位置
220 dis_table-----------------------------待显示数据代码表
221 dis_value-----------------------------待显示汉字的代码
222 */
223 /*修改记录: 无修改记录 */
224 /*编写日期: 2007-3-17 */
225 /*****************************************************************/
226 void Display_Character(unsigned char x,unsigned char y,unsigned char n)
227 {
228 1 unsigned char i,dis_value;
229 1 for(i=0;i<16;i++)
230 1 {
231 2 switch(y)
232 2 {
233 3 case 1: dis_value=dis_table[i+n*32]; //确定显示的值,上半部分
234 3 Dis_Play(x*8+i,1,dis_value);
235 3 dis_value=dis_table[i+n*32+16]; //确定显示的值,上半部分
236 3 Dis_Play(x*8+i,2,dis_value);
237 3 break;
238 3 case 3: dis_value=dis_table[i+n*32]; //确定显示的值,上半部分
239 3 Dis_Play(x*8+i,3,dis_value);
240 3 dis_value=dis_table[i+n*32+16]; //确定显示的值,上半部分
241 3 Dis_Play(x*8+i,4,dis_value);
C51 COMPILER V8.02 TS12864A 05/16/2008 10:44:20 PAGE 5
242 3 break;
243 3 case 5: dis_value=dis_table[i+n*32]; //确定显示的值,上半部分
244 3 Dis_Play(x*8+i,5,dis_value);
245 3 dis_value=dis_table[i+n*32+16]; //确定显示的值,上半部分
246 3 Dis_Play(x*8+i,6,dis_value);
247 3 break;
248 3 default:break;
249 3 }
250 2 }
251 1 }
252
253 /*****************************************************************/
254 /*函数名称: Display_Char.c */
255 /*函数功能: 显示字符,fb==1:反白显示 */
256 /*函数说明: 具体说明如下:
257 x---------------------------------------------横轴位置
258 y---------------------------------------------纵轴位置
259 n-------------------------------------数据在表中的位置
260 dis_table-----------------------------待显示数据代码表
261 dis_value-----------------------------待显示汉字的代码
262 */
263 /*修改记录: 无修改记录 */
264 /*编写日期: 2007-3-17 */
265 /*****************************************************************/
266 void Display_Char(unsigned char x,unsigned char y,unsigned char n)
267 {
268 1 unsigned char i,dis_value;
269 1 for (i=0;i<8;i++)
270 1 {
271 2 dis_value=shuzi_table[i+n*16];
272 2 Dis_Play(x*8+i+1,y,dis_value);
273 2 dis_value=shuzi_table[i+n*16+8];
274 2 Dis_Play(x*8+i+1,y+1,dis_value);
275 2 }
276 1 }
277 void Display_Point(unsigned char px,unsigned char py,unsigned char pn)
278 {
279 1 unsigned char i,dis_value;
280 1 for (i=0;i<4;i++)
281 1 {
282 2 dis_value=Point_table[i+pn*8];
283 2 Dis_Play(px*8+i+1,py,dis_value);
284 2 }
285 1 }
286 /*****************************************************************/
287 /*函数名称: LCD_Print_Int.c */
288 /*函数功能: 显示字符,fb==1:反白显示 */
289 /*函数说明: 具体说明如下:
290 x---------------------------------------------横轴位置
291 y---------------------------------------------纵轴位置
292 dat-----------------------------------待显示汉字的代码
293 */
294 /*修改记录: 无修改记录 */
295 /*编写日期: 2007-3-17 */
296 /*****************************************************************/
297
298 void LCD_Print_Int(unsigned char x,unsigned char y,long dat)
299 {
300 1 unsigned char str[6];
301 1 unsigned int i=0;
302 1
303 1 if(dat==0)
C51 COMPILER V8.02 TS12864A 05/16/2008 10:44:20 PAGE 6
304 1 Display_Char(x,y,0);
305 1 else
306 1 {
307 2 while(dat)
308 2 {
309 3 str[i]=dat%10+'0';
310 3 dat=dat/10;
311 3 i++;
312 3 }
313 2 while(i)
314 2 {
315 3 Display_Char(x+6-i,y,str[i-1]-'0'); // Display_Char(x+5-i,y,str[i-1]-'0');
316 3 i--;
317 3 }
318 2 }
319 1
320 1 }
321
322 /*****************************************************************/
323 /*函数名称: Display_Char.c */
324 /*函数功能: 清除字符 */
325 /*函数说明: 具体说明如下:
326 x---------------------------------------------横轴位置
327 y---------------------------------------------纵轴位置
328 n-------------------------------------清除字符的个数*/
329 /*修改记录: 无修改记录 */
330 /*编写日期: 2007-3-17 */
331 /*****************************************************************/
332
333 void Clear_Area(unsigned char x,unsigned char y,unsigned char n)
334 {
335 1 unsigned char ct=0;
336 1 for(ct=0;ct<n;ct++)
337 1 Display_Char(x+ct,y,64);
338 1 delay_nms(10);
339 1 }
340
341
342 /*****************************************************************/
343 /*函数名称: ten_n.c */
344 /*函数功能: 保留的小数取整 */
345 /*修改记录: 无修改记录 */
346 /*编写日期: 2007-3-17 */
347 /*****************************************************************/
348
349 unsigned int ten_n(unsigned char n)
350 {
351 1 unsigned int k;
352 1 if(n==0) return 1;
353 1 k=ten_n(n-1)*10;
354 1 return( k);
355 1 }
356
357 /*****************************************************************/
358 /* : end : */
359 /*****************************************************************/
360
361 void delay_17us()
362 {
363 1
364 1 unsigned char t=17;
365 1 while(--t)
C51 COMPILER V8.02 TS12864A 05/16/2008 10:44:20 PAGE 7
366 1 {
367 2
368 2 _nop_();
369 2
370 2 }
371 1
372 1 }
373
374
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1261 ----
CONSTANT SIZE = 2280 ----
XDATA SIZE = 1 41
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?