📄 12864f.lst
字号:
C51 COMPILER V7.50 12864F 10/08/2005 23:26:42 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 12864F
OBJECT MODULE PLACED IN 12864f.OBJ
COMPILER INVOKED BY: D:\keil7.50full\C51\BIN\C51.EXE 12864f.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2
3 #define uchar unsigned char
4 #define uint unsigned int
5
6 sbit CD=P1^2;
7 sbit Wr=P1^0;
8 sbit Rd=P1^1;
9 sbit RST=P1^3;
10 #define LcdDataPort P0
11
12 unsigned char BUSY()
13 {
14 1 unsigned char dat;
15 1 CD=1;Rd=1;Wr=1;
16 1 LcdDataPort=0xff;
17 1 Rd=0;
18 1 dat=LcdDataPort;
19 1 Rd=1;
20 1 return(dat);
21 1 }
22
23 /*
24 //指令,数据 读写状态检查
25 #define RWCheck() { unsigned char sta; do{ sta=XBYTE[ComPort] & 0x03; } while(sta!=0x03); }
26 */
27
28 //指令,数据 读写状态检查
29 void RWCheck() { while (( BUSY()&0x03)!=0x03) ; }
30 //数据自动读 状态检查
31 void AutoRCheck() { while (( BUSY()&0x04)!=0x04) ;}
32 //数据自动写 状态检查
33 void AutoWCheck() { while (( BUSY()&0x08)!=0x08) ; }
34
35 // 向数据口发Data
36 void OutPortData(unsigned char dat)
37 {
38 1 RWCheck();
39 1 CD=0;
40 1 Wr=0;
41 1 LcdDataPort=dat;
42 1 Wr=1;
43 1 CD=1;
44 1 }
45 // 向数据口发Data
46 /*
47 #define OutPortData(dat ) { RWCheck(); XBYTE[LcdDataPort]=dat; }
48 */
49
50 //写有 1 个参数命令
51 void OutPortCom1(unsigned char command)
52 {
53 1 RWCheck();
54 1 CD=1;
55 1 Wr=0;
C51 COMPILER V7.50 12864F 10/08/2005 23:26:42 PAGE 2
56 1 LcdDataPort=command;
57 1 Wr=1;
58 1 }
59 /*
60 #define OutPortCom1(command) { RWCheck(); XBYTE[ComPort]= command; }
61 */
62 //写有 2个参数命令
63 #define OutPortCom2(dat, command) { OutPortData(dat); OutPortCom1(command); }
64 //写有 3 个参数命令
65 #define OutPortCom3(data1, data2, command) { OutPortData(data1); OutPortData(data2); OutPortCom1(command);
-}
66
67
68
69 void ClearScreen()
70 {
71 1 unsigned int i; // 清显示 RAM 区 0000h--2000h (8k)
72 1 OutPortCom3(0x00,0x00,0x24); //设置指针地址0000H
73 1 OutPortCom1(0xb0); //设置自动写状态
74 1 for(i=0x00;i<0x2000;i++) OutPortData(0x00); // data=0;
75 1 OutPortCom1(0xb2); // 自动写结束
76 1 }
77
78 /* lcd初始化 */
79 void LcdInit(void)
80 {
81 1 OutPortCom3(0x00,0x00,0x40); /*文本首址*/
82 1 OutPortCom3(0x10,0x00,0x41); /*文本区域*/ //每行显示16个字符
83 1
84 1 OutPortCom3(0x00,0x01,0x42); /*图形首址*/
85 1 OutPortCom3(0x10,0x00,0x43); /*图形区域*/
86 1 OutPortCom1(0x81); /*显示方式*/
87 1 OutPortCom1(0x9c); /*显示开关*/
88 1 OutPortCom1(0xa0); /*光标形状*/
89 1
90 1 ClearScreen();
91 1 }
92
93
94 /* 设定图形x,y值*/
95 void AddPointer(unsigned char x,unsigned char y)
96 {
97 1 unsigned int z;
98 1 z=y*16+x+256;
99 1 OutPortCom3(z&0xff,z/256,0x24);
100 1 }
101
102
103 //文本显示一个字符,x水平偏移量(0~15)16列,8行;y垂直偏移量(0~7)
104 void ShowChar(uchar x,uchar y,uchar dat)
105 {
106 1
107 1 OutPortCom3(16*y+x,0,0x24);
108 1 OutPortCom2(dat-0x20, 0xc0);
109 1 }
110
111 // 显示16*16点阵汉字,x列地址,分16列,y行地址,分7行
112 void ShowHZ(uchar x,uchar y,uchar *hzcode)
113 {
114 1 unsigned char i,j;
115 1 x=x&0x0f,y=y&0x07;
116 1 for (i=0;i<16;i++)
C51 COMPILER V7.50 12864F 10/08/2005 23:26:42 PAGE 3
117 1 {
118 2 for (j=0;j<2;j++)
119 2 {
120 3 AddPointer(j+x,y*8+i);
121 3 OutPortCom2(hzcode[i*2+j], 0xc0);
122 3 }
123 2 }
124 1 }
125 //反显一个汉字
126 void RvShowHZ(uchar x,uchar y,uchar *hzcode)
127 {
128 1 unsigned char i,j;
129 1 x=x&0x0f,y=y&0x07;
130 1 for (i=0;i<16;i++)
131 1 {
132 2 for (j=0;j<2;j++)
133 2 {
134 3 AddPointer(j+x,y*8+i);
135 3 OutPortCom2(~hzcode[i*2+j], 0xc0);
136 3 }
137 2 }
138 1 }
139
140 //以屏中心为中心,显示一个宽度为width,高度为high的图象,width,high都应该为8的整数倍
141 void ShowPicture(uchar width,uchar high,uchar code *picture)
142 { uchar i,j;
143 1 for (i=0;i<high;i++) //i 从上到下
144 1 {
145 2 for (j=0;j<width/8;j++) //从左到右显示
146 2 {
147 3 AddPointer(j+(128-width)/16,(64-high)/2+i);
148 3 OutPortCom2(~picture[i*(width/8)+j], 0xc0);
149 3 }
150 2 }
151 1 }
152 //取模方式,从左到右,(左高位),从上到下
153 unsigned char hz_guo[32] = {
154 0x00,0x04,0x7f,0xfe,0x40,0x24,0x5f,0xf4,0x41,0x04,0x41,0x04,0x41,0x44,0x4f,0xe4,
155 0x41,0x04,0x41,0x44,0x41,0x24,0x41,0x04,0x5f,0xf4,0x40,0x04,0x7f,0xfc,0x40,0x04
156 };
157
158
159 unsigned char code bmp_pig1[]={
160 /*-- 调入了一幅图像:C:\Documents and Settings\zhaochao288\桌面\picture\207.bmp --*/
161 /*-- 宽度x高度=112x40 --*/
162 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
163 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
164 0x00,0x01,0x3F,0xC0,0x80,0x42,0x04,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
165 0x8A,0x1F,0xFC,0x42,0x04,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x80,
166 0x01,0xFF,0xDE,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x2A,0x87,0xF0,0xA2,
167 0x0A,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBF,0x84,0x10,0xA2,0x0A,0x88,
168 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x1F,0xFC,0xA2,0x0A,0xF8,0x00,0x00,
169 0x00,0x00,0x00,0x00,0x00,0x00,0x9F,0x90,0x05,0x2F,0xCA,0xA4,0x00,0x00,0x00,0x00,
170 0x00,0x00,0x00,0x01,0x80,0x03,0xE1,0xA8,0x4A,0xA8,0x00,0x00,0x00,0x00,0x00,0x00,
171 0x00,0x00,0xBF,0xC2,0x24,0x48,0x44,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
172 0x92,0x84,0x24,0xA8,0x4A,0xA8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA6,0x58,
173 0x3D,0x0F,0xD0,0xC4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
174 0x00,0x00,0x00,0x00,0x00,0x1C,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
175 0x00,0x00,0x00,0x23,0x08,0x37,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
176 0x00,0x40,0x10,0x08,0x40,0x00,0xFF,0x90,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x81,
177 0x86,0x10,0x40,0x00,0x08,0x08,0x10,0xFF,0x86,0x00,0x00,0x00,0x01,0x02,0x49,0x40,
178 0x40,0x00,0x7F,0x0B,0xFC,0x08,0x0F,0x00,0x00,0x00,0x01,0x08,0x00,0x40,0x20,0x00,
C51 COMPILER V7.50 12864F 10/08/2005 23:26:42 PAGE 4
179 0x10,0x00,0x10,0x49,0x0F,0x00,0x00,0x00,0x02,0x08,0x00,0x20,0x20,0x01,0xFF,0xDD,
180 0x10,0x2A,0x0F,0x00,0x00,0x00,0x04,0x31,0x83,0x20,0x20,0x00,0x20,0x04,0x91,0xFF,
181 0xC6,0x00,0x00,0x00,0x04,0x52,0x44,0x90,0x20,0x00,0x7F,0x04,0x90,0x1C,0x06,0x00,
182 0x00,0x00,0x09,0xA4,0x28,0x4C,0x10,0x00,0xA1,0x04,0x10,0x2A,0x00,0x00,0x00,0x00,
183 0x0E,0x44,0xE9,0xC3,0x90,0x01,0x3F,0x04,0x70,0x49,0x06,0x00,0x00,0x00,0x00,0x82,
184 0xC5,0x81,0x70,0x00,0x21,0x0A,0x01,0x88,0xC6,0x00,0x00,0x00,0x01,0x01,0x83,0x00,
185 0x80,0x00,0x3F,0x11,0xFC,0x08,0x00,0x00,0x00,0x00,0x01,0x0C,0x70,0x00,0x80,0x00,
186 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x13,0x87,0x10,0x40,0x00,0x00,0x00,
187 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x20,0x78,0xA0,0x40,0x00,0x00,0x00,0x00,0x00,
188 0x00,0x00,0x00,0x00,0x02,0x20,0x00,0x60,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
189 0x00,0x00,0x02,0x21,0x80,0x60,0x40,0x00,0x00,0x71,0xEE,0x3C,0x00,0x00,0x00,0x00,
190 0x01,0x11,0x98,0x90,0x80,0x00,0x00,0x8E,0x31,0xC6,0x00,0x00,0x00,0x00,0x01,0x08,
191 0x18,0x80,0x80,0x00,0x01,0x24,0x24,0x83,0x00,0x00,0x00,0x00,0x00,0x96,0x01,0x01,
192 0x00,0x00,0x01,0x40,0x28,0x03,0x00,0x00,0x00,0x00,0x00,0x49,0x86,0x03,0x00,0x00,
193 0x01,0x40,0x28,0x03,0x00,0x00,0x00,0x00,0x00,0x34,0x78,0x8C,0x00,0x00,0x01,0x00,
194 0x20,0x03,0x00,0x00,0x00,0x00,0x00,0x0E,0x01,0x30,0x00,0x00,0x00,0x80,0x30,0x06,
195 0x00,0x00,0x00,0x00,0x00,0x71,0x87,0xCE,0x00,0x00,0x00,0x40,0x68,0x0C,0x00,0x00,
196 0x00,0x00,0x00,0xE0,0x78,0x07,0x00,0x00,0x00,0x20,0xC4,0x18,0x00,0x00,0x00,0x00,
197 };
198 unsigned char code bmp_girl[]={
199
200 /*-- 调入了一幅图像:C:\Documents and Settings\zhaochao288\桌面\picture\test1.bmp --*/
201 /*-- 宽度x高度=96x48 --*/
202 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x82,0x80,
203 0x00,0x00,0x00,0x02,0x10,0x00,0x0F,0xFB,0x00,0x02,0x42,0x80,0x00,0x00,0x00,0x19,
204 0x18,0x00,0x0B,0xFF,0x00,0x02,0xC2,0x80,0x00,0x00,0x00,0x21,0xFF,0x00,0x0F,0xFF,
205 0x00,0x3B,0xC1,0x80,0x00,0x00,0x00,0x57,0xFF,0xE0,0x0F,0xFF,0x00,0x45,0xB9,0x80,
206 0x80,0x00,0x00,0x8F,0xFF,0xF1,0x0F,0xFF,0x00,0x82,0x44,0xA0,0x80,0x00,0x01,0x1E,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -