📄 myprogro5.asm
字号:
LED_PORT EQU P0
DIG_PORT EQU P2
ADC_CS BIT P3.5
ADC_CLK BIT P2.1
ADC_DI BIT P3.6
ADC_DO BIT P3.7
BUFF_BCD_H EQU 29H
BUFF_BCD_M EQU 2AH
BUFF_BCD_L EQU 2BH
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0_INT
ORG 0023H
LJMP MAIN
ORG 0100H
MAIN: MOV A, #00H
MOV SP, #40H
MOV IE, #00H
MOV P0, #0FFH
MOV P1, #0FFH
MOV P2, #0FFH
MOV P3, #0FFH
MOV R0,#7FH ;初始化RAM
CLR_RAM: MOV A,#00H
MOV @R0,A
DJNZ R0,CLR_RAM
MOV TH0,#240 ;T0=4MS
MOV TL0,#240
MOV TMOD, #11H
SETB TR0
SETB ET0
SETB EA
CALL DEL2
MAIN_LP: LCALL ADC_CH1
LCALL BIN_BCD
LJMP MAIN_LP
;ADC0832采集1通道
ADC_CH1:CLR ADC_CS
CALL DEL
SETB ADC_CS
MOV R7,#10
DJNZ R7,$
CLR ADC_CS
SETB ADC_DI
ACALL PULSE
ACALL PULSE
ACALL PULSE
MOV R2,#8
DRCL1: ACALL PULSE
MOV C,ADC_DO
RLC A
DJNZ R2,DRCL1
MOV B,A
RR A
MOV R2,#7
DRCR1: ACALL PULSE
MOV C,ADC_DO
RRC A
DJNZ R2,DRCR1
CJNE A,B,ADC_CH1
SETB ADC_CS
CLR ADC_CLK
SETB ADC_DO
SETB ADC_DI
RETI
PULSE:
SETB ADC_CLK
MOV R3,#2
DJNZ R3,$
CLR ADC_CLK
MOV R3,#2
DJNZ R3,$
RET
BIN_BCD:CLR C
MOV B,#10
DIV AB
MOV BUFF_BCD_L,B
MOV B,#10
ADD A,#7
DIV AB
MOV BUFF_BCD_M,B
ADD A,#1
MOV BUFF_BCD_H,A
RET
T0_INT: PUSH ACC
PUSH PSW
PUSH B
MOV TH0,#240
MOV TL0,#240
MOV R6,#07FH
SCAN1: MOV R7,#07FH
SCAN: LCALL SHOW
DJNZ R7,SCAN
POP B
POP PSW
POP ACC
RET
SHOW: MOV P2,#0FFH
CLR P2.4
MOV A,BUFF_BCD_H
MOV DPTR,#TABLE2
MOVC A,@A+DPTR
MOV P0,A
CALL DEL2
MOV P2,#0FFH
CLR P2.3
MOV A,BUFF_BCD_M
MOV DPTR,#TABLE2
MOVC A,@A+DPTR
MOV P0,A
CALL DEL2
MOV P0,#7FH
CALL DEL2
MOV P2,#0FFH
CLR P2.2
MOV A,BUFF_BCD_L
MOV DPTR,#TABLE2
MOVC A,@A+DPTR
MOV P0,A
CALL DEL2
MOV P0,#0FFH
RET
PLUS:MOV B,#02H
DIV AB
MOV R0,A
MOV B,#02H
MOV A,#170
DIV AB
ADD A,R0
TABLE2:
DB 0C0H,0F9H,0A4H,0B0H
DB 99H,92H,82H,0F8H
DB 80H,90H
DEL: MOV R5,#02 ;人为加入的延时子程序
DEL01: MOV R6,#200
DEL02: MOV R7,#200
DJNZ R7,$
DJNZ R6,DEL02
DJNZ R5,DEL01
RET
DEL2:MOV R2,#03FH
DEL3:MOV R3,#10H
DJNZ R3,$
DJNZ R2,DEL3
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -