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

📄 spifram.lst

📁 aduc814的汇编程序例子
💻 LST
📖 第 1 页 / 共 2 页
字号:
SPIFRAM                                                                                                       PAGE 1

                       1    ;********************************************************************
                       2    ;
                       3    ; Author        : ADI - Apps            www.analog.com/MicroConverter
                       4    ;
                       5    ; Date          : April '01
                       6    ;
                       7    ; File          : SPIfram.asm
                       8    ;
                       9    ; Hardware      : ADuC814
                      10    ;
                      11    ; Description   : sends sample values via SPI to FRAM
                      12    ;********************************************************************
                      13    
                      14    $MOD814
  00B5                15    SS      EQU     P3.5            ; P3.5 drives slave device's SS pin
                      16     
----                  17    CSEG
                      18    
0050                  19    ORG     0050H                   ; locate code above interrupts
                      20    
0050 75CBFF           21            MOV     RCAP2H,#0FFh ; config UART for 9600 baud
0053 75CAF9           22            MOV     RCAP2L,#-7   ; 
0056 75CDFF           23            MOV     TH2,#0FFh
0059 75CCF9           24            MOV     TL2,#-7
005C 759852           25            MOV     SCON,#52h
005F 75C834           26            MOV     T2CON,#34h
                      27    
                      28    
0062 D2B5             29            setb    ss
0064 759C01           30            mov     cfg814,#01h
0067 75F831           31            mov     SPICON,#031H
006A C2B5             32            CLR     SS              ; Set slave select low
006C 7406             33            MOV     A,#00000110B    ; write enable
006E F5F7             34            MOV     SPIDAT,A        ; trigger data transfer
0070 30FFFD           35            JNB     ISPI,$
0073 C2FF             36            CLR     ISPI
0075 D2B5             37            setb    ss              ; Complete transmission of op-code
0077 00               38            NOP     
0078 00               39            NOP
0079 00               40            NOP
                      41            
007A C2B5             42            clr     ss              ;
007C 7402             43            MOV     A,#00000010b    ; write data     
007E F5F7             44            MOV     SPIDAT,A        ; trigger data transfer
0080 30FFFD           45            JNB     ISPI,$
0083 C2FF             46            CLR     ISPI
                      47            
0085 7400             48            MOV     A,#00h
0087 F5F7             49            MOV     SPIDAT,A        ; trigger data transfer
0089 30FFFD           50            JNB     ISPI,$
008C C2FF             51            CLR     ISPI
                      52            
008E 7400             53            MOV     A,#00h          ; start at address 0000h
0090 F5F7             54            MOV     SPIDAT,A        ; trigger data transfer
0092 30FFFD           55            JNB     ISPI,$
0095 C2FF             56            CLR     ISPI
                      57    
0097 7800             58            MOV     R0,#00H         ; clear R0
SPIFRAM                                                                                                       PAGE 2

                      59    
0099 E8               60    loop:   MOV     A,R0            ; send test value
009A F5F7             61            MOV     SPIDAT,A        ; trigger data transfer
009C 30FFFD           62            JNB     ISPI,$
009F C2FF             63            CLR     ISPI
00A1 08               64            INC     R0
00A2 B814F4           65            CJNE    R0,#20,loop     ; Loop till 20 values sent
                      66            
                      67    
00A5 D2B5             68            SETB    SS              ; finish write sequence
                      69    
00A7 00               70            NOP
00A8 00               71            NOP
00A9 00               72            NOP
                      73    
00AA C2B5             74            CLR     SS
00AC 7403             75            MOV     A,#00000011b  ; READ data  
00AE F5F7             76            MOV     SPIDAT,A        ; trigger data transfer
00B0 30FFFD           77            JNB     ISPI,$
00B3 C2FF             78            CLR     ISPI
                      79            
00B5 7400             80            MOV     A,#00h
00B7 F5F7             81            MOV     SPIDAT,A        ; trigger data transfer
00B9 30FFFD           82            JNB     ISPI,$
00BC C2FF             83            CLR     ISPI
                      84            
00BE 7400             85            MOV     A,#00h          ; start at address 0000h
00C0 F5F7             86            MOV     SPIDAT,A        ; trigger data transfer
00C2 30FFFD           87            JNB     ISPI,$
00C5 C2FF             88            CLR     ISPI
                      89    
00C7 7400             90    loop2:  MOV     A,#00h          ; generate clocks for reception
00C9 F5F7             91            MOV     SPIDAT,A        
00CB 30FFFD           92            JNB     ISPI,$
00CE C2FF             93            CLR     ISPI
                      94    
00D0 E5F7             95            mov     A,SPIDAT
00D2 1200FA           96            CALL    SENDVAL
00D5 B413EF           97            CJNE    A,#19,loop2
00D8 80FE             98    exit:   jmp     $               
                      99    
                =1   100    $INCLUDE(UARTIO.ASM)
                =1   101    ;********************************************************************
                =1   102    ;
                =1   103    ; Author        : ADI - Apps            www.analog.com/MicroConverter
                =1   104    ;
                =1   105    ; Date          : 12 October 1999
                =1   106    ;
                =1   107    ; File          : UARTIO.hex
                =1   108    ;
                =1   109    ; Hardware      : any 8051 based microcontroller or MicroConverter
                =1   110    ;
                =1   111    ; Description   : standard UART I/O subroutines.  total size of this
                =1   112    ;                 code when assembled is 155 bytes.  routines for use
                =1   113    ;                 external to this file are:
                =1   114    ;
                =1   115    ;                 SENDSTRING - sends a string of characters
                =1   116    ;                 SENDCHAR   - sends a single character
SPIFRAM                                                                                                       PAGE 3

                =1   117    ;                 SENDVAL    - sends a byte as 2 ASCII characters
                =1   118    ;                 HEX2ASCII  - converts from HEX to ASCII
                =1   119    ;                 ASCII2HEX  - converts from ASCII to HEX
                =1   120    ;                 GETCHAR    - gets a single character
                =1   121    ;                 GETVAL     - gets a byte as 2 ASCII characters
                =1   122    ;
                =1   123    ;********************************************************************
                =1   124    
                =1   125    ;____________________________________________________________________
                =1   126                                                             ; SENDSTRING
                =1   127    
00DA            =1   128    SENDSTRING:     ; sends ASCII string to UART starting at location
                =1   129                    ; DPTR and ending with a null (0) value
                =1   130    
00DA C0E0       =1   131            PUSH    ACC
00DC C0F0       =1   132            PUSH    B
00DE E4         =1   133            CLR     A
00DF F5F0       =1   134            MOV     B,A
00E1 E5F0       =1   135    IO0010: MOV     A,B
00E3 05F0       =1   136            INC     B
00E5 93         =1   137            MOVC    A,@A+DPTR
00E6 6005       =1   138            JZ      IO0020
00E8 1200F2     =1   139            CALL    SENDCHAR
00EB 80F4       =1   140            JMP     IO0010
00ED D0F0       =1   141    IO0020: POP     B
00EF D0E0       =1   142            POP     ACC
                =1   143    
00F1 22         =1   144            RET
                =1   145    
                =1   146    ;____________________________________________________________________
                =1   147                                                               ; SENDCHAR
                =1   148    
00F2            =1   149    SENDCHAR:       ; sends ASCII value contained in A to UART
                =1   150    

⌨️ 快捷键说明

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