📄 ad采样自检.txt
字号:
;***********************************************
;名称:A/D采样自检
;功能:外部中断0完成A/D采样任务,每次采样一个数
;使用:“3”区R0-R7
; 出口参数:AD_BUF开始的2个单元
;*************************************************
AD_TEST:
ORG 00h
LJMP ST
ORG 03H
LJMP PINT0
ORG 50H
LED0 EQU 30H
LED1 EQU 31H
LED2 EQU 32H
LED3 EQU 33H
LED4 EQU 34H
ST: MOV IE,#81H
MOV SP,#50H
;*******************初始化程序*********************
CSH: MOV R0,#LED0
MOV A,#80H
MOV @R0,A
INC R0
MOV A,#80H
MOV @R0,A
INC R0
MOV A,#80H
MOV @R0,A
INC R0
MOV A,#80H
MOV @R0,A
INC R0
MOV A,#80H
MOV @R0,A
MOV R7,#40
KKK1: PUSH 06H
LCALL show
POP 06H
DJNZ R7,KKK1
RET
;********************显示程序************************
show: PUSH A
PUSH PSW
CLR RS1
CLR RS1
MOV A,LED0
MOV P0,A
LCALL SEL1
LCALL DELAY
MOV P0,LED1
LCALL SEL2
LCALL DELAY
MOV P0,LED2
LCALL SEL3
LCALL DELAY
MOV P0,LED3
LCALL SEL4
LCALL DELAY
MOV P0,LED4
LCALL SEL5
LCALL DELAY
POP PSW
POP A
RET
SEL1: CLR P2.5
CLR P2.6
CLR P2.7
RET
SEL2: CLR P2.5
CLR P2.6
SETB P2.7
RET
SEL3: CLR P2.5
SETB P2.6
CLR P2.7
RET
SEL4: CLR P2.5
SETB P2.6
SETB P2.7
RET
SEL5: SETB P2.5
CLR P2.6
CLR P2.7
RET
;********************延时程序***********************
DELAY:
MOV R7,#03H
D1: MOV R6,#0FFH
D2: DJNZ R6,D2
DJNZ R7,D1
RET
;*******************采样中断子程序******************
AD_BUF EQU 0AH
PINT0: PUSH A
PUSH PSW
SETB RS1
SETB RS0
CLR EA
MOV R0,#AD_BUF
AD1: CLR P2.0
CLR P2.1
MOV A,P1
SETB P2.1
ANL A,#0FH
MOV @R0,A
INC R0
CLR P2.2
MOV A,P1
SETB P2.2
SETB P2.0
MOV @R0,A
AD2: LCALL CHULI
SETB EA
POP PSW
POP A
RETI
CHULI: MOV A,AD_BUF
ANL A,#0FH
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV LED2,A
MOV A,AD_BUF+1
SWAP A
ANL A,#0FH
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV LED3,A
MOV A,AD_BUF+1
ANL A,#0FH
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV LED4,A
RET
TAB : DB 7EH,0CH,0B6H,9EH
DB 0CCH,0DAH,0FAH,00EH
DB 0FEH,0DEH,0EEH,0F8H
DB 072H,0BCH,0F2H,0E2H
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -