如有需要实验源文件的可以QQ我,有想在商业应用的,可以付一点辛苦费,将程序修改为合适的。本人在找工作,也随便把单片机方面搞得更精通点!
程序图:
程序代码:
DEDA DATA 55H
YANSDATA56H
MXQDATA60H
MXBDATA61H
MXSDATA62H
MXGDATA63H
MYQDATA64H
MYBDATA65H
MYSDATA66H
MYGDATA67H
MZQDATA68H
MZBDATA69H
MZSDATA6AH
MZGDATA6BH
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LXQDATA30H
LXBDATA31H
LXSDATA32H
LXGDATA33H
LYQDATA34H
LYBDATA35H
LYSDATA36H
LYGDATA37H
LZQDATA38H
LZBDATA39H
LZSDATA3AH
LZGDATA3BH
;;;;;;;;;;;;;;;;;;;;;;;;;
LSQDATA40H
LSBDATA41H
LSSDATA42H
LSGDATA43H
;;;;;;;;;;;;;;;;;;;;;;;;
LSQ1DATA50H
LSB1DATA51H
LSS1DATA52H
LSG1DATA53H
;;;;;;;;;;;;;;;;;;;;;;;;
LSDATA70H
LSLDATA71H
LSDDATA72H
;;;;;;;;;;;;;;;;;;;;;;;
QDBITP0.0;按键位定义
GIBITP0.1
GDBITP0.2
SIBITP0.3
SDBITP0.4
YXBITP0.5
;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 0H ;程序代码由地址0开始执行
MAIN:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;启动数据显示
SX:JBYX,XX1
JNBYX,$
AJMPB_J
XX1:JBQD,XX2
JNBQD,$
AJMP S_T_D
XX2: LCALL LSLED
AJMP SX
RET
;;;;;;;;;;;;;;;;;;;;;;;;;运行时数码管显示
LSLED:
;LCALLLED1
;LCALL LED2
;RET
MOVP3,#0D0H
LCALL LED_1
INCP3
LCALL LED_2
INCP3
LCALL LED_3
INCP3
LCALL LED_4
INCP3
LCALL LED_5
INCP3
LCALL LED_6
INCP3
LCALL LED_7
INCP3
LCALL LED_8
INCP3
LCALL LED_9
INCP3
LCALL LED_10
INCP3
LCALL LED_11
INCP3
LCALL LED_12
INCP3
LCALL LED_13
INCP3
LCALL LED_14
INCP3
LCALL LED_15
INCP3
LCALL LED_16
INCP3
LCALL LED_17
INCP3
LCALL LED_18
INCP3
LCALL LED_19
INCP3
LCALL LED_20
INCP3
LCALL LED_21
INCP3
LCALL LED_22
INCP3
LCALL LED_23
INCP3
LCALL LED_24
RET
LED1:
MOVLSL,#0D0H
MOVR1,#60H
LED1_1:
MOVXA,@R1
MOVP3,LSL
LCALL LED
INCLSL
INCR1
MOVA,LSL
CJNEA,#0DFH,LED1_1
MOVR1,#30H
MOVA,LSL
CJNEA,#0E7H,LED1_1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;运行数据调用
B_J:JBYX,B_J_0
JNBYX,$
AJMPSX
B_J_0:LCALLL_S_X_L
LCALLB_J_L
LCALLL_S_L_X
LCALLL_S_Y_L
LCALLB_J_L
LCALLL_S_L_Y
LCALLL_S_Z_L
LCALLB_J_L
LCALLL_S_L_Z
MOVYANS,#5;;;;;;;;;;;;;;;;;;;;;加一数据延时赋值
B_J_LED:LCALLLSLED
DECYANS
MOVA,YANS
CJNEA,#0,B_J_LED
AJMPB_J
;;;;;;;;;;;;;;;;;;;;;;;数据调用;;;;;;;;;;;;;;;;;;;;;;;;;
L_S_X_L:MOVLSQ,MXQ
MOVLSB,MXB
MOVLSS,MXS
MOVLSG,MXG
MOVLSQ1,LXQ
MOVLSB1,LXB
MOVLSS1,LXS
MOVLSG1,LXG
RET
L_S_Y_L:MOVLSQ,MYQ
MOVLSB,MYB
MOVLSS,MYS
MOVLSG,MYG
MOVLSQ1,LYQ
MOVLSB1,LYB
MOVLSS1,LYS
MOVLSG1,LYG
RET
L_S_Z_L:MOVLSQ,MZQ
MOVLSB,MZB
MOVLSS,MZS
MOVLSG,MZG
MOVLSQ1,LZQ
MOVLSB1,LZB
MOVLSS1,LZS
MOVLSG1,LZG
RET
L_S_L_X:MOVLXQ,LSQ1
MOVLXB,LSB1
MOVLXS,LSS1
MOVLXG,LSG1
RET
L_S_L_Y:MOVLYQ,LSQ1
MOVLYB,LSB1
MOVLYS,LSS1
MOVLYG,LSG1
RET
L_S_L_Z:MOVLZQ,LSQ1
MOVLZB,LSB1
MOVLZS,LSS1
MOVLZG,LSG1
RET
;;;;;;;;;;;;;;;;;;;;;数据比较;;;;;;;;;;;;;;;;;;;;;;
B_J_L:
MOVA,LSQ
CJNEA,LSQ1,B_J_LD
MOVA,LSB
CJNEA,LSB1,B_J_LD
MOVA,LSS
CJNEA,LSS1,B_J_LD
MOVA,LSG
CJNEA,LSG1,B_J_LD
RET
B_J_LD:JCB_J_LQ_X
B_J_LQ_D:INCLSG1
MOVA,LSG1
CJNEA,#10,B_J_END
MOVLSG1,#0
INCLSS1
MOVA,LSS1
CJNEA,#10,B_J_END
MOVLSS1,#0
INCLSB1
MOVA,LSB1
CJNEA,#10,B_J_END
MOVLSB1,#0
INCLSQ1
MOVA,LSQ1
CJNEA,#10,B_J_END
MOVLSQ1,#9
MOVLSB1,#9
MOVLSS1,#9
MOVLSG1,#9
AJMPB_J_END
B_J_LQ_X:DECLSG1
MOVA,LSG1
CJNEA,#-1,B_J_END
MOVLSG1,#9
DECLSS1
MOVA,LSS1
CJNEA,#-1,B_J_END
MOVLSS1,#9
DECLSB1
MOVA,LSB1
CJNEA,#-1,B_J_END
MOVLSB1,#9
DECLSQ1
MOVA,LSQ1
CJNEA,#-1,B_J_END
MOVLSQ1,#0
MOVLSB1,#0
MOVLSS1,#0
MOVLSG1,#0
AJMPB_J_END
B_J_END:
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;光标操作
;;;;;;;;;;延时赋值;;;;;;;;;;;;;;;;;;;
FU_Z:MOV R4,#10
MOV YANS,#10
RET
;;;;;;;;;;;;;;;指针值;;;;;;;;;;;;;;;;;;;;
S_T_D:MOVR0,#60H
MOVLS,@R0
S_T_D_0:
MOV@R0,LS
JBQD,S_T_D_B
JNBQD,$
AJMPSX
S_T_D_B:
LCALL FU_Z
;;;;;;;;;;;;;;;光标判断;;;;;;;;;;;;;;;;;
S_T_D_A:
JBGI,S_T_D_1
JNBGI,$
MOV@R0,LS
INCR0
MOVA,R0
CJNEA,#6CH,S_T_D_2
MOVR0,#60H
AJMPS_T_D_2
S_T_D_1:
JBGD,S_T_D_2
JNBGD,$
MOV@R0,LS
DECR0
MOVA,R0
CJNEA,#5FH,S_T_D_2
MOVR0,#6BH
;;;;;;;;;;;;;;;;数据判断;;;;;;;;;;;;;;;;
S_T_D_2:
MOVA,@R0
LCALL S_L
MOVLS,A
MOV@R0,LS
;;;;;;;;;;;;;;;;;;闪烁判断;;;;;;;;;;;;;
S_T_D_R:
MOVA,R4
CJNE A,#0,S_T_D_RD
LJMP S_T_D_Y
S_T_D_RD:
DEC R4
LCALL LSLED
LJMP S_T_D_A
S_T_D_Y:
MOV@R0,#10
MOV A,YANS
CJNE A,#0,S_T_D_YD
LJMP S_T_D_0
S_T_D_YD:
DEC YANS
LCALL LSLED
MOV@R0,LS
LJMP S_T_D_A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;数据判断
S_L:
SETB SI
SETB SD
JB SI,S_J
JNB SI,$
CJNE A,#9,S_E
MOV A,#9
AJMP S_J
S_E:INC A
S_J:JB SD,S_E3
JNB SD,$
CJNE A,#0,S_E2
MOV A,#0
AJMP S_E3
S_E2: DEC A
S_E3:RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;数码管显示
LED: MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAY1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LED_1:MOV A,LXQ
LCALL LED
RET
LED_2:MOV A,LXB
LCALL LED
RET
LED_3:MOV A,LXS
LCALL LED
RET
LED_4:MOV A,LXG
LCALL LED
RET
LED_5:MOV A,LYQ
LCALL LED
RET
LED_6:MOV A,LYB
LCALL LED
RET
LED_7: MOV A,LYS
LCALL LED
RET
LED_8:MOV A,LYG
LCALL LED
RET
LED_9:MOV A,LZQ
LCALL LED
RET
LED_10: MOV A,LZB
LCALL LED
RET
LED_11:MOV A,LZS
LCALL LED
RET
LED_12:MOV A,LZG
LCALL LED
RET
LED_13:MOV A,MXQ
LCALL LED
RET
LED_14:MOV A,MXB
LCALL LED
RET
LED_15:MOV A,MXS
LCALL LED
RET
LED_16:MOV A,MXG
LCALL LED
RET
LED_17:MOV A,MYQ
LCALL LED
RET
LED_18:MOV A,MYB
LCALL LED
RET
LED_19: MOV A,MYS
LCALL LED
RET
LED_20:MOV A,MYG
LCALL LED
RET
LED_21:MOV A,MZQ
LCALL LED
RET
LED_22: MOV A,MZB
LCALL LED
RET
LED_23:MOV A,MZS
LCALL LED
RET
LED_24:MOV A,MZG
LCALL LED
RET
TABLE:
DB 0C0H ;"0"
DB 0F9H ;"1"
DB 0A4H ;"2"
DB 0B0H ;"3"
DB 99H ;"4"
DB 92H ;"5"
DB 82H ;"6"
DB 0F8H ;"7"
DB 80H ;"8"
DB 90H ;"9"
DB0FFH
DB0FFH
DB0FFH
DB0FFH
DB0FFH
DB0FFH
DELAY1:
MOV R7,#10
L1: MOV R6,#50
DJNZ R6,$
DJNZ R7,L1
RET
END