📄 main.lst
字号:
167 5 ZLG7290_WriteReg(0x12,duanma[money[3]]);
168 5 Delay(1);
169 5 ZLG7290_WriteReg(0x13,duanma[money[4]]);
170 5 Delay(1);
171 5 }
172 4 else
173 4 {
174 5 ZLG7290_cmd(0x60,0x1F);
175 5 Delay(1);
176 5 ZLG7290_cmd(0x61,0x80+money[2]);
177 5 Delay(1);
C51 COMPILER V7.06 MAIN 09/20/2008 12:06:48 PAGE 4
178 5 ZLG7290_WriteReg(0x12,duanma[money[3]]);
179 5 Delay(1);
180 5 ZLG7290_WriteReg(0x13,duanma[money[4]]);
181 5 Delay(1);
182 5 }
183 4 }
184 3 else D1=0; // 卡值不足 二极管1亮
185 3 break;
186 3 }
187 2
188 2 case 16:
- // 放卡显示卡值 取卡退出
189 2 {
190 3 *d=15;
191 3 if(Ka_lab==0) // 放卡
192 3 {
193 4 for(i=0;i<4;i++)
194 4 {
195 5 ZLG7290_cmd(0x60+i,0x1F);
196 5 Delay(1);
197 5 }
198 4 if(money[0])
199 4 {
200 5 ZLG7290_WriteReg(0x10,duanma[money[0]]);
201 5 Delay(1);
202 5 ZLG7290_WriteReg(0x11,duanma[money[1]]);
203 5 Delay(1);
204 5 ZLG7290_cmd(0x62,0x80+money[2]);
205 5 Delay(1);
206 5 ZLG7290_WriteReg(0x13,duanma[money[3]]);
207 5 Delay(1);
208 5 }
209 4 else if(money[1])
210 4 {
211 5 ZLG7290_WriteReg(0x10,duanma[money[1]]);
212 5 Delay(1);
213 5 ZLG7290_cmd(0x61,0x80+money[2]);
214 5 Delay(1);
215 5 ZLG7290_WriteReg(0x12,duanma[money[3]]);
216 5 Delay(1);
217 5 ZLG7290_WriteReg(0x13,duanma[money[4]]);
218 5 Delay(1);
219 5 }
220 4 else
221 4 {
222 5 ZLG7290_cmd(0x60,0x1F);
223 5 Delay(1);
224 5 ZLG7290_cmd(0x61,0x80+money[2]);
225 5 Delay(1);
226 5 ZLG7290_WriteReg(0x12,duanma[money[3]]);
227 5 Delay(1);
228 5 ZLG7290_WriteReg(0x13,duanma[money[4]]);
229 5 Delay(1);
230 5 }
231 4 Ka_lab=~Ka_lab;
232 4 break;
233 4 }
234 3 else // 取卡清除显示
235 3 Ka_lab=~Ka_lab;
236 3 for(i=0;i<4;i++)
237 3 {
238 4 ZLG7290_cmd(0x60+i,0x1F);
239 4 Delay(1);
240 4 }
C51 COMPILER V7.06 MAIN 09/20/2008 12:06:48 PAGE 5
241 3 }
242 2 default: break;
243 2 }
244 1 }
245
246 void int1() interrupt 2 using 0
247 {
248 1 unsigned char data KeyValue,p;
249 1 //读取键值
250 1 Delay(1);
251 1 KeyValue=ZLG7290_ReadReg(ZLG7290_Key);
252 1 Delay(1);
253 1
254 1 //显示键值
255 1 KeyFun(KeyValue,&p);
256 1 if(p<10)
257 1 {
258 2 if(Add==1)
259 2 {
260 3 Reset();
261 3 Add=0;
262 3 add1[0]=p;
263 3 ZLG7290_cmd(0x65,0x80+add1[1]);
264 3 } // 上次按的加键 先复位显示 加标志清除
265 2 else if(Flag==1) // 上两次中按过小数点
266 2 {
267 3 if(jw<5)
268 3 {
269 4 add1[jw++]=p;
270 4 ZLG7290_WriteReg(0x13+jw,duanma[p]);
271 4 }
272 3 }
273 2 else if(Clear)
274 2 {
275 3 add1[0]=p;
276 3 ZLG7290_cmd(0x65,0x80+add1[1]);
277 3 Clear=0;
278 3 }
279 2 else
280 2 {
281 3 add1[0]=add1[1];
282 3 add1[1]=p;
283 3 if(add1[0]!=0)
284 3 ZLG7290_WriteReg(ZLG7290_DpRam+4,duanma[add1[0]]);
285 3 Delay(5);
286 3 ZLG7290_cmd(0x65,0x80+add1[1]);
287 3 }
288 2 }
289 1 }
290
291 void main(void)
292 {
293 1 uchar data i=0;
294 1 EA = 0;
295 1 EX1 = 1;
296 1 EA = 1; //开中断1
297 1 I2C_Wait();
298 1 I2C_Wait();
299 1 Delay(1);
300 1 Delay(1);
301 1 Clearall();
302 1 Reset();
303 1 ZLG7290_cmd(0x60,0x88); //第一位显示8.
304 1 Delay(5);
C51 COMPILER V7.06 MAIN 09/20/2008 12:06:48 PAGE 6
305 1 // PCON |= 0x01; //使CPU 进入空闲状态,任
-一中断可唤醒
306 1 while(1)
307 1 {
308 2
309 2 if(Ka_lab==0) // 没卡时循环显示
310 2 {
311 3 if(i<3)
312 3 {
313 4 i++;
314 4 ZLG7290_cmd(0x60+i-1,0x1F);
315 4 Delay(1);
316 4 ZLG7290_cmd(0x60+i,0x88);
317 4 Delay(2);
318 4 }
319 3 else
320 3 {
321 4 ZLG7290_cmd(0x63,0x1F);
322 4 Delay(1);
323 4 ZLG7290_cmd(0x60,0x88);
324 4 Delay(2);
325 4 i=0;
326 4 }
327 3 }
328 2 Delay(10); //有卡时
329 2 }
330 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1829 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- 3
PDATA SIZE = ---- ----
DATA SIZE = 14 7
IDATA SIZE = ---- ----
BIT SIZE = 4 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -