📄 main2.lst
字号:
C51 COMPILER V8.02 MAIN2 12/22/2006 20:13:01 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN2
OBJECT MODULE PLACED IN main2.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main2.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include <absacc.h>
3
4 /*常用操作命令和参数定义*/
5 #define DISPON 0x3f //显示开
6 #define DISPOFF 0x3e //显示关,参考指令表"显示开关设置"
7 #define FIRSTROW 0xc0 //显示起始行设置,参考指令表,由LXBYTE[5..0]在0到63行选择
8 #define SETY 0xb8 //Y方向,8页64行,参考指令表,由PXBYTE[2..0]在0到8页选择
9 #define SETX 0x40 //X方向,半屏64列,参考指令表,由CXBYTE[5..0]在0到63列选择
10
11 #define LLCD_CMD_WR XBYTE[0xf2ff]
12 #define LLCD_DAT_WR XBYTE[0xfaff]
13 #define LLCD_CMD_RD XBYTE[0xf6ff]
14 #define LLCD_DAT_RD XBYTE[0xfeff]
15 #define RLCD_CMD_WR XBYTE[0xf1ff]
16 #define RLCD_DAT_WR XBYTE[0xf9ff]
17 #define RLCD_CMD_RD XBYTE[0xf5ff]
18 #define RLCD_DAT_RD XBYTE[0xfdff]
19
20 /*一贞图片,宽度x高度=128x64*/
21 code unsigned char logo[] =
22 {
23 0xFF,0xFF,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
24 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
25 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
26 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
27 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
28 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
29 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
30 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0xFF,0xFF,
31 0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
32 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x0C,0x0C,0x0E,0xCE,0xFE,0xFE,
33 0xFE,0x1E,0x06,0x06,0x06,0x06,0x06,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x1C,
34 0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
35 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
36 0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,
37 0x1C,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
38 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
39 0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
40 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xF0,0xFE,0x7F,0x0F,0x03,
41 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFC,0xFF,0x0F,0x07,0x01,0x00,
42 0x00,0x80,0xE0,0xF0,0xF8,0xDC,0xFC,0x6E,0xEE,0xCE,0xCE,0x80,0x80,0x00,0x00,0x80,
43 0xF0,0xFE,0x7F,0x3F,0x18,0x0C,0x04,0x0C,0xFC,0xF8,0xC0,0x00,0x00,0x00,0x0E,0x9F,
44 0x9F,0xF9,0x70,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFC,0xFF,0x0F,0x07,0x01,
45 0x00,0x00,0xC0,0xF8,0xFF,0x7F,0x3F,0x1C,0x0E,0x06,0x06,0x02,0x02,0x00,0x00,0x00,
46 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
47 0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
48 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x00,0x00,0x00,
49 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
50 0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x01,
51 0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x01,
52 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,
53 0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
54 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
55 0xFF,0xFF,0x00,0x00,0x00,0xC0,0xE0,0x20,0x20,0x60,0x60,0x00,0x00,0xC0,0xE0,0xA0,
C51 COMPILER V8.02 MAIN2 12/22/2006 20:13:01 PAGE 2
56 0xA0,0xE0,0xC0,0x00,0x00,0xC0,0xE0,0xA0,0xA0,0xE0,0xC0,0x00,0x00,0x20,0x20,0xF8,
57 0xF8,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xFC,0xFC,0x60,0x20,0xE0,
58 0xC0,0x00,0x04,0xFC,0xFC,0x20,0x20,0xE0,0xC0,0x00,0x20,0xE0,0xE0,0x60,0x20,0xE0,
59 0xC0,0x00,0x20,0xE0,0xE0,0x00,0x20,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
60 0xC0,0xE0,0xA0,0xA0,0xE0,0xC0,0x00,0x00,0xC0,0xE0,0x20,0x24,0xFC,0xFC,0x00,0x20,
61 0xE0,0xE0,0x00,0x20,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0x20,
62 0x20,0x60,0x60,0x00,0x20,0xE0,0xE0,0x60,0x20,0xE0,0xC0,0x00,0x00,0x00,0xFF,0xFF,
63 0xFF,0xFF,0x00,0x00,0x00,0x03,0x07,0x04,0x04,0x06,0x02,0x00,0x00,0x03,0x07,0x04,
64 0x04,0x06,0x02,0x00,0x00,0x03,0x07,0x04,0x04,0x06,0x02,0x00,0x00,0x00,0x00,0x03,
65 0x07,0x04,0x04,0x00,0x00,0x06,0x06,0x06,0x00,0x00,0x04,0x07,0x07,0x04,0x04,0x07,
66 0x07,0x04,0x00,0x07,0x07,0x04,0x04,0x07,0x03,0x00,0x04,0x07,0x07,0x04,0x04,0x07,
67 0x07,0x04,0x00,0x03,0x07,0x04,0x04,0x07,0x07,0x04,0x00,0x06,0x06,0x06,0x00,0x00,
68 0x03,0x07,0x04,0x04,0x06,0x02,0x00,0x00,0x03,0x07,0x04,0x04,0x07,0x07,0x04,0x00,
69 0x03,0x07,0x04,0x04,0x07,0x07,0x04,0x00,0x06,0x06,0x06,0x00,0x00,0x03,0x07,0x04,
70 0x04,0x06,0x02,0x00,0x04,0x07,0x07,0x04,0x04,0x07,0x07,0x04,0x00,0x00,0xFF,0xFF,
71 0xFF,0xFF,0x00,0x00,0x00,0x00,0x04,0xFC,0x40,0x20,0x20,0xC0,0x00,0x00,0x40,0xA0,
72 0xA0,0x20,0x60,0x00,0x00,0x20,0x20,0xF8,0x20,0x20,0x00,0x00,0x20,0x20,0xE4,0x00,
73 0x00,0x00,0x00,0x40,0x20,0xA0,0xA0,0xC0,0x00,0x20,0xE0,0x40,0x20,0x20,0xC0,0x00,
74 0x00,0x40,0xA0,0xA0,0x20,0x60,0x00,0x00,0x20,0x20,0xE4,0x00,0x00,0x00,0x20,0x20,
75 0xE0,0x40,0x20,0x20,0x00,0xF0,0x08,0xE4,0x14,0xF4,0x08,0xF0,0x00,0x08,0x08,0xFC,
76 0x00,0x00,0x00,0xF0,0x48,0x24,0x24,0x24,0xCC,0x00,0x00,0x18,0x04,0x24,0x24,0xD8,
77 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x20,0x20,0x20,0x60,0x00,0x00,0xC0,0x20,0x20,
78 0x20,0xC0,0x00,0x20,0xE0,0x20,0xE0,0x20,0xC0,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
79 0xFF,0xFF,0xC0,0xC0,0xC0,0xC0,0xC4,0xC7,0xC4,0xC0,0xC4,0xC7,0xC4,0xC0,0xC6,0xC4,
80 0xC4,0xC5,0xC2,0xC0,0xC0,0xC0,0xC0,0xC3,0xC4,0xC4,0xC0,0xC0,0xC4,0xC4,0xC7,0xC4,
81 0xC4,0xC0,0xC0,0xC2,0xC5,0xC4,0xC4,0xC7,0xC4,0xC4,0xC7,0xC4,0xC0,0xC4,0xC7,0xC4,
82 0xC0,0xC6,0xC4,0xC4,0xC5,0xC2,0xC0,0xC0,0xC4,0xC4,0xC7,0xC4,0xC4,0xC0,0xC4,0xC4,
83 0xC7,0xC4,0xC4,0xC0,0xC0,0xC1,0xC2,0xC5,0xC5,0xC4,0xC5,0xC2,0xC0,0xC4,0xC4,0xC7,
84 0xC4,0xC4,0xC0,0xC3,0xC4,0xC4,0xC4,0xC4,0xC3,0xC0,0xC0,0xC3,0xC4,0xC4,0xC4,0xC3,
85 0xC0,0xC0,0xC6,0xC6,0xC0,0xC0,0xC3,0xC4,0xC4,0xC4,0xC2,0xC0,0xC0,0xC3,0xC4,0xC4,
86 0xC4,0xC3,0xC0,0xC4,0xC7,0xC0,0xC7,0xC0,0xC7,0xC4,0xC0,0xC0,0xC0,0xC0,0xFF,0xFF,
87 };
88
89 void delay(unsigned char timer);/*通用延时函数*/
90 void check_busy(unsigned char);/*LCD忙检测*/
91 void lcd_init(void);/*LCD初始化*/
92 void lcd_cmd_wr(unsigned char, unsigned char);/*写命令*/
93 void lcd_data_wr(unsigned char, unsigned char);/*写数据*/
94 void lcd_bmp_wr(unsigned char *bmp);/*写一贞128×64点的图片显示*/
95 void lcd_clr(void);/*数据清屏*/
96 void lcd_mov_up();/*整屏向上循环移动*/
97
98 /*主函数,显示一贞图片范例*/
99 void main(void)
100 {
101 1 delay(50000);//适当延时,等待LCD复位
102 1 lcd_init();
103 1 lcd_bmp_wr(logo);//logo图片数据附后
104 1 while(1)
105 1 {
106 2 //整屏向上循环移动
107 2 //lcd_mov_up();
108 2 //lcd_clr();
109 2 delay(500);
110 2 lcd_bmp_wr(logo);//logo图片数据附后
111 2 }
112 1 }
113
114 /*LCD忙检测*/
115 void check_busy(unsigned char right)
116 {
117 1 unsigned char temp;
C51 COMPILER V8.02 MAIN2 12/22/2006 20:13:01 PAGE 3
118 1 do
119 1 {
120 2 if(right) temp=RLCD_CMD_RD;
121 2 else temp=LLCD_CMD_RD;
122 2 temp = 0x7f;//仿真版不需要忙检测
123 2 }
124 1 while(temp>>7==1);//检测D7是否为1,1表示LCD忙,如果忙,继续检测,直到空闲止
125 1
126 1 }
127
128 /*写命令*/
129 void lcd_cmd_wr(unsigned char cmdcode, unsigned char right)
130 {
131 1 check_busy(right);
132 1 if(right) RLCD_CMD_WR = cmdcode;
133 1 else LLCD_CMD_WR = cmdcode;
134 1 }
135
136 /*LCD初始化*/
137 void lcd_init(void)
138 {
139 1 lcd_cmd_wr(DISPON,0); //开显示,0参数表示左屏
140 1 lcd_cmd_wr(FIRSTROW,0); //设定显示首列
141 1 lcd_cmd_wr(SETY,0); //设定Y坐标
142 1 lcd_cmd_wr(SETX,0); //设定X坐标
143 1 lcd_cmd_wr(DISPON,1); //1参数表示右屏
144 1 lcd_cmd_wr(FIRSTROW,1);
145 1 lcd_cmd_wr(SETY,1);
146 1 lcd_cmd_wr(SETX,1);
147 1 }
148
149 /*写数据*/
150 void lcd_data_wr(unsigned char dispdata, unsigned char right)
151 {
152 1 //check_busy(right);
153 1 if(right) RLCD_DAT_WR = dispdata;
154 1 else LLCD_DAT_WR = dispdata;
155 1 }
156 /*数据清屏*/
157 void lcd_clr(void)
158 {
159 1 unsigned char i,j;
160 1 for(i=0;i<8;i++)//共8页
161 1 {
162 2 lcd_cmd_wr(SETY+i,0);
163 2 lcd_cmd_wr(SETX,0);
164 2 lcd_cmd_wr(SETY+i,1);
165 2 lcd_cmd_wr(SETX,1);
166 2 for(j=0;j<64;j++)//每页64列
167 2 {
168 3 lcd_data_wr(0,0);
169 3 lcd_data_wr(0,1);
170 3 }
171 2 }
172 1 }
173
174 /*写一贞128×64点的图片显示*/
175 void lcd_bmp_wr(unsigned char *bmp)
176 {
177 1 unsigned char i,j;
178 1 for(i=0;i<8;i++)
179 1 {
C51 COMPILER V8.02 MAIN2 12/22/2006 20:13:01 PAGE 4
180 2 //页地址设定
181 2 lcd_cmd_wr(SETY+i,0);
182 2 lcd_cmd_wr(SETX,0);
183 2 lcd_cmd_wr(SETY+i,1);
184 2 lcd_cmd_wr(SETX,1);
185 2
186 2 for(j=0;j<64;j++)
187 2 {
188 3 lcd_data_wr(bmp[128*i+j],0);//左半屏
189 3 lcd_data_wr(bmp[128*i+j+64],1);//右半屏
190 3 }
191 2 }
192 1 }
193
194 /*整屏向上循环移动*/
195 void lcd_mov_up()
196 {
197 1 unsigned char i;
198 1 for(i=0;i<64;i++)//64行循环
199 1 {
200 2 lcd_cmd_wr(FIRSTROW+i,0);
201 2 lcd_cmd_wr(FIRSTROW+i,1);
202 2 delay(500);//适当延时
203 2 }
204 1 }
205
206 /*通用延时函数*/
207 void delay(unsigned char timer)
208 {
209 1 unsigned char i;
210 1 while(--timer)
211 1 for(i=0;i<100;i++);
212 1 }
213
214
215
216
217
218
219
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 340 ----
CONSTANT SIZE = 1024 ----
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 + -