📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 12/31/2007 21:52:44 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2 #include <stdio.h>
3 #include <absacc.h>
4 #include <intrins.h>
5
6 typedef unsigned char uint8;
7 typedef unsigned int uint16;
8 typedef long unsigned int uint32;
9
10 #define LCM_DISPON 0x3f /* 打开LCM显示 */
11 #define LCM_STARTROW 0xc0 /* 显示起始行0,可以用LCM_STARTROW+x设置起始行。(x<64) */
12 #define LCM_ADDRSTRX 0xb8 /* 页起始地址,可以用LCM_ADDRSTRX+x设置当前页(即X)。(x<8) */
13 #define LCM_ADDRSTRY 0x40 /* 列起始地址,可以用LCM_ADDRSTRY+x设置当前列(即Y)。(x<64) */
14 #define LcdComA XBYTE[0x6020] /* 左半屏控制端口 */
15 #define LcdComB XBYTE[0x6040] /* 右半屏控制端口 */
16 #define LcdComAll XBYTE[0x6060] /* 全屏控制端口 */
17 #define LcdWDataA XBYTE[0x6120] /* 左半屏数据端口 */
18 #define LcdWDataB XBYTE[0x6140] /* 右半屏数据端口 */
19 #define LcdDataAll XBYTE[0x6160] /* 全屏数据端口 */
20
21 unsigned char code XI[]=
22 {
23 /*------------------------------------------------------------------------------
24 源文件 / 文字 : 西
25 宽×高(像素): 16×16
26 字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
27 ------------------------------------------------------------------------------*/
28 0x00,0x00,0x04,0x00,0x04,0x00,0xE4,0x7F,0x24,0x28,0x24,0x24,0xFC,0x23,0x24,0x20,
29 0x24,0x20,0xFC,0x23,0x24,0x24,0x24,0x24,0x24,0x24,0xE6,0x7F,0x04,0x00,0x00,0x00
30 };
31
32 unsigned char code AN[]=
33 {
34 /*------------------------------------------------------------------------------
35 源文件 / 文字 : 安
36 宽×高(像素): 16×16
37 字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
38 ------------------------------------------------------------------------------*/
39 0x00,0x00,0x80,0x00,0xA0,0x40,0x98,0x40,0x88,0x40,0x88,0x26,0x88,0x25,0xEA,0x18,
40 0x8C,0x08,0x88,0x0C,0x88,0x13,0x88,0x10,0xA8,0x20,0x98,0x60,0x80,0x00,0x00,0x00
41 };
42
43 unsigned char code JIAO[]=
44 {
45 /*------------------------------------------------------------------------------
46 源文件 / 文字 : 交
47 宽×高(像素): 16×16
48 字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
49 ------------------------------------------------------------------------------*/
50 0x00,0x00,0x08,0x00,0x08,0x41,0x88,0x40,0x48,0x40,0xA8,0x21,0x08,0x22,0x0A,0x14,
51 0x0C,0x08,0x08,0x16,0x88,0x21,0x28,0x20,0x48,0x40,0x8C,0x40,0x08,0x40,0x00,0x00
52 };
53
54 unsigned char code TONG[]=
55 {
C51 COMPILER V7.06 MAIN 12/31/2007 21:52:44 PAGE 2
56 /*------------------------------------------------------------------------------
57 源文件 / 文字 : 通
58 宽×高(像素): 16×16
59 字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
60 ------------------------------------------------------------------------------*/
61 0x00,0x00,0x40,0x20,0x42,0x10,0xCC,0x0F,0x00,0x10,0x00,0x20,0xF4,0x5F,0x54,0x42,
62 0x5C,0x42,0xF4,0x5F,0x5C,0x42,0x56,0x52,0xF4,0x5F,0x00,0x40,0x00,0x40,0x00,0x00
63 };
64
65 unsigned char code DA[]=
66 {
67 /*------------------------------------------------------------------------------
68 源文件 / 文字 : 大
69 宽×高(像素): 16×16
70 字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
71 ------------------------------------------------------------------------------*/
72 0x00,0x00,0x20,0x40,0x20,0x40,0x20,0x20,0x20,0x10,0x20,0x08,0x20,0x06,0xFE,0x01,
73 0x20,0x02,0x20,0x04,0x20,0x08,0x20,0x10,0x20,0x20,0x30,0x60,0x20,0x20,0x00,0x00
74 };
75
76 unsigned char code XUE[]=
77 {
78 /*------------------------------------------------------------------------------
79 源文件 / 文字 : 学
80 宽×高(像素): 16×16
81 字模格式/大小 : 单色点阵液晶字模,横向取模,字节正序/32字节
82 ------------------------------------------------------------------------------*/
83 0x00,0x00,0x40,0x04,0x30,0x04,0x10,0x04,0x52,0x04,0x5C,0x04,0x50,0x24,0x52,0x44,
84 0x5C,0x3F,0x50,0x05,0xD8,0x04,0x56,0x04,0x10,0x04,0x50,0x06,0x30,0x04,0x00,0x00
85 };
86
87 /*************************************************
88 延时子程序
89 *************************************************/
90 void delay(uint16 time)
91 {
92 1 while(time--);
93 1 }
94
95 /*************************************************
96 液晶初始化
97 *************************************************/
98 void LCM_DispIni(void)
99 {
100 1 LcdComAll = LCM_DISPON;
101 1 delay(50);
102 1 LcdComAll = LCM_STARTROW;
103 1 delay(50);
104 1 LcdComAll = LCM_ADDRSTRX;
105 1 delay(50);
106 1 LcdComAll = LCM_ADDRSTRY;
107 1 delay(50);
108 1 }
109 /*************************************************
110 全屏填充
111 *************************************************/
112 void LCM_DispFill(uint8 filldata)
113 {
114 1 uint8 x,y;
115 1 LcdComAll = LCM_STARTROW;
116 1 delay(50);
117 1 for(x=0;x<8;x++)
C51 COMPILER V7.06 MAIN 12/31/2007 21:52:44 PAGE 3
118 1 {
119 2 LcdComAll = LCM_ADDRSTRX + x;
120 2 delay(50);
121 2 LcdComAll = LCM_ADDRSTRY;
122 2 delay(50);
123 2 for(y=0;y<64;y++)
124 2 {
125 3 LcdDataAll = filldata;
126 3 delay(50);
127 3 }
128 2 }
129 1 }
130
131 void LCD_init(void)
132 {
133 1 LCM_DispIni();
134 1 LCM_DispFill(0x00);
135 1 }
136 /*************************************************
137 向x,y坐标写入数据wrdata
138 *************************************************/
139 void LCM_WriteByte(uint8 x,uint8 y,uint8 wrdata)
140 {
141 1 x = x & 0x7f;
142 1 y = y & 0x3f;
143 1 y = y >> 3;
144 1 if(x<64)
145 1 {
146 2 LcdComA = LCM_ADDRSTRY + x;
147 2 delay(50);
148 2 LcdComA = LCM_ADDRSTRX + y;
149 2 delay(50);
150 2 LcdWDataA = wrdata;
151 2 delay(50);
152 2 }
153 1 else
154 1 {
155 2 x = x -64;
156 2 LcdComB = LCM_ADDRSTRY + x;
157 2 delay(50);
158 2 LcdComB = LCM_ADDRSTRX + y;
159 2 delay(50);
160 2 LcdWDataB = wrdata;
161 2 delay(50);
162 2 }
163 1 }
164 /*************************************************
165 在x,y坐标处显示汉字(16X16)
166 *************************************************/
167 void PutChinese(uint8 x,uint8 y,uint8 *dat)
168 {
169 1 uint8 i;
170 1 for(i=0;i<16;i++)
171 1 {
172 2 LCM_WriteByte(x+i,y,*(dat++));
173 2 LCM_WriteByte(x+i,y+8,*(dat++));
174 2 }
175 1 }
176 main()
177 {
178 1 //Init_RS232();
179 1 SCON=0x52;
C51 COMPILER V7.06 MAIN 12/31/2007 21:52:44 PAGE 4
180 1 TMOD=0x20;
181 1 TH1=0xFD; // 波特率为9600,晶振=11.0592M
182 1 TR1=1;
183 1 LCD_init();
184 1
185 1 PutChinese(16,0,XI);
186 1 PutChinese(32,0,AN);
187 1 PutChinese(48,0,JIAO);
188 1 PutChinese(64,0,TONG);
189 1 PutChinese(80,0,DA);
190 1 PutChinese(96,0,XUE);
191 1
192 1 PutChinese(16,16,XI);
193 1 PutChinese(32,16,AN);
194 1 PutChinese(48,16,JIAO);
195 1 PutChinese(64,16,TONG);
196 1 PutChinese(80,16,DA);
197 1 PutChinese(96,16,XUE);
198 1
199 1 PutChinese(16,32,XI);
200 1 PutChinese(32,32,AN);
201 1 PutChinese(48,32,JIAO);
202 1 PutChinese(64,32,TONG);
203 1 PutChinese(80,32,DA);
204 1 PutChinese(96,32,XUE);
205 1
206 1 PutChinese(16,48,XI);
207 1 PutChinese(32,48,AN);
208 1 PutChinese(48,48,JIAO);
209 1 PutChinese(64,48,TONG);
210 1 PutChinese(80,48,DA);
211 1 PutChinese(96,48,XUE);
212 1 while(1);
213 1 }
214
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 562 ----
CONSTANT SIZE = 192 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
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 + -