BÀI TN 2
HI N TH LED 7 ĐO N
M C TIÊU:
N m đc cách giao ti p ngo i vi d ng ánh x b nh , giao ti p LED 7 đo n. ượ ế ế
CHU N B :
Đc ch ng 2 và ch ng 4 c a tài li u h ng d n ươ ươ ướ
Vi t ch ng trình và mô ph ng các bài thí nghi mế ươ
THÍ NGHI M 1
M c tiêu
N m đc cách th c hi n th LED 7 đo n ượ
Yêu c u
Vi t ch ng trình con DisplayLed0 hi n th lên LED 7 đo n s 0 ế ươ : giá tr ch a trong thanh
ghi R0
MOV A,R0
ADD A,#0E0H
MOV DPTR,#0000H
MOVX @DPTR,A
RET
Vi t ch ng trình chính hi n th s 9 lên LED 7 đo n s 0 b ng cách cho R0 b ng 9 vàế ươ
g i ch ng trình con DisplayLed0. ươ
ORG 2000H
MAIN:
MOV R0,#09H
ACALL DisplayLed0
JMP MAIN
DisplayLed0:
MOV A, R0
ORL A, #0E0H
MOV DPTR, #0000H
MOVX @DPTR, A
RET
END
Ki m tra
Biên d ch, th c thi và ki m tra ch ng trình ươ
THÍ NGHI M 2
M c tiêu
K t h p đc các ch ng trình con, hi n th LED 7 đo n s d ng các l nh đ t o delayế ượ ươ
Yêu c u
Vi t ch ng trình hi n th lên LED 7 đo n s 0 các con s t 0 đn 9 sau các kho ng th iế ươ ế
gian 1s
HD:
Vi t ch ng trình Delay1sTimer t o tr 1 s dùng các l nh.ế ươ
Trong ch ng trình chính, đu tiên cho thanh ghi R0 b ng 0, sau đó vào vòng l p g iươ
ch ng trình con DisplayLed0 đã vi t ph n tr c, t o tr 1s, tăng R0 lên 1 và l p l iươ ế ướ
quá trình. N u R0 l n h n 9 thì cho R0 b ng 0 tr l i.ế ơ
ORG 2000H
Lab Manual for “8051 Microcontroller….”
BÀI TN 2
HI N TH LED 7 ĐO N
MAIN:
MOV R0,#00H
LOOP:
CALL LED0
CALL DELAY1S
INC R0
CJNE R0, #0AH, LOOP
LED0:
MOV A, R0
ORL A, 0E0H
MOV DPTR, #0000H
MOVX @DPTR,A
RET
DELAY1S:
MOV R7,#14H
DELAY:
MOV TMOD,#01H
MOV TH0, #HIGH(-50000)
MOV TL0, #LOW(-50000)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
DJNZ R7, DELAY
RET
END
Ki m tra
Biên d ch, th c thi và ki m tra ch ng trình ươ
THÍ NGHI M 3
M c tiêu
N m đc cách th c dùng ch ng trình con có truy n tham s đ đi u khi n ngo i vi ượ ươ
Yêu c u
Vi t ch ng trình con DisplayLED xu t giá tr ch a trong thanh ghi R0 lên LED 7 đo nế ươ
có s th t ch a trong thanh ghi R1.
R0 n m trong t m t 0-9 và R1 trong t m t 0-3.
Sau đó dùng ch ng trình con này vi t ch ng trình chính xu t giá tr 1 lên LED 7 đo nươ ế ươ
s 3.
ORG 2000H
MAIN:
MOV R1,#0EH
MOV R0,#01H
CALL CTCON
SJMP MAIN
CTCON:
MOV A,R1
Lab Manual for “8051 Microcontroller….”
BÀI TN 2
HI N TH LED 7 ĐO N
ANL A,#0FH
SWAP A
MOV B,R0
ANL B,#0FH
ADD A,B
MOV DPTR,#0000H
MOVX @DPTR,A
RET
END
HD:
Đ hi n th lên 1 LED 7 đo n ta ph i ghi ra ngo i vi vùng nh 0000H-1FFFH m t byte,
v i 4 bit th p ch a giá tr c a giá tr c n hi n th và 4 bit cao đc dùng đ ch n LED. ượ
Trong 4 bit cao, bit nào b ng 0 thì LED 7 đo n t ng ng s đc b t. ươ ượ
Đo n ch ng trình sau tính toán đ xu t ra đi u khi n LED d a vào R0, R1 ươ
MOV B, R1
MOV A, #11110111B ;bit s 3 b ng 0, b n bit cao b ng 1.
SHIFTLOOP:
RL A
DJNZ B, SHIFTLOOP
ANL A, #0F0H
PUSH ACC
MOV A, R0