📄 ad7799.lst
字号:
259 2 }
260 1
261 1 WriteByteToAd7799(0x58); //0101 1000 配置下一操作:读数据寄存器,000
262 1 /* Writes to Communications Register Setting Next Operation as Continuous Read From Data Register*/
263 1 WaiteRDY();
264 1 /* Wait for RDY pin to go low to indicate end of calibration cycle*/
265 1 if(!AD7799_RDY)
266 1 {
267 2 ConverData=0 ;
268 2 ConverData=ReadByteFromAd7799();
269 2 ConverData=ConverData<<8 ;
270 2 ConverData=ReadByteFromAd7799()+ConverData;
271 2 ConverData=ConverData<<8 ;
272 2 ConverData=ReadByteFromAd7799()+ConverData;
273 2 }
274 1 /* Read Conversion Result from AD7799's Data Register*/
275 1 return(ConverData);
276 1 }
277 UCIL temp;
278 void main(void)
279 {
280 1 uint code *adtpoint; //
281 1 uchar i=0,j=0;
282 1
283 1
284 1 delay(100);
285 1 CPUInit();
286 1 //AD7799_CS=0;
287 1 delay(10);
288 1 WriteByteToAd7799(0xff); //写入32个高电平,复位ADC
289 1 WriteByteToAd7799(0xff);
290 1 WriteByteToAd7799(0xff);
291 1 WriteByteToAd7799(0xff);
292 1 Ad7799_Ini();
293 1 while(1)
294 1 {
295 2 temp.ul=ReadAd7799ConversionData();
296 2 temp.ul>>=5;
297 2 for(i=90,j=89;i>0;i--,j--)ADQUEUE[i]=ADQUEUE[j]; //数据移动结束后,adqpoint指向了采样数组的头
C51 COMPILER V8.02 AD7799 03/21/2008 20:01:02 PAGE 6
298 2 ADQUEUE[0]=temp.ul; //最新数据的输入
299 2 //----------------取得表格的首地址--------------此段程序减化-----
300 2 ADDFNumber=DFNUMBER[9];; //当前滤波级数对应的滤波表中数据的个数
301 2 adtpoint=DFTAB9;
302 2 j=ADDFNumber;
303 2 for(i=0,temp.ul=0;i<j;i++,adtpoint++) //i<j,i最大90,所以ADQUEUE[i]在0-90个单元
304 2 { temp.ul+=((*adtpoint)*ADQUEUE[i]);} //数据的累加,最大是524288(19位)*8192(13位)=0x100000000(32位)
305 2 temp.ul>>=13;
306 2 //temp.ul=ADQUEUE[0];
307 2 UART0BUF=temp.uc[0];
308 2 while(!(UART0INT & 0x01));
309 2 UART0BUF=temp.uc[1];
310 2 while(!(UART0INT & 0x01));
311 2 UART0BUF=temp.uc[2];
312 2 while(!(UART0INT & 0x01));
313 2 UART0BUF=temp.uc[3];
314 2 while(!(UART0INT & 0x01));
315 2 }
316 1 }
C51 COMPILER V8.02 AD7799 03/21/2008 20:01:02 PAGE 7
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _delay (BEGIN)
; SOURCE LINE # 102
;---- Variable 'i' assigned to Register 'R7' ----
; SOURCE LINE # 103
; SOURCE LINE # 104
0000 ?C0001:
0000 D3 SETB C
0001 EF MOV A,R7
0002 6480 XRL A,#080H
0004 9480 SUBB A,#080H
0006 4003 JC ?C0002
0008 1F DEC R7
0009 80F5 SJMP ?C0001
000B ?C0002:
;---- Variable 'j' assigned to Register 'R7' ----
000B E4 CLR A
000C FF MOV R7,A
000D ?C0004:
000D 00 NOP
000E 0F INC R7
000F BF0AFB CJNE R7,#0AH,?C0004
; SOURCE LINE # 105
0012 ?C0007:
0012 22 RET
; FUNCTION _delay (END)
; FUNCTION CPUInit (BEGIN)
; SOURCE LINE # 107
; SOURCE LINE # 108
; SOURCE LINE # 110
0000 75F418 MOV PERIPHEN1,#018H
; SOURCE LINE # 111
0003 E4 CLR A
0004 F5F9 MOV P0PINCFG,A
; SOURCE LINE # 112
0006 75FA04 MOV P1PINCFG,#04H
; SOURCE LINE # 113
0009 F5FB MOV P2PINCFG,A
; SOURCE LINE # 114
000B 75FC01 MOV P3PINCFG,#01H
; SOURCE LINE # 115
000E F5FD MOV P4PINCFG,A
; SOURCE LINE # 116
0010 75FE04 MOV P5PINCFG,#04H
; SOURCE LINE # 117
0013 F5FF MOV P6PINCFG,A
; SOURCE LINE # 118
0015 75F7FF MOV PORTINEN,#0FFH
; SOURCE LINE # 119
0018 F5C8 MOV P6,A
001A F5B0 MOV P3,A
001C F5A0 MOV P2,A
001E F590 MOV P1,A
0020 F580 MOV P0,A
0022 F5C0 MOV P4,A
0024 759804 MOV P5,#04H
; SOURCE LINE # 120
0027 75F528 MOV PERIPHEN2,#028H
; SOURCE LINE # 121
C51 COMPILER V8.02 AD7799 03/21/2008 20:01:02 PAGE 8
002A F5C8 MOV P6,A
002C F5B0 MOV P3,A
002E F5A0 MOV P2,A
0030 F590 MOV P1,A
0032 F580 MOV P0,A
0034 F5C0 MOV P4,A
0036 759804 MOV P5,#04H
; SOURCE LINE # 122
0039 D2C5 SETB P4_5
; SOURCE LINE # 123
003B 75A290 MOV UART0CFG,#090H
; SOURCE LINE # 124
003E F5A1 MOV UART0INT,A
; SOURCE LINE # 125
0040 F5A6 MOV UART0EXT,A
; SOURCE LINE # 126
0042 75A41F MOV UART0BRL,#01FH
; SOURCE LINE # 127
0045 F5A5 MOV UART0BRH,A
; SOURCE LINE # 128
0047 D28D SETB U0IEN
; SOURCE LINE # 129
0049 75E801 MOV GENINTEN,#01H
; SOURCE LINE # 130
004C 75A3FF MOV UART0BUF,#0FFH
004F ?C0008:
; SOURCE LINE # 131
004F E5A1 MOV A,UART0INT
0051 30E0FB JNB ACC.0,?C0008
0054 ?C0009:
; SOURCE LINE # 132
0054 75A3FF MOV UART0BUF,#0FFH
0057 ?C0010:
; SOURCE LINE # 133
0057 E5A1 MOV A,UART0INT
0059 30E0FB JNB ACC.0,?C0010
005C ?C0011:
; SOURCE LINE # 134
005C 75A3FF MOV UART0BUF,#0FFH
005F ?C0012:
; SOURCE LINE # 135
005F E5A1 MOV A,UART0INT
0061 30E0FB JNB ACC.0,?C0012
0064 ?C0013:
; SOURCE LINE # 136
0064 75A3FF MOV UART0BUF,#0FFH
0067 ?C0014:
; SOURCE LINE # 137
0067 E5A1 MOV A,UART0INT
0069 30E0FB JNB ACC.0,?C0014
006C ?C0015:
; SOURCE LINE # 138
006C 75A30D MOV UART0BUF,#0DH
006F ?C0016:
; SOURCE LINE # 139
006F E5A1 MOV A,UART0INT
0071 30E0FB JNB ACC.0,?C0016
; SOURCE LINE # 140
0074 ?C0018:
0074 22 RET
; FUNCTION CPUInit (END)
C51 COMPILER V8.02 AD7799 03/21/2008 20:01:02 PAGE 9
; FUNCTION L?0058 (BEGIN)
0000 L?0059:
0000 7FFF MOV R7,#0FFH
0002 120000 R LCALL _WriteByteToAd7799
0005 7FFF MOV R7,#0FFH
0007 120000 R LCALL _WriteByteToAd7799
000A 7FFF MOV R7,#0FFH
000C 120000 R LCALL _WriteByteToAd7799
000F 7FFF MOV R7,#0FFH
; FUNCTION _WriteByteToAd7799 (BEGIN)
; SOURCE LINE # 144
;---- Variable 'WriteData' assigned to Register 'R7' ----
; SOURCE LINE # 145
; SOURCE LINE # 147
0011 C2C5 CLR P4_5
; SOURCE LINE # 148
;---- Variable 'i' assigned to Register 'R6' ----
0013 E4 CLR A
0014 FE MOV R6,A
0015 ?C0019:
; SOURCE LINE # 149
; SOURCE LINE # 150
0015 00 NOP
0016 00 NOP
0017 00 NOP
0018 00 NOP
; SOURCE LINE # 151
0019 C299 CLR P5_1
; SOURCE LINE # 152
001B 00 NOP
001C 00 NOP
001D 00 NOP
001E 00 NOP
; SOURCE LINE # 153
001F EF MOV A,R7
0020 30E704 JNB ACC.7,?C0022
0023 D298 SETB P5_0
0025 8002 SJMP ?C0023
0027 ?C0022:
; SOURCE LINE # 154
0027 C298 CLR P5_0
0029 ?C0023:
; SOURCE LINE # 155
0029 EF MOV A,R7
002A 25E0 ADD A,ACC
002C FF MOV R7,A
; SOURCE LINE # 156
002D 00 NOP
002E 00 NOP
002F 00 NOP
0030 00 NOP
; SOURCE LINE # 157
0031 D299 SETB P5_1
; SOURCE LINE # 158
0033 00 NOP
0034 00 NOP
0035 00 NOP
0036 00 NOP
; SOURCE LINE # 159
0037 0E INC R6
0038 BE08DA CJNE R6,#08H,?C0019
003B ?C0020:
C51 COMPILER V8.02 AD7799 03/21/2008 20:01:02 PAGE 10
; SOURCE LINE # 160
003B D2C5 SETB P4_5
; SOURCE LINE # 161
003D 22 RET
; FUNCTION _WriteByteToAd7799 (END)
; FUNCTION L?0060 (BEGIN)
0000 AE00 R MOV R6,ConverData+02H
0002 AD00 R MOV R5,ConverData+01H
0004 7808 MOV R0,#08H
0006 120000 E LCALL ?C?LSHL
0009 8F00 R MOV ConverData+03H,R7
000B 8E00 R MOV ConverData+02H,R6
000D 8D00 R MOV ConverData+01H,R5
000F 8C00 R MOV ConverData,R4
; FUNCTION ReadByteFromAd7799 (BEGIN)
; SOURCE LINE # 164
; SOURCE LINE # 165
; SOURCE LINE # 168
0011 C2C5 CLR P4_5
; SOURCE LINE # 169
;---- Variable 'ReadData' assigned to Register 'R7' ----
0013 E4 CLR A
0014 FF MOV R7,A
; SOURCE LINE # 170
;---- Variable 'i' assigned to Register 'R6' ----
0015 FE MOV R6,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -