数字电压表课程设计 下载本文

附录C 实物图

21

附录D 程序清单

项目名称:数字电压表 设 计 者:xxx

时 间:2016年x月

项目功能:设计一个能够测量直流电压的数字电压表

*******************************************************************

ORG START: LJMP 0000H //初始化 MAINP //跳转主程序 ORG

LJMP

MAINP: MOV P2, #00H // SETB P2.4 //P2.4 MOV P1, #0CH //

LCALL MAIN: MOV SP, #2FH // MOV DPTR, #0FEF8H SETB SETB

MOVX @DPTR, A //HERE: LJMP INOT1: MOVX A, @DPTR MOV DIV MOV MOV MOV DIV MOV MOV MOV MOV MOV MOVC MOV

MOV

将00H送入P2 口置1 将0CH送入P1 长跳转延时

将2FH送入堆栈 将A内容读到外部

将AB相除 将A中商给R0 将B中余数给A 将AB相除 将A中的商给R1 将B中余数给A 查表 将A送入P1

22

0013H INOT1

DELAY2 // EA EX1 HERE

B,

#51

A // B // #5

A // B // A

#TAB // R0 @A+DPTR #04H

A // AB // R0, A, B,

AB // R1, A,

R2, DPTR, A, A,

P2, P1,

LCALL DELAY MOV MOVC MOV MOV MOV MOVC MOV MOV

A, A,

R1 //将R1送入A @A+DPTR

#08H //将08H送入P2 A //将A送入P1

P2, P1, A, A,

LCALL DELAY

R2

@A+DPTR

#10H //将10H送入P2 A

P2, P1,

LCALL DELAY

MOV DPTR, #0FEF8H

MOVX @DPTR, A //将A送入DPTR RETI

DELAY: ;100US: ;误差 0us MOV R6, #01H DL0: MOV R5, #2FH

DJNZ R5, $ //减1转移 DJNZ R6, DL0

RET //返回 DELAY2:;2S误差 0us

MOV R7, #7FH //将7FH送入R7 DL7: MOV R6, #0EBH //将0EBH送入R6 DL6: MOV R5, #20H //将20H送入R5 DJNZ R5, $ //减1转移 DJNZ R6, DL6 DJNZ R7, DL7 NOP RET TAB:

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

END

23