📄 lcddrv.lst
字号:
C51 COMPILER V6.02 LCDDRV 08/30/2007 10:42:12 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE LCDDRV
OBJECT MODULE PLACED IN D:\原D\DOCUME~1\桌面\新建文~1\LCDDRV.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE D:\原D\DOCUME~1\桌面\新建文~1\LCDDRV.C DB SB OE
stmt level source
1 #include"lcddrv.h"
2
3 void chk_busy();
4 void write_com(unsigned char cmdcode);
5 void write_data(unsigned char Dispdata);
6
7 void cur_on()//开光标
8 {
9 1 write_com(0x0f);
10 1 }
11
12 void cur_off()//关光标
13 {
14 1 write_com(0x0a);
15 1 }
16 void location(unsigned char x,unsigned char y)//设置光标位置
17 {
18 1 unsigned char com = 0x80;
19 1
20 1 if(1 == (y & 0x03))
21 1 y = 2;
22 1 else if((y & 0x03) == 2)
23 1 y = 1;
24 1 com |= (y & 0x03) << 3;
25 1 com += x & 0x07;
26 1 write_com(com);
27 1 }
28 void print(unsigned char *str)//打印字串,不换行
29 {
30 1 while(*str>0){
31 2 write_data(*str);
32 2 str++;
33 2 }
34 1 }
35 void inv_line(unsigned char lin,unsigned char datav)//反白一行
36 {
37 1 unsigned short i,j;
38 1 write_com(0x36);
39 1 if(lin == 0){
40 2 for(i = 0;i < 8;i++)
41 2 for(j = 0;j < 16;j++){
42 3 write_com(j+0x80); //行地址
43 3 write_com(i+0x80); //列地址
44 3 write_data(datav);
45 3 write_data(datav);
46 3 }
47 2 }
48 1 if(lin == 1){
49 2 for(i = 0;i < 8;i++)
50 2 for(j = 16;j < 32;j++){
51 3 write_com(j+0x80); //行地址
52 3 write_com(i+0x80); //列地址
53 3 write_data(datav);
54 3 write_data(datav);
55 3 }
C51 COMPILER V6.02 LCDDRV 08/30/2007 10:42:12 PAGE 2
56 2 }
57 1 if(lin == 2){
58 2 for(i = 8;i < 16;i++)
59 2 for(j = 0;j < 16;j++){
60 3 write_com(j+0x80); //行地址
61 3 write_com(i+0x80); //列地址
62 3 write_data(datav);
63 3 write_data(datav);
64 3 }
65 2 }
66 1 if(lin == 3){
67 2 for(i = 8;i < 16;i++)
68 2 for(j = 16;j < 32;j++){
69 3 write_com(j+0x80); //行地址
70 3 write_com(i+0x80); //列地址
71 3 write_data(datav);
72 3 write_data(datav);
73 3 }
74 2 }
75 1 write_com(0x30);
76 1 }
77
78 void lin(unsigned char x1,unsigned char x2,unsigned char y1,unsigned char y2)
79 {}
*** WARNING C280 IN LINE 78 OF D:\原D\DOCUME~1\桌面\新建文~1\LCDDRV.C: 'x1': unreferenced local variable
*** WARNING C280 IN LINE 78 OF D:\原D\DOCUME~1\桌面\新建文~1\LCDDRV.C: 'x2': unreferenced local variable
*** WARNING C280 IN LINE 78 OF D:\原D\DOCUME~1\桌面\新建文~1\LCDDRV.C: 'y1': unreferenced local variable
*** WARNING C280 IN LINE 78 OF D:\原D\DOCUME~1\桌面\新建文~1\LCDDRV.C: 'y2': unreferenced local variable
80 void point(unsigned char x,unsigned char y)//画点
81 {
82 1 unsigned char xx,tmp;
83 1 //计算点所在字节坐标
84 1 xx = x / 8;
85 1 y = y & 0x7f;
86 1 //读取字节
87 1 write_com(0x36);
88 1 write_com(0x80 | y);
89 1 write_com(0x80 | xx);
90 1 write_com(0x80);
91 1 E = 1;
92 1 E = 0;
93 1 E = 1;
94 1 RS = 1;
95 1 RW = 1;
96 1 Lcd_Bus=0xff;
97 1 tmp = Lcd_Bus;
98 1 E = 0;
99 1 //计算位
100 1 tmp += 0x01 << (7 - x % 8);
101 1 tmp = 0xff;
102 1 //开始画点
103 1 xx = x;
104 1 write_com(0x36);
105 1 write_com(0x80 | y);
106 1 write_com(0x80 + xx);
107 1 write_com(0x30);
108 1 write_data(tmp);
109 1 write_data(tmp);
110 1 write_data(tmp);
111 1 }
112
113 void cls()//清屏
C51 COMPILER V6.02 LCDDRV 08/30/2007 10:42:12 PAGE 3
114 {
115 1 unsigned char x,y;
116 1 for(y=0;y<64;y++)
117 1 for(x=0;x<16;x++){
118 2 write_com(0x34);
119 2 write_com(y+0x80); //行地址
120 2 write_com(x+0x80); //列地址
121 2 write_com(0x30);
122 2 write_data(0x00);
123 2 write_data(0x00);
124 2 }
125 1 write_com(0x01);
126 1 }
127
128
129 /*------------------检查忙位-----------------------------*/
130 void chk_busy()
131 {
132 1 RS=0;
133 1 RW=1;
134 1 E=1;
135 1 Lcd_Bus=0xff;
136 1 while((Lcd_Bus&0x80)==0x80);
137 1 E=0;
138 1 }
139 /*------------------写命令到LCD------------------------------*/
140 void write_com(unsigned char cmdcode)
141 {
142 1 chk_busy();
143 1 RS=0;
144 1 RW=0;
145 1 E=1;
146 1 Lcd_Bus=cmdcode;
147 1 E=0;
148 1 }
149 /*-------------------写数据到LCD----------------------------*/
150 void write_data(unsigned char Dispdata)
151 {
152 1 chk_busy();
153 1 RS=1;
154 1 RW=0;
155 1 E=1;
156 1 Lcd_Bus=Dispdata;
157 1 E=0;
158 1 }
159 /*------------------初始化LCD屏--------------------------*/
160 void lcd_init()
161 {
162 1 write_com(0x30); //选择基本指令集
163 1 write_com(0x30); //选择8bit数据流
164 1 write_com(0x0c); //开显示(无游标、不反白)
165 1 write_com(0x01); //清除显示,并且设定地址指针为00H
166 1 write_com(0x06); //指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位
167 1 }
C51 COMPILER V6.02 LCDDRV 08/30/2007 10:42:12 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
cur_on . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
_write_data. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
Dispdata . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
_point . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
x. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
y. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
xx . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0002H 1
tmp. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0003H 1
_print . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
str. . . . . . . . . . . . . . . . . AUTO DATA PTR 0000H 3
RD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1
INT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
_lin . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
x1 . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
x2 . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
y1 . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0002H 1
y2 . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0003H 1
RS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A5H 1
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
RW . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A6H 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
_write_com . . . . . . . . . . . . . . PUBLIC CODE PROC 0005H -----
cmdcode. . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
_inv_line. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
lin. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
datav. . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
i. . . . . . . . . . . . . . . . . . AUTO DATA U_INT 0002H 2
j. . . . . . . . . . . . . . . . . . AUTO DATA U_INT 0004H 2
_location. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
x. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
y. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
com. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
cls. . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
x. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
y. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
E. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A7H 1
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
lcd_init . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
C51 COMPILER V6.02 LCDDRV 08/30/2007 10:42:12 PAGE 5
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
IT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0088H 1
TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1
EX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1
IT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008AH 1
P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1
SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1
SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1
SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1
PT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
PT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
PX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1
PX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
chk_busy . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
cur_off. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 660 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 19
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 4 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -