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

📄 dacquadr.lst

📁 aduc842原程序代码 ad公司芯片应用笔记
💻 LST
字号:
DACQUADR                                                                                                      PAGE 1

                       1    ;********************************************************************
                       2    ;
                       3    ; Author        : ADI - Apps            www.analog.com/MicroConverter
                       4    ;
                       5    ; Date          : October 2003
                       6    ;
                       7    ; File          : DACquadr.asm
                       8    ;
                       9    ; Hardware      : ADuC842
                      10    ;
                      11    ; Description   : Outputs sine waves on DAC0 and DAC1 at 590Hz.
                      12    ;                 Output signals are in quadrature with eachother,
                      13    ;                 DAC1 leading DAC0 by 90 degrees.  since each DAC is
                      14    ;                 updated when its DACxL register is written to, they
                      15    ;                 are not updated at the exact same moment, and a
                      16    ;                 phase error of (in this case) 0.625degrees results.
                      17    ;                 to address this problem, see code: "DACsync.asm".
                      18    ;                 Rate calculations assume a core frequency of 2.09MHz
                      19    ;
                      20    ;********************************************************************
                      21    
                      22    $MOD842                         ; Use 8052&ADuC842 predefined symbols
                      23    
  00B4                24    LED     EQU     P3.4            ; P3.4 drives red LED on eval board
                      25    
                      26    ;____________________________________________________________________
                      27                                                      ; BEGINNING OF CODE
----                  28    CSEG
                      29    
0000                  30    ORG 0000h
0000 75EF80           31            MOV     ADCCON1,#80H
0003 75D703           32            MOV     PLLCON,#03h     ; PLL to default freq
0006 75FD1F           33            MOV     DACCON,#01Fh    ; both DACs on,12bit,asynchronous
0009 75FA08           34            MOV     DAC0H,#008h
000C 75F900           35            MOV     DAC0L,#000h     ; DAC0 to mid-scale
000F 75FC0F           36            MOV     DAC1H,#00Fh
0012 75FBFF           37            MOV     DAC1L,#0FFh     ; DAC1 to full-scale
                      38    
0015 901000           39            MOV     DPTR,#TABLE
                      40    
0018 E4               41    STEP:   CLR     A               ;                                   
0019 93               42            MOVC    A,@A+DPTR       ; get high byte for mainDAC..       
001A F5FA             43            MOV     DAC0H,A         ; ..and move it into DAC0 register  
001C 7420             44            MOV     A,#020h         ; offset by 90deg for quadratureDAC 
001E 93               45            MOVC    A,@A+DPTR       ; get high byte for quadratureDAC.. 
001F F5FC             46            MOV     DAC1H,A         ; ..and move it into DAC1 register  
0021 A3               47            INC     DPTR            ; move on to get low bytes          
                      48    
0022 E4               49            CLR     A               ;                                   
0023 93               50            MOVC    A,@A+DPTR       ; get low byte for mainDAC..        
0024 F5F9             51            MOV     DAC0L,A         ; ..and update DAC0                 
0026 7420             52            MOV     A,#020h         ; offset by 90deg for quadratureDAC 
0028 93               53            MOVC    A,@A+DPTR       ; get low byte for quadratureDAC..  
0029 F5FB             54            MOV     DAC1L,A         ; ..and update DAC1                 
002B A3               55            INC     DPTR            ; move on for next data point       
                      56    
002C 53827F           57            ANL     DPL,#07Fh       ; wrap around at end of table       
                      58    
DACQUADR                                                                                                      PAGE 2

002F E5FA             59            MOV     A,DAC0H         ;                                   
0031 A2E3             60            MOV     C,ACC.3         ; MSB of DAC0 value                 
0033 92B4             61            MOV     LED,C           ; LED = MSB of DAC0                 
                      62    
0035 00               63            NOP                     ;                                   
0036 00               64            NOP                     ;                                   
0037 00               65            NOP                     ;                                   
0038 00               66            NOP                     ;                                   
0039 00               67            NOP                     ;                                   
003A 00               68            NOP                     ;                                   
003B 00               69            NOP                     ;                                   
003C 00               70            NOP                     ;                                   
                      71    
003D 80D9             72            JMP     STEP            ;                                   
                      73    
                      74    ;____________________________________________________________________
                      75                                                      ; SINE LOOKUP TABLE
1000                  76    ORG 01000h
                      77    
1000                  78    TABLE:
                      79    
1000 07FF             80    DB  007h, 0FFh
1002 08C8             81    DB  008h, 0C8h
1004 098E             82    DB  009h, 08Eh
1006 0A51             83    DB  00Ah, 051h
1008 0B0F             84    DB  00Bh, 00Fh
100A 0BC4             85    DB  00Bh, 0C4h
100C 0C71             86    DB  00Ch, 071h
100E 0D12             87    DB  00Dh, 012h
1010 0DA7             88    DB  00Dh, 0A7h
1012 0E2E             89    DB  00Eh, 02Eh
1014 0EA5             90    DB  00Eh, 0A5h
1016 0F0D             91    DB  00Fh, 00Dh
1018 0F63             92    DB  00Fh, 063h
101A 0FA6             93    DB  00Fh, 0A6h
101C 0FD7             94    DB  00Fh, 0D7h
101E 0FF5             95    DB  00Fh, 0F5h
1020 0FFF             96    DB  00Fh, 0FFh
1022 0FF5             97    DB  00Fh, 0F5h
1024 0FD7             98    DB  00Fh, 0D7h
1026 0FA6             99    DB  00Fh, 0A6h
1028 0F63            100    DB  00Fh, 063h
102A 0F0D            101    DB  00Fh, 00Dh
102C 0EA5            102    DB  00Eh, 0A5h
102E 0E2E            103    DB  00Eh, 02Eh
1030 0DA7            104    DB  00Dh, 0A7h
1032 0D12            105    DB  00Dh, 012h
1034 0C71            106    DB  00Ch, 071h
1036 0BC4            107    DB  00Bh, 0C4h
1038 0B0F            108    DB  00Bh, 00Fh
103A 0A51            109    DB  00Ah, 051h
103C 098E            110    DB  009h, 08Eh
103E 08C8            111    DB  008h, 0C8h
1040 07FF            112    DB  007h, 0FFh
1042 0736            113    DB  007h, 036h
1044 0670            114    DB  006h, 070h
1046 05AD            115    DB  005h, 0ADh
1048 04EF            116    DB  004h, 0EFh
DACQUADR                                                                                                      PAGE 3

104A 043A            117    DB  004h, 03Ah
104C 038D            118    DB  003h, 08Dh
104E 02EC            119    DB  002h, 0ECh
1050 0257            120    DB  002h, 057h
1052 01D0            121    DB  001h, 0D0h
1054 0159            122    DB  001h, 059h
1056 00F1            123    DB  000h, 0F1h
1058 009B            124    DB  000h, 09Bh
105A 0058            125    DB  000h, 058h
105C 0027            126    DB  000h, 027h
105E 0009            127    DB  000h, 009h
1060 0000            128    DB  000h, 000h
1062 0009            129    DB  000h, 009h
1064 0027            130    DB  000h, 027h
1066 0058            131    DB  000h, 058h
1068 009B            132    DB  000h, 09Bh
106A 00F1            133    DB  000h, 0F1h
106C 0159            134    DB  001h, 059h
106E 01D0            135    DB  001h, 0D0h
1070 0257            136    DB  002h, 057h
1072 02EC            137    DB  002h, 0ECh
1074 038D            138    DB  003h, 08Dh
1076 043A            139    DB  004h, 03Ah
1078 04EF            140    DB  004h, 0EFh
107A 05AD            141    DB  005h, 0ADh
107C 0670            142    DB  006h, 070h
107E 0736            143    DB  007h, 036h          ; end of table
                     144    
1080 07FF            145    DB  007h, 0FFh          ; repeat first 90degrees for quadratureDAC
1082 08C8            146    DB  008h, 0C8h
1084 098E            147    DB  009h, 08Eh
1086 0A51            148    DB  00Ah, 051h
1088 0B0F            149    DB  00Bh, 00Fh
108A 0BC4            150    DB  00Bh, 0C4h
108C 0C71            151    DB  00Ch, 071h
108E 0D12            152    DB  00Dh, 012h
1090 0DA7            153    DB  00Dh, 0A7h
1092 0E2E            154    DB  00Eh, 02Eh
1094 0EA5            155    DB  00Eh, 0A5h
1096 0F0D            156    DB  00Fh, 00Dh
1098 0F63            157    DB  00Fh, 063h
109A 0FA6            158    DB  00Fh, 0A6h
109C 0FD7            159    DB  00Fh, 0D7h
109E 0FF5            160    DB  00Fh, 0F5h
10A0 0FFF            161    DB  00Fh, 0FFh
                     162    
                     163    ;____________________________________________________________________
                     164    
                     165    END

VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
DACQUADR                                                                                                      PAGE 4

ACC. . . . . . . . . . . . . . .  D ADDR  00E0H  PREDEFINED  
ADCCON1. . . . . . . . . . . . .  D ADDR  00EFH  PREDEFINED  
DAC0H. . . . . . . . . . . . . .  D ADDR  00FAH  PREDEFINED  
DAC0L. . . . . . . . . . . . . .  D ADDR  00F9H  PREDEFINED  
DAC1H. . . . . . . . . . . . . .  D ADDR  00FCH  PREDEFINED  
DAC1L. . . . . . . . . . . . . .  D ADDR  00FBH  PREDEFINED  
DACCON . . . . . . . . . . . . .  D ADDR  00FDH  PREDEFINED  
DPL. . . . . . . . . . . . . . .  D ADDR  0082H  PREDEFINED  
LED. . . . . . . . . . . . . . .    NUMB  00B4H  
P3 . . . . . . . . . . . . . . .  D ADDR  00B0H  PREDEFINED  
PLLCON . . . . . . . . . . . . .  D ADDR  00D7H  PREDEFINED  
STEP . . . . . . . . . . . . . .  C ADDR  0018H  
TABLE. . . . . . . . . . . . . .  C ADDR  1000H  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -