📄 suzigongfang.lst
字号:
C51 COMPILER V7.50 SUZIGONGFANG 03/21/2006 16:37:17 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE SUZIGONGFANG
OBJECT MODULE PLACED IN suzigongfang.OBJ
COMPILER INVOKED BY: E:\keic3.0\C51\BIN\C51.EXE suzigongfang.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <AT89X51.H>
2 #include<intrins.h>
3 #include "diver.h"
4 /*各种显示的级数为十六级显示格式为如下:
5 **************************************
6 * VOLUE 13 *
7 * @@@@@@@@@@@@@@@@@@@@@@@ *
8 **************************************/
9
10 /*延时程序*/
11 void delay(uchar j)
12 {
13 1 uchar m,n,s;
14 1 for(m=j;m>0;m--)
15 1 { for(n=20;n>0;n--)
16 2 for(s=248;s>0;s--);}
17 1 }
18
19
20
21
22
23
24 /*数据缓冲*/
25 void KM(uchar vol) //VOL
26 {A[0]=0x20;
27 1 A[1]=0x20;
28 1 A[2]=DC[(vol/100)];
29 1 A[3]=DC[((vol%100)/10)];
30 1 A[4]=DC[(vol%10)];
31 1 }
32
33
34
35
36
37
38 /*I2C的开始发送程序*/
39 I2C_start()
40 {SDA=1;
41 1 SCL=1;
42 1 _nop_(); _nop_(); _nop_(); _nop_();
43 1 SDA=0;
44 1 _nop_(); _nop_(); _nop_(); _nop_();
45 1 SCL=0;
46 1 }
47
48
49
50
51
52
53
54 /*I2C的停止发送程序*/
55 I2C_stop()
C51 COMPILER V7.50 SUZIGONGFANG 03/21/2006 16:37:17 PAGE 2
56 {SCL=0;
57 1 SDA=0;
58 1 _nop_(); _nop_(); _nop_(); _nop_();
59 1 SCL=1;
60 1 _nop_(); _nop_(); _nop_(); _nop_();
61 1 SDA=1;
62 1 }
63
64
65
66
67
68
69
70 /*I2C等待数码电位
71 的应答信号*/
72 wait_ack()
73 {SDA=1;
74 1 _nop_(); _nop_(); _nop_(); _nop_();
75 1 SCL=1;
76 1 _nop_(); _nop_(); _nop_(); _nop_();
77 1 while(SDA==1); //////////////////////////////////
78 1 }
79
80
81
82
83
84 /*I2C向数字电位器发送一字节得数据*/
85 I2C_sendbyte(uchar a)
86 {
87 1 uchar i=8;
88 1 while (i--)
89 1 {
90 2 SCL=0;
91 2 _nop_();
92 2 SDA=(a&0x80); a<<=1;
93 2 _nop_(); _nop_(); _nop_(); _nop_();
94 2 SCL=1;
95 2 _nop_(); _nop_(); _nop_(); _nop_();
96 2 }
97 1 SCL=0;
98 1 }
99
100
101
102
103
104
105
106
107 /*发送命令到液晶*/
108 lcd_com(char b)
109
110 {_nop_();_nop_();_nop_();_nop_();
111 1 RS=0;
112 1 RW=0;
113 1 E=1;
114 1 _nop_();_nop_();_nop_();_nop_();
115 1 P0=b;
116 1 _nop_();_nop_();_nop_();_nop_();
117 1 _nop_();_nop_();_nop_();_nop_();
C51 COMPILER V7.50 SUZIGONGFANG 03/21/2006 16:37:17 PAGE 3
118 1 _nop_();_nop_();_nop_();_nop_();
119 1 _nop_();_nop_();_nop_();_nop_();
120 1 E=0;}
121
122
123
124
125
126
127
128
129
130
131 /*发送数据到液晶*/
132 lcd_data(char a)
133 {_nop_();_nop_();_nop_();_nop_();
134 1 RS=1;
135 1 RW=0;
136 1 E=1;
137 1
138 1 _nop_();_nop_();_nop_();_nop_();
139 1 P0=a;
140 1 _nop_();_nop_();_nop_();_nop_();
141 1 _nop_();_nop_();_nop_();_nop_();
142 1 _nop_();_nop_();_nop_();_nop_();
143 1 _nop_();_nop_();_nop_();_nop_();
144 1 E=0;}
145
146
147
148
149
150
151
152
153
154 /*液晶显示缓冲*/
155 Lcd_dis(uchar k[],char M) ////////////////////////////////////////////////////////////
156 {char i,j;
157 1 lcd_com(0x01);
158 1 delay(1); /////////////////////////////////////
159 1 for(i=0;i<M;i++)
160 1 {lcd_data(k[i]);
161 2 }
162 1 for(j=0;j<5;j++)
163 1 {lcd_data(A[j]);}
164 1 }
165
166
167
168
169
170
171
172
173
174
175 /*电源开程序*/
176 power_on()
177 {char i;
178 1 lcd_com(0x01); //清屏
179 1 delay(10);
C51 COMPILER V7.50 SUZIGONGFANG 03/21/2006 16:37:17 PAGE 4
180 1 OFF_ON=0;
181 1 lcd_com( 0x0c); //开显示
182 1 for(i=0;i<14;i++)
183 1 {lcd_data(ONd[i]);}
184 1
185 1 delay(200);
186 1
187 1 SPEAK=0;
188 1 K=0;
189 1 }
190
191
192
193
194
195
196
197 /*电源关程序*/ //////////////////////////////////////////////////////////////////
198 power_off()
199 {char i;
200 1 lcd_com(0x01); //清屏
201 1 delay(10);
202 1 SPEAK=1;
203 1 for(i=0;i<14;i++)
204 1 {lcd_data(OFFd[i]);}
205 1 delay(244);
206 1 OFF_ON=1;
207 1 //lcd_com( 0x08);
208 1 K=1;}
209
210
211
212
213
214
215
216 /*电源开关判断程序*/
217 offon()
218 {if(K==1)
219 1 {power_on();}
220 1 else
221 1 {power_off();}
222 1 }
223
224
225
226
227
228
229
230 /*键盘扫描*/
231 uchar key(void)
232 {uchar sccode,recode;
233 1 P1=0xf0;
234 1 if((P1&0xf0)!=0xf0)
235 1 {delay(2); //要更改一下
236 2 if((P1&0xf0)!=0xf0)
237 2 {sccode=0xfe;
238 3 while((sccode&0x10)!=0)
239 3 {P1=sccode;
240 4 if((P1&0xf0)!=0xf0)
241 4 {recode=(P1&0xf0)|0x0f; /************/
C51 COMPILER V7.50 SUZIGONGFANG 03/21/2006 16:37:17 PAGE 5
242 5 P1=0xf0;
243 5 return((~sccode)+(~recode));
244 5 }
245 4 else
246 4 sccode=(sccode<<1)|0x01;
247 4 }
248 3 }
249 2 }
250 1 P1=0xf0;
251 1 return(0);
252 1 }
253
254
255
256
257
258
259
260
261 /*I2C发送缓冲*/
262 I2C_send(uchar a,uchar b,uchar c) //a为器件地址,b为器件内部地址,c为数据
263 {I2C_start();
264 1 I2C_sendbyte(a);
265 1 wait_ack();
266 1 I2C_sendbyte(b);
267 1 wait_ack();
268 1 I2C_sendbyte(c);
269 1 wait_ack();
270 1 I2C_stop();
271 1 }
272
273
274
275 /*左右声道一起增大*/
276 all_up()
277 {
278 1 if(Vol_R<=254) //////////////hu
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -