📄 tuxing.lst
字号:
C51 COMPILER V8.08 TUXING 08/27/2008 19:09:20 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE TUXING
OBJECT MODULE PLACED IN Tuxing.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE Tuxing.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #include<stdio.h>
3
4 unsigned data i;
5 unsigned char q;
6 unsigned char *p2; //建立数组指针
7 unsigned char wbyte;
8 unsigned char Column; //定义列
9 unsigned char Page; //定义页
10
11 sbit E=P3^2; //读写使能信号,1有效
12 sbit R_W=P3^1; //读写选择信号;1为读选通,0为写选通
13 sbit RS=P3^0;
14 sbit D_I=P3^0; //数据指令选择信号;1为数据操作,0为写指令或读状态
15
16 unsigned char data j;
17 unsigned char data k;
18
19 /********************扩充指令集画图********************/
20 unsigned char data z; //图形数组的页,为实际点阵行数
21 unsigned char data y; //图形数组的列,为实际点阵列数除以8
22 unsigned char data Column; //起始点设定:为在液晶中显示的实际起始列
23 unsigned char data Page; //起始点设定:为在液晶中显示的实际起始行
24
25 char code Tu[64][16]= //图形数组,龙的标志
26 {
27 0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,
28 0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,
29 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,
30 0x00,0x00,0x03,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xF0,0x00,
31 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
32 0x07,0xFF,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF,0xFC,0x00,0x00,0x00,
33 0x00,0x00,0x00,0x00,0x07,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,
34 0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,
35 0x00,0x00,0x0F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xC0,
36 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
37 0x0F,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xE0,0x00,0x00,
38 0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,
39 0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xF8,0x80,0x00,0x00,0x00,
40 0x00,0x00,0x1F,0xFF,0xFF,0xF8,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xF8,
41 0x80,0x00,0x00,0x00,0x00,0x00,0x0F,0xFF,0xFF,0xF8,0x80,0x00,0x00,0x00,0xFF,0x1C,
42 0x0F,0xFF,0xFF,0xFC,0x80,0x00,0x00,0x07,0xFF,0x1F,0x0F,0xFF,0xFF,0xFC,0x80,0x06,
43 0x00,0x3F,0xFF,0x1F,0x0F,0xFF,0xFF,0xFE,0x80,0x06,0x03,0xFF,0xFF,0x1F,0x07,0xFF,
44 0xFF,0xFE,0x80,0x04,0x07,0xFF,0xFF,0x1F,0x07,0xFF,0xFF,0xFE,0xC0,0x1C,0x3F,0xFF,
45 0xFF,0x1F,0x07,0xFF,0xFF,0xFE,0x60,0x30,0xFF,0xFF,0xFF,0x1F,0x07,0xFF,0xFF,0xFE,
46 0x20,0xE1,0xFF,0xFF,0xFF,0x1F,0x07,0xFF,0xFF,0xFE,0x23,0x87,0xFF,0xFF,0xFF,0x1F,
47 0x03,0xFF,0xFF,0xFF,0x26,0x1F,0xFF,0xFF,0xFF,0x1E,0x01,0xFF,0xFF,0xFF,0x24,0x3F,
48 0xFF,0xFF,0xFF,0x1E,0x01,0xFF,0xFF,0xFF,0xFC,0xFF,0xFF,0xFF,0xFF,0x1E,0x00,0x3F,
49 0xFF,0xFF,0xF8,0xFF,0xFF,0xFF,0xFF,0x1C,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
50 0xFF,0x18,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x10,0x07,0xFF,0xFF,0xFF,
51 0xFF,0xFF,0xFF,0xFF,0xFF,0x10,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,
52 0x0F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,
53 0xFF,0xFF,0xFE,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x7F,0xFF,
54 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
55 0xFC,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0xFF,0xFF,0xFF,0xFF,
C51 COMPILER V8.08 TUXING 08/27/2008 19:09:20 PAGE 2
56 0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,
57 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,
58 0xFF,0xFF,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x7F,0xFF,
59 0xF9,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x7F,0xFF,0xFB,0xFF,0xFF,0xFF,0xFB,0xC0,
60 0x00,0x00,0x7F,0xFF,0xEF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x1F,0xFF,0x99,0xFB,
61 0xFF,0xFF,0xFC,0x00,0x00,0x00,0x3F,0xFF,0xBB,0xFB,0xFF,0xFF,0xFE,0x00,0x00,0x00,
62 0x3F,0xFF,0xF7,0x7B,0x9F,0xFF,0xFF,0x00,0x00,0x00,0x07,0xFE,0xCE,0x7B,0xDF,0xFF,
63 0xFF,0x00,0x00,0x00,0x07,0xFF,0xDE,0x7B,0xDF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x1F,
64 0xB8,0x62,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,0x1E,0x30,0x02,0x7F,0xFF,0xFE,0x00,
65 0x00,0x00,0x00,0x0F,0xE0,0x02,0x7F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x07,0x80,0x02,
66 0x7F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x7F,0xFF,0xFF,0x00,0x00,0x00,
67 0x00,0x00,0x00,0x03,0x7F,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x3F,0xFF,
68 0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x3F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,
69 0x00,0x03,0x3F,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xBF,0xFF,0xE0,0x00,
70 0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xFF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
71 0x00,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x00,0x00,0x00
72 };
73
74 void WCOM(unsigned char dcode); //指令操作子函数
75 void Dat(unsigned char ddata); //数据操作子函数
76 void Imim(); //初始化子函数
77 void EClearlcd(); //扩充指令集清屏子函数
78 void Tuxing(); //图形显示子函数
79
80 void main()
81 {
82 1 Imim(); //初始化
83 1 EClearlcd(); //扩充指令集清屏
84 1
85 1 z=64; //图形数组的页,为实际点阵行数
86 1 y=16; //图形数组的列,为实际点阵列数除以8
87 1 Column=0; //起始点设定:为在液晶中显示的实际起始列
88 1 Page=0; //起始点设定:为在液晶中显示的实际起始行
89 1 p2=Tu; //图形数组
*** WARNING C182 IN LINE 89 OF TUXING.C: pointer to different objects
90 1 Tuxing(); //蝴蝶图案
91 1 while(1)
92 1 {
93 2 }
94 1 }
95
96 void WCOM(unsigned char dcode) //写指令程序
97 {
98 1 unsigned char q;
99 1 R_W=1;
100 1 D_I=0; //设置状态
101 1 Loop:
102 1 P1=0xFF;
103 1 E=1; //使能有效
104 1 q=P1; //将P1口状态读入
105 1 E=0; //关闭使能信号
106 1 if(q&0x80) //判断屏幕是否忙
107 1 {
108 2 goto Loop; //若忙,循环等待
109 2 }
110 1 R_W=0;
111 1 D_I=0; //写数据指令
112 1 P1= dcode; //将数据送入P1口
113 1 E=1; //使能信号开
114 1 E=0; //使能信号关
115 1 }
116
C51 COMPILER V8.08 TUXING 08/27/2008 19:09:20 PAGE 3
117
118 void Dat(unsigned char ddata)
119 {
120 1 unsigned char q;
121 1 R_W=1;
122 1 D_I=0; //读状态指令
123 1 Loop:
124 1 P1=0xFF;
125 1 E=1; //使能
126 1 q=P1;
127 1 E=0;
128 1 if(q&0x80) //判忙
129 1 {
130 2 goto Loop;
131 2 }
132 1 D_I=1; //送数据指令
133 1 R_W=0;
134 1 P1= ddata; //写入数据
135 1 E=1; //使能信号开
136 1 E=0; //使能信号关
137 1 }
138
139
140 void Clearlcd()
141 {
142 1 D_I=0;
143 1 R_W=0;
144 1 P1=0x01;
145 1 WCOM(0x01); //清除显示
146 1 }
147
148 void Imim()
149 {
150 1 P0=0xFF; //初始化单片机端口
151 1 P1=0xFF;
152 1 P2=0xFF;
153 1 P3=0xFF;
154 1 E=0;
155 1 WCOM(0x38); //功能设定
156 1 WCOM(0x08); //关显示指令
157 1 WCOM(0x06); //游标右移
158 1 Clearlcd(); //清屏
159 1 WCOM(0x0c); //开显示指令
160 1 }
161
162
163
164
165 void Tuxing()
166 {
167 1 unsigned char data v;
168 1 unsigned char data w;
169 1 unsigned char data x;
170 1 unsigned char data h;
171 1 unsigned char *pp; //图形数组指针
172 1
173 1 WCOM(0x34); //功能设定
174 1 WCOM(0x36); //扩充功能设定
175 1 pp=p2;
176 1 pp=pp+16*y*2;
177 1 for(h=0;h<z/2;h++) //页循环
178 1 {
C51 COMPILER V8.08 TUXING 08/27/2008 19:09:20 PAGE 4
179 2 v=Column|0x80;
180 2 w=Page|0x80;
181 2 WCOM(w); //送入起始页地址
182 2 WCOM(v); //送入起始列地址
183 2 Page++; //准备对下一页进行操作
184 2 for(x=0;x<2*y;x++) //列循环
185 2 {
186 3 if(x<y)
187 3 {
188 4 wbyte=*p2;
189 4 Dat(wbyte); //循环送入图形数据
190 4 p2=p2+1;
191 4 }
192 3 else
193 3 {
194 4 wbyte=*pp;
195 4 Dat(wbyte); //循环送入图形数据
196 4 pp=pp+1;
197 4 }
198 3 }
199 2 }
200 1 }
201
202
203 void EClearlcd()
204 {
205 1 unsigned char data Disp_Page;
206 1 unsigned char data i;
207 1 unsigned char data j;
208 1 for(i=0;i<64;i++) //共32页
209 1 {
210 2 Disp_Page=i|0x80; //设置页地址
211 2 WCOM(Disp_Page); //送入页地址
212 2 WCOM(0x80); //送入起始列地址
213 2 for(j=0;j<32;j++)
214 2 {
215 3 Dat(0x00); //清屏
216 3 }
217 2 }
218 1 }
219
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 324 ----
CONSTANT SIZE = 1024 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 13 5
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -