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

📄 ad.asm.bak

📁 DSP的汇编程序
💻 BAK
字号:
;***********ADC 转换应用举例*************************************************
        .include    "F2407REGS.H"   ;引用头部文件
        .def        _c_int0        
        
        .data
        
ADRESULT .word		0
ADCOUNT	 .word		0    

DAPORT	.set	800EH

;***********建立中断向量表***************************************************

        .sect     ".vectors"        ;定义主向量段   
RSVECT      B   _c_int0             ;PM 0   Reset Vector        1
INT1        B   GISR1             	;PM 2   Int level 1         4
INT2        B   PHANTOM             ;PM 4   Int level 2         5
INT3        B   PHANTOM             ;PM 6   Int level 3         6
INT4        B   PHANTOM             ;PM 8   Int level 4         7
INT5        B   PHANTOM             ;PM A   Int level 5         8
INT6        B   PHANTOM             ;PM C   Int level 6         9
RESERVED    B   PHANTOM             ;PM E   (Analysis Int)      10
SW_INT8     B   PHANTOM             ;PM 10  User S/W int        -
SW_INT9     B   PHANTOM             ;PM 12  User S/W int        -
SW_INT10    B   PHANTOM             ;PM 14  User S/W int        -
SW_INT11    B   PHANTOM             ;PM 16  User S/W int        -
SW_INT12    B   PHANTOM             ;PM 18  User S/W int        -
SW_INT13    B   PHANTOM             ;PM 1A  User S/W int        -
SW_INT14    B   PHANTOM             ;PM 1C  User S/W int        -
SW_INT15    B   PHANTOM             ;PM 1E  User S/W int        -
SW_INT16    B   PHANTOM             ;PM 20  User S/W int        -
TRAP        B   PHANTOM             ;PM 22  Trap vector         -
NMI         B   PHANTOM             ;PM 24  Non maskable Int    3
EMU_TRAP    B   PHANTOM             ;PM 26  Emulator Trap       2
SW_INT20    B   PHANTOM             ;PM 28  User S/W int        -
SW_INT21    B   PHANTOM             ;PM 2A  User S/W int        -
SW_INT22    B   PHANTOM             ;PM 2C  User S/W int        -
SW_INT23    B   PHANTOM             ;PM 2E  User S/W int        -
SW_INT24    B   PHANTOM             ;PM 30  User S/W int        -
SW_INT25    B   PHANTOM             ;PM 32  User S/W int        -
SW_INT26    B   PHANTOM             ;PM 34  User S/W int        -
SW_INT27    B   PHANTOM             ;PM 36  User S/W int        -
SW_INT28    B   PHANTOM             ;PM 38  User S/W int        -
SW_INT29    B   PHANTOM             ;PM 3A  User S/W int        -
SW_INT30    B   PHANTOM             ;PM 3C  User S/W int        -
SW_INT31    B   PHANTOM             ;PM 3E  User S/W int        -

        .sect   ".pvecs"            ;定义子向量段
PVECTORS
        B       PHANTOM             ;Reserved pvector addr offset-0000h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       ADCINT_ISR          ;0004h  ADC中断
        B       PHANTOM             ;Reserved pvector addr offset-0005h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-000ah
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0010h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0015h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-001Ah
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0020h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0025h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;pvector addr offset 0x027h - T1PINT中断
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-002Ah
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0030h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0035h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-003aAh
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-003Fh
        B       PHANTOM             ;pvector addr offset 0x040h - CAN接收中断
        B       PHANTOM             ;Reserved pvector addr offset-0041h         
            
;*******主程序***************************************************************
        .text
_c_int0    
        SETC    INTM                 	;关总中断
        CLRC    SXM
        CLRC    OVM
        CLRC    CNF 
        LDP     #0E0H
        SPLK    #81FEH, SCSR1           ;CLKIN=10 M, CLKOUT=40 M 
        SPLK    #0E8h, WDCR             ;关看门狗
        LDP     #0
        SPLK    #0001h, IMR             ;允许INT1中断
        SPLK    #0FFFFh, IFR            ;清所有中断标志
        CALL    ADINIT                  ;初始化ADC程序
        CLRC    INTM                    ;开总中断
        CALL    AD                      ;启动模数转换程序
WAIT:   NOP  
        B       WAIT
        
;***************ADC初始化程序************************************************
ADINIT:  
        LDP     #DP_EVA                 ;设置通用定时器1
        SPLK    #0000H, T1CNT           ;定时器初值置0
        SPLK    #120EH, T1CON           ;连续增计数模式,1/4分频
        SPLK    #01FH,  T1PR			;PER=32 
        SPLK    #0080H, GPTCONA         ;0200h
        SPLK    #0FFFFH, EVAIFRA
        SPLK    #0380H, EVAIMRA           
        
        LDP     #DP_PF2                                              
        SPLK    #4000H, ADCCTRL1        ;RESET ADC
        NOP
        SPLK    #0180H, ADCCTRL1        ;设置ADC控制寄存器1
        								;设置采样窗口时间0x01=2*ACLK
        SPLK    #0500H, ADCCTRL2        ;ADCTRL2      
        SPLK    #0000H, MAXCONV         ;1 通道 , ADC channel 1
        SPLK    #3201H, CHSELSEQ1
        SPLK    #7654H, CHSELSEQ2
        SPLK    #0BA98H, CHSELSEQ3
        SPLK    #0FEDCH, CHSELSEQ4
        
        LDP     #DP_SARAM2              ;指向0A00h~0A80h
        SPLK    #ADRESULT, ADCOUNT
        RET
        
;*******启动模数转换程序*****************************************************
AD: 
        LDP     #DP_EVA
        LACL    T1CON
        OR      #40H                    ;启动定时器4
        SACL    T1CON       
        RET
        
;*******中断程序*************************************************************
GISR1:                                  ;优先级INT1中断子程序入口
                                        ;保护现场
        LDP     #0E0H
        LACC    PIVR, 1                 ;读取外设中断向量寄存器(PIVR), 并左移一位
        ADD     #PVECTORS               ;加上外设中断入口地址
        BACC                            ;跳到相应的中断服务子程序
ADCINT_ISR: 
        LDP     #DP_PF2       
        LACL    ADCCTRL2
        AND     #0FDFFH                 ;清 INT FLAG SEQ1
        SACL    ADCCTRL2                       
        
        ;LDP     #DP_SARAM2
        ;LAR     AR1, ADCOUNT
        ;LAR     AR0, #15 
        LAR     AR2, #RESULT0
        ;LAR     AR2, #RESULT1
        MAR     *, AR2
ADC0:   ;LACC    *+, 10, AR1
        ;SACH    *  
        
        ;ADRK    #32
        ;MAR     *, AR0
        ;BANZ    ADC0, *-, AR2        
                           
        LACC	*, 15    
        LAR     AR2, #ADRESULT
        SACH	*
        OUT		*, DAPORT        		;显示
        
        LDP     #DP_PF2
        LACL    ADCCTRL2
        OR      #4000H                  ;复位 SEQ1
        SACL    ADCCTRL2                       
        
GISR1_RET:                              ;中断返回出口
                                        ;恢复现场
        CLRC    INTM                    ;开总中断, 因为一进中断就自动关闭了总中断
        RET
        
;*******假中断程序***********************************************************
PHANTOM     
        KICK_DOG                       ;复位看门狗
        RET
        END

⌨️ 快捷键说明

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