📄 adc0测试.asm
字号:
;A/D转换
;程序功能:检验差动输入和单端输入时在没有任何输入情况下的信噪比
$INCLUDE(C8051F020.INC)
ORG 00H
AJMP MAIN
ORG 100H
MAIN: MOV WDTCN,#0DEH ;关看门狗
MOV WDTCN,#0ADH
;配置系统时钟使用外部晶振22.1184MHz
CLOCK: MOV OSCXCN,#67H ;外部晶振模式,大的晶振驱动电流
CLR A
DJNZ ACC,$
DJNZ ACC,$
LOOPC: MOV A,OSCXCN ;OSCXCN.7为0时表明外部晶振没有起振或不稳定,为1时表明稳定运行
JNB ACC.7,LOOPC
ORL OSCICN,#08H ;内部晶振禁止,外部晶振开始工作
;ADC0寄存器初始化
ORL AMX0SL,#00H;输入通道0
ORL AMX0CF,#00H;输入方式单端输入
ORL ADC0CF,#00H;转换周期为一个时间系统,增益为1
ORL ADC0CN,#81H;使能工作,准备转换数据;AD0BUSY启动转换,数据左对齐
ORL REF0CN,#03H;内部电压基准提供从VREF脚输出,ADC0电压基准取自VREF0
;--------------------------------------------------------------------------
MOV IE ,#00H ;禁止所有中断
;--------------------------------------------------------------------------
MOV SP,#20H ;堆栈设置
;==========================================================================
MOV 70H,#00H
MOV 71H,#00H
MOV DPTR,#0000H
LOOP: ; LCALL DELAY
CLR AD0INT
SETB AD0BUSY
JB AD0BUSY,LOOP
MOV A,ADC0L
MOVX @DPTR,A
MOV r3,A
INC DPTR
MOV A,ADC0H
MOVX @DPTR,A
MOV r4,A
MOV 70H,DPH
MOV 71H,DPL
INC DPTR
AJMP LOOP
Delay: MOV R7, #07FH ;延时子程序
Delay1: MOV R6, #80H
Delay0: MOV R5, #00H
DJNZ R5, $
DJNZ R6, Delay0
DJNZ R7, Delay1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -