📄 12864tupian.lst
字号:
C51 COMPILER V8.02 12864TUPIAN 07/01/2010 14:41:11 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 12864TUPIAN
OBJECT MODULE PLACED IN 12864tupian.OBJ
COMPILER INVOKED BY: D:\处理软件\keil\C51\BIN\C51.EXE 12864tupian.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /******************************************************************************
2 “天祥电子” 倾情奉献
3 www.txmcu.com
4 www.txmcu.cn
5 *************************************************************************************
6 功能简介: 本程序驱动12864显示一副的图片。
7 ************************************************************************************/
8
9 #include <reg51.h>
10 #include <intrins.h>
11
12 #define uchar unsigned char
13 #define uint unsigned int
14 /*12864端口定义*/
15 #define LCD_data P0 //数据口
16 sbit LCD_RS = P3^5; //寄存器选择输入
17 sbit LCD_RW = P3^6; //液晶读/写控制
18 sbit LCD_EN = P3^4; //液晶使能控制
19 sbit LCD_PSB = P3^7; //串/并方式控制
20 sbit wela = P2^6;
21 sbit dula = P2^7;
22
23 unsigned char code zhu[]= //图片代码
24 {
25 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xD4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
29 0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
30 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
31 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
32 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
33 0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
34 0x00,0x00,0x03,0x50,0x00,0x50,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
35 0x00,0x00,0x3C,0x04,0x00,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
36 0x00,0x00,0x40,0x01,0x0B,0x15,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
37 0x00,0x00,0x40,0x00,0x88,0x00,0x00,0x06,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
38 0x00,0x01,0x80,0x00,0x60,0x00,0x00,0x05,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
39 0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x03,0x90,0x00,0x01,0xB6,0x36,0x00,0x00,0x00,
40 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,0x00,0x01,0xFE,0x36,0x00,0x00,0x00,
41 0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x02,0x20,0x00,0x01,0xB6,0x36,0x00,0x00,0x00,
42 0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x02,0xA0,0x00,0x03,0x6F,0xFF,0x00,0x00,0x00,
43 0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x1D,0x00,0x00,0x00,0x00,0x2C,0x00,0x00,0x00,
44 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0xC0,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
45 0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,
46 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0x80,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
47 0x00,0x00,0x10,0x80,0x00,0x00,0x1F,0x08,0x47,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,
48 0x00,0x00,0x01,0x20,0x00,0x00,0x3D,0x13,0x0C,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,
49 0x00,0x00,0x08,0x10,0x00,0x00,0x27,0xA0,0x18,0x06,0x00,0x00,0x00,0x00,0x00,0x00,
50 0x00,0x00,0x02,0x10,0x00,0x00,0x3F,0x80,0x38,0xC7,0x00,0x00,0x00,0x00,0x00,0x00,
51 0x00,0x00,0x04,0x03,0xE0,0x00,0x33,0x90,0x3F,0xC7,0x00,0x00,0x00,0x00,0x00,0x00,
52 0x00,0x00,0x00,0x03,0xB0,0x00,0x33,0x10,0x7F,0x87,0x00,0x00,0x00,0x00,0x00,0x00,
53 0x00,0x00,0x08,0x24,0xF0,0x0C,0x0E,0x00,0xFF,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,
54 0x00,0x00,0x00,0x07,0xF0,0xC2,0x00,0x00,0xFE,0x1F,0x81,0xB3,0xE6,0xD8,0xF0,0x00,
55 0x00,0x00,0x08,0x46,0x71,0x06,0x00,0x08,0x3F,0x1F,0x01,0xF6,0x67,0xF9,0xB0,0x00,
C51 COMPILER V8.02 12864TUPIAN 07/01/2010 14:41:11 PAGE 2
56 0x00,0x00,0x00,0x03,0x20,0x98,0x00,0x00,0x3F,0xFF,0x01,0xB6,0xC6,0xD9,0x80,0x00,
57 0x00,0x00,0x08,0x40,0xC0,0x24,0x00,0x04,0x3F,0x1F,0x03,0x7F,0xFD,0xBE,0xFC,0x00,
58 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x1E,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,
59 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x0E,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,
60 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x87,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
61 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
62 0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
63 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
64 0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
65 0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
66 0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,
67 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x02,0x08,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,
68 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,
69 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x88,0x00,0x01,0x8C,0x00,0x00,0x00,0x00,
70 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x01,0x8E,0x00,0x00,0x00,0x00,
71 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x01,0x00,0x00,0x01,0xB6,0x06,0xDB,0x6C,0x00,
72 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0x06,0xDB,0x6C,0x00,
73 0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
74 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
75 0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
76 0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
77 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
78 0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
79 0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
80 0x00,0x00,0x00,0x00,0x40,0x00,0x01,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
81 0x00,0x00,0x00,0x00,0x94,0xA4,0x68,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
82 0x00,0x00,0x00,0x00,0x02,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
83 0x00,0x00,0x00,0x00,0x42,0x00,0x10,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
84 0x00,0x00,0x00,0x00,0x20,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
85 0x00,0x00,0x00,0x00,0x14,0x00,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
86 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
87 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
88 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
89 };
90
91 #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
92
93 void delay0(uchar x); //x*0.14MS
94 void beep();
95 void dataconv();
96 void lcd_pos(uchar X,uchar Y); //确定显示位置
97
98 void delay(int ms)
99 {
100 1 while(ms--)
101 1 {
102 2 uchar i;
103 2 for(i=0;i<250;i++)
104 2 {
105 3 _nop_();
106 3 _nop_();
107 3 _nop_();
108 3 _nop_();
109 3 }
110 2 }
111 1 }
112
113 /*******************************************************************/
114 /* */
115 /*检查LCD忙状态 */
116 /*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。 */
117 /* */
C51 COMPILER V8.02 12864TUPIAN 07/01/2010 14:41:11 PAGE 3
118 /*******************************************************************/
119 bit lcd_busy()
120 {
121 1 bit result;
122 1 LCD_RS = 0;
123 1 LCD_RW = 1;
124 1 LCD_EN = 1;
125 1 delayNOP();
126 1 result = (bit)(P0&0x80);
127 1 LCD_EN = 0;
128 1 return(result);
129 1 }
130 /*******************************************************************/
131 /* */
132 /*写指令数据到LCD */
133 /*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */
134 /* */
135 /*******************************************************************/
136 void lcd_wcmd(uchar cmd)
137 {
138 1 while(lcd_busy());
139 1 LCD_RS = 0;
140 1 LCD_RW = 0;
141 1 LCD_EN = 0;
142 1 _nop_();
143 1 _nop_();
144 1 P0 = cmd;
145 1 delayNOP();
146 1 LCD_EN = 1;
147 1 delayNOP();
148 1 LCD_EN = 0;
149 1 }
150 /*******************************************************************/
151 /* */
152 /*写显示数据到LCD */
153 /*RS=H,RW=L,E=高脉冲,D0-D7=数据。 */
154 /* */
155 /*******************************************************************/
156 void lcd_wdat(uchar dat)
157 {
158 1 while(lcd_busy());
159 1 LCD_RS = 1;
160 1 LCD_RW = 0;
161 1 LCD_EN = 0;
162 1 P0 = dat;
163 1 delayNOP();
164 1 LCD_EN = 1;
165 1 delayNOP();
166 1 LCD_EN = 0;
167 1 }
168 /*******************************************************************/
169 /* */
170 /* LCD初始化设定 */
171 /* */
172 /*******************************************************************/
173 void lcd_init()
174 {
175 1
176 1 LCD_PSB = 1; //并口方式
177 1
178 1 lcd_wcmd(0x34); //扩充指令操作
179 1 delay(5);
C51 COMPILER V8.02 12864TUPIAN 07/01/2010 14:41:11 PAGE 4
180 1 lcd_wcmd(0x30); //基本指令操作
181 1 delay(5);
182 1 lcd_wcmd(0x0C); //显示开,关光标
183 1 delay(5);
184 1 lcd_wcmd(0x01); //清除LCD的显示内容
185 1 delay(5);
186 1 }
187
188 /*******************************************
189 函数名称:Draw_PM
190 功 能:在整个液晶屏幕上画图
191 参 数:无
192 返回值 :无
193 ********************************************/
194 void Draw_PM(const uchar *ptr)
195 {
196 1 uchar i,j,k;
197 1 wela=0;
198 1 dula=0;
199 1 lcd_wcmd(0x34); //打开扩展指令集
200 1 i = 0x80;
201 1 for(j = 0;j < 32;j++)
202 1 {
203 2 lcd_wcmd(i++);
204 2 lcd_wcmd(0x80);
205 2 for(k = 0;k < 16;k++)
206 2 {
207 3 lcd_wdat(*ptr++);
208 3 }
209 2 }
210 1 i = 0x80;
211 1 for(j = 0;j < 32;j++)
212 1 {
213 2 lcd_wcmd(i++);
214 2 lcd_wcmd(0x88);
215 2 for(k = 0;k < 16;k++)
216 2 {
217 3 lcd_wdat(*ptr++);
218 3 }
219 2 }
220 1 lcd_wcmd(0x36); //打开绘图显示
221 1 lcd_wcmd(0x30); //回到基本指令集
222 1 }
223
224 main()
225 {
226 1 wela=0;
227 1 dula=0;
228 1 lcd_init(); //初始化LCD
229 1 Draw_PM(zhu); //显示可爱猪的图片
230 1 while(1);
231 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 274 ----
CONSTANT SIZE = 1024 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
C51 COMPILER V8.02 12864TUPIAN 07/01/2010 14:41:11 PAGE 5
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -