📄 yejing.lst
字号:
C51 COMPILER V8.09 YEJING 09/01/2009 10:21:18 PAGE 1
C51 COMPILER V8.09, COMPILATION OF MODULE YEJING
OBJECT MODULE PLACED IN yejing.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE yejing.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "C8051F340.h"
2 #include "spi.h"
3 sbit sec = P2^0; //片选
4 sbit rst = P2^3; //复位,0复位
5 sbit oc = P2^2; //1写数据,0写指令
6 sbit sdin = P1^2; //数据
7 sbit sclk = P1^0; //时钟
8
9
10
11
12
13
14
15 xdata unsigned char code shuzi[]={
*** ERROR C185 IN LINE 15 OF YEJING.C: 'shuzi': different memory space
16 /*-- 文字: 2 --*/
17 /*-- Trebuchet MS9; 此字体下对应的点阵为:宽x高=6x12 --*/
18 /*-- 高度不是8的倍数,现调整为:宽度x高度=6x16 --*/
19 0x18,0x84,0x44,0x24,0x18,0x00,0x03,0x02,0x02,0x02,0x02,0x00,
20
21 /*-- 文字: 0 --*/
22 /*-- Trebuchet MS9; 此字体下对应的点阵为:宽x高=6x12 --*/
23 /*-- 高度不是8的倍数,现调整为:宽度x高度=6x16 --*/
24 0xF8,0x04,0x04,0x04,0xF8,0x00,0x01,0x02,0x02,0x02,0x01,0x00,
25
26 /*-- 文字: 0 --*/
27 /*-- Trebuchet MS9; 此字体下对应的点阵为:宽x高=6x12 --*/
28 /*-- 高度不是8的倍数,现调整为:宽度x高度=6x16 --*/
29 0xF8,0x04,0x04,0x04,0xF8,0x00,0x01,0x02,0x02,0x02,0x01,0x00,
30
31 /*-- 文字: 9 --*/
32 /*-- Trebuchet MS9; 此字体下对应的点阵为:宽x高=6x12 --*/
33 /*-- 高度不是8的倍数,现调整为:宽度x高度=6x16 --*/
34 0x38,0x44,0x44,0x44,0xF8,0x00,0x00,0x03,0x02,0x02,0x01,0x00,
35 };
36
37 xdata unsigned char code hanzi[]=
*** ERROR C185 IN LINE 37 OF YEJING.C: 'hanzi': different memory space
38 {
39 /*-- 文字: 全 --*/
40 /*-- Trebuchet MS9; 此字体下对应的点阵为:宽x高=12x12 --*/
41 /*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/
42 0x10,0x10,0x88,0x94,0x92,0xF1,0x92,0x94,0x88,0x10,0x10,0x00,0x04,0x04,0x04,0x04,
43 0x04,0x07,0x04,0x04,0x04,0x04,0x04,0x00,
44
45 /*-- 文字: 国 --*/
46 /*-- Trebuchet MS9; 此字体下对应的点阵为:宽x高=12x12 --*/
47 /*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/
48 0x00,0xFF,0x01,0x15,0x15,0xFD,0x15,0x55,0x95,0x01,0xFF,0x00,0x00,0x07,0x05,0x05,
49 0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x00,
50
51 /*-- 文字: 大 --*/
52 /*-- Trebuchet MS9; 此字体下对应的点阵为:宽x高=12x12 --*/
53 /*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/
C51 COMPILER V8.09 YEJING 09/01/2009 10:21:18 PAGE 2
54 0x08,0x08,0x08,0x08,0xC8,0x3F,0xC8,0x08,0x08,0x0C,0x08,0x00,0x04,0x04,0x02,0x01,
55 0x00,0x00,0x00,0x01,0x02,0x04,0x04,0x00,
56
57 /*-- 文字: 学 --*/
58 /*-- Trebuchet MS9; 此字体下对应的点阵为:宽x高=12x12 --*/
59 /*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/
60 0x9C,0x84,0x95,0x96,0x95,0xD6,0xB4,0x94,0x87,0x94,0x8C,0x00,0x00,0x00,0x00,0x04,
61 0x04,0x07,0x00,0x00,0x00,0x00,0x00,0x00,
62
63 /*-- 文字: 生 --*/
64 /*-- Trebuchet MS9; 此字体下对应的点阵为:宽x高=12x12 --*/
65 /*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/
66 0x20,0x18,0x4E,0x48,0x48,0xFF,0x48,0x48,0x48,0x4C,0x08,0x00,0x04,0x04,0x04,0x04,
67 0x04,0x07,0x04,0x04,0x04,0x04,0x04,0x00,
68
69 /*-- 文字: 电 --*/
70 /*-- Trebuchet MS9; 此字体下对应的点阵为:宽x高=12x12 --*/
71 /*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/
72 0x00,0xFC,0x94,0x94,0x94,0xFF,0x94,0x94,0x94,0xFE,0x04,0x00,0x00,0x01,0x00,0x00,
73 0x00,0x03,0x04,0x04,0x04,0x04,0x06,0x00,
74
75 /*-- 文字: 子 --*/
76 /*-- Trebuchet MS9; 此字体下对应的点阵为:宽x高=12x12 --*/
77 /*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/
78 0x20,0x21,0x21,0x21,0x21,0xF9,0x29,0x25,0x23,0x31,0x20,0x00,0x00,0x00,0x00,0x04,
79 0x04,0x07,0x00,0x00,0x00,0x00,0x00,0x00,
80
81 /*-- 文字: 设 --*/
82 /*-- Trebuchet MS9; 此字体下对应的点阵为:宽x高=12x12 --*/
83 /*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/
84 0x10,0x11,0xF2,0x20,0x10,0x6F,0xA1,0x21,0xAF,0x68,0x08,0x00,0x00,0x00,0x03,0x05,
85 0x04,0x04,0x02,0x01,0x02,0x04,0x04,0x00,
86
87 /*-- 文字: 计 --*/
88 /*-- Trebuchet MS9; 此字体下对应的点阵为:宽x高=12x12 --*/
89 /*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/
90 0x10,0xF1,0x02,0x00,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x00,0x00,0x07,0x02,0x01,
91 0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,
92
93 /*-- 文字: 大 --*/
94 /*-- Trebuchet MS9; 此字体下对应的点阵为:宽x高=12x12 --*/
95 /*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/
96 0x08,0x08,0x08,0x08,0xC8,0x3F,0xC8,0x08,0x08,0x0C,0x08,0x00,0x04,0x04,0x02,0x01,
97 0x00,0x00,0x00,0x01,0x02,0x04,0x04,0x00,
98
99 /*-- 文字: 赛 --*/
100 /*-- Trebuchet MS9; 此字体下对应的点阵为:宽x高=12x12 --*/
101 /*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/
102 0x84,0xA6,0x6A,0xEA,0x3E,0xAB,0x2A,0xFE,0x6A,0xAA,0xA6,0x00,0x00,0x04,0x04,0x05,
103 0x02,0x01,0x02,0x03,0x04,0x04,0x00,0x00,
104 };
105
106
107
108
109
110
111
112
113
114
115
C51 COMPILER V8.09 YEJING 09/01/2009 10:21:18 PAGE 3
116
117
118
119
120
121
122 /*--------------延时函数-----------*/
123 void delay(unsigned int ii)
124 {
125 1 unsigned int i,x;
126 1 for (x=0;x<ii;x++)
127 1 for (i=0;i<500;i++)
128 1 ;
129 1 }
130 /*--------------------------------------------
131 LCD_write_byte: 使用SPI接口写数据到LCD
132 输入参数:dt:写入的数据;
133 command :写数据/命令选择;
134 ----------------------------------------------*/
135 void LCD_write_byte(unsigned char dt, unsigned char command)
136 {
137 1
138 1 sec=0;
139 1 oc=command;
140 1 SPI0CN &=0x01;
141 1 SPI0DAT=dt;
142 1 while(!(SPI0CN&0x80));
143 1 oc=1;
144 1 sec=1;
145 1 sdin=1;
146 1
147 1 }
148
149 /*---------------------------------------
150 LCD_init: LCD初始化
151 ----------------------------------------- */
152 void LCD_init(void)
153 {
154 1 rst=0;
155 1 delay(10);
156 1 rst=1;
157 1 LCD_write_byte(0x21,0);//初始化Lcd,功能设定使用扩充指令
158 1 LCD_write_byte(0xd0,0);//设定液晶偏置电压
159 1 LCD_write_byte(0x20,0);//使用基本指令
160 1 LCD_write_byte(0x0C,0);//设定显示模式,正常显示
161 1 }
162
163 /*-------------------------------------------
164 LCD_set_XY: 设置LCD坐标函数
165 输入参数:X:0-83 Y:0-5
166 ---------------------------------------------*/
167 void LCD_set_XY(unsigned char X, unsigned char Y)
168 {
169 1 LCD_write_byte(0x40 | Y, 0);// Y轴
170 1 LCD_write_byte(0x80 | X, 0);// X轴 右下角为(0,0)点
171 1 }
172
173 /*------------------------------------------
174 LCD_clear: LCD清屏函数
175 --------------------------------------------*/
176 void LCD_clear(void)
177 {
C51 COMPILER V8.09 YEJING 09/01/2009 10:21:18 PAGE 4
178 1 unsigned char t,k;
179 1 LCD_set_XY(0,0);
180 1 for(t=0;t<6;t++)
181 1 for(k=0;k<84;k++)
182 1 LCD_write_byte(0x00,1);
183 1 }
184
185 /*---------------------------------------------
186 LCD_write_shu: 显示6(宽)*16(高)点阵列数字字母符号等半角类
187 输入参数:row:列;
188 page:页;
189 c:显示的字符;
190 -----------------------------------------------*/
191 void LCD_write_shu(unsigned char row, unsigned char page,unsigned char c)
192 {
193 1 unsigned char i;
194 1 LCD_set_XY(row*6, page);// 列,页
195 1 for(i=0; i<6;i++)
196 1 {
197 2 LCD_write_byte(shuzi[c*12+i],1);
198 2 }
199 1
200 1 LCD_set_XY(row*6, page+1);// 列,页
201 1 for(i=6; i<12;i++)
202 1 {
203 2 LCD_write_byte(shuzi[c*12+i],1);
204 2 }
205 1 }
206
207 /*---------------------------------------------
208 LCD_write_hanzi: 显示12(宽)*16(高)点阵列汉字等半角类
209 输入参数:row:列;
210 page:页;
211 c:显示的字符;
212 -----------------------------------------------*/
213 void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c)
214 {
215 1 unsigned char i;
216 1
217 1 LCD_set_XY(row*6, page);// 列,页
218 1 for(i=0; i<12;i++)
219 1 {
220 2 LCD_write_byte(hanzi[c*24+i],1);
221 2 }
222 1
223 1 LCD_set_XY(row*6, page+1);// 列,页
224 1 for(i=12; i<24;i++)
225 1 {
226 2 LCD_write_byte(hanzi[c*24+i],1);
227 2 }
228 1 }
229
230 main()
231 {
232 1 PCA0MD = 0x00 ; //关闭看门狗
233 1 XBR1 = 0x40 ; //交叉开关使能
234 1 P1MDOUT = 0xFF ;
235 1 P2MDOUT = 0xFF ;
236 1 Init_Device();
237 1 rst=0;
238 1 delay(10);
239 1 rst=1;
C51 COMPILER V8.09 YEJING 09/01/2009 10:21:18 PAGE 5
240 1 LCD_init(); //初始化LCD模块
241 1 LCD_clear(); //清屏幕
242 1 LCD_write_shu(0,0,0);
243 1 LCD_write_shu(1,0,0);
244 1 LCD_write_shu(2,0,0);
245 1 LCD_write_shu(3,0,0);
246 1 /* LCD_write_hanzi(0,0,0); //单
247 1 LCD_write_hanzi(2,0,1); //片
248 1 LCD_write_hanzi(4,0,2); //机
249 1 LCD_write_hanzi(6,0,3); //开
250 1 LCD_write_hanzi(8,0,4); //发
251 1 LCD_write_hanzi(10,0,5); //工
252 1 LCD_write_hanzi(12,0,6); //作
253 1 LCD_write_hanzi(0,2,7); //室
254 1
255 1 LCD_write_hanzi(1,4,8); //雨
256 1 LCD_write_hanzi(2,4,9); //亭
257 1 LCD_write_hanzi(3,4,10); //电
258 1 LCD_write_hanzi(4,4,11); //子
259 1
260 1 LCD_write_shu(10,4,0); //>
261 1 LCD_write_shu(11,4,1); //W
262 1 LCD_write_shu(12,4,2); //Y
263 1 LCD_write_shu(13,4,3); //G */
264 1
265 1 while(1)
266 1 {
267 2
268 2 }
269 1 }
270
271
272
273
274
275
276
277
C51 COMPILATION COMPLETE. 0 WARNING(S), 2 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -