⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ad7799.lst

📁 Keil C写的ADI的24位A/DAD7799使用SPI接口程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 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 + -