求一个控制程序

2019-07-18 01:05发布

求一个完整点的控制程序,什么都可以,想要借鉴一下别人都是怎么写的程序
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
列兵老虎
2019-07-18 03:42
简易数字电压表汇编源程序:
ORG 0000H
LJMP START
ORG 0003H
RETI
ORG 000BH
RETI
ORG 0013H
RETI
ORG 001BH
RETI
ORG 0023H
开始
各显示位数据处理
四舍五入处理
进位调整
结束
RETI
ORG 002BH
RETI
START:
MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#00H
CLEARSET:
SETB RS0
MOV R0,#70H
MOV R2,#0FH
LOOPCLEAR:
MOV @R0,#00H
INC R0
DJNZ R2,LOOPCLEAR
MOV 20H,#00H
MOV 21H,#00H
MAIN:
LCALL ADPRO
LCALL KEYON
LCALL DISPCON
AJMP MAIN
;=================
;数码控制、显示子程序
;=================
DISPCON:
JB 20H.0,DISPCON1
MOV R0,#70H
MOV R4,#08H
DISPLOOP:
LCALL DATACON
MOV R5,#0FAH
MOV R6,#04H
DISPLOOP0:
LCALL DISPLAY
LCALL KEYON
JB 20H.0,DISPCON1
DJNZ R5,DISPLOOP0
MOV R5,#0FAH
DJNZ R6,DISPLOOP0
INC R0
DJNZ R4,DISPLOOP
RET
DISPCON1:
MOV A,21H
ADD A,#6FH
MOV R0,A
DISPLOOP1:
LCALL DATACON
MOV R5,#0FAH
MOV R6,#02H
DISPLOOP10:
LCALL DISPLAY
LCALL KEYON
JNB 20H.0,DISPCON
DJNZ R5,DISPLOOP10
MOV R5,#0FAH
DJNZ R6,DISPLOOP10
RET
DISPLAY:
MOV R3,#04H
MOV R1,#7DH
MOV R2,#0EFH
DISPXH:
LCALL DISP1
LCALL DISPYW
DEC R1
DJNZ R3,DISPXH
SETB P0.4
RET
DISP1:
MOV DPTR,#TAB0
MOV A,@R1
MOVC A,@A+DPTR
MOV P2,A
MOV P0,R2
LCALL TDON
RET
DISPYW:
SETB C
MOV A,R2
RLC A
MOV R2,A
RET
TDON:
MOV R7,#0FAH
DJNZ R7,$
RET
;=================
;显示数据处理子程序
;=================
DATACON:
MOV R1,#7AH
MOV A,@R0
MOV B,#33H
DIV AB
MOV @R1,A
INC R1
LCALL LOOPT
INC R1
LCALL LOOPT
INC R1
LCALL LOOPT
MOV A,B
CLR C
SUBB A,#19H
JNC ADD1
RET
LOOPT:
MOV A,B
MOV B,#05H
MUL AB
MOV B,#33H
DIV AB
RL A
MOV @R1,A
MOV A,B
RL A
MOV B,#33H
DIV AB
ADD A,@R1
MOV @R1,A
RET
ADD1:
INC 7DH
MOV A,7DH
CJNE A,#0AH,ESC
MOV 7DH,#00H
INC 7CH
MOV A,7CH
CJNE A,#0AH,ESC
MOV 7CH,#00H
INC 7BH
MOV A,7BH
CJNE A,#0AH,ESC
MOV 7BH,#00H
INC 7AH
RET
ESC:
RET
;=================
;A/D 采集转存子程序
;=================
ADPRO:
MOV P3,#00H
MOV R0,#70H
MOV R7,#08H
ADCON:
LCALL CONSTART
WAIT:
JB P3.5,DATAM
AJMP WAIT
CONSTART:
SETB P3.3
NOP
NOP
CLR P3.3
SETB P3.4
NOP
NOP
CLR P3.4
NOP
NOP
NOP
RET
DATAM:
SETB P3.6
NOP
MOV A,P1
MOV @R0,A
CLR P3.6
INC R0
MOV A,P3
INC A
MOV P3,A
DJNZ R7,ADCON
MOV P3,#00H
MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
RET
;=================
;键盘处理子程序
;=================
KEYON:
LCALL KEYON0
LCALL KEYON1
RET
KEYON0:
JNB P0.0,KEY0
KEYESC:
RET
KEY0:
MOV 21H,#00H
LCALL RUN0
JB P0.0,KEYESC
WAIT0:
JNB P0.0,WAIT00
CPL 20H.0
MOV 21H,#01H
RET
WAIT00:
LCALL RUN0
AJMP WAIT0
KEYON1:
JNB P0.0,KEY0
JNB P0.1,KEY1
RET
KEY1:
LCALL RUN0
JB P0.1,KEYESC
WAIT1:
JNB P0.1,WAIT10
INC 21H
MOV A,21H
CJNE A,#09H,KEY1PD
KEY1PD:
JC KEYESC
MOV 21H,#01H
RET
WAIT10:
LCALL RUN0
AJMP WAIT1
RUN0:
MOV R1,#00H
MOV R2,#7FH
LCALL DISP1
RET
RUN1:
MOV R1,#21H
MOV R2,#7FH
LCALL DISP1
RET
TAB0:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;0,1,2,3,4,5,6,7,8,9

一周热门 更多>