?? main.lst
字號:
C51 COMPILER V7.06 MAIN 09/20/2008 12:06:48 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c LARGE DEBUG OBJECTEXTEND PA
-GEWIDTH(79) PAGELENGTH(66)
stmt level source
1 #include "I2C.h"
2 #include "ZLG7290.h"
3
4 uchar code duanma[10] ={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,
-0xFE,0xF6}; // 0-9段碼
5 uchar data add1[4]={0,0,0,0}; // 加數一
6 uchar data add2[4]={0,0,0,0}; // 加數二 且和值存放在這里面
7 uchar data money[5]={1,9,9,0,0}; // 卡里的錢數
8 uchar data jw=2; // 右邊第幾個顯示
9 bit Clear=0;
10 bit Flag=0; //小數點按鍵標志 0 上次沒按 1
-上次按了
11 bit Add=0; //加號鍵標志 0 上次沒按加鍵 1 上
-次按了加鍵
12 bit Ka_lab=0; //放卡取卡標志 0 沒放卡 1
-放上卡
13 void Clearall(void); // 全清除顯示
14 void Reset(void) // 右邊四位顯示 0.00
15 {
16 1 ZLG7290_cmd(0x64,0x1F);
17 1 Delay(1);
18 1 ZLG7290_cmd(0x65,0x80);
19 1 Delay(1);
20 1 ZLG7290_cmd(0x66,0x00);
21 1 Delay(1);
22 1 ZLG7290_cmd(0x67,0x00);
23 1 Delay(1);
24 1 }
25
26 void KeyFun(uchar num,uchar *d) //重編鍵值 且執行功能鍵
27 {
28 1 uint data i,j;
29 1 switch(num)
30 1 {
31 2 case 1: {*d=0;break;}
32 2 case 2: {*d=1;break;}
33 2 case 10: {*d=2;break;}
34 2 case 6: {*d=3;break;}
35 2 case 3: {*d=4;break;}
36 2 case 11: {*d=5;break;}
37 2 case 7: {*d=6;break;}
38 2 case 4: {*d=7;break;}
39 2 case 12: {*d=8;break;}
40 2 case 8: {*d=9;break;} //按鍵0-9
41 2
42 2 case 9: {*d=10;Flag=1;break;} //小數點按鍵
43 2
44 2 case 5: // " + "號鍵
45 2 case 13: // " = "號鍵 確認功
-能
46 2 {
47 3 *d=12;
48 3 add1[3]+=add2[3];
49 3 i=add1[3]/10;j=i;
50 3 i=add1[3]%10;
51 3 add2[3]=i;
C51 COMPILER V7.06 MAIN 09/20/2008 12:06:48 PAGE 2
52 3
53 3 add1[2]=add1[2]+add2[2]+j;
54 3 i=add1[2]/10;j=i;
55 3 i=add1[2]%10;
56 3 add2[2]=i;
57 3
58 3 add1[1]=add1[1]+add2[1]+j;
59 3 i=add1[1]/10;j=i;
60 3 i=add1[1]%10;
61 3 add2[1]=i;
62 3
63 3 add1[0]=add1[0]+add2[0]+j;
64 3 i=add1[0]/10;j=i;
65 3 i=add1[0]%10;
66 3 add2[0]=i;
67 3
68 3 add1[0]=add1[1]=add1[2]=add1[3]=0; // 加數一清零
69 3
70 3 if(add2[0])
71 3 ZLG7290_WriteReg(0x14,duanma[add2[0]]);
72 3 Delay(1);
73 3 ZLG7290_cmd(0x65,0x80+add2[1]);
74 3 Delay(1);
75 3 ZLG7290_WriteReg(0x16,duanma[add2[2]]);
76 3 Delay(1);
77 3 ZLG7290_WriteReg(0x17,duanma[add2[3]]);
78 3 Delay(1); //顯示和值
79 3
80 3 Flag=0;jw=2;Add=1;break;
81 3 }
82 2
83 2 case 14:
84 2 {
85 3 *d=13;
86 3 Reset();
87 3 for(i=0;i<4;i++)
88 3 {
89 4 add1[i]=add2[i]=0;
90 4 }
91 3 Flag=0;
92 3 Add=0;
93 3 jw=2;
94 3 D1=1;
95 3 Clear=1;
96 3 break;
97 3 } // 清除鍵 所有標志復位
98 2
99 2 case 15:
- // 確認鍵 飯卡減值
100 2 {
101 3 *d=14;
102 3 i=money[1]*1000+money[2]*100+money[3]*10+money[4];
-
103 3 j=add2[0]*1000+add2[1]*100+add2[2]*10+add2[3];
104 3 if(money[0])
105 3 {
106 4 if(i>=j)
107 4 {
108 5 money[1]=(i-j)/1000;
109 5 money[2]=((i-j)%1000)/100;
110 5 money[3]=((i-j)%100)/10;
111 5 money[4]=(i-j)%10;
112 5 }
113 4 else
C51 COMPILER V7.06 MAIN 09/20/2008 12:06:48 PAGE 3
114 4 {
115 5 money[0]=money[0]-1;
116 5 money[1]=(i+10000-j)/1000;
117 5 money[2]=((i+10000-j)%1000)/100;
118 5 money[3]=((i+10000-j)%100)/10;
119 5 money[4]=(i+10000-j)%10;
120 5 }
121 4 if(money[0])
122 4 {
123 5 ZLG7290_WriteReg(0x10,duanma[money[0]]);
124 5 Delay(1);
125 5 ZLG7290_WriteReg(0x11,duanma[money[1]]);
126 5 Delay(1);
127 5 ZLG7290_cmd(0x62,0x80+money[2]);
128 5 Delay(1);
129 5 ZLG7290_WriteReg(0x13,duanma[money[3]]);
130 5 Delay(1);
131 5 }
132 4 else if(money[1])
133 4 {
134 5 ZLG7290_WriteReg(0x10,duanma[money[1]]);
135 5 Delay(1);
136 5 ZLG7290_cmd(0x61,0x80+money[2]);
137 5 Delay(1);
138 5 ZLG7290_WriteReg(0x12,duanma[money[3]]);
139 5 Delay(1);
140 5 ZLG7290_WriteReg(0x13,duanma[money[4]]);
141 5 Delay(1);
142 5 }
143 4 else
144 4 {
145 5 ZLG7290_cmd(0x60,0x1F);
146 5 Delay(1);
147 5 ZLG7290_cmd(0x61,0x80+money[2]);
148 5 Delay(1);
149 5 ZLG7290_WriteReg(0x12,duanma[money[3]]);
150 5 Delay(1);
151 5 ZLG7290_WriteReg(0x13,duanma[money[4]]);
152 5 Delay(1);
153 5 }
154 4 }
155 3 else if(i>=j)
156 3 {
157 4 money[1]=(i-j)/1000;
158 4 money[2]=((i-j)%1000)/100;
159 4 money[3]=((i-j)%100)/10;
160 4 money[4]=(i-j)%10;
161 4 if(money[1])
162 4 {
163 5 ZLG7290_WriteReg(0x10,duanma[money[1]]);
164 5 Delay(1);
165 5 ZLG7290_cmd(0x61,0x80+money[2]);
166 5 Delay(1);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -