MOV DPTR,#TAB ;把TAB里面的内容(是个立即数)放进DPTR作为表头地址
MOVC A,@A+DPTR ;A之前已经存进了需要查值的值,这条语句可以方便地查到对应的值
MOV P0,A ;把P0口设置为A的值
SETB P2.0 ;把P2^0口设置为高电平
NOP ;空指令
NOP ;空指令
NOP ;空指令
CLR P2.0 ;把P2^0口设置为低电平,即现在P2^0口输出了一个脉冲
MOV A,B ;把B的值放到A中(B中应该放着下一个需要查值的值)
MOVC A,@A+DPTR ;A之前已经存进了需要查值的值,这条语句可以方便地查到对应的值
------
P1接AD0804的8个脚,P0口接数码管段选,P2.0-P2.4接位选,
P3.6-P3.7接2个口
------------------------------------*/
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: CALL XIE
CALL DELAY
CALL DU
CALL XIANSHI
AJMP MAIN
;开始转换
XIE: CLR P2.0 ;选中
NOP
CLR P3.6
NOP
NOP
SETB P3.6 ;当P3。6由低到高时开始转换
NOP
NOP
SETB P2.0 ;取消选中
RET
DU: MOV P1,#0FFH
NOP
CLR P2.0
NOP
CLR P3.7
NOP
NOP
NOP
MOV A,P1
NOP
MOV 20H,A
NOP
NOP
SETB P3.7
NOP
NOP
SETB P2.0
RET
DELAY: MOV R6,#2
DL1: MOV R7,#248
DJNZ R7,$
DJNZ R6,DL1
RET
XIANSHI:MOV B,#51
MOV A,20H
DIV AB
MOV 30H,A
MOV A,B
MOV B,#5
DIV AB
MOV 31H,A
MOV A,B
MOV B,#2
MUL AB
MOV 32H,A
MOV A,30H
MOV DPTR,#TAB
MOVC A,@A+DPTR
CLR P2.1
CLR ACC.5
MOV P0,A
CALL DELAY
SETB P2.1
MOV A,31H
MOVC A,@A+DPTR
CLR P2.2
MOV P0,A
CALL DELAY
SETB P2.2
MOV A,32H
MOVC A,@A+DPTR
CLR P2.3
MOV P0,A
CALL DELAY
SETB P2.3
RET
;TAB:DB 28H,7EH,0A2H,62H,74H,61H,21H,7AH,20H,60H
TAB:DB 0,1,2,3,4,5,6,7,8,9
END