1. 設計任務
(1. 上電時顯示“00”,第一次按下SP1后就開始計數。
(2. 第二次按SP1后,計數停止。
(3. 第三次按SP1后,計數清零。
(4.第四次按下倒計時。
2. 電路的原理圖
3. 系統板上硬件連線
(1.把“單片機系統”區(qū)域中的P0.0/AD0-P0.7/AD7端口用8芯排線連接到“四路靜態(tài)數碼顯示模塊”區(qū)域中的任一個a-h(huán)端口上;要求:P0.0/AD0對應著a,P0.1/AD1對應著b,……,P0.7/AD7對應著h。
(2.把“單片機系統”區(qū)域中的P2.0/A8-P2.7/A15端口用8芯排線連接到“四路靜態(tài)數碼顯示模塊”區(qū)域中的任一個a-h(huán)端口上;要求:P2.0/A8對應著a,P2.1/A9對應著b,……,P2.7/A15對應著h。
(3.把“單片機系統“區(qū)域中的P3.5/T1用導線連接到”獨立式鍵盤“區(qū)域中的SP1端口上;
4.
匯編源程序
D1AEQU 30H 個位寄存地址設置;
D1BEQU 31H 十位寄存地址設置;
SEC EQU 32H
KY1 EQU 33H
SP1 BIT P3.5 位選口設置;
ORG 0000H
LJMP START
ORG 0B00H 中斷方式選折;
LJMP INT_T0
START: MOV KY1,#00H
MOV SEC,#00H
MOV A,SEC
MOV B,#10
DIV AB 個位和十位的區(qū)分;
MOV DPTR,#TABLE 開始查個位的段碼;
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
MOV TMOD,#02H
SETB ET0
SETB EA 開啟中斷;
WT: JB SP1,WT
LCALL DELY10MS
JB SP1,WT
INC KY1 第一次按下鍵盤,開始計數;
MOV A,KY1
CJNE A,#01H,KN1
SETB TR0
MOV TH0,#06H
MOV TL0,#06H
MOV D1A,#00H
MOV D1B,#00H
LJMP DKN
KN1: CJNE A,#02H,KN2
CLR TR0
LJMP DKN
KN2: CJNE A,#03H,DKN
MOV SEC,#00H
MOV A,SEC
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
MOV KY1,#00H
KN3:INC KY1
DEC KY1 第4次按下鍵盤,開始計數;
MOV A,KY1
CJNE A,#04H,KN3
SETB TR0
MOV TH0,#06H
MOV TL0,#06H
MOV D1A,#00H
MOV D1B,#00H
LJMP DKN
DKN: JNB SP1,$
LJMP WT
DELY10MS: 延時子程序;
MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
INT_T0: 中斷子程序;
INC D1A
MOV A,D1A
CJNE A,#100,NEXT
MOV D1A,#00H
INC D1B
MOV A,D1B
CJNE A,#5,NEXT
MOV TCNTB,#00H
INC SEC
MOV A,SEC
CJNE A,#100,DONE
MOV SEC,#00H
DONE: MOV A,SEC
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
NEXT: RETI
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END