📄 yanjing12864new.lst
字号:
C51 COMPILER V7.06 YANJING12864NEW 06/10/2008 11:06:13 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE YANJING12864NEW
OBJECT MODULE PLACED IN yanjing12864new.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE yanjing12864new.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1
2 #include <at89x51.h>
3 #include <intrins.h>
4 #include<ds18b20.h>
5
6 #define uchar unsigned char
7 #define uint unsigned int
8 #define lcm P1
9 sbit p_csl=P2^2;
10 sbit p_csr=P2^1;
11 sbit p_di=P2^3;
12 sbit p_rw=P2^4;
13 sbit p_e=P2^5;
14 sbit p_rst=P2^0;
15 sbit xiayi=P3^5;
16 sbit sure=P3^6;
17 sbit fanhui=P3^7;
18 sbit alarm=P2^6;
19 uchar code t[];
20 uchar code tu[];
21 uchar code tu1[];
22 uchar code tu2[];
23 uchar code xzi[];
24 uchar code zuobiao[];
25 uchar ye,lie,shu,r,temp,tp[5]={0,0,0,0,0};
26 uint fanbai=0,shi=3,ge=5;
27 bit baojing=0,ss=0;
28
29 unsigned int i,h,aa=0,bb=0,dd,xuanzhe=0,ad,rr,q=0,lu=1;
30 unsigned char ye,lei,shu,yy,zan,zan1,zan2,zan3,zan4,d1=0x00,d2=0x00,d3=0x00,d4=0x00,d5=0x00,date1,ff,gg;
31
32 uchar code ds18b20_num2[8][8]={
33 {0xAE,0x00,0x00,0x01,0xBC,0x71,0xFD,0x28},
34 {0xEB,0x00,0x00,0x01,0xBC,0x4D,0x22,0x28},
35 {0x3A,0x00,0x00,0x01,0xBC,0x71,0xE7,0x28},
36 {0x77,0x00,0x00,0x01,0xBC,0x48,0x09,0x28},
37 {0x48,0x00,0x00,0x01,0xBC,0x58,0xCD,0x28},
38 {0xA6,0x00,0x00,0x01,0xBC,0x7E,0x36,0x28},
39 {0x72,0x00,0x00,0x01,0xBC,0x55,0x96,0x28},
40 {0x74,0x00,0x00,0x01,0xBC,0x6D,0xE9,0x28},
41 };
42 /*uchar code ds18b20_num2[8][8]={
43 {0x8e,0x00,0x00,0x00,0xb8,0xc5,0x30,0x28},
44 {0x16,0x00,0x00,0x00,0xb8,0xc5,0x40,0x28},
45 {0xB9,0x00,0x00,0x00,0xb8,0xc5,0x31,0x28},
46 {0xe0,0x00,0x00,0x00,0xb8,0xc5,0x32,0x28},
47 {0xd7,0x00,0x00,0x00,0xb8,0xc5,0x33,0x28},
48 {0x52,0x00,0x00,0x00,0xb8,0xc5,0x34,0x28},
49 {0x65,0x00,0x00,0x00,0xb8,0xc5,0x35,0x28},
50 {0x3c,0x00,0x00,0x00,0xb8,0xc5,0x36,0x28},
51 };*/
52 //uchar ds18b20_num2[8]={0x16,0x00,0x00,0x00,0xb8,0xc5,0x40,0x28};
53
54 /*****函数声明********/
55 void delay(uint k);
C51 COMPILER V7.06 YANJING12864NEW 06/10/2008 11:06:13 PAGE 2
56 void wcode(uchar c,uchar csl,uchar csr);
57 void wdata(uchar c,uchar csl,uchar csr);
58 void set_statrline(uchar i);
59 void set_xy(uchar x,uchar y);
60 void dison_off(uchar o);
61 void reset();
62 void lcd_init(void);
63 void lw(uchar x,uchar y,uchar dd);//写数据函数
64 void disp_Hz(uchar xx,uchar yy,uchar n,uchar fb);//显示汉字
65 void disp_Ez(uchar xx,uchar yy,uchar n,uchar fb);
66
67 //延时
68 void delay(uint k)
69 { uint i;
70 1 for(;k>0;k--)
71 1 { for(i=0;i<124;i++)
72 2 {;}
73 2 }
74 1 }
75
76 //
77
78
79 //LCM忙判断
80 void lcd_busy(void)
81 { p_di=0;
82 1 p_rw=1;
83 1 /*lcm=0xff;
84 1 while(1)
85 1 { p_e=1;
86 1 if(lcm<0x80)
87 1 break;
88 1 p_e=0;
89 1 }
90 1 p_e=0;*/
91 1 }
92 //写指令到LCM
93 void wcode(uchar c,uchar csl,uchar csr)
94 { p_csl=csl;
95 1 p_csr=csr;
96 1 lcd_busy();
97 1 p_di=0;
98 1 p_rw=0;
99 1 lcm=c;//将变量C赋予LCM
100 1 p_e=1;
101 1 p_e=0;
102 1 }
103 //写数据到LCM子函数
104 void wdata(uchar c,uchar csl,uchar csr)
105 { p_csl=csl;
106 1 p_csr=csr;
107 1 lcd_busy();
108 1 p_di=1;
109 1 p_rw=0;
110 1 lcm=c;//将变量C赋予LCM
111 1 p_e=1;
112 1 p_e=0;
113 1 }
114 //设定起始行
115 void set_startline(uchar i)
116 { i=0xc0+i;
117 1 wcode(i,1,1);
C51 COMPILER V7.06 YANJING12864NEW 06/10/2008 11:06:13 PAGE 3
118 1 }
119 //定位X方向,Y方向
120 void set_xy(uchar x,uchar y)
121 { x=x+0x40;
122 1 y=y+0xb8;
123 1 wcode(x,1,1);
124 1 wcode(y,1,1);
125 1 }
126 //屏幕开启、关闭
127 void dison_off(uchar o)
128 { o=o+0x3e; //o为1为开,为0是关
129 1 wcode(o,1,1);
130 1 }
131 //复位子函数
132 void reset()
133 {//delay(1000);
134 1 p_rst=0;
135 1 delay(20);
136 1 p_rst=1;
137 1 delay(20);
138 1 }
139 //LCM初始化
140 void lcd_init(void)
141 { uchar x,y;
142 1 reset();
143 1 dison_off(0);
144 1 for(y=0;y<8;y++)
145 1 { for(x=0;x<128;x++)
146 2 lw(x,y,0);
147 2 }
148 1 dison_off(1);
149 1 set_startline(0);
150 1 }
151 //写数据到LCM
152 void lw(uchar x,uchar y,uchar dd)
153 { if(x>=64)
154 1 {
155 2 set_xy(x-64,y);
156 2 wdata(dd,0,1);
157 2 }
158 1 else
159 1 { set_xy(x,y);
160 2 wdata(dd,1,0);
161 2 }
162 1 }
163 void xieshuju(uint csl,uint csr)
164 {
165 1 wcode(ye,csl,csr);
166 1 wcode(lie,csl,csr);
167 1 wdata(shu,csl,csr);
168 1 }
169
170 void xianshi(uchar y1,uchar l1,uint k,uint csl,uint csr)
171 {
172 1 uchar j;
173 1 lie=l1;
174 1 for(j=0;j<8;j++,lie++)
175 1 {
176 2 ye=y1;
177 2 shu=t[2*j+16*k];
178 2 if (fanbai==1) shu=~shu;
179 2 xieshuju(csl,csr);
C51 COMPILER V7.06 YANJING12864NEW 06/10/2008 11:06:13 PAGE 4
180 2 ye++;
181 2 shu=t[2*j+1+16*k];
182 2 if (fanbai==1) shu=~shu;
183 2 xieshuju(csl,csr);
184 2 }
185 1 ye--;
186 1 }
187
188 void caidanhanshu(uint b)
189 {
190 1 xianshi(r,0x60,b,1,0);
191 1 b++;
192 1 xianshi(r,0x68,b,1,0);
193 1 b++;
194 1 xianshi(r,0x70,b,1,0);
195 1 b++;
196 1 xianshi(r,0x78,b,1,0);
197 1 b++;
198 1 xianshi(r,0x40,b,0,1);
199 1 b++;
200 1 xianshi(r,0x48,b,0,1);
201 1 b++;
202 1 xianshi(r,0x50,b,0,1);
203 1 b++;
204 1 xianshi(r,0x58,b,0,1);
205 1 }
206 void qinglin()
207 {
208 1 xianshi(r,0x60,10,1,0);
209 1 xianshi(r,0x68,10,1,0);
210 1 xianshi(r,0x70,10,1,0);
211 1 xianshi(r,0x78,10,1,0);
212 1 xianshi(r,0x40,10,0,1);
213 1 xianshi(r,0x48,10,0,1);
214 1 xianshi(r,0x50,10,0,1);
215 1 xianshi(r,0x58,10,0,1);
216 1 }
217 void qingpin()
218 {
219 1 for(lie=0x40;lie<=0x7f;lie++)
220 1 {
221 2 for(ye=0xb8;ye<=0xbf;ye++)
222 2 {
223 3 shu=0x00;
224 3 xieshuju(1,1);
225 3 }
226 2 }
227 1
228 1 }
229
230 void xieyihangzi(uchar ye1,uint zi)
231 {
232 1 ye=ye1;
233 1 for(lie=0x50;lie<=0x78;zi++)
234 1 {
235 2 xianshi(ye,lie,zi,1,0);
236 2 }
237 1
238 1 for(lie=0x40;lie<=0x68;zi++)
239 1 {
240 2 xianshi(ye,lie,zi,0,1);
241 2 }
C51 COMPILER V7.06 YANJING12864NEW 06/10/2008 11:06:13 PAGE 5
242 1 }
243
244 void wenduchuli()
245 {
246 1 if((gao>>4)==0)
247 1 {
248 2 temp=(gao<<4)|(di>>4);
249 2 tp[0]=temp/100;
250 2 tp[1]=(temp%100)/10;
251 2 tp[2]=temp%10;
252 2 tp[3]=(di&0x0f)*625/1000;
253 2 }
254 1 else
255 1 {
256 2 if(di==0)
257 2 {
258 3 di=~di+1;
259 3 gao=~gao+1;
260 3 }
261 2 else
262 2 {
263 3 di=~di+1;
264 3 gao=~gao;
265 3 }
266 2 tp[0]=191;
267 2 temp=(gao<<4)|(di>>4);
268 2
269 2 tp[1]=temp/10;
270 2 tp[2]=temp%10;
271 2 }
272 1 }
273
274 void xiexiaozi(uchar a,uchar b,uint c,uint csl,uint csr)
275 {
276 1 uchar i;
277 1 ye=a;
278 1 lie=b;
279 1 for(i=0;i<4;i++)
280 1 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -