TJ0109_1 DATA 50H ;1至9洞数据统计 TJ0109_2 DATA 51H ;1至9洞数据统计 TJ0109_3 DATA 52H ;1至9洞数据统计 TJ1018_1 DATA 53H ;10至18洞数据统计 TJ1018_2 DATA 54H ;10至18洞数据统计 TJ1018_3 DATA 55H ;10至18洞数据统计 TJ0118_1 DATA 56H ;1至18洞数据统计 TJ0118_2 DATA 57H ;1至18洞数据统计 TJ0118_3 DATA 58H ;1至18洞数据统计 SHUJU_G DATA 56H SHUJU_S DATA 57H SHUJU_B DATA 58H SHUJU_W DATA 75H SHUJU_Z DATA 76H ;;;;;;;;;;;;;;;;;;;;;;;;;;; DON1 DATA 31H ;洞1数据 DON2 DATA 32H DON3 DATA 33H DON4 DATA 34H DON5 DATA 35H DON6 DATA 36H DON7 DATA 37H DON8 DATA 38H DON9 DATA 39H DON10 DATA 3AH DON11 DATA 3BH DON12 DATA 3CH DON13 DATA 3DH DON14 DATA 3EH DON15 DATA 3FH DON16 DATA 40H DON17 DATA 41H DON18 DATA 42H;;;;;;;;;;;;;;;;;;;;;;; KS BIT P0.0 ;开始 JA BIT P0.1 ;加 JD BIT P0.2 ;减 CX BIT P0.3 ;查询;;;;;;;;;;;;;;;;;;;;;;;;; ORG 0H ;程序代码由地址0开始执行MAIN:;;;;;;;;;;;;;;;;;;;;;;;;按任意键进入人员编号设置SX_RY: MOV P3,#0FFH ;;;;;;关闭显示 JB KS,SX_RY_1 JNB KS,$ AJMP BISAI_1SX_RY_1: JB JA,SX_RY_2 JNB JA,$ AJMP BISAI_1SX_RY_2: JB JD,SX_RY_3 JNB JD,$ AJMP BISAI_1SX_RY_3: JB CX,SX_RY_4 JNB CX,$ AJMP BISAI_1SX_RY_4: AJMP SX_RY RET;;;;;;;;;;;;;;;;;;;;;;;;;;;;数据调用SHUJU_T:LCALL SHUJU_1_9 LCALL SHUJU_10_18 LCALL SHUJU_0118 RET;;;;;;;;;;;;;;;;;;;;;;;;洞位将冲突的数据暂时保存起来BISAI_1: MOV R1,#1 MOV R0,#31HBISAI_1_A: MOV SHUJU_Z,R0 ;将数据暂时保存 MOV SHUJU_W,R1 LCALL SHUJU_TBISAI_1_B:;;;;;;;;;;作为查询时的返回入口 MOV R0,SHUJU_Z ;将数据送回 MOV R1,SHUJU_W MOV R2,#50 MOV R3,#50BISAI_1_2:LCALL XSLED_CX DEC R2 MOV A,R2 CJNE A,#0,BISAI_1_4BISAI_1_3: LCALL XSLED_CX_2 DEC R3 MOV A,R3 CJNE A,#0,BISAI_1_6 AJMP BISAI_1_A RETBISAI_1_4: JB CX,BISAI_1_4_B JNB CX,$ MOV SHUJU_Z,R0 ;将数据暂时保存 MOV SHUJU_W,R1 LCALL CX_1_B RETBISAI_1_4_B: JB KS,BISAI_1_5 JNB KS,$ INC R0 INC R1 MOV A,R1 CJNE A,#19,BISAI_1_2 LCALL BISAI_37 RETBISAI_1_5: MOV A,@R0 LCALL BISAI_T MOV @R0,A AJMP BISAI_1_2 RETBISAI_1_6: JB CX,BISAI_1_6_B JNB CX,$ MOV SHUJU_Z,R0 ;将数据暂时保存 MOV SHUJU_W,R1 LCALL CX_1_B RETBISAI_1_6_B: JB KS,BISAI_1_7 JNB KS,$ INC R0 INC R1 MOV A,R1 CJNE A,#19,BISAI_1_3 LCALL BISAI_37 RETBISAI_1_7: MOV A,@R0 LCALL BISAI_T MOV @R0,A AJMP BISAI_1_3 RET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;比赛完成,不再进行数据登记BISAI_37: MOV R0,#100 ;;;;;;;; 修改参数,就可以改变显示的延时时间 MOV R1,#100 ;;;;;;;; 修改参数,就可以改变显示的延时时间XS_1: LCALL ANJIAN_SX LCALL XSLED MOV P3,#0FFH DEC R0 MOV A,R0 CJNE A,#0,XS_1 DEC R1 MOV A,R1 CJNE A,#0,XS_2 LCALL ANJIAN_SX RETXS_2: MOV R0,#100 AJMP XS_1 RET;;;;;;;;;;;;;;;;;;;;;;;;;;洞位数据调整BISAI_T: JB JA,BISAI_T_1 JNB JA,$ INC A RETBISAI_T_1:JB JD,BISAI_T_2 JNB JD,$ DEC A RETBISAI_T_2:RET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;显示时,按下,延时恢复ANJIAN_SX: JB KS,ANJIAN_SX_1 JNB KS,$ AJMP BISAI_37ANJIAN_SX_1: JB JA,ANJIAN_SX_2 JNB JA,$ AJMP BISAI_37ANJIAN_SX_2: JB JD,ANJIAN_SX_3 JNB JD,$ AJMP BISAI_37ANJIAN_SX_3: JB CX,ANJIAN_SX_4 JNB CX,$ AJMP CX_1ANJIAN_SX_4: RET;;;;;;;;;;;;;;;;;;;数据0118SHUJU_0118: MOV A,TJ0109_1 MOV B,TJ1018_1 ADD A,B MOV TJ0118_1,A MOV A,TJ0109_2 MOV B,TJ1018_2 ADD A,B MOV TJ0118_2,A MOV A,TJ0109_3 MOV B,TJ1018_3 ADD A,B MOV TJ0118_3,A MOV A,TJ0118_3 MOV B,#10 DIV AB MOV TJ0118_3,B ADD A,TJ0118_2 MOV B,#10 DIV AB MOV TJ0118_2,B ADD A,TJ0118_1 MOV B,#10 DIV AB MOV TJ0118_1,B RET;;;;;;;;;;;;;数据累加,尽量使用一个R争取不要冲突使用SHUJU_1_9: MOV TJ0109_1,#0 MOV TJ0109_2,#0 MOV TJ0109_3,#0 MOV R0,#31HSHUJU_1_9_2: MOV A,@R0 ADD A,TJ0109_3 MOV B,#100 DIV AB MOV R1,A;;;;;;bai MOV A,B MOV B,#10 DIV AB MOV R2,A;;;;;shi MOV TJ0109_3,B;;;;ge MOV A,TJ0109_2 MOV B,R2 ADD A,B MOV B,#10 DIV AB MOV R3,A MOV TJ0109_2,B;;;shi MOV A,R1 MOV B,R3 ADD A,B MOV TJ0109_1,A INC R0 MOV A,R0 CJNE A,#3AH,SHUJU_1_9_2 RETSHUJU_10_18: MOV TJ1018_1,#0 MOV TJ1018_2,#0 MOV TJ1018_3,#0 MOV R0,#3AHSHUJU_10_18_2: MOV A,@R0 ADD A,TJ1018_3 MOV B,#100 DIV AB MOV R1,A;;;;;;bai MOV A,B MOV B,#10 DIV AB MOV R2,A;;;;;shi MOV TJ1018_3,B;;;;ge MOV A,TJ1018_2 MOV B,R2 ADD A,B MOV B,#10 DIV AB MOV R3,A MOV TJ1018_2,B;;;shi MOV A,R1 MOV B,R3 ADD A,B MOV TJ1018_1,A INC R0 MOV A,R0 CJNE A,#43H,SHUJU_10_18_2 RET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;比赛结束使用查询功能CX_1: MOV R1,#1 MOV R0,#31HCX_1_1: JB KS,CX_1_2 JNB KS,$ LCALL BISAI_37 RETCX_1_2: JB JA,CX_1_3 JNB JA,$ INC R1 INC R0 MOV A,R0 CJNE A,#43H,CX_1_1 AJMP CX_1CX_1_3: JB JD,CX_1_4 JNB JD,$ DEC R1 DEC R0 MOV A,R0 CJNE A,#30H,CX_1_1 AJMP CX_2 RETCX_1_4: LCALL XSLED_CX AJMP CX_1_1 RETCX_2: MOV R1,#18 MOV R0,#42H AJMP CX_1_1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;比赛过程查询数据CX_1_C: MOV R1,#1 MOV R0,#31HCX_1_B: JB KS,CX_1_2_B JNB KS,$ LCALL BISAI_1_B RETCX_1_2_B: JB JA,CX_1_3_B JNB JA,$ INC R1 INC R0 MOV A,R1 CJNE A,#19,CX_1_3_B AJMP CX_1_C RETCX_1_3_B: JB JD,CX_1_4_B JNB JD,$ DEC R1 DEC R0 MOV A,R1 CJNE A,#0,CX_1_B AJMP CX_2_B RETCX_1_4_B: LCALL XSLED_CX AJMP CX_1_B RETCX_2_B: MOV R1,#18 MOV R0,#42H AJMP CX_1_B;;;;;;;;;;;;;;;;;;;;数据显示XSLED_CX: LCALL XSLED MOV A,R1 ;;;;;;;;;;;;;设置洞位1 LCALL LED_LED_10 MOV A,@R0 ;;;;;;;;;;;;;将相应洞位数据传给A LCALL LED_LED_10 RET;;;;;;;;;;;;;;;;;;;;闪烁数据显示XSLED_CX_2: LCALL XSLED MOV A,R1 ;;;;;;;;;;;;;设置洞位1 LCALL LED_LED_10 ;MOV A,@R0 ;;;;;;;;;;;;;将相应洞位数据传给A ;LCALL LED_LED_10 RET;;;;;;;;;;;;;;;;;;;;;;;;;运行时数码管显示XSLED: MOV P3,#0D0H MOV A,TJ0118_1 LCALL LED INC P3 MOV A,TJ0118_2 LCALL LED INC P3 MOV A,TJ0118_3 LCALL LED INC P3 RET;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;数码显示调用程序LED: MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P1,A LCALL DELAY1 RET;;;;;;;;;;;;;;;;;;;;;;;;;;;; 除以100得百位数LED_LED