📄 电压频率vf转换应用.txt
字号:
电压频率VF转换应用
ORG 0000H
LJMP MAIN ;转主程序
ORG 001BH
LJMP TIME ;转中断服务子程序
ORG 0100H
MAIN MOV SP,#53H ;设堆栈指针
MOV TMOD,#15H
MOV TH1,#3CH
MOV TL1,#0B7H ;定时器1初始化
MOV TL0,#00H
MOV TH0,#00H ;计数器0初始化
MOV 23H,#14H
ORL IE,#8AH
MOV TCON,#50H ;启动T0、T1
LOOP1 LJMP LOOP1
ORG 0200H
TIME DJNZ 23H,LOOP2 ;1秒不到退出
MOV 23H,#14H
MOV 40H,TH0
MOV 41H,TL0 ;取出TH0.TL0内容
MOV R2,40H
MOV R3,41H ;计数脉冲取出
LCALL ZOYO ;调二转十进制子程序
LCALL SSEE ;调用显示子程序
MOV TL0,#00H
MOV TH0,#00H ;重新计数
LOOP2 MOV TL1,#0B7H
MOV TH1,#3CH ;恢复初值
RETI
ORG 0300H
ZOYO CLR A
MOV R4,A
MOV R5,A
MOV R6,A ;0送R4 R5 R6
MOV R7,#10H ;16送位计数器R7
LO3O CLR C ;R2 R3左移.移出的
MOV A,R3 ;最高位送CY
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
MOV A,R6
ADDC A,R6 ;(R4 R5 R6)﹡2+CY送R4 R5 R6
DA A ;十进制调整
MOV R6,A
MOV A,R5
ADDC A,R5
DA A
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
DJNZ R7,LO3O ;循环16次
RET
ORG 0400H
SSEE MOV A,R6
ANL A,#0FH
ACALL DSEND ;取个位数并显示
MOV A,R6
SWAP A
ANL A,#0FH
ACALL DSEND ;取十位数并显示
MOV A,R5
ANL A,#0FH
CALL DSEND ;取百位数并显示
MOV A,R5
SWAP A
ANL A,#0FH
ACALL DSEND ;取千位数并显示
MOV A,R4
ANL A,#0FH
ACALL DSEND ;取万位数并显示
MOV A,R4
SWAP A
ANL A,#0FH
ACALL DSEND ;取十万位数并显示
RET
DSEND MOV DPTR,#DTAB
MOVC A,@A+DPTR ;取字符
MOV SBUF,A ;发送字符
JNB TI,$ ;等待串口发送完
CLR TI
RET
DTAB DB 3FH ;0
DB 06H ;1
DB 5BH ;2
DB 4FH ;3
DB 66H ;4
DB 6DH ;5
DB 7DH ;6
DB 07H ;7
DB 7FH ;8
DB 6FH ;9
END
注意:执行程序用连续运行,不能使用全速运行。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -