Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
BÀI T P VI X LÝ (H VI ĐI U KHI N 8051)
Ậ
Ử
Ọ
Ề
Ể
1. C U TRÚC PH N C NG - GI I MÃ Đ A CH
Ấ
Ầ
Ứ
Ả
Ị
Ỉ
1.1 S d ng 1 vi m ch 74138 và các c ng c n thi t đ thi t k m ch gi i mã
ử ụ
ạ
ổ
ầ
ế ể
ế ế ạ
ả
đ a ch t o ra các tín hi u ch n chip t
ng ng các vùng đ a ch sau:
ị
ỉ ạ
ệ
ọ
ươ
ứ
ị
ỉ
Tín hi u
ệ
ch n chip
ọ
Vùng đ a
ị
ch
ỉ
Đ c tính truy
ặ
xu t
ấ
0
CS
0000H -
3FFFH
PSEN
1
CS
4000H -
7FFFH
PSEN
2
CS
6000H -
7FFFH
WR
,
RD
3
CS
8000H -
87FFH
RD
4
CS
8800H -
8FFFH
WR
1.2 S d ng 1 vi m ch 74138 và các c ng c n thi t đ thi t k m ch gi i mã
ử ụ
ạ
ổ
ầ
ế ể
ế ế ạ
ả
đ a ch t o ra các tín hi u ch n chip t
ng ng các vùng đ a ch sau:
ị
ỉ ạ
ệ
ọ
ươ
ứ
ị
ỉ
Tín hi u
ệ
ch n chip
ọ
Vùng đ a
ị
ch
ỉ
Đ c tính truy
ặ
xu t
ấ
0
CS
9800H -
9BFFH
PSEN
1
CS
9800H -
9BFFH
WR
,
RD
2
CS
9C00H -
9DFFH
WR
,
RD
3
CS
9E00H -
9EFFH
WR
,
RD
1.3 Ch dùng m t vi m ch 74138 (không dùng thêm c ng), thi t k m ch gi i
ỉ
ộ
ạ
ổ
ế ế ạ
ả
mã đ a ch t o ra m t tín hi u ch n chip /CS t
ng ng t m đ a ch F000H-
ị
ỉ ạ
ộ
ệ
ọ
ươ
ứ
ầ
ị
ỉ
F3FFH.
2. S D NG T P L NH
Ử Ụ
Ậ
Ệ
Truy xu t RAM n i
ấ
ộ
Trang
1/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
2.1 Vi t CT ghi 40H vào ô nh 30H c a RAM n i theo 2 cách (đ nh đ a ch ô
ế
ớ
ủ
ộ
ị
ị
ỉ
nh tr c ti p và đ nh đ a ch ô nh gián ti p).
ớ ự
ế
ị
ị
ỉ
ớ
ế
2.2 Vi t CT xóa ô nh 31H c a RAM n i theo 2 cách (đ nh đ a ch ô nh tr c
ế
ớ
ủ
ộ
ị
ị
ỉ
ớ ự
ti p và đ nh đ a ch ô nh gián ti p).
ế
ị
ị
ỉ
ớ
ế
2.3 Vi t CT ghi n i dung thanh ghi A vào ô nh 32H c a RAM n i theo 2 cách
ế
ộ
ớ
ủ
ộ
(đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).
ị
ị
ỉ
ớ ự
ế
ị
ị
ỉ
ớ
ế
2.4 Vi t CT đ c ô nh 33H c a RAM n i vào thanh ghi A theo 2 cách (đ nh
ế
ọ
ớ
ủ
ộ
ị
đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).
ị
ỉ
ớ ự
ế
ị
ị
ỉ
ớ
ế
2.5 Vi t CT chuy n d li u ô nh 34H c a RAM n i vào ô nh 35H c a
ế
ể
ữ ệ
ớ
ủ
ộ
ớ
ủ
RAM n i theo 2 cách (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián
ộ
ị
ị
ỉ
ớ ự
ế
ị
ị
ỉ
ớ
ti p).
ế
Truy xu t RAM ngoài
ấ
2.6 Vi t CT ghi 40H vào ô nh 0030H c a RAM ngoài.
ế
ớ
ủ
2.7 Vi t CT xóa ô nh 0031H c a RAM ngoài.
ế
ớ
ủ
2.8 Vi t CT đ c ô nh 0032H c a RAM ngoài vào thanh ghi A.
ế
ọ
ớ
ủ
2.8 Vi t CT ghi n i dung thanh ghi A vào ô nh 0033H c a RAM ngoài.
ế
ộ
ớ
ủ
2.10 Vi t CT chuy n d li u ô nh 0034H c a RAM ngoài vào ô nh 0035H
ế
ể
ữ ệ
ớ
ủ
ớ
c a RAM ngoài.
ủ
Truy xu t Port
ấ
2.11 Vi t CT xu t 0FH ra Port 1.
ế
ấ
2.12 Vi t CT xu t F0H ra Port 2.
ế
ấ
2.13 Vi t CT xu t n i dung thanh ghi A ra Port 1.
ế
ấ ộ
2.14 Vi t CT nh p t Port 1 vào thanh ghi A.
ế
ậ ừ
2.15 Vi t CT nh p t Port 1 và xu t ra Port 2.
ế
ậ ừ
ấ
2.16 Vi t CT xu t 1 (m c logic cao) ra chân P1.0
ế
ấ
ứ
2.17 Vi t CT xu t 0 (m c logic th p) ra chân P1.1
ế
ấ
ứ
ấ
Truy xu t RAM n i, RAM ngoài và Port
ấ
ộ
2.18 Vi t CT chuy n d li u ô nh 40H (RAM n i) đ n ô nh 2000H (RAM
ế
ể
ữ ệ
ớ
ộ
ế
ớ
ngoài). Làm theo 2 cách (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián
ị
ị
ỉ
ớ ự
ế
ị
ị
ỉ
ớ
ti p).
ế
2.19 Vi t CT chuy n d li u ô nh 2001H (RAM ngoài) vào ô nh 41H (RAM
ế
ể
ữ ệ
ớ
ớ
n i). Làm theo 2 cách (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián
ộ
ị
ị
ỉ
ớ ự
ế
ị
ị
ỉ
ớ
ti p).
ế
2.20 Vi t CT nh p t Port 1 vào ô nh 42H (RAM n i). Làm theo 2 cách (đ nh
ế
ậ ừ
ớ
ộ
ị
đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).
ị
ỉ
ớ ự
ế
ị
ị
ỉ
ớ
ế
Trang
2/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
2.21 Vi t CT nh p t Port 1 vào ô nh 2002H (RAM ngoài).
ế
ậ ừ
ớ
2.22 Vi t CT l y ô nh 43H (RAM n i) xu t ra Port 1. Làm theo 2 cách (đ nh
ế
ấ
ớ
ộ
ấ
ị
đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).
ị
ỉ
ớ ự
ế
ị
ị
ỉ
ớ
ế
2.23 Vi t CT l y ô nh 2003H (RAM ngoài) xu t ra Port 1.
ế
ấ
ớ
ấ
S d ng vòng l p
ử ụ
ặ
2.24 Vi t CT xóa 20 ô nh RAM n i có đ a ch b t đ u là 30H.
ế
ớ
ộ
ị
ỉ ắ ầ
2.25 Vi t CT xóa các ô nh RAM n i t đ a ch 20H đ n 7FH.
ế
ớ
ộ ừ ị
ỉ
ế
2.26 Vi t CT xóa 250 ô nh RAM ngoài có đ a ch b t đ u là 4000H.
ế
ớ
ị
ỉ ắ ầ
2.27 Vi t CT xóa 2500 ô nh RAM ngoài có đ a ch b t đ u là 4000H.
ế
ớ
ị
ỉ ắ ầ
2.28 Vi t CT xóa toàn b RAM ngoài có dung l
ng 8KB, bi t r ng đ a ch
ế
ộ
ượ
ế ằ
ị
ỉ
đ u là 2000H.
ầ
2.29 Vi t CT chuy n m t chu i d li u g m 10 byte trong RAM n i có đ a
ế
ể
ộ
ỗ ữ ệ
ồ
ộ
ị
ch đ u là 30H đ n vùng RAM n i có đ a ch đ u là 40H.
ỉ ầ
ế
ộ
ị
ỉ ầ
2.30 Vi t CT chuy n m t chu i d li u g m 100 byte trong RAM ngoài có đ a
ế
ể
ộ
ỗ ữ ệ
ồ
ị
ch đ u là 2000H đ n vùng RAM ngoài có đ a ch đ u là 4000H.
ỉ ầ
ế
ị
ỉ ầ
2.31 Vi t CT chuy n m t chu i d li u g m 10 byte trong RAM n i có đ a
ế
ể
ộ
ỗ ữ ệ
ồ
ộ
ị
ch đ u là 30H đ n vùng RAM ngoài có đ a ch đ u là 4000H.
ỉ ầ
ế
ị
ỉ ầ
2.32 Vi t CT chuy n m t chu i d li u g m 10 byte trong RAM ngoài có đ a
ế
ể
ộ
ỗ ữ ệ
ồ
ị
ch đ u là 5F00H đ n vùng RAM n i có đ a ch đ u là 40H.
ỉ ầ
ế
ộ
ị
ỉ ầ
2.33 Cho m t chu i d li u g m 20 byte liên ti p trong RAM n i, b t đ u t
ộ
ỗ ữ ệ
ồ
ế
ộ
ắ ầ ừ
đ a ch 20H. Hãy vi t CT l n l
t xu t các d ki u này ra Port 1.
ị
ỉ
ế
ầ ượ
ấ
ữ ệ
2.34 Gi s Port 1 đ
c n i đ n m t thi t b phát d li u (ví d nh 8 nút
ả ử
ượ
ố ế
ộ
ế ị
ữ ệ
ụ
ư
nh n). Hãy vi t CT nh n liên ti p 10 byte d li u t thi t b phát này và ghi
ấ
ế
ậ
ế
ữ ệ ừ
ế ị
vào 10 ô nh (RAM n i) liên ti p b t đ u t ô nh 50H.
ớ
ộ
ế
ắ ầ ừ
ớ
T o tr (delay)
ạ
ễ
2.35 Vi t CT con delay 100μs, bi t r ng th ch anh (xtal) dùng trong h th ng
ế
ế ằ
ạ
ệ ố
là:
a. 12 MHz
b. 6 MHz
2.36 Vi t CT con delay 100ms, bi t r ng th ch anh (xtal) dùng trong h th ng
ế
ế ằ
ạ
ệ ố
là:
a. 12 MHz
b. 11,0592 MHz
2.37 Vi t CT con delay 1s, bi t r ng th ch anh (xtal) dùng trong h th ng là:
ế
ế ằ
ạ
ệ ố
Trang
3/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
a. 12 MHz
b. 24 MHz
T o xung
ạ
2.38 Vi t CT t o m t xung d
ng (
ế
ạ
ộ
ươ
) t i chân P1.0 v i đ r ng xung
ạ
ớ ộ ộ
1ms, bi t r ng xtal là 12 MHz.
ế ằ
2.39 Vi t CT t o chu i xung vuông có f = 100 KHz t i chân P1.1 (Xtal 12
ế
ạ
ỗ
ạ
MHz).
2.40 Vi t CT t o chu i xung vuông có f = 100 KHz và có chu kỳ làm vi c D =
ế
ạ
ỗ
ệ
40% t i chân P1.2 (Xtal 12 MHz).
ạ
2.41 Vi t CT t o chu i xung vuông có f = 10 KHz t i chân P1.3 (Xtal 24
ế
ạ
ỗ
ạ
MHz).
2.42 Vi t CT t o chu i xung vuông có f = 10 KHz và có chu kỳ làm vi c D =
ế
ạ
ỗ
ệ
30% t i chân P1.3 (Xtal 24 MHz).
ạ
2.43 Vi t CT t o chu i xung vuông có f = 10 Hz t i chân P1.4 (Xtal 12 MHz).
ế
ạ
ỗ
ạ
2.44 Vi t CT t o chu i xung vuông có f = 10 Hz và có chu kỳ làm vi c D =
ế
ạ
ỗ
ệ
25% t i chân P1.5 (Xtal 12 MHz).
ạ
Các phép toán
2.45 Cho m t chu i s 8 bit không d u trong RAM n i g m 10 s b t đ u t
ộ
ỗ ố
ấ
ộ ồ
ố ắ ầ ừ
ô nh 30H. Hãy vi t CT con c ng chu i s này và ghi k t qu vào ô nh 2FH
ớ
ế
ộ
ỗ ố
ế
ả
ớ
(gi s k t qu nh h n ho c b ng 255).
ả ử ế
ả
ỏ ơ
ặ
ằ
2.46 Cho m t chu i s 8 bit không d u trong RAM n i g m 10 s b t đ u t
ộ
ỗ ố
ấ
ộ ồ
ố ắ ầ ừ
ô nh 30H. Hãy vi t CT con c ng chu i s này và ghi k t qu vào ô nh
ớ
ế
ộ
ỗ ố
ế
ả
ớ
2EH:2FH (ô nh 2EH ch a byte cao c a k t qu và ô nh 2FH ch a byte th p
ớ
ứ
ủ
ế
ả
ớ
ứ
ấ
c a k t qu ).
ủ
ế
ả
2.47 Cho m t chu i s 16 bit không d u trong RAM n i g m 10 s b t đ u t
ộ
ỗ ố
ấ
ộ ồ
ố ắ ầ ừ
ô nh 30H theo nguyên t c ô nh có đ a ch nh h n ch a byte cao và ô nh có
ớ
ắ
ớ
ị
ỉ
ỏ ơ
ứ
ớ
đ a ch l n h n ch a byte th p. (Ví d : byte cao c a s 16 bit đ u tiên đ
c
ị
ỉ ớ
ơ
ứ
ấ
ụ
ủ ố
ầ
ượ
c t t i ô nh 30H và byte th p c a s 16 bit đ u tiên đ
c c t t i ô nh 31H).
ấ ạ
ớ
ấ
ủ ố
ầ
ượ ấ ạ
ớ
Hãy vi t CT con c ng chu i s này và c t k t qu vào ô nh 2EH:2FH.
ế
ộ
ỗ ố
ấ ế
ả
ớ
2.48 Vi t CT con l y bù 2 s 16 bit ch a trong R2:R3.
ế
ấ
ố
ứ
So sánh
2.49 Cho hai s 8 bit, s th 1 ch a trong (30H), s th 2 ch a trong (31H).
ố
ố ứ
ứ
ố ứ
ứ
Vi t CT con so sánh hai s này. N u s th 1 l n h n ho c b ng s th 2 thì
ế
ố
ế ố ứ
ớ
ơ
ặ
ằ
ố ứ
set c F0, n u ng
c l i thì xóa c F0.
ờ
ế
ượ ạ
ờ
Trang
4/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
2.50 Cho hai s 16 bit, s th 1 ch a trong (30H):(31H), s th 2 ch a trong
ố
ố ứ
ứ
ố ứ
ứ
(32H):(33H). Vi t CT con so sánh hai s này. N u s th 1 l n h n ho c b ng
ế
ố
ế ố ứ
ớ
ơ
ặ
ằ
s th 2 thì set c F0, n u ng
c l i thì xóa c F0.
ố ứ
ờ
ế
ượ ạ
ờ
2.51 Cho m t chu i ký t d
i d ng mã ASCII trong RAM n i, dài 20 byte,
ộ
ỗ
ự ướ ạ
ộ
b t đ u t đ a ch 50H. Vi t CT xu t các ký t in hoa có trong chu i này ra
ắ ầ ừ ị
ỉ
ế
ấ
ự
ỗ
Port 1. Bi t r ng mã ASCII c a ký t in hoa là t 65 (ch A) đ n 90 (ch Z).
ế ằ
ủ
ự
ừ
ữ
ế
ữ
2.52 Vi t CT nh p m t chu i ký t t Port 1 d
i d ng mã ASCII và ghi vào
ế
ậ
ộ
ỗ
ự ừ
ướ ạ
RAM ngoài, b t đ u t đ a ch 0000H. Bi t r ng chu i này k t thúc b ng ký
ắ ầ ừ ị
ỉ
ế ằ
ỗ
ế
ằ
t CR (có mã ASCII là 0DH) và ghi c ký t này vào RAM.
ự
ả
ự
2.53 Vi t CT nh p m t chu i ký t t Port 1 d
i d ng mã ASCII và ghi vào
ế
ậ
ộ
ỗ
ự ừ
ướ ạ
RAM ngoài, b t đ u t đ a ch 0000H. Bi t r ng chu i này k t thúc b ng ký
ắ ầ ừ ị
ỉ
ế ằ
ỗ
ế
ằ
t CR (có mã ASCII là 0DH) và không ghi ký t này vào RAM.
ự
ự
2.54 Vi t CT nh p m t chu i ký t t Port 1 d
i d ng mã ASCII và ghi vào
ế
ậ
ộ
ỗ
ự ừ
ướ ạ
RAM ngoài, b t đ u t đ a ch 0000H. Bi t r ng chu i này k t thúc b ng ký
ắ ầ ừ ị
ỉ
ế ằ
ỗ
ế
ằ
t CR (có mã ASCII là 0DH) và không ghi ký t này vào RAM mà thay b ng
ự
ự
ằ
ký t null (có mã ASCII là 00H).
ự
2.55 Cho m t chu i ký t d
i d ng mã ASCII trong RAM n i, dài 20 byte,
ộ
ỗ
ự ướ ạ
ộ
b t đ u t đ a ch 50H. Vi t CT đ i các ký t in hoa có trong chu i này thành
ắ ầ ừ ị
ỉ
ế
ổ
ự
ỗ
ký t th
ng. Bi t r ng mã ASCII c a ký t th
ng b ng mã ASCII c a ký
ự ườ
ế ằ
ủ
ự ườ
ằ
ủ
t in hoa c ng thêm 32.
ự
ộ
2.56 Cho m t chu i ký t s d
i d ng mã ASCII trong RAM n i, dài 20
ộ
ỗ
ự ố ướ ạ
ộ
byte, b t đ u t đ a ch 50H. Vi t CT đ i các ký t s này thành mã BCD.
ắ ầ ừ ị
ỉ
ế
ổ
ự ố
Bi t r ng mã ASCII c a các ký t s là t 30H (s 0) đ n 39H (s 9).
ế ằ
ủ
ự ố
ừ
ố
ế
ố
S d ng l nh nh y có đi u ki n
ử ụ
ệ
ả
ề
ệ
2.57 Cho m t chu i d li u d
i d ng s có d u trong RAM ngoài, dài 100
ộ
ỗ ữ ệ
ướ ạ
ố
ấ
byte, b t đ u t đ a ch 0100H. Vi t CT l n l
t xu t các d li u trong chu i
ắ ầ ừ ị
ỉ
ế
ầ ượ
ấ
ữ ệ
ỗ
ra Port 1 n u là s d
ng (xem s 0 là d
ng) và xu t ra Port 2 n u là s âm.
ế
ố ươ
ố
ươ
ấ
ế
ố
2.58 Cho m t chu i d li u d
i d ng s có d u trong RAM ngoài, b t đ u
ộ
ỗ ữ ệ
ướ ạ
ố
ấ
ắ ầ
t đ a ch 0100H và k t thúc b ng s 0. Vi t CT l n l
t xu t các d li u
ừ ị
ỉ
ế
ằ
ố
ế
ầ ượ
ấ
ữ ệ
trong chu i ra Port 1 n u là s d
ng và xu t ra Port 2 n u là s âm.
ỗ
ế
ố ươ
ấ
ế
ố
2.59 Cho m t chu i d li u d
i d ng s không d u trong RAM ngoài, b t
ộ
ỗ ữ ệ
ướ ạ
ố
ấ
ắ
đ u t đ a ch 0100H và đ dài chu i là n i dung ô nh 00FFH. Vi t CT đ m
ầ ừ ị
ỉ
ộ
ỗ
ộ
ớ
ế
ế
s s ch n (chia h t cho 2) có trong chu i và c t vào ô nh 00FEH.
ố ố
ẵ
ế
ỗ
ấ
ớ
2.60 Cho m t chu i d li u d
i d ng s không d u trong RAM ngoài, b t
ộ
ỗ ữ ệ
ướ ạ
ố
ấ
ắ
đ u t đ a ch 0100H và đ dài chu i là n i dung ô nh 00FFH. Vi t CT ghi
ầ ừ ị
ỉ
ộ
ỗ
ộ
ớ
ế
các s ch n (xem s 0 là s ch n) có trong chu i vào RAM n i b t đ u t đ a
ố
ẵ
ố
ố
ẵ
ỗ
ộ ắ ầ ừ ị
ch 30H cho đ n khi g p s l thì d ng.
ỉ
ế
ặ ố ẻ
ừ
2.61 Vi t CT con có nhi m v l y 1 byte t 1 chu i data g m 20 byte c t
ế
ệ
ụ ấ
ừ
ỗ
ồ
ấ
trong Ram ngoài b t đ u t đ a ch 2000H và xu t ra Port1. M i l n g i CT
ắ ầ ừ ị
ỉ
ấ
ỗ ầ
ọ
Trang
5/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
con ch xu t 1 byte, l n g i k thì xu t byte k ti p, l n g i th 21 thì l i
ỉ
ấ
ầ
ọ ế
ấ
ế ế
ầ
ọ
ứ
ạ
xu t byte đ u, ...
ấ
ầ
3. TIMER
3.1 Vi t CT con mang tên DELAY500 có nhi m v t o tr 0,5ms dùng Timer.
ế
ệ
ụ ạ
ễ
(Xtal 6MHz).
3.2 Vi t CT con mang tên DELAY10 có nhi m v t o tr 10ms dùng Timer.
ế
ệ
ụ ạ
ễ
(Xtal 12MHz).
3.3 Dùng CT con DELAY500 (bài 3.1) đ vi t CT t o sóng vuông f=1KHz t i
ể ế
ạ
ạ
P1.0.
3.4 Dùng CT con DELAY10 (bài 3.2) đ vi t CT t o sóng vuông f=50Hz t i
ể ế
ạ
ạ
P1.1.
3.5 Dùng CT con DELAY500 (bài 3.1) đ vi t CT t o sóng vuông f=500Hz
ể ế
ạ
(D=25%) t i P1.2.
ạ
3.6 Dùng CT con DELAY10 (bài 3.2) đ vi t CT t o sóng vuông f=20Hz
ể ế
ạ
(D=20%) t i P1.3.
ạ
3.7 Vi t CT dùng Timer t o sóng vuông f=500Hz t i P1.4. (Xtal 12MHz).
ế
ạ
ạ
3.8 Vi t CT dùng Timer t o sóng vuông f=20KHz t i P1.5. (Xtal 24MHz).
ế
ạ
ạ
3.9 Vi t CT dùng Timer t o 2 sóng vuông có cùng f= 1KHz t i P1.6 và P1.7.
ế
ạ
ạ
Bi t r ng sóng vuông t i P1.7 ch m pha h n sóng vuông t i P1.6 100(s. (Xtal
ế ằ
ạ
ậ
ơ
ạ
12MHz).
3.10 Vi t CT dùng Timer đi u khi n đèn giao thông t i m t giao l . Cho bi t
ế
ề
ể
ạ
ộ
ộ
ế
r ng:
ằ
Đèn
Bit
đi u
ề
khi n
ể
Th
ờ
i
gian
Xanh
1
P1.0
25s
Vàng
1
P1.1
3s
Đ 1
ỏ
P1.2
Xanh
2
P1.3
33s
Vàng
2
P1.4
3s
Đ 2
ỏ
P1.5
Trang
6/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
Đèn sáng khi bit đi u khi n b ng 0.
ề
ể
ằ
4. SERIAL PORT
4.1 Vi t CT đ c 1 chu i data ch a trong RAM n i t đ a ch 30H đ n 50H và
ế
ọ
ỗ
ứ
ộ ừ ị
ỉ
ế
xu t ra 1 thi t b (ví d nh màn hình tinh th l ng LCD) đ
c n i v i port
ấ
ế ị
ụ
ư
ể ỏ
ượ
ố ớ
n i ti p c a 8051 (ch đ UART 8 bit, 2400 baud). Cho Xtal 11,059 MHz.
ố ế
ủ
ế ộ
4.2 Vi t CT nh n 1 chu i data t 1 thi t b ngoài (ví d nh máy đ c mã
ế
ậ
ỗ
ừ
ế ị
ụ
ư
ọ
v ch) n i v i 8051 qua port n i ti p (ch đ UART 8 bit, 4800 baud) và ghi
ạ
ố ớ
ố ế
ế ộ
data vào RAM n i t đ a ch 40H. Bi t r ng chu i data g m 20 byte và Xtal
ộ ừ ị
ỉ
ế ằ
ỗ
ồ
11,059MHz.
4.3 Vi t CT l y 1 chu i data ch a trong RAM ngoài b t đ u t đ a ch 2000H
ế
ấ
ỗ
ứ
ắ ầ ừ ị
ỉ
và xu t ra 1 thi t b đ
c n i v i port n i ti p c a 8051 (ch đ UART 8 bit,
ấ
ế ị ượ
ố ớ
ố ế
ủ
ế ộ
1200 baud). Chu i k t thúc b i ký t EOT (có mã ASCII là 04H) và ký t này
ỗ ế
ở
ự
ự
cũng đ
c xu t ra (Xtal 11,059 MHz).
ượ
ấ
4.4 Làm l i bài 4.3 nh ng không xu t ký t EOT.
ạ
ư
ấ
ự
4.5 Vi t CT nh n 1 chu i data t 1 thi t b ngoài n i v i 8051 qua port n i
ế
ậ
ỗ
ừ
ế ị
ố ớ
ố
ti p (ch đ UART 8 bit, 9600 baud) và ghi data vào RAM ngoài b t đ u t
ế
ế ộ
ắ ầ ừ
đ a ch 4000H. Chu i data b t đ u b ng ký t STX (02H) và k t thúc b ng ký
ị
ỉ
ỗ
ắ ầ
ằ
ự
ế
ằ
t ETX (03H). Không ghi 2 ký t này vào RAM. Cho Xtal 11,059MHz.
ự
ự
4.6 Vi t CT con mang tên XUAT có nhi m v l y 1 chu i data ch a trong
ế
ệ
ụ ấ
ỗ
ứ
RAM ngoài xu t ra port n i ti p ch đ UART 9 bit. Bit th 9 là bit parity
ấ
ố ế ở
ế ộ
ứ
ch n. Chu i data k t thúc b ng ký t null (00H). CT g i CT con XUAT s đ t
ẵ
ỗ
ế
ằ
ự
ọ
ẽ ặ
đ a ch b t đ u c a chu i vào DPTR tr
c khi g i CT con XUAT. Gi s port
ị
ỉ ắ ầ
ủ
ỗ
ướ
ọ
ả ử
n i ti p đã đ
c kh i đ ng.
ố ế
ượ
ở ộ
4.7 Vi t CT con mang tên NHAP có nhi m v nh p 1 chu i data g m 30 byte
ế
ệ
ụ
ậ
ỗ
ồ
t port n i ti p ch đ UART 9 bit, bit th 9 là bit parity l . N u data nh n
ừ
ố ế ở
ế ộ
ứ
ẻ
ế
ậ
đ
c không b l i thì ghi vào 1 vùng nh c a RAM n i, n u b l i thì không
ượ
ị ỗ
ớ ủ
ộ
ế
ị ỗ
ghi. CT g i CT con NHAP s đ t đ a ch đ u c a vùng nh vào thanh ghi R0
ọ
ẽ ặ ị
ỉ ầ
ủ
ớ
tr
c khi g i CT con NHAP. Gi s port n i ti p đã đ
c kh i đ ng.
ướ
ọ
ả ử
ố ế
ượ
ở ộ
5. INTERRUPT
5.1 Vi t CT dùng ng t Timer đ t o sóng vuông f=2KHz t i P1.7. (Xtal
ế
ắ
ể ạ
ạ
12MHz).
5.2 Vi t CT dùng ng t Timer đ t o sóng vuông f=200Hz t i P1.6. (Xtal
ế
ắ
ể ạ
ạ
12MHz).
5.3 Vi t CT dùng ng t Timer đ t o đ ng th i 2 sóng vuông 1KHz và 50Hz
ế
ắ
ể ạ
ồ
ờ
t i P1.0 và P1.1. (Xtal 6MHz)
ạ
Trang
7/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
5.4 Vi t CT l y 1 chu i data ch a trong Ram ngoài b t đ u t đ a ch 6200H
ế
ấ
ỗ
ứ
ắ ầ ừ ị
ỉ
đ n đ a ch 62FFH và xu t ra Port1, m i l n xu t cách nhau 50ms. S d ng
ế
ị
ỉ
ấ
ỗ ầ
ấ
ử ụ
ng t Timer. Xtal 12MHz.
ắ
5.5 Vi t CT nh p data t thi t b ngoài k t n i v i 8051 qua Port1, m i l n
ế
ậ
ừ
ế ị
ế ố ớ
ỗ ầ
nh p cách nhau 5s, data nh p v đ
c ghi vào vùng Ram n i b t đ u t đ a
ậ
ậ
ề ượ
ộ ắ ầ ừ ị
ch 50H đ n đ a ch 5FH. Bi t r ng sau khi ghi vào ô nh cu i cùng thì tr l i
ỉ
ế
ị
ỉ
ế ằ
ớ
ố
ở ạ
ghi vào ô nh đ u. S d ng ng t Timer. Xtal 12MHz.
ớ ầ
ử ụ
ắ
5.6 Vi t CT phát liên t c chu i s t 0 đ n 9 ra port n i ti p theo ch đ
ế
ụ
ỗ ố ừ
ế
ố ế
ế ộ
UART 8 bit, 2400 baud. S d ng ng t serial. Xtal 12MHz.
ử ụ
ắ
5.7 Vi t CT ch nh n data t 1 thi t b ngoài g i đ n 8051 qua port n i ti p
ế
ờ
ậ
ừ
ế ị
ở ế
ố ế
(ch đ UART 8 bit, 19200 baud). N u nh n đ
c ký t STX (02H) thì b t
ế ộ
ế
ậ
ượ
ự
ậ
sáng LED, n u nh n đ
c ký t ETX (03H) thì t t LED, bi t r ng LED đ
c
ế
ậ
ượ
ự
ắ
ế ằ
ượ
đi u khi n b ng ngõ P1.3 (LED sáng khi bit đi u khi n b ng 1). S d ng
ề
ể
ằ
ề
ể
ằ
ử ụ
ng t serial. Xtal 11,059MHz.
ắ
5.8 Vi t CT ch nh n 1 xung c nh xu ng đ a vào chân /INT0 (P3.2), khi có
ế
ờ
ậ
ạ
ố
ư
xung thì nh p data t Port1 và phát ra port n i ti p ch đ UART 9 bit 4800
ậ
ừ
ố ế ở
ế ộ
baud, bit th 9 là bit parity l . Xtal 6MHz.
ứ
ẻ
5.9 Vi t CT đ m s xung đ a vào chân /INT1 (P3.3) và đi u khi n relay thông
ế
ế
ố
ư
ề
ể
qua chân P3.0 (relay đóng khi P3.0 b ng 1), c t s đ m vào ô nh 40H c a
ằ
ấ ố ế
ớ
ủ
Ram n i, n u s đ m ch a đ n 100 thì đóng relay, n u s đ m đ t 100 thì
ộ
ế ố ế
ư
ế
ế ố ế
ạ
ng t relay.
ắ
ĐÁP ÁN VI X LÝ (H VI ĐI U KHI N 8051)
Ử
Ọ
Ề
Ể
1. C U TRÚC PH N C NG - GI I MÃ Đ A CH
Ấ
Ầ
Ứ
Ả
Ị
Ỉ
1.1 S d ng 1 vi m ch 74138 và các c ng c n thi t đ thi t k m ch gi i mã
ử ụ
ạ
ổ
ầ
ế ể
ế ế ạ
ả
đ a ch t o ra các tín hi u ch n chip t
ng ng các vùng đ a ch sau:
ị
ỉ ạ
ệ
ọ
ươ
ứ
ị
ỉ
Tín hi u ch n chip Vùng đ a ch Đ c tính truy xu t
ệ
ọ
ị
ỉ ặ
ấ
0000H - 3FFFH
4000H - 7FFFH
6000H - 7FFFH
8000H - 87FFH
Trang
8/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
8800H - 8FFFH
1.2 S d ng 1 vi m ch 74138 và các c ng c n thi t đ thi t k m ch gi i mã
ử ụ
ạ
ổ
ầ
ế ể
ế ế ạ
ả
đ a ch t o ra các tín hi u ch n chip t
ng ng các vùng đ a ch sau:
ị
ỉ ạ
ệ
ọ
ươ
ứ
ị
ỉ
Tín hi u ch n chip Vùng đ a ch Đ c tính truy xu t
ệ
ọ
ị
ỉ ặ
ấ
9800H - 9BFFH
9800H - 9BFFH
9C00H - 9DFFH
9E00H - 9EFFH
1.3 Ch dùng m t vi m ch 74138 (không dùng thêm c ng), thi t k m ch gi i
ỉ
ộ
ạ
ổ
ế ế ạ
ả
mã đ a ch t o ra m t tín hi u ch n chip /CS t
ng ng t m đ a ch F000H-
ị
ỉ ạ
ộ
ệ
ọ
ươ
ứ
ầ
ị
ỉ
F3FFH.
2. S D NG T P L NH
Ử Ụ
Ậ
Ệ
Truy xu t RAM n i
ấ
ộ
2.1 Vi t CT ghi 40H vào ô nh 30H c a RAM n i theo 2 cách (đ nh đ a ch ô
ế
ớ
ủ
ộ
ị
ị
ỉ
nh tr c ti p và đ nh đ a ch ô nh gián ti p).
ớ ự
ế
ị
ị
ỉ
ớ
ế
Cách 1: Đ nh đ a ch tr c ti p
ị
ị
ỉ ự
ế
ORG 0000H
MOV 30H,#40H
END
Cách 2: Đ nh đ a ch gián ti p
ị
ị
ỉ
ế
ORG 0000H
MOV R0,#30H
MOV @R0,#40H
END
2.2 Vi t CT xóa ô nh 31H c a RAM n i theo 2 cách (đ nh đ a ch ô nh tr c
ế
ớ
ủ
ộ
ị
ị
ỉ
ớ ự
ti p và đ nh đ a ch ô nh gián ti p).
ế
ị
ị
ỉ
ớ
ế
HD: Xóa là ghi giá tr 0.
ị
ORG 0000H
MOV 31H,#OOOOH
END.
C2
ORG
Trang
9/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
MOV R0,#31H
MOV @R0,#0000H
END.
2.3 Vi t CT ghi n i dung thanh ghi A vào ô nh 32H c a RAM n i theo 2 cách
ế
ộ
ớ
ủ
ộ
(đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).
ị
ị
ỉ
ớ ự
ế
ị
ị
ỉ
ớ
ế
CÁCH 1:
ORG 0000H
MOV 32H,A
END
CÁCH 2:
ORG 0000H
MOV R0,#32H
MOV @R0,A
END
2.4 Vi t CT đ c ô nh 33H c a RAM n i vào thanh ghi A theo 2 cách (đ nh
ế
ọ
ớ
ủ
ộ
ị
đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).
ị
ỉ
ớ ự
ế
ị
ị
ỉ
ớ
ế
CÁCH 1:
ORG 0000H
MOV A,33H
END
CÁCH 2:
ORG 0000H
MOV R0,#33H
MOV A,@R0
END
2.5 Vi t CT chuy n d li u ô nh 34H c a RAM n i vào ô nh 35H c a
ế
ể
ữ ệ
ớ
ủ
ộ
ớ
ủ
RAM n i theo 2 cách (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián
ộ
ị
ị
ỉ
ớ ự
ế
ị
ị
ỉ
ớ
ti p).
ế
CÁCH 1:
ORG 0000H
MOV 35H,34H
END
CÁCH 2:
ORG 0000H
MOV R0,#34H
MOV A,@R0
INC R0
MOV @R0,A
END
Truy xu t RAM ngoài
ấ
2.6 Vi t CT ghi 40H vào ô nh 0030H c a RAM ngoài.
ế
ớ
ủ
ORG 0000H
MOV A,#40H
Trang
10/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
MOV DPTR,#0030H
MOVX @DPTR,A
END
2.7 Vi t CT xóa ô nh 0031H c a RAM ngoài.
ế
ớ
ủ
ORG 0000H
MOV A,#0000H
MOV DPTR,#0031H
MOVX @DPTR,A
END.
HD: Ghi giá tr 0.
ị
2.8 Vi t CT đ c ô nh 0032H c a RAM ngoài vào thanh ghi A.
ế
ọ
ớ
ủ
ORG 0000H
MOV DPTR,#0032H
MOVX A,@DPTR
END
2.8 Vi t CT ghi n i dung thanh ghi A vào ô nh 0033H c a RAM ngoài.
ế
ộ
ớ
ủ
ORG 0000H
MOV DPTR,#0033H
MOVX @DPTR,A
END
2.10 Vi t CT chuy n d li u ô nh 0034H c a RAM ngoài vào ô nh 0035H
ế
ể
ữ ệ
ớ
ủ
ớ
c a RAM ngoài.
ủ
ORG 0000H
MOV DPTR,#0034H
MOVX A,@DPTR
INC DPTR
MOVX @DPTR,A
END
Truy xu t Port
ấ
2.11 Vi t CT xu t 0FH ra Port 1.
ế
ấ
ORG 0000H
MOV P1,#0FH
END
2.12 Vi t CT xu t F0H ra Port 2.
ế
ấ
2.13 Vi t CT xu t n i dung thanh ghi A ra Port 1.
ế
ấ ộ
ORG 0000H
MOV P1,A
END
2.14 Vi t CT nh p t Port 1 vào thanh ghi A.
ế
ậ ừ
ORG 0000H
MOV A,P1
END
2.15 Vi t CT nh p t Port 1 và xu t ra Port 2. 0FH
ế
ậ ừ
ấ
Trang
11/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
ORG 0000H
MOV 0FH,P1
MOV P2,#0FH
END
2.16 Vi t CT xu t 1 (m c logic cao) ra chân P1.0
ế
ấ
ứ
ORG 0000H
SETB P1.0
END
2.17 Vi t CT xu t 0 (m c logic th p) ra chân P1.1
ế
ấ
ứ
ấ
ORG 0000H
CLR P1.1
END
Truy xu t RAM n i, RAM ngoài và Port
ấ
ộ
2.18 Vi t CT chuy n d li u ô nh 40H (RAM n i) đ n ô nh 2000H (RAM
ế
ể
ữ ệ
ớ
ộ
ế
ớ
ngoài). Làm theo 2 cách (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián
ị
ị
ỉ
ớ ự
ế
ị
ị
ỉ
ớ
ti p).
ế
CÁCH 1:
ORG 0000H
MOV A,40H
MOV DPTR,#2000H
MOVX @DPTR,A
END
CÁCH 2:
ORG 0000H
MOV R0,#40H
MOV DPTR,#2000H
MOV A,@R0
MOVX @DPTR,A
END
2.19 Vi t CT chuy n d li u ô nh 2001H (RAM ngoài) vào ô nh 41H (RAM
ế
ể
ữ ệ
ớ
ớ
n i). Làm theo 2 cách (đ nh đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián
ộ
ị
ị
ỉ
ớ ự
ế
ị
ị
ỉ
ớ
ti p).
ế
ORG 0000H
MOV DPRT,#2001H
MOV A,41H
MOVX A,@DPRT
END
C2
ORG 0000H
2.20 Vi t CT nh p t Port 1 vào ô nh 42H (RAM n i). Làm theo 2 cách (đ nh
ế
ậ ừ
ớ
ộ
ị
đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).
ị
ỉ
ớ ự
ế
ị
ị
ỉ
ớ
ế
Trang
12/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
CÁCH 1:
ORG 0000H
MOV 42H,P1
END
CÁCH 2:
ORG 0000H
MOV R0,#40H
MOV @R0,P1
END
2.21 Vi t CT nh p t Port 1 vào ô nh 2002H (RAM ngoài).
ế
ậ ừ
ớ
ORG 0000H
MOV DPTR,#2002H
MOV A,P1
MOVX @DPTR,A
END
2.22 Vi t CT l y ô nh 43H (RAM n i) xu t ra Port 1. Làm theo 2 cách (đ nh
ế
ấ
ớ
ộ
ấ
ị
đ a ch ô nh tr c ti p và đ nh đ a ch ô nh gián ti p).
ị
ỉ
ớ ự
ế
ị
ị
ỉ
ớ
ế
2.23 Vi t CT l y ô nh 2003H (RAM ngoài) xu t ra Port 1.
ế
ấ
ớ
ấ
S d ng vòng l p
ử ụ
ặ
2.24 Vi t CT xóa 20 ô nh RAM n i có đ a ch b t đ u là 30H.
ế
ớ
ộ
ị
ỉ ắ ầ
ORG 0000H
MOV R0,#30H
MOV R2,#20
laplai:
MOV @R0,#0
INC R0
DJNZ R2,laplai
END
2.25 Vi t CT xóa các ô nh RAM n i t đ a ch 20H đ n 7FH.
ế
ớ
ộ ừ ị
ỉ
ế
ORG 0000H
MOV R0,#20H
laplai:
MOV @R0,#0
INC R0
CJNE R0,#80H,laplai
END
2.26 Vi t CT xóa 250 ô nh RAM ngoài có đ a ch b t đ u là 4000H.
ế
ớ
ị
ỉ ắ ầ
ORG 0000H
MOV DPTR,#4000H
CLR A
MOV R7,#250
lap1: MOVX @DPTR,A
INC DPTR
Trang
13/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
DJNZ R7,lap1
END
2.27 Vi t CT xóa 2500 ô nh RAM ngoài có đ a ch b t đ u là 4000H.
ế
ớ
ị
ỉ ắ ầ
ORG 0000H
MOV DPTR,#4000H
CLR A
MOV R6,#10
lap2: MOV R7,#250
lap1: MOVX @DPTR,A
INC DPTR
DJNZ R7,lap1
DJNZ R6,lap2
END
2.28 Vi t CT xóa toàn b RAM ngoài có dung l
ng 8KB, bi t r ng đ a ch
ế
ộ
ượ
ế ằ
ị
ỉ
đ u là 2000H.
ầ
HD: 8KB = 8192Byte
2.29 Vi t CT chuy n m t chu i d li u g m 10 byte trong RAM n i có đ a
ế
ể
ộ
ỗ ữ ệ
ồ
ộ
ị
ch đ u là 30H đ n vùng RAM n i có đ a ch đ u là 40H.
ỉ ầ
ế
ộ
ị
ỉ ầ
ORG 0000H
MOV R0,#30H
MOV R1,#40H
MOV R2,#10
lap: MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R2,lap
END
2.30 Vi t CT chuy n m t chu i d li u g m 100 byte trong RAM ngoài có đ a
ế
ể
ộ
ỗ ữ ệ
ồ
ị
ch đ u là 2000H đ n vùng RAM ngoài có đ a ch đ u là 4000H.
ỉ ầ
ế
ị
ỉ ầ
ORG 0000H
MOV R0,#100H
Lap
MOV DPRT,#2000H
MOVX A,@DPRT
MOV DPRT,#4000H
MOVX @DPRT,A
INC DPRT
DJNZ R0,Lap
END.`
2.31 Vi t CT chuy n m t chu i d li u g m 10 byte trong RAM n i có đ a
ế
ể
ộ
ỗ ữ ệ
ồ
ộ
ị
ch đ u là 30H đ n vùng RAM ngoài có đ a ch đ u là 4000H.
ỉ ầ
ế
ị
ỉ ầ
ORG 0000H
Trang
14/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
MOV R0,#30H
MOV DPTR,#4000H
MOV R3,#10
lap: MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R3,lap`
END
2.32 Vi t CT chuy n m t chu i d li u g m 10 byte trong RAM ngoài có đ a
ế
ể
ộ
ỗ ữ ệ
ồ
ị
ch đ u là 5F00H đ n vùng RAM n i có đ a ch đ u là 40H.
ỉ ầ
ế
ộ
ị
ỉ ầ
2.33 Cho m t chu i d li u g m 20 byte liên ti p trong RAM n i, b t đ u t
ộ
ỗ ữ ệ
ồ
ế
ộ
ắ ầ ừ
đ a ch 20H. Hãy vi t CT l n l
t xu t các d ki u này ra Port 1.
ị
ỉ
ế
ầ ượ
ấ
ữ ệ
2.34 Gi s Port 1 đ
c n i đ n m t thi t b phát d li u (ví d nh 8 nút
ả ử
ượ
ố ế
ộ
ế ị
ữ ệ
ụ
ư
nh n). Hãy vi t CT nh n liên ti p 10 byte d li u t thi t b phát này và ghi
ấ
ế
ậ
ế
ữ ệ ừ
ế ị
vào 10 ô nh (RAM n i) liên ti p b t đ u t ô nh 50H.
ớ
ộ
ế
ắ ầ ừ
ớ
ORG 0000H
MOV R0,#50H
MOV R4,#10
loop: MOV @R0,P1
INC R0
DJNZ R4,loop
END
T o tr (delay)
ạ
ễ
2.35 Vi t CT con delay 100μs, bi t r ng th ch anh (xtal) dùng trong h th ng
ế
ế ằ
ạ
ệ ố
là:
a. 12 MHz
V i th ch anh 12MHz thì chu ký máy TM = 1μs. Do đó, 100 μs = 100 TM
ớ
ạ
(chu ky may)ctcondelay:
MOV R2,#50
DJNZ R2,$
RET
b. 6 MHz
V i th ch anh 6MHz thì chu ký máy TM = 2μs. Do đó, 100 μs = 50 TM
ớ
ạ
ctcondelay:
MOV R2,#25
DJNZ R2,$
RET
2.36 Vi t CT con delay 100ms, bi t r ng th ch anh (xtal) dùng trong h th ng
ế
ế ằ
ạ
ệ ố
là:
a. 12 MHz
V i th ch anh 12MHz thì chu ký máy TM = 1μs. Do đó, 100 ms = 100000 TM
ớ
ạ
ctcondelay:
Trang
15/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
MOV R3,#200
lap: MOV R2,#250
DJNZ R2,$ (lenh rong, tao xung 250)
DJNZ R3,#lap
RET
b. 11,0592 MHz
2.37 Vi t CT con delay 1s, bi t r ng th ch anh (xtal) dùng trong h th ng
ế
ế ằ
ạ
ệ ố
là:1000ms
a. 12 MHz
b. 24 MHz
T o xung
ạ
2.38 Vi t CT t o m t xung d
ng ( ) t i chân P1.0 v i đ r ng xung 1ms,
ế
ạ
ộ
ươ
ạ
ớ ộ ộ
bi t r ng xtal là 12 MHz.
ế ằ
CÁCH 1:
ORG 0000H
CLR P1.0
SETB P1.0
MOV R3,#2
lap: MOV R2,#250
DJNZ R2,$
DJNZ R3,lap
CLR P1.0
END
CÁCH 2:
ORG 0000H
CLR P1.0
SETB P1.0
ACALL delay1ms
CLR P1.0
SJMP ketthuc (la lenh nhay ngan, dieu khien chuong trinh re nhanh
delay1ms: den dia chi duoc tro den)
MOV R3,#2
lap: MOV R2,#250
DJNZ R2,$
DJNZ R3,lap
RET
ketthuc:
NOP
END
2.39 Vi t CT t o chu i xung vuông có f = 100 KHz t i chân P1.1 (Xtal 12
ế
ạ
ỗ
ạ
MHz).
ORG 0000H
lap: CPL P1.1
Trang
16/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
NOP
NOP
SJMP lap
END
2.40 Vi t CT t o chu i xung vuông có f = 100 KHz và có chu kỳ làm vi c D =
ế
ạ
ỗ
ệ
40% t i chân P1.2 (Xtal 12 MHz).
ạ
ORG 0000H
lap: SETB P1.2
NOP
NOP
NOP
CLR P1.2
NOP
NOP
NOP
SJMP lap
END
2.41 Vi t CT t o chu i xung vuông có f = 10 KHz t i chân P1.3 (Xtal 24
ế
ạ
ỗ
ạ
MHz).
ORG 0000H
lap: CPL P1.3
ACALL delay50
SJMP lap
delay50:
MOV R4,#25
DJNZ R4,$
RET
END
2.42 Vi t CT t o chu i xung vuông có f = 10 KHz và có chu kỳ làm vi c D =
ế
ạ
ỗ
ệ
30% t i chân P1.3 (Xtal 24 MHz).
ạ
ORG 0000H
lap: SETB P1.3
ACALL delay30
CLR P1.3
ACALL delay70
SJMP lap
delay30:
MOV R4,#15
DJNZ R4,$
RET
delay70:
MOV R4,#35
DJNZ R4,$
Trang
17/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
RET
END
2.43 Vi t CT t o chu i xung vuông có f = 10 Hz t i chân P1.4 (Xtal 12 MHz).
ế
ạ
ỗ
ạ
2.44 Vi t CT t o chu i xung vuông có f = 10 Hz và có chu kỳ làm vi c D =
ế
ạ
ỗ
ệ
25% t i chân P1.5 (Xtal 12 MHz).
ạ
Các phép toán
2.45 Cho m t chu i s 8 bit không d u trong RAM n i g m 10 s b t đ u t
ộ
ỗ ố
ấ
ộ ồ
ố ắ ầ ừ
ô nh 30H. Hãy vi t CT con c ng chu i s này và ghi k t qu vào ô nh 2FH
ớ
ế
ộ
ỗ ố
ế
ả
ớ
(gi s k t qu nh h n ho c b ng 255).
ả ử ế
ả
ỏ ơ
ặ
ằ
ORG 0000H
MOV R0,#30H
CLR A
MOV R2,#10
lap: ADD A,@R0
INC R0
DJNZ R2,lap
MOV 2FH,A
END
2.46 Cho m t chu i s 8 bit không d u trong RAM n i g m 10 s b t đ u t
ộ
ỗ ố
ấ
ộ ồ
ố ắ ầ ừ
ô nh 30H. Hãy vi t CT con c ng chu i s này và ghi k t qu vào ô nh
ớ
ế
ộ
ỗ ố
ế
ả
ớ
2EH:2FH (ô nh 2EH ch a byte cao c a k t qu và ô nh 2FH ch a byte th p
ớ
ứ
ủ
ế
ả
ớ
ứ
ấ
c a k t qu ).
ủ
ế
ả
ORG 0000H
MOV R0,#30H ;đ a ch b t đ u
ị
ỉ ắ ầ
MOV R2,#10 ;s l n l p
ố ầ ặ
CLR A ;byte th p c a k t qu
ấ
ủ
ế
ả
MOV 2EH,#0000H ;byte cao c a k t qu
ủ
ế
ả
CLR C
lap: ADD A,@R0
JNC boqua ; (nhay neu co carry flag nho khong duoc set bang 1)
INC 2EH
boqua:INC R0
DJNZ R2,lap
MOV 2FH,A
END
2.47 Cho m t chu i s 16 bit không d u trong RAM n i g m 10 s b t đ u t
ộ
ỗ ố
ấ
ộ ồ
ố ắ ầ ừ
ô nh 30H theo nguyên t c ô nh có đ a ch nh h n ch a byte cao và ô nh có
ớ
ắ
ớ
ị
ỉ
ỏ ơ
ứ
ớ
đ a ch l n h n ch a byte th p. (Ví d : byte cao c a s 16 bit đ u tiên đ
c
ị
ỉ ớ
ơ
ứ
ấ
ụ
ủ ố
ầ
ượ
c t t i ô nh 30H và byte th p c a s 16 bit đ u tiên đ
c c t t i ô nh 31H).
ấ ạ
ớ
ấ
ủ ố
ầ
ượ ấ ạ
ớ
Hãy vi t CT con c ng chu i s này và c t k t qu vào ô nh 2EH:2FH.
ế
ộ
ỗ ố
ấ ế
ả
ớ
2.48 Vi t CT con l y bù 2 s 16 bit ch a trong R2:R3.
ế
ấ
ố
ứ
Trang
18/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
So sánh
2.49 Cho hai s 8 bit, s th 1 ch a trong (30H), s th 2 ch a trong (31H).
ố
ố ứ
ứ
ố ứ
ứ
Vi t CT con so sánh hai s này. N u s th 1 l n h n ho c b ng s th 2 thì
ế
ố
ế ố ứ
ớ
ơ
ặ
ằ
ố ứ
set c F0, n u ng
c l i thì xóa c F0.
ờ
ế
ượ ạ
ờ
ORG 0000H
MOV A,30H
CJNE A,31H,ke hoac CJNE A,31H,$+3
ke: JNC lonhoacbang JNC lonhoacbang
CLR F0
SJMP tiep
lonhoacbang:
SETB F0
tiep: NOP
END
2.50 Cho hai s 16 bit, s th 1 ch a trong (30H):(31H), s th 2 ch a trong
ố
ố ứ
ứ
ố ứ
ứ
(32H):(33H). Vi t CT con so sánh hai s này. N u s th 1 l n h n ho c b ng
ế
ố
ế ố ứ
ớ
ơ
ặ
ằ
s th 2 thì set c F0, n u ng
c l i thì xóa c F0.
ố ứ
ờ
ế
ượ ạ
ờ
2.51 Cho m t chu i ký t d
i d ng mã ASCII trong RAM n i, dài 20 byte,
ộ
ỗ
ự ướ ạ
ộ
b t đ u t đ a ch 50H. Vi t CT xu t các ký t in hoa có trong chu i này ra
ắ ầ ừ ị
ỉ
ế
ấ
ự
ỗ
Port 1. Bi t r ng mã ASCII c a ký t in hoa là t 65 (ch A) đ n 90 (ch Z).
ế ằ
ủ
ự
ừ
ữ
ế
ữ
ORG 0000H
MOV R0,#50H
MOV R3,#20
lap: MOV A,@R0
CJNE A,#65,ke hoac CJNE A,#65,$+3
ke: JC boqua JC boqua
CJNE A,#91,ke2 CJNE A,#91,$+3
ke2: JNC boqua JNC boqua
MOV P1,A
boqua:INC R0
DJNZ R3,lap
END
2.52 Vi t CT nh p m t chu i ký t t Port 1 d
i d ng mã ASCII và ghi vào
ế
ậ
ộ
ỗ
ự ừ
ướ ạ
RAM ngoài, b t đ u t đ a ch 0000H. Bi t r ng chu i này k t thúc b ng ký
ắ ầ ừ ị
ỉ
ế ằ
ỗ
ế
ằ
t CR (có mã ASCII là 0DH) và ghi c ký t này vào RAM.
ự
ả
ự
ORG 0000H
MOV DPTR,#0000H
tiep: MOV A,P1
MOVX @DPTR,A
INC DPTR
CJNE A,#0DH,tiep
END
2.53 Vi t CT nh p m t chu i ký t t Port 1 d
i d ng mã ASCII và ghi vào
ế
ậ
ộ
ỗ
ự ừ
ướ ạ
Trang
19/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
RAM ngoài, b t đ u t đ a ch 0000H. Bi t r ng chu i này k t thúc b ng ký
ắ ầ ừ ị
ỉ
ế ằ
ỗ
ế
ằ
t CR (có mã ASCII là 0DH) và không ghi ký t này vào RAM.
ự
ự
ORG 0000H
MOV DPTR,#0000H
lap: MOV A,P1
CJNE A,#0DH,tiep
SJMP ketthuc
tiep: MOVX @DPTR,A
INC DPTR
SJMP lap
ketthuc:
NOP
END
2.54 Vi t CT nh p m t chu i ký t t Port 1 d
i d ng mã ASCII và ghi vào
ế
ậ
ộ
ỗ
ự ừ
ướ ạ
RAM ngoài, b t đ u t đ a ch 0000H. Bi t r ng chu i này k t thúc b ng ký
ắ ầ ừ ị
ỉ
ế ằ
ỗ
ế
ằ
t CR (có mã ASCII là 0DH) và không ghi ký t này vào RAM mà thay b ng
ự
ự
ằ
ký t null (có mã ASCII là 00H).
ự
2.55 Cho m t chu i ký t d
i d ng mã ASCII trong RAM n i, dài 20 byte,
ộ
ỗ
ự ướ ạ
ộ
b t đ u t đ a ch 50H. Vi t CT đ i các ký t in hoa có trong chu i này thành
ắ ầ ừ ị
ỉ
ế
ổ
ự
ỗ
ký t th
ng. Bi t r ng mã ASCII c a ký t th
ng b ng mã ASCII c a ký
ự ườ
ế ằ
ủ
ự ườ
ằ
ủ
t in hoa c ng thêm 32.
ự
ộ
2.56 Cho m t chu i ký t s d
i d ng mã ASCII trong RAM n i, dài 20
ộ
ỗ
ự ố ướ ạ
ộ
byte, b t đ u t đ a ch 50H. Vi t CT đ i các ký t s này thành mã BCD.
ắ ầ ừ ị
ỉ
ế
ổ
ự ố
Bi t r ng mã ASCII c a các ký t s là t 30H (s 0) đ n 39H (s 9).
ế ằ
ủ
ự ố
ừ
ố
ế
ố
S d ng l nh nh y có đi u ki n
ử ụ
ệ
ả
ề
ệ
2.57 Cho m t chu i d li u d
i d ng s có d u trong RAM ngoài, dài 100
ộ
ỗ ữ ệ
ướ ạ
ố
ấ
byte, b t đ u t đ a ch 0100H. Vi t CT l n l
t xu t các d li u trong chu i
ắ ầ ừ ị
ỉ
ế
ầ ượ
ấ
ữ ệ
ỗ
ra Port 1 n u là s d
ng (xem s 0 là d
ng) và xu t ra Port 2 n u là s âm.
ế
ố ươ
ố
ươ
ấ
ế
ố
ORG 0000H
MOV DPTR,#0100H
MOV R4,#100
lap: MOVX A,@DPTR
JNB ACC.7,duong
MOV P2,A
SJMP tiep
duong:MOV P1,A
tiep: INC DPTR
DJNZ R4,lap
END
2.58 Cho m t chu i d li u d
i d ng s có d u trong RAM ngoài, b t đ u
ộ
ỗ ữ ệ
ướ ạ
ố
ấ
ắ ầ
t đ a ch 0100H và k t thúc b ng s 0. Vi t CT l n l
t xu t các d li u
ừ ị
ỉ
ế
ằ
ố
ế
ầ ượ
ấ
ữ ệ
trong chu i ra Port 1 n u là s d
ng và xu t ra Port 2 n u là s âm.
ỗ
ế
ố ươ
ấ
ế
ố
ORG 0000H
Trang
20/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
MOV DPTR,#0100H
lap: MOVX A,@DPTR
JNB ACC.7,duong
MOV P2,A
SJMP tiep
duong:MOV P1,A
tiep: INC DPTR
CJNE A,#0,lap
END
2.59 Cho m t chu i d li u d
i d ng s không d u trong RAM ngoài, b t
ộ
ỗ ữ ệ
ướ ạ
ố
ấ
ắ
đ u t đ a ch 0100H và đ dài chu i là n i dung ô nh 00FFH. Vi t CT đ m
ầ ừ ị
ỉ
ộ
ỗ
ộ
ớ
ế
ế
s s ch n (chia h t cho 2) có trong chu i và c t vào ô nh 00FEH.
ố ố
ẵ
ế
ỗ
ấ
ớ
HD: S ch n có LSB=0
ố
ẵ
2.60 Cho m t chu i d li u d
i d ng s không d u trong RAM ngoài, b t
ộ
ỗ ữ ệ
ướ ạ
ố
ấ
ắ
đ u t đ a ch 0100H và đ dài chu i là n i dung ô nh 00FFH. Vi t CT ghi
ầ ừ ị
ỉ
ộ
ỗ
ộ
ớ
ế
các s ch n (xem s 0 là s ch n) có trong chu i vào RAM n i b t đ u t đ a
ố
ẵ
ố
ố
ẵ
ỗ
ộ ắ ầ ừ ị
ch 30H cho đ n khi g p s l thì d ng.
ỉ
ế
ặ ố ẻ
ừ
2.61 Vi t CT con có nhi m v l y 1 byte t 1 chu i data g m 20 byte c t
ế
ệ
ụ ấ
ừ
ỗ
ồ
ấ
trong Ram ngoài b t đ u t đ a ch 2000H và xu t ra Port1. M i l n g i CT
ắ ầ ừ ị
ỉ
ấ
ỗ ầ
ọ
con ch xu t 1 byte, l n g i k thì xu t byte k ti p, l n g i th 21 thì l i
ỉ
ấ
ầ
ọ ế
ấ
ế ế
ầ
ọ
ứ
ạ
xu t byte đ u, ...
ấ
ầ
3. TIMER
3.1 Vi t CT con mang tên DELAY500 có nhi m v t o tr 0,5ms dùng Timer.
ế
ệ
ụ ạ
ễ
(Xtal 6MHz).
…
MOV TMOD,#00000010B
…
delay500:
MOV TL0,#-250
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
RET
3.2 Vi t CT con mang tên DELAY10 có nhi m v t o tr 10ms dùng Timer.
ế
ệ
ụ ạ
ễ
(Xtal 12MHz).
…
MOV TMOD,#00000001B
…
delay10:
MOV TH0,#HIGH(-10000)
MOV TL0,#LOW(-10000)
SETB TR0
Trang
21/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
JNB TF0,$
CLR TR0
CLR TF0
RET
3.3 Dùng CT con DELAY500 (bài 3.1) đ vi t CT t o sóng vuông f=1KHz t i
ể ế
ạ
ạ
P1.0.
3.4 Dùng CT con DELAY10 (bài 3.2) đ vi t CT t o sóng vuông f=50Hz t i
ể ế
ạ
ạ
P1.1.
3.5 Dùng CT con DELAY500 (bài 3.1) đ vi t CT t o sóng vuông f=500Hz
ể ế
ạ
(D=25%) t i P1.2.
ạ
3.6 Dùng CT con DELAY10 (bài 3.2) đ vi t CT t o sóng vuông f=20Hz
ể ế
ạ
(D=20%) t i P1.3.
ạ
3.7 Vi t CT dùng Timer t o sóng vuông f=500Hz t i P1.4. (Xtal 12MHz).
ế
ạ
ạ
3.8 Vi t CT dùng Timer t o sóng vuông f=20KHz t i P1.5. (Xtal 24MHz).
ế
ạ
ạ
3.9 Vi t CT dùng Timer t o 2 sóng vuông có cùng f= 1KHz t i P1.6 và P1.7.
ế
ạ
ạ
Bi t r ng sóng vuông t i P1.7 ch m pha h n sóng vuông t i P1.6 100(s. (Xtal
ế ằ
ạ
ậ
ơ
ạ
12MHz).
3.10 Vi t CT dùng Timer đi u khi n đèn giao thông t i m t giao l . Cho bi t
ế
ề
ể
ạ
ộ
ộ
ế
r ng:
ằ
Đèn Bit đi u khi n Th i gian
ề
ể
ờ
Xanh 1 P1.0 25s
Vàng 1 P1.1 3s
Đ 1 P1.2
ỏ
Xanh 2 P1.3 33s
Vàng 2 P1.4 3s
Đ 2 P1.5
ỏ
Đèn sáng khi bit đi u khi n b ng 0.
ề
ể
ằ
4. SERIAL PORT
4.1 Vi t CT đ c 1 chu i data ch a trong RAM n i t đ a ch 30H đ n 50H và
ế
ọ
ỗ
ứ
ộ ừ ị
ỉ
ế
xu t ra 1 thi t b (ví d nh màn hình tinh th l ng LCD) đ
c n i v i port
ấ
ế ị
ụ
ư
ể ỏ
ượ
ố ớ
n i ti p c a 8051 (ch đ UART 8 bit, 2400 baud). Cho Xtal 11,059 MHz.
ố ế
ủ
ế ộ
ORG 0000H
MOV TMOD,#00100000B
MOV SCON,#01010010B
MOV TH1,#-12
SETB TR1
MOV R0,#30H
lap: MOV A,@R0
JNB TI,$
CLR TI
MOV SBUF,A
INC R0
CJNE R0,#51H,lap
Trang
22/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
END
4.2 Vi t CT nh n 1 chu i data t 1 thi t b ngoài (ví d nh máy đ c mã
ế
ậ
ỗ
ừ
ế ị
ụ
ư
ọ
v ch) n i v i 8051 qua port n i ti p (ch đ UART 8 bit, 4800 baud) và ghi
ạ
ố ớ
ố ế
ế ộ
data vào RAM n i t đ a ch 40H. Bi t r ng chu i data g m 20 byte và Xtal
ộ ừ ị
ỉ
ế ằ
ỗ
ồ
11,059MHz.
ORG 0000H
MOV TMOD,#00100000B
MOV SCON,#01010010B
MOV TH1,#-6
SETB TR1
MOV R0,#40H
MOV R2,#20
lap: JNB RI,$
CLR RI
MOV A,SBUF
MOV @R0,A
INC R0
DJNZ R2,lap
END
4.3 Vi t CT l y 1 chu i data ch a trong RAM ngoài b t đ u t đ a ch 2000H
ế
ấ
ỗ
ứ
ắ ầ ừ ị
ỉ
và xu t ra 1 thi t b đ
c n i v i port n i ti p c a 8051 (ch đ UART 8 bit,
ấ
ế ị ượ
ố ớ
ố ế
ủ
ế ộ
1200 baud). Chu i k t thúc b i ký t EOT (có mã ASCII là 04H) và ký t này
ỗ ế
ở
ự
ự
cũng đ
c xu t ra (Xtal 11,059 MHz).
ượ
ấ
4.4 Làm l i bài 4.3 nh ng không xu t ký t EOT.
ạ
ư
ấ
ự
4.5 Vi t CT nh n 1 chu i data t 1 thi t b ngoài n i v i 8051 qua port n i
ế
ậ
ỗ
ừ
ế ị
ố ớ
ố
ti p (ch đ UART 8 bit, 9600 baud) và ghi data vào RAM ngoài b t đ u t
ế
ế ộ
ắ ầ ừ
đ a ch 4000H. Chu i data b t đ u b ng ký t STX (02H) và k t thúc b ng ký
ị
ỉ
ỗ
ắ ầ
ằ
ự
ế
ằ
t ETX (03H). Không ghi 2 ký t này vào RAM. Cho Xtal 11,059MHz.
ự
ự
4.6 Vi t CT con mang tên XUAT có nhi m v l y 1 chu i data ch a trong
ế
ệ
ụ ấ
ỗ
ứ
RAM ngoài xu t ra port n i ti p ch đ UART 9 bit. Bit th 9 là bit parity
ấ
ố ế ở
ế ộ
ứ
ch n. Chu i data k t thúc b ng ký t null (00H). CT g i CT con XUAT s đ t
ẵ
ỗ
ế
ằ
ự
ọ
ẽ ặ
đ a ch b t đ u c a chu i vào DPTR tr
c khi g i CT con XUAT. Gi s port
ị
ỉ ắ ầ
ủ
ỗ
ướ
ọ
ả ử
n i ti p đã đ
c kh i đ ng.
ố ế
ượ
ở ộ
4.7 Vi t CT con mang tên NHAP có nhi m v nh p 1 chu i data g m 30 byte
ế
ệ
ụ
ậ
ỗ
ồ
t port n i ti p ch đ UART 9 bit, bit th 9 là bit parity l . N u data nh n
ừ
ố ế ở
ế ộ
ứ
ẻ
ế
ậ
đ
c không b l i thì ghi vào 1 vùng nh c a RAM n i, n u b l i thì không
ượ
ị ỗ
ớ ủ
ộ
ế
ị ỗ
ghi. CT g i CT con NHAP s đ t đ a ch đ u c a vùng nh vào thanh ghi R0
ọ
ẽ ặ ị
ỉ ầ
ủ
ớ
tr
c khi g i CT con NHAP. Gi s port n i ti p đã đ
c kh i đ ng.
ướ
ọ
ả ử
ố ế
ượ
ở ộ
5. INTERRUPT
5.1 Vi t CT dùng ng t Timer đ t o sóng vuông f=2KHz t i P1.7. (Xtal
ế
ắ
ể ạ
ạ
12MHz).
5.2 Vi t CT dùng ng t Timer đ t o sóng vuông f=200Hz t i P1.6. (Xtal
ế
ắ
ể ạ
ạ
12MHz).
Trang
23/24
Đ i H c Bách Khoa TP.HCM – Khoa Đi n-Đi n T
ạ
ọ
ệ
ệ
ử
Lê Chí Thông
5.3 Vi t CT dùng ng t Timer đ t o đ ng th i 2 sóng vuông 1KHz và 50Hz
ế
ắ
ể ạ
ồ
ờ
t i P1.0 và P1.1. (Xtal 6MHz)
ạ
5.4 Vi t CT l y 1 chu i data ch a trong Ram ngoài b t đ u t đ a ch 6200H
ế
ấ
ỗ
ứ
ắ ầ ừ ị
ỉ
đ n đ a ch 62FFH và xu t ra Port1, m i l n xu t cách nhau 50ms. S d ng
ế
ị
ỉ
ấ
ỗ ầ
ấ
ử ụ
ng t Timer. Xtal 12MHz.
ắ
5.5 Vi t CT nh p data t thi t b ngoài k t n i v i 8051 qua Port1, m i l n
ế
ậ
ừ
ế ị
ế ố ớ
ỗ ầ
nh p cách nhau 5s, data nh p v đ
c ghi vào vùng Ram n i b t đ u t đ a
ậ
ậ
ề ượ
ộ ắ ầ ừ ị
ch 50H đ n đ a ch 5FH. Bi t r ng sau khi ghi vào ô nh cu i cùng thì tr l i
ỉ
ế
ị
ỉ
ế ằ
ớ
ố
ở ạ
ghi vào ô nh đ u. S d ng ng t Timer. Xtal 12MHz.
ớ ầ
ử ụ
ắ
5.6 Vi t CT phát liên t c chu i s t 0 đ n 9 ra port n i ti p theo ch đ
ế
ụ
ỗ ố ừ
ế
ố ế
ế ộ
UART 8 bit, 2400 baud. S d ng ng t serial. Xtal 12MHz.
ử ụ
ắ
5.7 Vi t CT ch nh n data t 1 thi t b ngoài g i đ n 8051 qua port n i ti p
ế
ờ
ậ
ừ
ế ị
ở ế
ố ế
(ch đ UART 8 bit, 19200 baud). N u nh n đ
c ký t STX (02H) thì b t
ế ộ
ế
ậ
ượ
ự
ậ
sáng LED, n u nh n đ
c ký t ETX (03H) thì t t LED, bi t r ng LED đ
c
ế
ậ
ượ
ự
ắ
ế ằ
ượ
đi u khi n b ng ngõ P1.3 (LED sáng khi bit đi u khi n b ng 1). S d ng
ề
ể
ằ
ề
ể
ằ
ử ụ
ng t serial. Xtal 11,059MHz.
ắ
5.8 Vi t CT ch nh n 1 xung c nh xu ng đ a vào chân /INT0 (P3.2), khi có
ế
ờ
ậ
ạ
ố
ư
xung thì nh p data t Port1 và phát ra port n i ti p ch đ UART 9 bit 4800
ậ
ừ
ố ế ở
ế ộ
baud, bit th 9 là bit parity l . Xtal 6MHz.
ứ
ẻ
5.9 Vi t CT đ m s xung đ a vào chân /INT1 (P3.3) và đi u khi n relay thông
ế
ế
ố
ư
ề
ể
qua chân P3.0 (relay đóng khi P3.0 b ng 1), c t s đ m vào ô nh 40H c a
ằ
ấ ố ế
ớ
ủ
Ram n i, n u s đ m ch a đ n 100 thì đóng relay, n u s đ m đ t 100 thì
ộ
ế ố ế
ư
ế
ế ố ế
ạ
ng t relay.
ắ
M y cái này có ích l m đ y pác nào b qua thi l thi vô thì đ ng có mà ti c
ấ
ắ
ấ
ỏ
ỡ
ừ
ế
nghe:0y34: :01p2: :0y36:
Trang
24/24