主页 > 金融每日 >[问题] 专题製作哪位专家及高手帮帮我 >


[问题] 专题製作哪位专家及高手帮帮我

  • 2020-05-27
  • 118人已阅读

各位大哥大姊您们好:

小弟今年高职三年级唸资讯科

我们要做专题报告及製作才能毕业〒ˍ〒

我们这组作的专题是 " 电子密码锁 " 但是小弟不知道它的程式码什幺去写也不懂

EN REG P2.7
RW REG P2.6
RS REG P2.5
SW REG P2.4
CS REG P2.3
SK REG P2.2
DI REG P2.1
DO REG P2.0
ADDR EQU 37H
CNT EQU 38H
SEC EQU 39H
;
ORG 00H
AJMP START
ORG 0BH
AJMP TIMER0
;------
; MAIN
;------
START: MOV SP,#60H
CLR SK
SETB SW
ACALL INIT ;INITIAL RAM & LCD
ACALL SET0 ;SET TIMER 0
L0: ACALL ON ;POWER ON
L1: ACALL CONV
ACALL SCAN
MOV A,R5
CJNE A,#BH,L2 ;HELP
AJMP HELP
L2: CJNE A,#CH,L3 ;F1
AJMP F1
L3: CJNE A,#DH,L4 ;F2
AJMP F2
L4: CJNE A,#EH,L5 ;F3
AJMP F3
L5: CJNE A,#FH,L1 ;F4
AJMP F4
;------
; HELP
;------
HELP: SETB SW
SJMP L0
;----
; F1
;----
F1: ACALL CLRLCD
MOV A,#86H
ACALL W_INS
MOV CNT,#4
MOV DPTR,#MSG3 ;'TIME'
ACALL W_STR
F11: ACALL CONV ;BCD TO ASCII
MOV A,#C4H
ACALL W_INS
ACALL DISP ;LCD DISPLAY DATA
ACALL SCAN
MOV A,R5
CJNE A,#BH,F12 ;HELP
AJMP HELP
F12: CJNE A,#DH,F13 ;F2
AJMP F2
F13: CJNE A,#EH,F14 ;F3
AJMP F3
F14: CJNE A,#FH,F11 ;F4
AJMP F4
;----
; F2
;----
F2: ACALL CLRLCD
MOV R0,#48H ;INPUT BUFFER
MOV A,#82H
ACALL W_INS
MOV CNT,#11
MOV DPTR,#MSG4
ACALL W_STR
MOV A,#C4H
ACALL W_INS
F21: ACALL SCAN
MOV A,R5
XRL A,#16 ;NOT
JZ F21
MOV A,R5
CJNE A,#AH,F22
AJMP SETF2 ;SET
F22: CJNE A,#BH,F23 ;HELP
AJMP HELP
F23: CJNE A,#CH,F24 ;F1
AJMP F1
F24: CJNE A,#DH,F25 ;F2
AJMP F21
F25: CJNE A,#EH,F26 ;F3
AJMP F3
F26: CJNE A,#FH,F27 ;F4
AJMP F4
F27: MOV A,R5
MOV @R0,A
ORL A,#30H
ACALL W_DATA
INC R0
CJNE R0,#4EH,F28
MOV R0,#48H
MOV A,#C4H
ACALL W_INS
F28: SJMP F21
;--------
; F2-SET
;--------
SETF2: MOV R2,#3
MOV R0,#48H
MOV R1,#33H
T1: MOV A,@R0
ANL A,#0FH
SWAP A
INC R0
ADD A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R2,T1
;
MOV R0,#30H
MOV R1,#33H
MOV A,@R1
CLR C
SUBB A,#24H ;HOUR>24?
JNC T2
MOV A,@R1
MOV @R0,A
INC R0
INC R1
MOV A,@R1
CLR C
SUBB A,#60H ;MIN>60?
JNC T2
MOV A,@R1
MOV @R0,A
INC R0
INC R1
MOV A,@R1
CLR C
SUBB A,#60H ;SEC>60?
JNC T2
MOV A,@R1
MOV @R0,A
T2: AJMP F1
;----
; F3
;----
F3: ACALL CLRLCD
MOV A,#83H
ACALL W_INS
MOV CNT,#10
MOV DPTR,#MSG5
ACALL W_STR
MOV A,#C6H
ACALL W_INS
MOV R0,#50H
F31: ACALL SCAN
MOV A,R5
XRL A,#16 ;NOT
JZ F31
MOV A,R5
CJNE A,#AH,F32 ;SET
AJMP SETF3
F32: CJNE A,#BH,F33 ;CR
AJMP HELP
F33: CJNE A,#CH,F34 ;F1
AJMP F1
F34: CJNE A,#DH,F35 ;F2
AJMP F2
F35: CJNE A,#EH,F36 ;F3
AJMP F31
F36: CJNE A,#FH,F37 ;F4
AJMP F4
F37: MOV A,R5
MOV @R0,A
ORL A,#30H
ACALL W_DATA
INC R0
CJNE R0,#54H,F38
MOV R0,#50H
MOV A,#C6H
ACALL W_INS
F38: SJMP F31
;--------
; F3-SET
;--------
SETF3: CLR F0 ;F0=0,ERROR.F0=1,EXACT
ACALL R_CODE
MOV R2,#4
MOV R0,#50H
MOV R1,#54H
C1: MOV A,@R0
XRL A,@R1
JNZ C2
INC R0
INC R1
DJNZ R2,C1
CLR SW
SETB F0 ;CODE EXACT
C2: MOV A,#C6H
ACALL W_INS
MOV DPTR,#MSG6 ;MSG6='EXACT'
JB F0,C3
MOV DPTR,#MSG7 ;MSG7='ERROR'
C3: MOV CNT,#5
ACALL W_STR
C4: ACALL SCAN
MOV A,R5
CJNE A,#BH,C5 ;HELP
AJMP HELP
C5: CJNE A,#CH,C6 ;F1
AJMP F1
C6: CJNE A,#DH,C7 ;F2
AJMP F2
C7: CJNE A,#EH,C8 ;F3
AJMP F3
C8: CJNE A,#FH,C9 ;F4
AJMP F4
C9: AJMP C4
;----
; F4
;----
F4: ACALL CLRLCD
MOV A,#84H
ACALL W_INS
MOV CNT,#8
MOV DPTR,#MSG8
ACALL W_STR
MOV A,#C6H
MOV R0,#54H
ACALL W_INS
F41: ACALL SCAN
MOV A,R5
XRL A,#16 ;NOT
JZ F41
MOV A,R5
CJNE A,#AH,F42
AJMP SETF4 ;SET
F42: CJNE A,#BH,F43 ;HELP
AJMP HELP
F43: CJNE A,#CH,F44 ;F1
AJMP F1
F44: CJNE A,#DH,F45 ;F2
AJMP F2
F45: CJNE A,#EH,F46 ;F3
AJMP F3
F46: CJNE A,#FH,F47 ;F4
AJMP F4
F47: MOV A,R5
MOV @R0,A
ADD A,#30H
ACALL W_DATA
INC R0
CJNE R0,#58H,F48
MOV R0,#54H
MOV A,#C6H
ACALL W_INS
F48: SJMP F41
;--------
; F4-SET
;--------
SETF4: ACALL W_CODE
ACALL CLRLCD
MOV A,#84H
ACALL W_INS
MOV CNT,#8
MOV DPTR,#MSG9
ACALL W_STR
M0: ACALL SCAN
MOV A,R5
CJNE A,#BH,M1 ;HELP
AJMP HELP
M1: CJNE A,#CH,M2 ;F1
AJMP F1
M2: CJNE A,#DH,M3 ;F2
AJMP F2
M3: CJNE A,#EH,M4 ;F3
AJMP F3
M4: CJNE A,#FH,M0 ;F4
AJMP F4
;----------
; SCAN KEY
;----------
SCAN: MOV R5,#0 ;KEY VALUE
MOV R7,#4 ;COLUME NUM
MOV R6,#11111110B
COL: MOV A,R6
MOV P3,A
JB P3.4,S1
JNB P3.4,$ ;DEBOUNCE
ACALL DELAY
ACALL DELAY
ACALL DELAY
SJMP S5 ;First Line
S1: INC R5
JB P3.5,S2
JNB P3.5,$ ;DEBOUNCE
ACALL DELAY
ACALL DELAY
ACALL DELAY
SJMP S5 ;Second Line
S2: INC R5
JB P3.6,S3
JNB P3.6,$
ACALL DELAY
ACALL DELAY
ACALL DELAY
SJMP S5 ;Third Line
S3: INC R5
JB P3.7,S4
JNB P3.7,$
ACALL DELAY
ACALL DELAY
ACALL DELAY
SJMP S5 ;Fouth Line
S4: INC R5
MOV A,R6
RL A
MOV R6,A
DJNZ R7,COL
S5: RET
;----------
; POWER ON
;----------
ON: PUSH A
MOV A,#80H
ACALL W_INS
MOV CNT,#16
MOV DPTR,#MSG1
ACALL W_STR
MOV A,#C0H
ACALL W_INS
MOV CNT,#16
MOV DPTR,#MSG2
ACALL W_STR
POP A
SETB SW
RET
;------------
; SET TIMER0
;------------
SET0: MOV SEC,#100
MOV TMOD,#01H
MOV IE,#10000010B
MOV TH0,#>(65536-10000)
MOV TL0,#SETB TR0
RET
;----------------
; INIT RAM & LCD
;----------------
INIT: MOV R0,#6
MOV R1,#30H
CLR A
NEXT0: MOV @R1,A
INC R1
DJNZ R0,NEXT0
MOV R0,#14
MOV R1,#40H
CLR A
NEXT1: MOV @R1,A
INC R1
DJNZ R0,NEXT1
;
MOV A,#38H
ACALL W_INS
MOV A,#38H
ACALL W_INS
MOV A,#38H
ACALL W_INS
MOV A,#38H
ACALL W_INS
MOV A,#08H ;FUNCTION SET
ACALL W_INS
MOV A,#01H ;CLEAR DISPLAY
ACALL W_INS
MOV A,#06H ;INPUT MODE SET
ACALL W_INS
MOV A,#0CH ;DISPLAY ON/OFF
ACALL W_INS
RET
;-----------
; CLEAR LCD
;-----------
CLRLCD: MOV A,#01H
ACALL W_INS
RET
;--------------
; BCD TO ASCII
;--------------
CONV: MOV A,#30H
MOV R0,A
MOV A,@R0
SWAP A
ANL A,#0FH
ADD A,#30H
MOV 40H,A
MOV A,@R0
ANL A,#0FH
ADD A,#30H
MOV 41H,A
MOV 42H,#":"
INC R0
MOV A,@R0
SWAP A
ANL A,#0FH
ADD A,#30H
MOV 43H,A
MOV A,@R0
ANL A,#0FH
ADD A,#30H
MOV 44H,A
MOV 45H,#":"
INC R0
MOV A,@R0
SWAP A
ANL A,#0FH
ADD A,#30H
MOV 46H,A
MOV A,@R0
ANL A,#0FH
ADD A,#30H
MOV 47H,A
RET
;--------------
; DISPLAY TIME
;--------------
DISP: MOV R1,#8
MOV R0,#40H
DSP: MOV A,@R0
ACALL W_DATA
INC R0
DJNZ R1,DSP
RET
;---------------------
; WRITE STRING TO LCD
;---------------------
W_STR: PUSH A
MOV R5,#0
STR: MOV A,R5
MOVC A,@A+DPTR
ACALL W_DATA
INC R5
DJNZ CNT,STR
POP A
RET
;------------------
; WRITE INS TO LCD
;------------------
W_INS: PUSH A
ACALL CHECK
CLR RS
CLR RW
SETB EN
MOV P1,A
CLR EN
POP A
RET
;-------------------
; WRITE DATA TO LCD
;-------------------
W_DATA: PUSH A
ACALL CHECK
SETB RS
CLR RW
SETB EN
MOV P1,A
CLR EN
POP A
RET
;----------------
; CHECK LCD BUSY
;----------------
CHECK: PUSH A
BUSY: CLR RS
SETB RW
SETB EN
MOV A,P1
CLR EN
JB ACC.7,BUSY
ACALL DELAY
POP A
RET
;-------
; DELAY
;-------
DELAY: MOV R6,#20
D1: MOV R7,#150
DJNZ R7,$
DJNZ R6,D1
RET
;-------------
; JUDGE H/M/S
;-------------
JUDGE: PUSH A
MOV A,32H
ADD A,#1
DA A
MOV 32H,A
CJNE A,#60H,FIX
MOV 32H,#00
MOV A,31H
ADD A,#1
DA A
MOV 31H,A
CJNE A,#60H,FIX
MOV 31H,#00
MOV A,30H
ADD A,#1
DA A
MOV 30H,A
CJNE A,#24H,FIX
MOV 30H,#00
FIX: POP A
RET
;--------
; TIMER0
;--------
TIMER0: PUSH A ;TIMER 1 SEC
MOV TH0,#>(65536-10000)
MOV TL0,#DJNZ SEC,EXIT3
MOV SEC,#100
ACALL JUDGE
EXIT3: POP A
RETI
;----------------------
; READ CODE FORM 93CX6
;----------------------
R_CODE: PUSH A
MOV ADDR,#0
MOV R0,#54H
MOV R1,#2
LOOP1: ACALL READ
INC ADDR
DJNZ R1,LOOP1
POP A
RET
;---------------------
; WRITE CODE TO 93CX6
;---------------------
W_CODE: PUSH A
MOV ADDR,#0
MOV R0,#54H
MOV R1,#2
LOOP2: ACALL ERASE
ACALL WEN
ACALL WRITE
ACALL WDS
INC ADDR
DJNZ R1,LOOP2
POP A
RET
;-------------
; ERASE 93CX6
;-------------
ERASE: PUSH A
MOV R6,#00000111B
MOV A,ADDR
MOV R7,A
ACALL SHIFT5
SETB CS
MOV CNT,#11
ER: MOV A,R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV DI,C
SETB SK
NOP
CLR SK
NOP
DJNZ CNT,ER
ACALL CHKBSY
CLR CS
POP A
RET
;--------------------
; 93CX6 WRITE ENABLE
;--------------------
WEN: PUSH A
MOV R6,#00000100B
MOV R7,#11000000B
ACALL SHIFT5
SETB CS
MOV CNT,#11
W1: MOV A,R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV DI,C
SETB SK
NOP
CLR SK
NOP
DJNZ CNT,W1
CLR CS
POP A
RET
;---------------------
; 93CX6 WRITE DISABLE
;---------------------
WDS: PUSH A
MOV R6,#00000100B
MOV R7,#00000000B
ACALL SHIFT5
SETB CS
MOV CNT,#11
DS: MOV A,R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV DI,C
SETB SK
NOP
CLR SK
NOP
DJNZ CNT,DS
CLR CS
POP A
RET
;-------
; WRITE
;-------
WRITE: PUSH A
MOV R6,#00000101B
MOV A,ADDR
MOV R7,A
ACALL SHIFT5
SETB CS
MOV CNT,#11
WR: MOV A,R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV DI,C
SETB SK
NOP
CLR SK
NOP
DJNZ CNT,WR
ACALL W_DAT
ACALL CHKBSY
CLR CS
POP A
RET
;---------------------
; WRITE DATA TO 93CX6
;---------------------
W_DAT: PUSH A
MOV R3,#2
WD1: MOV A,@R0
MOV R4,#8
WD2: RLC A
MOV DI,C
SETB SK
NOP
CLR SK
NOP
DJNZ R4,WD2
INC R0
DJNZ R3,WD1
POP A
RET
;------
; READ
;------
READ: PUSH A
MOV R6,#00000110B
MOV A,ADDR
MOV R7,A
ACALL SHIFT5
SETB CS
MOV CNT,#11
RD: MOV A,R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV DI,C
SETB SK
NOP
CLR SK
NOP
DJNZ CNT,RD
ACALL R_DAT
CLR CS
POP A
RET
;----------------------
; READ DATA FROM 93CX6
;----------------------
R_DAT: PUSH A
MOV R3,#2
RD1: MOV R4,#8
RD2: SETB SK
NOP
CLR SK
NOP
MOV C,DO
RLC A
DJNZ R4,RD2
MOV @R0,A
INC R0
DJNZ R3,RD1
POP A
RET
;------------------
; SHIFT LEFT 5 BIT
;------------------
SHIFT5: PUSH A
MOV CNT,#5
SHT: MOV A,R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
DJNZ CNT,SHT
POP A
RET
;------------------
; CHECK 93CX6 BUSY
;------------------
CHKBSY: PUSH A
BSY: CLR CS
SETB CS
MOV C,DO
JNC BSY
POP A
RET
;---------
; MESSAGE
;---------
MSG1: DB 'F1:TIME F2:ADJ'
MSG2: DB 'F3:INPUT F4:SET'
MSG3: DB 'TIME'
MSG4: DB 'ADJUST TIME'
MSG5: DB 'INPUT CODE'
MSG6: DB 'EXACT'
MSG7: DB 'ERROR'
MSG8: DB 'SET CODE'
MSG9: DB 'SUCCESS!'
END

这是我重我同学那拿过来的其实我们这组所有人都不太懂这程式码 还有人说我们这组的程式
码全部都是错误连篇 能请大哥大姊及高手专家帮帮忙小弟吗????
也烦请帮忙小弟解释程式码 小弟的程式码的过程是要输入键盘与LED和等等.....相关一些
密码锁的事情 谢谢您们的讲解 这个程式码是关于我们能不能拿毕业证书的大问题
能烦请各位的帮忙谢谢~~~~~~~~〒ˍ〒