📄 iolcd.lst
字号:
C51 COMPILER V6.23a IOLCD 05/22/2003 17:10:26 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE IOLCD
OBJECT MODULE PLACED IN ioLCD.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe ioLCD.c DB OE SMALL ROM(LARGE)
stmt level source
1 #include <absacc.h>
2 #include "d:\design\ioLCD.h"
3
4 void Lcd_PutCmd(unsigned char cCmd)
5 {
6 1 while(PORT_LCDBUSY&0x80); /*PORT_LCDBUSY^7==1液晶忙,等待*/
7 1 //LCD is free;
8 1 PORT_LCDCMD = cCmd;
9 1 }
10
11 void Lcd_PutData( unsigned char cData)
12 {
13 1 while(PORT_LCDBUSY&0x80); /*PORT_LCDBUSY^7==1液晶忙,等待*/
14 1 //LCD is free;
15 1 PORT_LCDWRITE = cData;
16 1 }
17
18 /*----------从(xloc,yloc)显示字符串str-----------*/
19 void PrintStr_xy(unsigned char xloc,unsigned char yloc,unsigned char* str)
20 {
21 1 //xloc:0~19;yloc:0~1.
22 1 unsigned char cmd,i;
23 1 if(xloc>=20 || yloc>1) return;
24 1 cmd=0x80+xloc; /*0x80第一行起始地址;+0x40为第二行对应地址*/
25 1 if(yloc) cmd+=0x40; //Sets DD RAM address
26 1 Lcd_PutCmd(cmd);
27 1 for(i=0;i<20;i++)
28 1 {
29 2 if(str[i]=='\0') return;
30 2 Lcd_PutData(str[i]);
31 2 }
32 1 }
33
34 /*---------从(xloc,yloc)显示整数num--------------*/
35 void PrintNum_xy(unsigned char xloc,unsigned char yloc,unsigned int num)
36 {
37 1 char i;
38 1 unsigned char cmd,str[5];
39 1
40 1 if(xloc>=20 || yloc>1) return;
41 1 cmd=0x80+xloc; /*0x80第一行起始地址;+0x40为第二行对应地址*/
42 1 if(yloc) cmd+=0x40; //Sets DD RAM address
43 1 Lcd_PutCmd(cmd);
44 1 for(i=4;i>=0;i--)
45 1 {
46 2 if(num==0) str[i]=10; /*若num数小于5位,高位置10,将不在lcd上显示*/
47 2 str[i]=(unsigned char)((num) % (unsigned int)10);
48 2 num/=10;
49 2 }
50 1 for(i=0;i<5;i++)
51 1 {
52 2 if(str[i]>9) continue;
53 2 Lcd_PutData(str[i]);
54 2 }
55 1
C51 COMPILER V6.23a IOLCD 05/22/2003 17:10:26 PAGE 2
56 1 return;
57 1
58 1 }
59 void PrintNum3_xy(unsigned char xloc,unsigned char yloc,unsigned int num)
60 {
61 1 unsigned char data cmd , cDisplaySH = 0 , cDisplaySL = 0;
62 1 if(xloc>=20 || yloc>1||num>999) return;
63 1 cmd=0x80+xloc; /*0x80第一行起始地址;+0x40为第二行对应地址*/
64 1 if(yloc) cmd+=0x40; //Sets DD RAM address
65 1 Lcd_PutCmd(cmd);
66 1 cDisplaySH = (unsigned char )((num) / (unsigned int)100);
67 1 cDisplaySL = (unsigned char )((num) % (unsigned int)100);
68 1 Lcd_PutData( cdItoA[cDisplaySH] );
69 1 cDisplaySH = cDisplaySL;
70 1 cDisplaySH = cDisplaySH / 10;
71 1 cDisplaySL = cDisplaySL % 10;
72 1 Lcd_PutData( cdItoA[cDisplaySH] );
73 1 Lcd_PutData( cdItoA[cDisplaySL] );
74 1 }
75 void PrintNum2_xy(unsigned char xloc,unsigned char yloc,unsigned int num)
76 {
77 1 unsigned char data cmd , cDisplaySH = 0 , cDisplaySL = 0;
78 1 if(xloc>=20 || yloc>1||num>99) return;
79 1 cmd=0x80+xloc; /*0x80第一行起始地址;+0x40为第二行对应地址*/
80 1 if(yloc) cmd+=0x40; //Sets DD RAM address
81 1 Lcd_PutCmd(cmd);
82 1 cDisplaySH = (unsigned char )((num) / (unsigned int)10);
83 1 cDisplaySL = (unsigned char )((num) % (unsigned int)10);
84 1 Lcd_PutData( cdItoA[cDisplaySH] );
85 1 Lcd_PutData( cdItoA[cDisplaySL] );
86 1 }
87
88 /*-----------设置光标闪烁位置-------------------*/
89 void Cursor_xy(unsigned char xloc,unsigned char yloc)
90 {
91 1 unsigned char cmd;
92 1 if(xloc>=20 || yloc>1) return;
93 1 cmd=0x80+xloc; /*0x80第一行起始地址;+0x40为第二行对应地址*/
94 1 if(yloc) cmd+=0x40; //Sets DD RAM address
95 1 Lcd_PutCmd(cmd);
96 1 }
97
98
99
100
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 390 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 13
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 + -