Đại Hc Bách Khoa TP.HCM – Khoa Đin-Đin T Lê Chí Thông
http://www.ebook.edu.vn Trang
1/6
BÀI TP VI X LÝ (H VI ĐIU KHIN 8051)
1. CU TRÚC PHN CNG - GII MÃ ĐỊA CH
1.1 S dng 1 vi mch 74138 và các cng cn thiết để thiết kế mch gii mã địa ch to ra các tín
hiu chn chip tương ng các vùng địa ch sau:
Tín hiu chn chip Vùng địa ch Đặc tính truy xut
0CS 0000H - 3FFFH PSEN
1CS 4000H - 7FFFH PSEN
2CS 6000H - 7FFFH WR,RD
3CS 8000H - 87FFH
R
D
4CS 8800H - 8FFFH WR
1.2 S dng 1 vi mch 74138 và các cng cn thiết để thiết kế mch gii mã địa ch to ra các tín
hiu chn chip tương ng các vùng địa ch sau:
Tín hiu chn chip Vùng địa ch Đặc tính truy xut
0CS 9800H - 9BFFH PSEN
1CS 9800H - 9BFFH WR,RD
2CS 9C00H - 9DFFH WR,RD
3CS 9E00H - 9EFFH WR,RD
1.3 Ch dùng mt vi mch 74138 (không dùng thêm cng), thiết kế mch gii mã địa ch to ra mt
tín hiu chn chip /CS tương ng tm địa ch F000H-F3FFH.
2. S DNG TP LNH
Truy xut RAM ni
2.1 Viết CT ghi 40H vào ô nh 30H ca RAM ni theo 2 cách (định địa ch ô nh trc tiếp và định
địa ch ô nh gián tiếp).
2.2 Viết CT xóa ô nh 31H ca RAM ni theo 2 cách (định địa ch ô nh trc tiếp và định địa ch ô
nh gián tiếp).
2.3 Viết CT ghi ni dung thanh ghi A vào ô nh 32H ca RAM ni theo 2 cách (định địa ch ô nh
trc tiếp và định địa ch ô nh gián tiếp).
2.4 Viết CT đọc ô nh 33H ca RAM ni vào thanh ghi A theo 2 cách (định địa ch ô nh trc tiếp
định địa ch ô nh gián tiếp).
2.5 Viết CT chuyn d liu ô nh 34H ca RAM ni vào ô nh 35H ca RAM ni theo 2 cách
(định địa ch ô nh trc tiếp và định địa ch ô nh gián tiếp).
Truy xut RAM ngoài
2.6 Viết CT ghi 40H vào ô nh 0030H ca RAM ngoài.
Đại Hc Bách Khoa TP.HCM – Khoa Đin-Đin T Lê Chí Thông
http://www.ebook.edu.vn Trang
2/6
2.7 Viết CT xóa ô nh 0031H ca RAM ngoài.
2.8 Viết CT đọc ô nh 0032H ca RAM ngoài vào thanh ghi A.
2.8 Viết CT ghi ni dung thanh ghi A vào ô nh 0033H ca RAM ngoài.
2.10 Viết CT chuyn d liu ô nh 0034H ca RAM ngoài vào ô nh 0035H ca RAM ngoài.
Truy xut Port
2.11 Viết CT xut 0FH ra Port 1.
2.12 Viết CT xut F0H ra Port 2.
2.13 Viết CT xut ni dung thanh ghi A ra Port 1.
2.14 Viết CT nhp t Port 1 vào thanh ghi A.
2.15 Viết CT nhp t Port 1 và xut ra Port 2.
2.16 Viết CT xut 1 (mc logic cao) ra chân P1.0
2.17 Viết CT xut 0 (mc logic thp) ra chân P1.1
Truy xut RAM ni, RAM ngoài và Port
2.18 Viết CT chuyn d liu ô nh 40H (RAM ni) đến ô nh 2000H (RAM ngoài). Làm theo 2
cách (định địa ch ô nh trc tiếp và định địa ch ô nh gián tiếp).
2.19 Viết CT chuyn d liu ô nh 2001H (RAM ngoài) vào ô nh 41H (RAM ni). Làm theo 2
cách (định địa ch ô nh trc tiếp và định địa ch ô nh gián tiếp).
2.20 Viết CT nhp t Port 1 vào ô nh 42H (RAM ni). Làm theo 2 cách (định địa ch ô nh trc
tiếp và định địa ch ô nh gián tiếp).
2.21 Viết CT nhp t Port 1 vào ô nh 2002H (RAM ngoài).
2.22 Viết CT ly ô nh 43H (RAM ni) xut ra Port 1. Làm theo 2 cách (định địa ch ô nh trc
tiếp và định địa ch ô nh gián tiếp).
2.23 Viết CT ly ô nh 2003H (RAM ngoài) xut ra Port 1.
S dng vòng lp
2.24 Viết CT xóa 20 ô nh RAM ni có địa ch bt đầu là 30H.
2.25 Viết CT xóa các ô nh RAM ni t địa ch 20H đến 7FH.
2.26 Viết CT xóa 250 ô nh RAM ngoài có địa ch bt đầu là 4000H.
2.27 Viết CT xóa 2500 ô nh RAM ngoài có địa ch bt đầu là 4000H.
2.28 Viết CT xóa toàn b RAM ngoài có dung lượng 8KB, biết rng địa ch đầu là 2000H.
2.29 Viết CT chuyn mt chui d liu gm 10 byte trong RAM ni có địa ch đầu là 30H đến vùng
RAM ni có địa ch đầu là 40H.
2.30 Viết CT chuyn mt chui d liu gm 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 chuyn mt chui d liu gm 10 byte trong RAM ni có địa ch đầu là 30H đến vùng
RAM ngoài có địa ch đầu là 4000H.
2.32 Viết CT chuyn mt chui d liu gm 10 byte trong RAM ngoài có địa ch đầu là 5F00H đến
vùng RAM ni có địa ch đầu là 40H.
Đại Hc Bách Khoa TP.HCM – Khoa Đin-Đin T Lê Chí Thông
http://www.ebook.edu.vn Trang
3/6
2.33 Cho mt chui d liu gm 20 byte liên tiếp trong RAM ni, bt đầu t địa ch 20H. Hãy viết
CT ln lượt xut các d kiu này ra Port 1.
2.34 Gi s Port 1 được ni đến mt thiết b phát d liu (ví d như 8 nút nhn). Hãy viết CT nhn
liên tiếp 10 byte d liu t thiết b phát này và ghi vào 10 ô nh (RAM ni) liên tiếp bt đầu t ô
nh 50H.
To tr (delay)
2.35 Viết CT con delay 100μs, biết rng thch anh (xtal) dùng trong h thng là:
a. 12 MHz
b. 6 MHz
2.36 Viết CT con delay 100ms, biết rng thch anh (xtal) dùng trong h thng là:
a. 12 MHz
b. 11,0592 MHz
2.37 Viết CT con delay 1s, biết rng thch anh (xtal) dùng trong h thng là:
a. 12 MHz
b. 24 MHz
To xung
2.38 Viết CT to mt xung dương ( ) ti chân P1.0 vi độ rng xung 1ms, biết rng xtal
là 12 MHz.
2.39 Viết CT to chui xung vuông có f = 100 KHz ti chân P1.1 (Xtal 12 MHz).
2.40 Viết CT to chui xung vuông có f = 100 KHz và có chu k làm vic D = 40% ti chân P1.2
(Xtal 12 MHz).
2.41 Viết CT to chui xung vuông có f = 10 KHz ti chân P1.3 (Xtal 24 MHz).
2.42 Viết CT to chui xung vuông có f = 10 KHz và có chu k làm vic D = 30% ti chân P1.3
(Xtal 24 MHz).
2.43 Viết CT to chui xung vuông có f = 10 Hz ti chân P1.4 (Xtal 12 MHz).
2.44 Viết CT to chui xung vuông có f = 10 Hz và có chu k làm vic D = 25% ti chân P1.5 (Xtal
12 MHz).
Các phép toán
2.45 Cho mt chui s 8 bit không du trong RAM ni gm 10 s bt đầu t ô nh 30H. Hãy viết
CT con cng chui s này và ghi kết qu vào ô nh 2FH (gi s kết qu nh hơn hoc bng 255).
2.46 Cho mt chui s 8 bit không du trong RAM ni gm 10 s bt đầu t ô nh 30H. Hãy viết
CT con cng chui s này và ghi kết qu vào ô nh 2EH:2FH (ô nh 2EH cha byte cao ca kết
qu và ô nh 2FH cha byte thp ca kết qu).
2.47 Cho mt chui s 16 bit không du trong RAM ni gm 10 s bt đầu t ô nh 30H theo
nguyên tc ô nhđịa ch nh hơn cha byte cao và ô nhđịa ch ln hơn cha byte thp. (Ví
d: byte cao ca s 16 bit đầu tiên được ct ti ô nh 30H và byte thp ca s 16 bit đầu tiên được
ct ti ô nh 31H). Hãy viết CT con cng chui s này và ct kết qu vào ô nh 2EH:2FH.
2.48 Viết CT con ly bù 2 s 16 bit cha trong R2:R3.
Đại Hc Bách Khoa TP.HCM – Khoa Đin-Đin T Lê Chí Thông
http://www.ebook.edu.vn Trang
4/6
So sánh
2.49 Cho hai s 8 bit, s th 1 cha trong (30H), s th 2 cha trong (31H). Viết CT con so sánh
hai s này. Nếu s th 1 ln hơn hoc bng s th 2 thì set c F0, nếu ngược li thì xóa c F0.
2.50 Cho hai s 16 bit, s th 1 cha trong (30H):(31H), s th 2 cha trong (32H):(33H). Viết CT
con so sánh hai s này. Nếu s th 1 ln hơn hoc bng s th 2 thì set c F0, nếu ngược li thì xóa
c F0.
2.51 Cho mt chui ký t dưới dng mã ASCII trong RAM ni, dài 20 byte, bt đầu t địa ch 50H.
Viết CT xut các ký t in hoa có trong chui này ra Port 1. Biết rng mã ASCII ca ký t in hoa là
t 65 (ch A) đến 90 (ch Z).
2.52 Viết CT nhp mt chui ký t t Port 1 dưới dng mã ASCII và ghi vào RAM ngoài, bt đầu
t địa ch 0000H. Biết rng chui này kết thúc bng ký t CR (có mã ASCII là 0DH) và ghi c
t này vào RAM.
2.53 Viết CT nhp mt chui ký t t Port 1 dưới dng mã ASCII và ghi vào RAM ngoài, bt đầu
t địa ch 0000H. Biết rng chui này kết thúc bng ký t CR (có mã ASCII là 0DH) và không ghi
ký t này vào RAM.
2.54 Viết CT nhp mt chui ký t t Port 1 dưới dng mã ASCII và ghi vào RAM ngoài, bt đầu
t địa ch 0000H. Biết rng chui này kết thúc bng ký t CR (có mã ASCII là 0DH) và không ghi
ký t này vào RAM mà thay bng ký t null (có mã ASCII là 00H).
2.55 Cho mt chui ký t dưới dng mã ASCII trong RAM ni, dài 20 byte, bt đầu t địa ch 50H.
Viết CT đổi các ký t in hoa có trong chui này thành ký t thường. Biết rng mã ASCII ca ký t
thường bng mã ASCII ca ký t in hoa cng thêm 32.
2.56 Cho mt chui ký t s dưới dng mã ASCII trong RAM ni, dài 20 byte, bt đầu t địa ch
50H. Viết CT đổi các ký t s này thành mã BCD. Biết rng mã ASCII ca các ký t s là t 30H
(s 0) đến 39H (s 9).
S dng lnh nhy có điu kin
2.57 Cho mt chui d liu dưới dng s có du trong RAM ngoài, dài 100 byte, bt đầu t địa ch
0100H. Viết CT ln lượt xut các d liu trong chui ra Port 1 nếu là s dương (xem s 0 là dương)
và xut ra Port 2 nếu là s âm.
2.58 Cho mt chui d liu dưới dng s có du trong RAM ngoài, bt đầu t địa ch 0100H và kết
thúc bng s 0. Viết CT ln lượt xut các d liu trong chui ra Port 1 nếu là s dương và xut ra
Port 2 nếu là s âm.
2.59 Cho mt chui d liu dưới dng s không du trong RAM ngoài, bt đầu t địa ch 0100H và
độ dài chui là ni dung ô nh 00FFH. Viết CT đếm s s chn (chia hết cho 2) có trong chui và
ct vào ô nh 00FEH.
2.60 Cho mt chui d liu dưới dng s không du trong RAM ngoài, bt đầu t địa ch 0100H và
độ dài chui là ni dung ô nh 00FFH. Viết CT ghi các s chn (xem s 0 là s chn) có trong
chui vào RAM ni bt đầu t địa ch 30H cho đến khi gp s l thì dng.
2.61 Viết CT con có nhim v ly 1 byte t 1 chui data gm 20 byte ct trong Ram ngoài bt đầu
t địa ch 2000H và xut ra Port1. Mi ln gi CT con ch xut 1 byte, ln gi kế thì xut byte kế
tiếp, ln gi th 21 thì li xut byte đầu, ...
3. TIMER
3.1 Viết CT con mang tên DELAY500 có nhim v to tr 0,5ms dùng Timer. (Xtal 6MHz).
Đại Hc Bách Khoa TP.HCM – Khoa Đin-Đin T Lê Chí Thông
http://www.ebook.edu.vn Trang
5/6
3.2 Viết CT con mang tên DELAY10 có nhim v to tr 10ms dùng Timer. (Xtal 12MHz).
3.3 Dùng CT con DELAY500 (bài 3.1) để viết CT to sóng vuông f=1KHz ti P1.0.
3.4 Dùng CT con DELAY10 (bài 3.2) để viết CT to sóng vuông f=50Hz ti P1.1.
3.5 Dùng CT con DELAY500 (bài 3.1) để viết CT to sóng vuông f=500Hz (D=25%) ti P1.2.
3.6 Dùng CT con DELAY10 (bài 3.2) để viết CT to sóng vuông f=20Hz (D=20%) ti P1.3.
3.7 Viết CT dùng Timer to sóng vuông f=500Hz ti P1.4. (Xtal 12MHz).
3.8 Viết CT dùng Timer to sóng vuông f=20KHz ti P1.5. (Xtal 24MHz).
3.9 Viết CT dùng Timer to 2 sóng vuông có cùng f= 1KHz ti P1.6 và P1.7. Biết rng sóng vuông
ti P1.7 chm pha hơn sóng vuông ti P1.6 100(s. (Xtal 12MHz).
3.10 Viết CT dùng Timer điu khin đèn giao thông ti mt giao l. Cho biết rng:
Đèn Bit điu khin Thi 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 điu khin bng 0.
4. SERIAL PORT
4.1 Viết CT đọc 1 chui data cha trong RAM ni t địa ch 30H đến 50H và xut ra 1 thiết b (ví
d như màn hình tinh th lng LCD) được ni vi port ni tiếp ca 8051 (chế độ UART 8 bit, 2400
baud). Cho Xtal 11,059 MHz.
4.2 Viết CT nhn 1 chui data t 1 thiết b ngoài (ví d như máy đọc mã vch) ni vi 8051 qua
port ni tiếp (chế độ UART 8 bit, 4800 baud) và ghi data vào RAM ni t địa ch 40H. Biết rng
chui data gm 20 byte và Xtal 11,059MHz.
4.3 Viết CT ly 1 chui data cha trong RAM ngoài bt đầu t địa ch 2000H và xut ra 1 thiết b
được ni vi port ni tiếp ca 8051 (chế độ UART 8 bit, 1200 baud). Chui kết thúc bi ký t EOT
(có mã ASCII là 04H) và ký t này cũng được xut ra (Xtal 11,059 MHz).
4.4 Làm li bài 4.3 nhưng không xut ký t EOT.
4.5 Viết CT nhn 1 chui data t 1 thiết b ngoài ni vi 8051 qua port ni tiếp (chế độ UART 8 bit,
9600 baud) và ghi data vào RAM ngoài bt đầu t địa ch 4000H. Chui data bt đầu bng ký t
STX (02H) và kết thúc bng 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ó nhim v ly 1 chui data cha trong RAM ngoài xut ra port
ni tiếp chế độ UART 9 bit. Bit th 9 là bit parity chn. Chui data kết thúc bng ký t null
(00H). CT gi CT con XUAT s đặt địa ch bt đầu ca chui vào DPTR trước khi gi CT con
XUAT. Gi s port ni tiếp đã được khi động.
4.7 Viết CT con mang tên NHAP có nhim v nhp 1 chui data gm 30 byte t port ni tiếp chế
độ UART 9 bit, bit th 9 là bit parity l. Nếu data nhn được không b li thì ghi vào 1 vùng nh