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

📄 adcsingl.lst

📁 于ADuC812的智能无功补偿控制器的研制 一种眼科B型超声诊断议 SL11R单片机外部存储器扩展 单片机复位电路...支持键盘双击事件的C程序设计! 一些源程序 FrankLin C51 库函数的一
💻 LST
📖 第 1 页 / 共 2 页
字号:
ADCSINGL                                                                                                      PAGE 1

                       1    ;********************************************************************
                       2    ;
                       3    ; Author        : ADI - Apps            www.analog.com/MicroConverter
                       4    ;
                       5    ; Date          : March 2001
                       6    ;
                       7    ; File          : ADCsingl.asm
                       8    ;
                       9    ; Hardware      : ADuC814
                      10    ;
                      11    ; Description   : Performs repeated single ADC conversions and moves
                      12    ;                 results to UART. Sets the red LED on the eval
                      13    ;                 board upon completion of each conversion.  A new
                      14    ;                 conversion is innitiated every 200ms.
                      15    ;                 All rate calculations assume an 2.097152MHz Mclk.
                      16    ;               
                      17    ;********************************************************************
                      18    
                      19    $MOD814                         ; Use 8052&ADuC814 predefined symbols
                      20    
  00B3                21    LED     EQU     P3.3            ; P3.3 drives red LED on eval board
  0000                22    CHAN    EQU     0               ; convert this ADC input channel..
                      23                                    ; ..chan values can be 0 thru 6
                      24    ;____________________________________________________________________
                      25                                                      ; BEGINNING OF CODE
----                  26    CSEG
                      27    
0000                  28    ORG 0000h
                      29    
0000 02004B           30            JMP     MAIN            ; jump to main program
                      31    ;____________________________________________________________________
                      32                
0033                  33    ORG 0033H                                              ; INTERRUPT VECTOR SPACE
0033 D2B3             34            SETB    LED
0035 32               35            RETI
                      36            
                      37    
                      38    ;====================================================================
                      39                                                           ; MAIN PROGRAM
004B                  40    ORG 004Bh
                      41    
004B                  42    MAIN:
                      43    
                      44    ; Set up UART
004B 75CBFF           45            MOV     RCAP2H,#0FFh ; config UART for 9600 baud
004E 75CAF9           46            MOV     RCAP2L,#-7   ; 
0051 75CDFF           47            MOV     TH2,#0FFh
0054 75CCF9           48            MOV     TL2,#-7
0057 759852           49            MOV     SCON,#52h
005A 75C834           50            MOV     T2CON,#34h
                      51    ; PRECONFIGURE...
                      52    
005D 75EF80           53            MOV     ADCCON1,#080h   ; power up ADC
0060 75D800           54            MOV     ADCCON2,#CHAN   ; select channel to convert
0063 D2AF             55            SETB    EA              ; enable interrupts
0065 D2AE             56            SETB    EADC            ; enable ADC interrupt
                      57    
                      58    ; PERFORM REPEATED SINGLE CONVERSIONS...
ADCSINGL                                                                                                      PAGE 2

                      59    
0067 C2B3             60    AGAIN:  CLR     LED             ; turn the LED off
0069 7401             61            MOV     A,#01H          ; Delay length
006B 120084           62            CALL    DELAY           ; delay 100ms
006E D2DC             63            SETB    SCONV           ; innitiate single ADC conversion
                      64                                    ; ADC ISR is called upon completion
0070 30B3FD           65            JNB     LED,$
0073 E5DA             66            MOV     A,ADCDATAH
0075 1200B0           67            CALL    SENDVAL
0078 E5D9             68            MOV     A,ADCDATAL
007A 1200B0           69            CALL    SENDVAL
                      70            
007D 7401             71            MOV     A,#01H          ; Delay length
007F 120084           72            CALL    DELAY           ; delay 100ms
0082 80E3             73            JMP     AGAIN           ; repeat
                      74    
                      75    ;____________________________________________________________________
                      76                                                             ; SUBROUTINE
0084                  77    DELAY:                                  ; Delays by 100ms * A
                      78                                            ; 100mSec based on 2.097152MHZ 
                      79                                            ; Core Clock 
                      80                                            ; i.e. default ADuC814 Clock
                      81    
0084 F9               82                    MOV     R1,A            ; Acc holds delay variable
0085 7A22             83     DLY0:          MOV     R2,#022h        ; Set up delay loop0
0087 7BFF             84     DLY1:          MOV     R3,#0FFh        ; Set up delay loop1
0089 DBFE             85                    DJNZ    R3,$            ; Dec R3 & Jump here until R3 is 0
008B DAFA             86                    DJNZ    R2,DLY1         ; Dec R2 & Jump DLY1 until R2 is 0
008D D9F6             87                    DJNZ    R1,DLY0         ; Dec R1 & Jump DLY0 until R1 is 0
008F 22               88                    RET                     ; Return from subroutine
                      89    
                      90    
                      91    ;____________________________________________________________________
                      92                    
                      93    
                =1    94    $INCLUDE(UARTIO.ASM)            
                =1    95    ;********************************************************************
                =1    96    ;
                =1    97    ; Author        : ADI - Apps            www.analog.com/MicroConverter
                =1    98    ;
                =1    99    ; Date          : 12 October 1999
                =1   100    ;
                =1   101    ; File          : UARTIO.hex
                =1   102    ;
                =1   103    ; Hardware      : any 8051 based microcontroller or MicroConverter
                =1   104    ;
                =1   105    ; Description   : standard UART I/O subroutines.  total size of this
                =1   106    ;                 code when assembled is 155 bytes.  routines for use
                =1   107    ;                 external to this file are:
                =1   108    ;
                =1   109    ;                 SENDSTRING - sends a string of characters
                =1   110    ;                 SENDCHAR   - sends a single character
                =1   111    ;                 SENDVAL    - sends a byte as 2 ASCII characters
                =1   112    ;                 HEX2ASCII  - converts from HEX to ASCII
                =1   113    ;                 ASCII2HEX  - converts from ASCII to HEX
                =1   114    ;                 GETCHAR    - gets a single character
                =1   115    ;                 GETVAL     - gets a byte as 2 ASCII characters
                =1   116    ;
ADCSINGL                                                                                                      PAGE 3

                =1   117    ;********************************************************************
                =1   118    
                =1   119    ;____________________________________________________________________
                =1   120                                                             ; SENDSTRING
                =1   121    
0090            =1   122    SENDSTRING:     ; sends ASCII string to UART starting at location
                =1   123                    ; DPTR and ending with a null (0) value
                =1   124    
0090 C0E0       =1   125            PUSH    ACC
0092 C0F0       =1   126            PUSH    B
0094 E4         =1   127            CLR     A
0095 F5F0       =1   128            MOV     B,A
0097 E5F0       =1   129    IO0010: MOV     A,B
0099 05F0       =1   130            INC     B
009B 93         =1   131            MOVC    A,@A+DPTR
009C 6005       =1   132            JZ      IO0020
009E 1200A8     =1   133            CALL    SENDCHAR
00A1 80F4       =1   134            JMP     IO0010
00A3 D0F0       =1   135    IO0020: POP     B
00A5 D0E0       =1   136            POP     ACC
                =1   137    
00A7 22         =1   138            RET
                =1   139    
                =1   140    ;____________________________________________________________________
                =1   141                                                               ; SENDCHAR
                =1   142    
00A8            =1   143    SENDCHAR:       ; sends ASCII value contained in A to UART
                =1   144    
00A8 3099FD     =1   145            JNB     TI,$            ; wait til present char gone
00AB C299       =1   146            CLR     TI              ; must clear TI
00AD F599       =1   147            MOV     SBUF,A
                =1   148    
00AF 22         =1   149            RET
                =1   150    

⌨️ 快捷键说明

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