📄 12864zkb.lst
字号:
C51 COMPILER V7.06 12864ZKB 09/16/2007 17:58:10 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 12864ZKB
OBJECT MODULE PLACED IN E:\项目资料\200607\12864ZK\12864ZKb.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe E:\项目资料\200607\12864ZK\12864ZKb.c LARGE ROM(LARGE) BR DB OE SB CD
stmt level source
1 /*
2 **长沙太阳人电子有限公司SMG12864ZK并行接口参考程序
3 **电话: 0731-4167806,4167808
4 **E-mail: www@sunman.cn
5 **Create by :谭超 E-mail: tanchao_1@126.com
6 **最后修改 : 2005年8月25日
7 */
8 //#include "STC89C51RC.h"
9 #include <reg51.h>
10 #include <intrins.h>
11 #define uchar unsigned char
12 #define uint unsigned int
13 //#include "d1820.h"
14 //float Read_Temperature(void);
15 //unsigned char Temp_a,Temp_b; //温度值
16 //union char_float
17 //{
18 // unsigned char TempChar[2];
19 // float TempFloat;
20 //}CharFloat;
21 /*
22 sbit RS = P3^0;
23 sbit RW = P3^3;
24 sbit E = P3^4;
25 sbit PSB = P3^1; //串并口选择
26 sbit RES = P3^5;
27 */
28 //sbit RW = P2^1;
29 //sbit RS = P2^0;
30
31 //sbit E = P2^7;
32 //sbit CS_DS12C887=P2^3;
33 //sbit BEEP = P1^6;
34 //sbit CS_KEY_WR = P2^4;
35 //sbit CS_KEY_RD = P2^2;
36 #define LCD P0
37
38 uchar LCDdata;
39 sbit RS=P3^3;
40 sbit RW=P3^5;
41 sbit E=P3^7;
42 sbit RST=P3^6;
43
44 //sfr AUXR = 0x8e;
45
46 //sbit PSB = P3^1; //串并口选择
47 //sbit RES = P3^5;
48
49 #define FIRST_ADDR 0 //定义字符/汉字显示起始位置
50 //void delay(int useconds) {
51 //int s;
52 //for (s=0; s<useconds;s++);
53 //}
54 void delay(unsigned int t)
55 { unsigned int i,j;
C51 COMPILER V7.06 12864ZKB 09/16/2007 17:58:10 PAGE 2
56 1 for(i=0;i<t;i++)
57 1 for(j=0;j<10;j++)
58 1 ;
59 1 }
60
61 //测忙
62 void chk_busy()
63 { unsigned char State;
64 1 RS=0;
65 1 RW=1;
66 1 E=1;
67 1 // while((P0&0x80)==0x80);
68 1 delay(0);
69 1 E=0;
70 1 }
*** WARNING C280 IN LINE 63 OF E:\项目资料\200607\12864ZK\12864ZKB.C: 'State': unreferenced local variable
71
72 //读数据
73 unsigned char lcdrd()
74 { unsigned char i;
75 1 P3=0xFB;
76 1 _nop_();
77 1 E=1;
78 1 delay(5);
79 1 i=P0;
80 1 _nop_();
81 1 E=0;
82 1 return i;
83 1 }
84
85 //写数据
86 void lcdwd(unsigned char dispdata)
87 { chk_busy();
88 1 _nop_();
89 1 RS=1;
90 1 RW=0;
91 1 E=1;
92 1 P0=dispdata;
93 1 delay(5);
94 1 _nop_();
95 1 E=0;
96 1 _nop_();
97 1 P0=0xff;
98 1 }
99
100 //写指令代码
101 void lcdwc(unsigned char cmdcode)
102 { chk_busy();
103 1 _nop_();
104 1 RS=0;
105 1 RW=0;
106 1 E=1;
107 1 P0=cmdcode;
108 1 delay(5);
109 1 _nop_();
110 1 E=0;
111 1 _nop_();
112 1 P0=0xff;
113 1 }
114
115 //初始化
116 void lcdreset()
C51 COMPILER V7.06 12864ZKB 09/16/2007 17:58:10 PAGE 3
117 { delay(2000);
118 1 lcdwc(0x30); //选择基本指令集
119 1 lcdwc(0x30); //选择8bit数据流
120 1 delay(5);
121 1 lcdwc(0x0c); //开显示(无游标、不反白)
122 1 delay(5);
123 1 lcdwc(0x01); //清除显示,并且设定地址指针为00H
124 1 delay(5);
125 1 lcdwc(0x06); //指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位
126 1 }
127
128 void hzkdis(unsigned char code *s)
129 { while(*s>0)
130 1 { lcdwd(*s);
131 2 s++;
132 2 delay(500);
133 2 }
134 1 }
135
136 void hzklib()
137 {
138 1 unsigned char TempString[16];
139 1 // sprintf(TempString,"温度:%f,",26.45);
140 1 lcdwc(0x80+FIRST_ADDR);
141 1 hzkdis(TempString);
*** WARNING C259 IN LINE 141 OF E:\项目资料\200607\12864ZK\12864ZKB.C: 'parameter': pointer: different mspace
142 1
143 1 lcdwc(0x80+FIRST_ADDR);
144 1 hzkdis("温度:Read_Temperature() ,");
145 1 lcdwc(0x90+FIRST_ADDR);
146 1 hzkdis("乡音无改鬓毛衰。");
147 1 lcdwc(0x88+FIRST_ADDR);
148 1 hzkdis("儿童相见不相识,");
149 1 lcdwc(0x98+FIRST_ADDR);
150 1 hzkdis("笑问客从何处来。");
151 1 }
152
153 //整屏显示
154 //当ii=0时显示上面128×32
155 //当ii=8时显示下面128×32
156 void lcdfill(unsigned char disdata)
157 { unsigned char x,y,ii;
158 1 for(ii=0;ii<9;ii+=8)
159 1 for(y=0;y<0x20;y++)
160 1 for(x=0;x<8;x++)
161 1 { lcdwc(0x36);
162 2 lcdwc(y+0x80); //行地址
163 2 lcdwc(x+0x80+ii); //列地址
164 2 lcdwc(0x30);
165 2 lcdwd(disdata);
166 2 lcdwd(disdata);
167 2 }
168 1 }
169
170 //当ii=0时显示上面128×32
171 //当ii=8时显示下面128×32
172 void lcdfill_upright(unsigned char disdata)
173 { unsigned char x,y,ii;
174 1 unsigned char i,f,k;
175 1 for(ii=0;ii<9;ii+=8)
176 1 for(y=0;y<4;y++)
177 1 { f=disdata;
C51 COMPILER V7.06 12864ZKB 09/16/2007 17:58:10 PAGE 4
178 2 for(i=0;i<8;i++)
179 2 { if((f&1)==1)
180 3 k=0xff;
181 3 else
182 3 k=0;
183 3 for(x=0;x<8;x++)
184 3 { lcdwc(0x36);
185 4 lcdwc(y*8+i+0x80);
186 4 lcdwc(x+0x80+ii);
187 4 lcdwc(0x30);
188 4 lcdwd(k);
189 4 lcdwd(k);
190 4 }
191 3 f>>=1;
192 3 }
193 2 }
194 1 }
195
196 main()
197 {
198 1 unsigned char i,t1;
199 1 //float t1;
200 1 // Read_Temperature();
201 1
202 1
203 1 /*union char_int
204 1 {
205 1 unsigned char TempChar[2];
206 1 UINT TempInt;
207 1 }CharInt;*/
208 1
209 1
210 1 // AUXR =0;
211 1 // BEEP = 0;
212 1 // CS_KEY_RD =1;
213 1 // CS_KEY_WR =1;
214 1 i=0x55;
215 1 // RES=0;
216 1 _nop_();
217 1 // RES=1;
218 1 while(1)
219 1 { // PSB=1;
220 2 /* E =0;
221 2 E= 1;
222 2 E = 0;
223 2 RW=1;
224 2 RW=0;
225 2 RS=0;
226 2 RS=1;
227 2 P0 = 0xAA;*/
228 2 // CS_DS12C887=1;
229 2
230 2 lcdreset(); //初始化LCD屏
231 2 lcdwc(0x01);
232 2 delay(1000);
233 2 lcdfill(0xff);
234 2 delay(6000);
235 2 lcdfill(i); //显示竖条
236 2 delay(6000);
237 2 lcdfill_upright(i); //显示横条
238 2 delay(6000);
239 2 lcdfill(0);
C51 COMPILER V7.06 12864ZKB 09/16/2007 17:58:10 PAGE 5
240 2 lcdwc(0x01);
241 2 delay(1000);
242 2 hzklib();
243 2 delay(4000);
244 2 i=~i;
245 2 for(;;){}
246 2 }
247 1 }
*** WARNING C280 IN LINE 198 OF E:\项目资料\200607\12864ZK\12864ZKB.C: 't1': unreferenced local variable
C51 COMPILER V7.06 12864ZKB 09/16/2007 17:58:10 PAGE 6
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION L?0050 (BEGIN)
0000 C2B5 CLR RW
0002 D2B7 SETB E
0004 AF01 MOV R7,AR1
0006 8F80 MOV P0,R7
0008 L?0051:
0008 7F05 MOV R7,#05H
000A 7E00 MOV R6,#00H
; FUNCTION _delay (BEGIN)
; SOURCE LINE # 54
;---- Variable 't' assigned to Register 'R6/R7' ----
; SOURCE LINE # 55
; SOURCE LINE # 56
;---- Variable 'i' assigned to Register 'R4/R5' ----
000C E4 CLR A
000D FD MOV R5,A
000E FC MOV R4,A
000F ?C0001:
000F C3 CLR C
0010 ED MOV A,R5
0011 9F SUBB A,R7
0012 EC MOV A,R4
0013 9E SUBB A,R6
0014 5015 JNC ?C0007
; SOURCE LINE # 57
;---- Variable 'j' assigned to Register 'R2/R3' ----
0016 E4 CLR A
0017 FB MOV R3,A
0018 FA MOV R2,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -