📄 nokia.lst
字号:
C51 COMPILER V7.02b NOKIA 09/07/2004 00:44:35 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE NOKIA
OBJECT MODULE PLACED IN NOKIA.OBJ
COMPILER INVOKED BY: D:\KEIL\C51\BIN\C51.EXE NOKIA.c DB OE SMALL ROM(LARGE)
stmt level source
1 #include <reg51.h>
2 #include <hzk.c>
3 #include <ASCII.c>
4
5 extern unsigned char code hzIndex[];
6 extern unsigned char code hzdot[];
7 extern unsigned char code chardot[];
8
9 sbit SI_LCD=P1^6;
10 sbit DC_LCD=P1^5;
11 sbit CS_LCD=P1^4;
12 sbit SK_LCD=P1^7;
13 sbit RST_LCD=P1^3;
14 //===============================================================
15 unsigned char code IMG[]={
16 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x0F,0x0C,0x0C,0x0F,0x07,0x03,0x00,
17 0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,
18 0x00,0x0D,0x0D,0x0D,0x00,0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x01,
19 0x01,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,
20 0x00,0x01,0x01,0x01,0x00,0x0F,0x0F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
21 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0x0C,0x0C,
22 0xFC,0xF8,0xF0,0x00,0x70,0xF8,0xFC,0xAC,0xAC,0xEC,0xEC,0x68,0x00,0xC8,0xEC,0xE4,
23 0x74,0x3C,0xBC,0x98,0x00,0xFC,0xFC,0xFC,0x00,0xF9,0xFD,0xFD,0x8D,0x89,0xFF,0xFF,
24 0xFF,0x00,0xFC,0xFC,0xFC,0x80,0x80,0xFC,0xFC,0xFC,0x00,0x70,0xF8,0xFC,0xAC,0xAC,
25 0xEC,0xEC,0x68,0x00,0xF8,0xFC,0xFC,0x8C,0x88,0xFC,0xFC,0xFC,0x00,0x00,0x00,0x00,
26 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
27 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
28 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x01,0x03,0x03,0x83,0x81,
29 0x82,0x83,0x83,0x80,0x00,0x00,0x03,0x03,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
30 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
31 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
32 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
33 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF8,0xF8,0x10,
34 0x18,0xF8,0xF8,0xF0,0x00,0xC3,0xF3,0xFF,0x1F,0xFE,0xF0,0xC0,0x00,0x00,0x00,0x00,
35 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
36 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
37 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
38 0x00,0x00,0x00,0x0E,0x1F,0x1F,0x19,0x19,0x1D,0x0C,0x00,0x1F,0x1F,0x1F,0x01,0x03,
39 0x03,0x03,0x01,0x00,0x01,0x03,0x03,0x03,0x03,0x03,0x03,0x01,0x00,0x03,0x03,0x03,
40 0x01,0x03,0x02,0x1F,0x1F,0x1F,0x00,0x01,0x03,0x03,0x02,0x00,0x00,0x00,0x00,0x00,
41 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
42 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
43 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x38,0x98,0x98,0xF8,0xF8,0xF0,0x00,0xF8,
44 0xF8,0xF8,0x00,0x00,0xF8,0xF8,0xF8,0x00,0xB0,0xB8,0xB8,0x58,0x50,0xF8,0xF8,0xF8,
45 0x00,0xF8,0xF8,0xF8,0x00,0x00,0x00,0xF8,0xF8,0xF8,0xE0,0xE0,0xF0,0x78,0x18,0x08,
46 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
47 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
48 };
49 unsigned char code ZIPIMG[]={
50 0x00,0x66,0x01,0x01,0x03,0x03,0x07,0x07,0x07,0x0F,0x0F,0x0F,0x1E,0x1E,0x1E,0x1E,
51 0x1E,0x1E,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,
52 0x3C,0x3C,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x03,0x03,
53 0x01,0x01,0x00,0x21,0x03,0x3F,0xFF,0x04,0xFC,0xC0,0x80,0x80,0x00,0x02,0x10,0x10,
54 0x1F,0x18,0x1E,0x1F,0x07,0x01,0x00,0x03,0x07,0x18,0x1F,0x1F,0x1F,0x10,0x10,0x00,
55 0x01,0x01,0x07,0x0F,0x0C,0x18,0x10,0x10,0x10,0x10,0x08,0x0C,0x1E,0x00,0x01,0x80,
C51 COMPILER V7.02b NOKIA 09/07/2004 00:44:35 PAGE 2
56 0x80,0xC0,0xF0,0xF0,0xF0,0xF0,0xF0,0x00,0x20,0xE0,0xFE,0xFF,0x04,0x1F,0x01,0x00,
57 0x04,0x02,0x02,0xFE,0x02,0x02,0xC0,0xF0,0xFC,0x3E,0x38,0xC0,0x02,0x02,0xFE,0xFE,
58 0xFE,0x02,0x02,0x00,0x01,0xF0,0xF8,0xFC,0x0E,0x06,0x02,0x02,0x02,0x02,0x02,0x04,
59 0x08,0x00,0x03,0x01,0x07,0x07,0x07,0x07,0x07,0x00,0x22,0x80,0xC0,0xC0,0xE0,0xE0,
60 0xF0,0xF0,0xF0,0x78,0x78,0x78,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x1E,0x1E,0x1E,0x1E,
61 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x3C,0x3C,0x3C,0x3C,
62 0x3C,0x3C,0x78,0x78,0x78,0xF0,0xF0,0xF0,0xE0,0xE0,0xC0,0xC0,0x80,0x00,0x65
63 };
64 unsigned char code ICON[]={
65 0x3F,0x40,0x4C,0x4D,0x4D,0x4C,0x4C,0x4D,0x4D,0x4C,0x4C,0x4D,0x4D,0x4C,0x4C,0x4D,
66 0x4D,0x4C,0x4C,0x4D,0x4D,0x4C,0x4C,0x4D,0x4D,0x4C,0x4C,0x40,0x30,0x1F,0x00,0x00,
67 0xFF,0x00,0x00,0x99,0x99,0x00,0x00,0x99,0x99,0x00,0x00,0x98,0x99,0x02,0x04,0x89,
68 0x9A,0x14,0x24,0xA8,0xA8,0x2D,0x28,0xA8,0xA4,0x14,0x1A,0x09,0x04,0xFB,0x01,0x00,
69 0xFF,0x00,0x00,0x98,0x98,0x00,0x00,0x98,0x98,0x00,0x00,0x7F,0x80,0x3E,0xC9,0x00,
70 0x00,0x00,0x00,0x00,0x08,0xFE,0x08,0x08,0x08,0x08,0x00,0x00,0xC9,0x3E,0xC0,0x7F,
71 0x00,0x80,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x80,0xC0,0x20,0x90,0x48,
72 0x24,0x14,0x12,0x0A,0x0A,0x1A,0x0A,0x0A,0x12,0x14,0x2C,0x48,0x90,0x60,0xC0,0x00
73 };
74 void Delay(unsigned int time)
75 {unsigned int i;
76 1 for(;time>0;time--)
77 1 {
78 2 for(i=0;i<123;i++){};
79 2 }
80 1 }
81
82 void Reset_8544()
83 {
84 1 RST_LCD=0;
85 1 RST_LCD=1;
86 1 }
87 void WriteData_8544(unsigned char SDATA)
88 { unsigned char i;
89 1 DC_LCD=1;
90 1 CS_LCD=0;
91 1 for(i=8;i!=0;i--)
92 1 {
93 2 SI_LCD=SDATA&0x01;//字节倒序!
94 2 SDATA=SDATA>>1;
95 2 SK_LCD=0;
96 2 SK_LCD=1;
97 2 }
98 1 CS_LCD=1;
99 1 }
100
101 void WriteCommand_8544(unsigned char SDATA)
102 { unsigned char i;
103 1 DC_LCD=0;
104 1 CS_LCD=0;
105 1 for(i=8;i!=0;i--)
106 1 {
107 2 SI_LCD=SDATA&0x80;
108 2 SDATA*=2;
109 2 SK_LCD=0;
110 2 SK_LCD=1;
111 2 }
112 1 CS_LCD=1;
113 1 }
114
115 void WriteExtendCommand_8544(unsigned char Command)
116 {
117 1 WriteCommand_8544(0x21);// Extend Command
C51 COMPILER V7.02b NOKIA 09/07/2004 00:44:35 PAGE 3
118 1 WriteCommand_8544(Command); //Command
119 1 WriteCommand_8544(0x20);//Basic Command
120 1 }
121 //------------在某坐标显示一字节---(位置,数据)-------------------------
122 void Display_Locate_8544(unsigned char X,unsigned char Y,unsigned char SDATA)
123 {
124 1 X=X+0x80;
125 1 Y=Y+0x40;
126 1 WriteCommand_8544(X);
127 1 WriteCommand_8544(Y);
128 1 WriteData_8544(SDATA);
129 1 }
130 //-------------显示普通图片------(图像 长度 起始位置)-------------------------
131 void Display_Image(unsigned char code *IMG)
132 {
133 1 unsigned int Position;
134 1 WriteCommand_8544(0x80);
135 1 WriteCommand_8544(0x40);
136 1 for(Position=0;Position<504;Position++)
137 1 {
138 2 WriteData_8544(IMG[Position]);
139 2 }
140 1 }
141 //------------显示压缩格式图片---(图像 长度 起始位置)-------------------------
142 void Display_ZipImage(unsigned char code *img_zip)
143 { unsigned int i,j,k,l;
144 1 unsigned char ImgData;
145 1 WriteCommand_8544(0x80);
146 1 WriteCommand_8544(0x40);
147 1 j=0;
148 1 for(i=0;i<504;i++)
149 1 {
150 2 ImgData=img_zip[j];
151 2 if((ImgData==0)|(ImgData==255))
152 2 { if (img_zip[j+1]==0)//2字节
153 3 {
154 4 k=img_zip[j+2]+img_zip[j+3]*256;
155 4 j+=4;
156 4 }
157 3 else //1字节
158 3 {
159 4 k=img_zip[j+1];
160 4 j+=2;
161 4 }
162 3 for(l=0;l<k;l++)
163 3 {
164 4 WriteData_8544(ImgData);
165 4 }
166 3 i=i+l-1;
167 3 }
168 2 else
169 2 {
170 3 WriteData_8544(ImgData);
171 3 j++;
172 3 }
173 2
174 2 }
175 1
176 1 }
177
178 //-------------显示图标(32X32)------(图标名 起始位置XY)-------------------------
179 void Display_Icon(unsigned char code *Ico,unsigned char X,unsigned int Y)
C51 COMPILER V7.02b NOKIA 09/07/2004 00:44:35 PAGE 4
180 { unsigned int i,j;
181 1 unsigned int Position=Y*16+X;
182 1 unsigned char ImgData,HZ_X;
183 1 // Position=Y*16+X;
184 1 for(j=0;j<4;j++)
185 1 {HZ_X=X;
186 2 WriteCommand_8544(0x80+X);
187 2 WriteCommand_8544(0x40+Y+j);
188 2 for(i=0;i<32;i++)
189 2 { ImgData=Ico[i+j*32];
190 3 HZ_X++;
191 3 if (HZ_X>84)//如果超出显示边界
192 3 {
193 4 HZ_X=0;
194 4 WriteCommand_8544(0x80+X);//超过右界,从左界出来
195 4 }
196 3 WriteData_8544(ImgData);
197 3 }
198 2 }
199 1 }
200 //------------------------------清空显示屏-------------------------------
201 void CLS_LCM()
202 {
203 1 unsigned char X,Y;
204 1 WriteCommand_8544(0x80);
205 1 WriteCommand_8544(0x40);
206 1 for(Y=0;Y<6;Y++)
207 1 {
208 2 for(X=0;X<84;X++)
209 2 {
210 3 //WriteLocate_8544(X,Y,0);
211 3 WriteData_8544(0);
212 3 }
213 2 }
214 1
215 1 }
216 //-------------显示汉字(16X16)------(汉字内码 起始位置XY)-------------------------
217 void Display_Chinese(unsigned int UniCode,unsigned char X,unsigned char Y)
218 { unsigned int CodeID;
219 1 unsigned char i,ImgData;
220 1 unsigned char HZ_X=X;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -