📄 ad.lst
字号:
C51 COMPILER V6.23a AD 01/03/2004 17:10:15 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE AD
OBJECT MODULE PLACED IN ad.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ad.c ROM(SMALL) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /************************************************/
2
3 /************************************************/
4 #include <REG52.H>
5 #include <stdio.h>
6 #include <intrins.h>
7
8 #ifdef MONITOR51 /* Debugging with Monitor-51 needs */
char code reserve [3] _at_ 0x23; /* space for serial interrupt if */
#endif /* Stop Exection with Serial Intr. */
11 /* is enabled */
12 const char Ledbuf[18]=/*digit convert table*//* 共阴*/
13 { 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,
14 /* 0 1 2 3 4 5 6 7 8 9 */
15 0x77, 0x7C, 0x39, 0x1000E, 0x79, 0x71, 0x00, 0x40 };
16 /* a b c d e f - */
17
18 sbit SERIALIN=P0^0;
19 sbit CLOCK=P0^2;
20 sbit LATCH=P0^1;
21 sbit P10=P1^0;
22 sbit P11=P1^1;
23 sbit P12=P1^2;
24 sbit P14=P1^4;
25 sbit P15=P1^5;
26 sbit P16=P1^6;
27 sbit P17=P1^7;
28 sbit P32=P3^2;
29
30
31 unsigned char th,tl;
32 unsigned char coun;
33 static unsigned int value_buf[5];
34 unsigned int old_val;
35
36 void Delay(unsigned int DelayTime)
37 {
38 1 if (DelayTime == 0)return;
39 1 while(DelayTime != 0)
40 1 {DelayTime--; }
41 1 }
42
43 void computer(unsigned int dt)
44 { unsigned char cledtim[5];
45 1 unsigned int dth,dtm,dtl;
46 1 unsigned char i,j,temp;
47 1 temp=0x01;
48 1 cledtim[4]=Ledbuf[dt/10000];
49 1 dth=dt%10000;
50 1 cledtim[3]=Ledbuf[dth/1000];
51 1 dtm=dth%1000;
52 1 cledtim[2]=Ledbuf[dtm/100];
53 1 cledtim[2]|=0x80;
54 1 dtl=dtm%100;
55 1 cledtim[1]=Ledbuf[dtl/10];
C51 COMPILER V6.23a AD 01/03/2004 17:10:15 PAGE 2
56 1 cledtim[0]=Ledbuf[dtl%10];
57 1
58 1 for (i=0; i<4; i++) {
59 2 temp=cledtim[i];
60 2 for (j=0;j<8;j++){
61 3 temp=temp<<1; SERIALIN=CY; CLOCK=1; CLOCK=0;
62 3 }
63 2 }LATCH=0; LATCH=1;
64 1 }
65
66
67
68 void bust_int(void) interrupt 0 using 1
69 {unsigned int dc;
70 1 EA=0;
71 1 th=TH0;
72 1 tl=TL0;
73 1 coun++;
74 1 if(coun==5){coun=0;}
75 1 dc=0x0000;
76 1 dc=th;
77 1 dc<<=8;
78 1 dc|=tl;
79 1 dc/=2;
80 1 dc-=10001;
81 1 dc/=10;
82 1 value_buf[coun]=dc;
83 1 TH0=0x00;
84 1 TL0=0x00;
85 1 IE0=0;
86 1 EA=1; //12/03
87 1 }
88
89
90 unsigned int filter(unsigned int old_value)
91 { unsigned int value=0;
92 1 bit zo=0,zt=0;
93 1 unsigned int temp,temp1,temp2;
94 1 unsigned char count,i,j;
95 1 for (j=0;j<4;j++)
96 1 {
97 2 for (i=0;i<5-j;i++)
98 2 {
99 3 if ( value_buf[i]>value_buf[i+1] )
100 3 {
101 4 temp = value_buf[i];
102 4 value_buf[i] = value_buf[i+1];
103 4 value_buf[i+1] = temp;
104 4 }
105 3 }
106 2 }
107 1 for(count=1;count<4;count++)
108 1 { value+= value_buf[count];}
109 1 value/=3;
110 1 temp1=value;
111 1 temp1-=old_value;
112 1 temp2=old_value;
113 1 temp2-=value;
114 1 if (temp1>2000){zo=0;}else{if(temp1>1){zo=1;}else{zo=0;}}
115 1 if (temp2>2000){zt=0;}else{if(temp2>1){zt=1;}else{zt=0;}}
116 1
117 1 if(zo|zt)
C51 COMPILER V6.23a AD 01/03/2004 17:10:15 PAGE 3
118 1 {return (value);}
119 1 else {return old_value;}
120 1 }
121
122 void main()
123 { unsigned int ptem,adtem,Hpv,Lpv,Had,Lad,Hout,Lout;
124 1 unsigned int datt,date;
125 1 unsigned long test,tests;
126 1 CLOCK=0;
127 1 LATCH=1;
128 1 TH0=0x00;
129 1 TL0=0x00;
130 1 P1=0x00;
131 1 TR0=0;
132 1 TMOD=0x09;
133 1 IT0=1;
134 1 TR0=1;
135 1 EX0=1;
136 1 EA=1;
137 1 for(;;)
138 1 {
139 2 datt=filter(old_val);
140 2 old_val=datt;
141 2 if(old_val<25){datt=0;}
142 2 else{Lad=0;Had=3000;Lout=100;Hout=120;Lpv=250;Hpv=2000;
143 3 ptem=Hpv-Lpv;
144 3 adtem=Had-Lad;
145 3 test=old_val-Lpv;
146 3 test*=adtem;
147 3 tests=Lad;
148 3 tests*=ptem;
149 3 test=test+tests;
150 3 test/=ptem;
151 3 date=test;
152 3 datt=date;}
153 2 computer(old_val);
154 2 }
155 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 722 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 33 35
IDATA SIZE = ---- ----
BIT SIZE = ---- 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -