adc0809.asm

来自「汇编语言 8051 proteus仿真 数字电压表」· 汇编 代码 · 共 83 行

ASM
83
字号
EOC BIT P2.0
STA BIT P2.1
CLK BIT P2.2
OE BIT P2.3
ALE BIT P2.4
;******主程序******
     ORG 0
     LJMP MAIN
     ORG 000BH
     CPL CLK
     RETI
MAIN:MOV TMOD,#02H
     MOV TH0,#56
     MOV TL0,#56
     SETB EA
     SETB ET0
     SETB TR0
     CLR A
     MOV 30H,A      ;30H转换电压整数位
     MOV 31H,A      ;31H转换电压小数位
     MOV 32H,A      ;32H电压转换数据
     CLR P2.7
     CLR P2.6
     CLR P2.5
     CLR ALE
     NOP
     SETB ALE
     NOP
     CLR ALE
     NOP
LOOP:CLR STA
     NOP
     SETB STA
     NOP
     CLR STA
     NOP
LOP1:ACALL DISP     ;延时等待
     JNB EOC,LOP1   ;等待转换结束
     MOV A,P0
     MOV 32H,A
     ACALL CHAN
     SJMP LOOP
;******数据转换子程序******
CHAN:MOV A,32H
     ANL A,#0F0H
     SWAP A
     MOV 30H,A
     MOV A,32H
     ANL A,#0FH
     MOV 31H,A
     MOV A,32H      ;
     MOV B,#51
     DIV AB
     MOV 30H,A
     XCH A,B
     MOV B,#5
     DIV AB
     MOV 31H,A
     RET
;******显示子程序******
DISP:MOV DPTR,#TAB
     MOV A,30H
     MOVC A,@A+DPTR
     CLR ACC.7
     MOV P1,#01H
     MOV P3,A
     ACALL DELY
     MOV A,31H
     MOVC A,@A+DPTR
     MOV P1,#02H
     MOV P3,A
     ACALL DELY
     RET
;******延时子程序******
DELY:MOV R6,#20
DEL1:MOV R7,#100
     DJNZ R7,$
     DJNZ R6,DEL1
     RET
;******共阳段码表******
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH
     END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?