📄 hexp6.asm
字号:
;A/D-D/A转换实验
led8seg_port equ 0F300h
led8bit_port equ 0F400h
ADCCLK EQU P3.0 ;ADC转换时钟
ADCRD EQU P3.1 ;读ADC转换结果
DACAB EQU P3.2 ;DAC通道选择
DACCS EQU P3.3 ;DAC片选
DACWR EQU P3.4 ;DAC数据写
ORG 0000H
ljmp main
ORG 0100H
main: mov SP,#80h
AGAIN: SETB ADCRD
SETB ADCCLK
CLR ADCCLK
SETB ADCCLK
CLR ADCCLK
SETB ADCCLK
CLR ADCCLK
SETB ADCCLK
CLR ADCCLK ;启动ADC
CLR ADCRD ;输出ADC数据?启动A/D转换?
CLR DACAB ;选择A通道
CLR DACCS ;选择DAC芯片
CLR DACWR ;启动DAC
MOVX A,@DPTR
LCALL dspaddata
LJMP AGAIN
dspaddata:
MOV R2,A
mov R0,#30H
ANL A,#0FH
MOV @R0,A
INC R0
MOV A,R2
SWAP A
ANL A,#0FH
MOV @R0,A
mov R3,#2
mov R0,#30H
mov R1,#0FEh
LPDSP: NOP
ACALL disp_data
INC R0
ACALL disp_bit
SETB C
RLC A
MOV R1,A
LCALL DELAY_1MS
LCALL DELAY_1MS
DJNZ R3,LPDSP
RET
;入口:R0显示数据单元
DISP_data:
NOP
MOV A,@R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV DPTR,#led8seg_port
MOVX @DPTR,A
ret
;入口:R1显示位置
disp_bit:
NOP
MOV A,R1
MOV DPTR,#led8bit_port
MOVX @DPTR,A
RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH;0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
DELAY_1MS:
MOV R7,#250
DELAY_1MS1:
NOP
NOP
DJNZ R7,DELAY_1MS1
RET
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -