📄 3192uc.lst
字号:
C51 COMPILER V6.23a 3192UC 12/22/2005 11:00:00 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE 3192UC
OBJECT MODULE PLACED IN E:\XWB\徐伟兵\3192UC\3192UC.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE E:\XWB\徐伟兵\3192UC\3192UC.C DB SB OE
stmt level source
1 #include<reg52.h>
2 #include<absacc.h>
3 #include<init.h>
4 #define uchar unsigned char
5 #define uint unsigned int
6 /********************************************************************************/
7 /************ Main Function ************/
8 /********************************************************************************/
9 void main(void)
10 {
11 1 initial();
12 1 array[0]=0;array[1]=10;array[2]=0;array[3]=1;
13 1 while(1){
14 2 switch(PUSHK)
15 2 {
16 3 case 0xa1:{array[0]=0;array[1]=4;array[2]=0;array[3]=0;};break;
17 3 case 0x61:{array[0]=0;array[1]=1;array[2]=0;array[3]=0;};break;
18 3 case 0x29:{array[0]=0;array[1]=6;array[2]=0;array[3]=0;};break;
19 3 case 0x25:{array[0]=0;array[1]=3;array[2]=0;array[3]=0;};break;
20 3 default:break;
21 3 }
22 2 CHKT();
23 2 }
24 1 while(1);
25 1 }
26 void CHKT(void)
27 {
28 1 if(SAMOK){
29 2 SAMOK=0;
30 2 ADJDLY=0;
31 2 while(!SAMOK);
32 2 SAMOK=0;
33 2 TMPL=AD_RESULTL+ABSDL;
34 2 TMPH=AD_RESULTH+ABSDH;
35 2 BINTBCD(TMPL,TMPH);
36 2 if(TMPH>=0x80){SIGN=0;POL=1;}
37 2 else{SIGN=1;POL=0;}
38 2 }
39 1 }
40 void KEY(void)
41 {
42 1 uchar clmn_pat;
43 1 for(clmn_pat=0X04;clmn_pat>0;clmn_pat<<=1)
44 1 {
45 2 P0=(P0&~clmn_pat)|(0xf0&~clmn_pat);
46 2 NEWK=(NEWK>>2)|((~(P3|0xCF))<<2);
47 2 NEWK=(NEWK>>2)|~(P0|0X3F);
48 2 }
49 1 if((KTEMP=NEWK^OLDK)>0){
50 2 PUSHK=KTEMP&NEWK;
51 2 RELK=KTEMP&OLDK;
52 2 OLDK=NEWK;
53 2 }
54 1 }
55 /********************************************************************************/
C51 COMPILER V6.23a 3192UC 12/22/2005 11:00:00 PAGE 2
56 /************ Initiation programme Function ************/
57 /********************************************************************************/
58 void initial(void)
59 {
60 1 //uint bcdth;
61 1 uchar i,j;
62 1 j=4;
63 1 DARK=0;
64 1 for(i=18;i>0;i--)array_r1[i+36]=DEFAULT_PID[i];
65 1 for(i=18;i>0;i--)array_r0[i]=DEFAULT1[i];
66 1 //for(i=18;i>0;i--)WRU3(array_r0[i],i+1);
67 1 //ENH=RDSU3(0X07);
68 1 //ENL=RDSU3(0X08);
69 1 COMMDLY1=255;
70 1 COMMDLY2=200;
71 1 TMOD =0X22;
72 1 //RCAP2H=0XFF;
73 1 //RCAP2L=0XFA;
74 1 //T2CON =0X34;
75 1 //SCON =0X50;
76 1 PCON =0X80;
77 1 IP =0X11;
78 1 IE =0X13;
79 1 TL0 =0X06;
80 1 TH0 =0X06;
81 1 IT0 =1;
82 1 T2mS =4;
83 1 T05Sec =500/20;
84 1 T1min =120;
85 1 CLONDLY=60;
86 1 CLONDLYF =1;
87 1 //COMM_OPEN_F=0;
88 1 POL=1;
89 1 DGTCNT=1;
90 1 TR0=1;
91 1 EA=1;
92 1 }
93 void BINTBCD(uchar x,uchar y)
94 {
95 1 uint i;
96 1 i=0;
97 1 if(y>=0x80)y=y-0x80;
98 1 else {
99 2 if(x>0x00){x=(0xff-x)+1;y=0x7f-y;}
100 2 else {x=0x00;y=0x80-y;}
101 2 }
102 1 i=i+y;i<<=8;i=i+x;
103 1 if(i>=10000){array[0]=1;i=i-10000;}
104 1 else array[0]=0;
105 1 array[1]=i/1000;
106 1 if(array[1]>0x00)i=i-array[1]*1000;
107 1 array[2]=i/100;
108 1 if(array[2]>0x00)i=i-array[2]*100;
109 1 array[3]=i/10;
110 1 }
111 /********************************************************************************/
112 /************ Timer0 ISR ************/
113 /********************************************************************************/
114 void intt0(void) interrupt 1 using 1
115 {
116 1 while(T2mS--==0){
117 2 T2mS=10;
C51 COMPILER V6.23a 3192UC 12/22/2005 11:00:00 PAGE 3
118 2 while(T20mS--==0){
119 3 T20mS=4;
120 3 if(!PUMP){
121 4 if(!DSHEAT){
122 5 if(HTONDLYF){
123 6 while(HTONDLY--==0){HTONDLYF=0;}
124 6 if(HTONDLYF)break;
125 6 }
126 5 if(T2Sec--==0){
127 6 T2Sec=100;
128 6 //CTR();
129 6 if(PWMBK!=0){
130 7 HEAT=0;
131 7 PWMON=PWMBK;
132 7 }
133 6 else {HEAT=1;break;}
134 6 }
135 5 while(PWMON--==0){HEAT=1;}
136 5 }
137 4 else HEAT=1;
138 4 }
139 3 else HEAT=1;
140 3 //CLCKXXX();
141 3 while(T05Sec--==0){
142 4 T05Sec=25;
143 4 while(CLONDLY--==0){CLONDLYF=0;}
144 4 while(T1min--==0){T1min=120;}
145 4 }
146 3 if(KeyS){
147 4 while(KSNGCNT--==0){
148 5 KeyS=0;
149 5 SOUND=1;
150 5 }
151 4 }
152 3 else{
153 4 if(TMPS){
154 5 while(TMPSDLY--==0){
155 6 TMPSDLY=20;
156 6 SOUND=~SOUND;
157 6 TMP_HW=~TMP_HW;
158 6 }
159 5 }
160 4 else{
161 5 if(PRSS){
162 6 while(PRSSDLY--==0){
163 7 PRSSDLY=10;
164 7 SOUND=~SOUND;
165 7 TMP_HW=~TMP_LW;
166 7 }
167 6 }
168 5 else{SOUND=1;}
169 5 }
170 4 }
171 3
172 3 }
173 2 //KEY();
174 2 }
175 1 DARK=0;
176 1 P0=0XFF;
177 1 //DARK=0;
178 1 P0=P0&DGT[DGTCNT-1];
179 1 P0=P0&(0XF0|array[DGTCNT-1]);
C51 COMPILER V6.23a 3192UC 12/22/2005 11:00:00 PAGE 4
180 1 DGTCNT++;
181 1 if(DGTCNT>=5){
182 2 DGTCNT=1;
183 2 KEY();
184 2 }
185 1 if(!((DGTCNT==0X02)&&(array[0]==0X00)))
186 1 DARK=1;
187 1 }
188 /********************************************************************************/
189 /************ Exterior Interrupt0 ISR ************/
190 /********************************************************************************/
191 void INT_7135(void) interrupt 0 using 1
192 {
193 1 uint admid;
194 1 uchar SAMV;
195 1 if(!AD_D5){ //选通信号有无决定是否输出
196 2 if(TRAN_EFFIC_F){
197 3 SAMV=P1&0X0F;
198 3 switch(AD_FACTORIAL)
199 3 {
200 4 case 1:
201 4 {
202 5 admid=(uint)SAMV;
203 5 admid=admid+AD_MID_L;
204 5 AD_MID_L=admid&0x00ff;
205 5 AD_MID_H=AD_MID_H+(admid>>8);
206 5 };break;
207 4 case 2:
208 4 {
209 5 admid=(uint)(SAMV*10);
210 5 admid=admid+AD_MID_L;
211 5 AD_MID_L=admid&0x00ff;
212 5 AD_MID_H=AD_MID_H+(admid>>8);
213 5 };break;
214 4 case 3:
215 4 {
216 5 admid=(uint)(SAMV*100);
217 5 admid=admid+AD_MID_L;
218 5 AD_MID_L=admid&0x00ff;
219 5 AD_MID_H=AD_MID_H+(admid>>8);
220 5 };break;
221 4 case 4:
222 4 {
223 5 admid=(uint)(SAMV*1000);
224 5 admid=admid+AD_MID_L;
225 5 AD_MID_L=admid&0x00ff;
226 5 AD_MID_H=AD_MID_H+(admid>>8);
227 5 };break;
228 4 default:break;
229 4 }
230 3 AD_FACTORIAL--;
231 3 if(AD_FACTORIAL==0){
232 4 TRAN_EFFIC_F=0;
233 4 if(AD_POL) //是负的值吗?(AD-POL 1 为正,0 为负)
234 4 {
235 5 AD_RESULTH=0x80+AD_MID_H;
236 5 AD_RESULTL=AD_MID_L;
237 5 }
238 4 else{
239 5 if(AD_MID_L>0){
240 6 AD_RESULTH=0X7F-AD_MID_H;
241 6 AD_RESULTL=(0XFF-AD_MID_L)+1;
C51 COMPILER V6.23a 3192UC 12/22/2005 11:00:00 PAGE 5
242 6 }
243 5 else{
244 6 AD_RESULTH=0x80-AD_MID_H;
245 6 AD_RESULTL=AD_MID_L;
246 6 }
247 5 }
248 4 SAMOK=1;
249 4 ENDLT=~ENDLT;
250 4 }
251 3 }
252 2 }
253 1 else{
254 2 TRAN_EFFIC_F=1; //开始转化标志置高
255 2 AD_FACTORIAL=4; // AD因子数
256 2 if(!DB1){AD_MID_H=0;AD_MID_L=0;} //万位是否为零
257 2 else{AD_MID_H=0x27; AD_MID_L=0x10; } //万位送1
258 2 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -