📄 ad.asm.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 + -