📄 ad0.lst
字号:
C51 COMPILER V6.12 AD0 06/09/2003 19:14:24 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE AD0
OBJECT MODULE PLACED IN ad0.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ad0.c DB OE
stmt level source
1 /*=========================================================================================
2 AD RUTINE
3 ===========================================================================================
4 AHTH: GZG
5 DATE:
6 COMMENT:
7 ===========================================================================================*/
8 /*-------------------------------------------INCLUDE---------------------------------------*/
9 #include <c8051f020.h>
10 /*-------------------------------------------GLOBLE DEFINE OR DECLARING--------------------*/
11 extern long int transfer_ad;
12 extern unsigned int xdata canmodify_package[];
13 extern int cycle_times;
14 /*-------------------------------------------FUCTIN DECLARING-----------------------------*/
15 extern void delay(int t);
16 /*-------------------------------------------16BIT SFR DEFINE------------------------------*/
17 sfr16 ADC0=0xbe;
18 sfr16 DAC0=0Xd2;
19
20 /*-----------------------------------------------------------------------------------------
21 AD ROOUTINE
22 ------------------------------------------------------------------------------------------*/
23
24 void ad0(void)
25 {
26 1 static unsigned xdata dec=256;
27 1 static long xdata total=0L;
28 1 static long xdata jiyi[10];
29 1 xdata long transfer;
30 1 long xdata transfer1;
31 1 long xdata transfer2;
32 1
33 1
34 1 if(canmodify_package[6]==1)
35 1 {
36 2 AMX0SL=0X00;
37 2 ADC0CN=0x90;
38 2 while(!AD0INT);
39 2 total+=ADC0;
40 2 dec--;
41 2 if(dec==0)
42 2 {
43 3 jiyi[0]=jiyi[1];
44 3 jiyi[1]=jiyi[2];
45 3 jiyi[2]=jiyi[3];
46 3 jiyi[3]=jiyi[4];
47 3 jiyi[4]=jiyi[5];
48 3 jiyi[5]=jiyi[6];
49 3 jiyi[6]=jiyi[7];
50 3 jiyi[7]=jiyi[8];
51 3 jiyi[8]=jiyi[9];
52 3 transfer=((total/256));
53 3 if(transfer<0)transfer=jiyi[8];
54 3 jiyi[9]=transfer;
55 3
C51 COMPILER V6.12 AD0 06/09/2003 19:14:24 PAGE 2
56 3 transfer1=(jiyi[0]+jiyi[1]+jiyi[2]+jiyi[3]+jiyi[4]+jiyi[5]+jiyi[6]+jiyi[7]+jiyi[8]+jiyi[9])/10;
57 3
58 3 if(transfer1>=(canmodify_package[0]+818))
59 3 {
60 4
61 4 cycle_times=1;
62 4 transfer_ad=((transfer1-818-canmodify_package[0])*(canmodify_package[3]*1000))/3243;
63 4 transfer2=((transfer1-818-canmodify_package[0])*4095)/3243;
64 4
65 4 if (transfer2>=4095)DAC0=4095;
66 4 else
67 4 {DAC0=transfer2;}
68 4 //if(transfer1>=4072)DAC0=4095;
69 4
70 4 //if(transfer_ad>=10000)DAC0=4095;
71 4 }
72 3 else
73 3 {
74 4 cycle_times=-8;
75 4 transfer_ad=((canmodify_package[0]+818-transfer1)*(canmodify_package[3]*1000))/3243;
76 4 DAC0=0;
77 4 }
78 3 // transfer_ad=transfer1;
79 3 dec=256;
80 3 total=0L;
81 3 }
82 2
83 2 }
84 1
85 1
86 1
87 1 if(canmodify_package[6]==3)//use the channel 3 and it is risister
88 1 {
89 2
90 2 AMX0SL=0X01;
91 2 ADC0CN=0x90;
92 2 //delay(1000);
93 2 while(!AD0INT);
94 2
95 2 // transfer_ad=ADC0;
96 2 total+=ADC0;
97 2 dec--;
98 2 if(dec==0)
99 2 {
100 3 jiyi[0]=jiyi[1];
101 3 jiyi[1]=jiyi[2];
102 3 jiyi[2]=jiyi[3];
103 3 jiyi[3]=jiyi[4];
104 3 jiyi[4]=jiyi[5];
105 3 jiyi[5]=jiyi[6];
106 3 jiyi[6]=jiyi[7];
107 3 jiyi[7]=jiyi[8];
108 3 jiyi[8]=jiyi[9];
109 3 transfer=((total/256));
110 3 if(transfer<0)transfer=jiyi[8];
111 3 jiyi[9]=transfer;
112 3
113 3 transfer1=(jiyi[0]+jiyi[1]+jiyi[2]+jiyi[3]+jiyi[4]+jiyi[5]+jiyi[6]+jiyi[7]+jiyi[8]+jiyi[9])/10;
114 3
115 3
116 3 if(transfer1>=canmodify_package[6]+11)
117 3 {
C51 COMPILER V6.12 AD0 06/09/2003 19:14:24 PAGE 3
118 4 cycle_times=1;
119 4 transfer_ad=(transfer1-11-canmodify_package[0])*(canmodify_package[3]*1000)/4071;
120 4 DAC0=(transfer1-11-canmodify_package[0])*4095/4071;
121 4 if(transfer1>=4071)DAC0=4095;
122 4 }
123 3 else
124 3 {
125 4 cycle_times=-8;
126 4 transfer_ad=(canmodify_package[0]+11-transfer1)*(canmodify_package[3]*1000)/4071;
127 4 DAC0=0;
128 4
129 4 }
130 3 // transfer_ad=transfer1;
131 3 dec=256;
132 3 total=0L;
133 3
134 3 }
135 2
136 2 }
137 1
138 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2042 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 46 12
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -