Bài tập vi xử lý (họ vi điều khiển 8051) - Lê Chí Thông

Đại Hc Bách Khoa TP.HCM – Khoa Đin-Đin Tử  
Lê Chí Thông – chithong@gmail.com  
BÀI TP VI XLÝ (HVI ĐIU KHIN 8051)  
1. CU TRÚC PHN CNG - GII MàĐỊA CHỈ  
1.1 Sdng 1 vi mch 74138 và các cng cn thit ꢆꢇ thit kmch gii mã ꢆꢉa chto ra các tín  
hiu chn chip tưꢍng ng các vùng ꢆꢉa chsau:  
Tín hiu chn chip  
Vùng ꢆꢉa chꢊ  
ꢏꢐc tính truy xut  
PSEN  
0000H - 3FFFH  
CS0  
CS1  
CS2  
4000H - 7FFFH  
6000H - 7FFFH  
PSEN  
RD,WR  
8000H - 87FFH  
8800H - 8FFFH  
CS3  
CS4  
RD  
WR  
1.2  
hiu ch  
S
d
ng 1 vi m  
ch 74138 và các c  
ng cꢄ  
sau:  
n thi  
t
ꢆꢇ thit kmch gii mã ꢆꢉa chto ra các tín  
n chip tưꢍng  
ng các vùng ꢆꢉa chꢊ  
Tín hi  
u ch n chip Vùng ꢆꢉa ch  
ꢏꢐc tính truy xu  
PSEN  
t  
9800H - 9BFFH  
9800H - 9BFFH  
CS0  
CS1  
RD,WR  
9C00H - 9DFFH  
9E00H - 9EFFH  
CS2  
CS3  
RD,WR  
RD,WR  
1.3 Ch  
tín hi u ch  
dùng m  
t vi m  
ch 74138 (không dùng thêm c  
ng), thit kmch gii mã ꢆꢉa chto ra mt  
ng t ꢆꢉa ch F000H-F3FFH.  
n chip /CS tưꢍng  
m
2. SDNG TP LNH  
Truy xut RAM ni  
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  
i theo 2 cách (ꢆꢉnh ꢆꢉa ch  
ô nh tr  
a RAM n i theo 2 cách  
ô nh  
trc tip và ꢆꢉnh  
ꢆꢉa ch  
ô nh gián tip).  
2.2 Vi  
t CT xóa ô nh 31H c  
p).  
t CT ghi n  
p và ꢆꢉnh ꢆꢉa ch  
t CT ꢆꢌc ô nh  
ꢆꢉnh ꢆꢉa ch ô nh  
2.5 Vi t CT chuy n d  
ꢆꢉnh ꢆꢉa ch ô nh tr c ti  
Truy xut RAM ngoài  
2.6 Vi t CT ghi 40H vào ô nh  
a RAM n  
i theo 2 cách (ꢆꢉnh ꢆꢉa ch  
c ti p và ꢆꢉnh ꢆꢉa ch  
ô
nh  
2.3 Vi  
tr c ti  
2.4 Vi  
gián ti  
i dung thanh ghi A vào ô nh  
ô nh gián ti p).  
32H c  
a RAM n  
ô nhꢓ  
33H c a RAM n  
gián ti p).  
li u ô nh  
p và ꢆꢉnh ꢆꢉa ch  
i vào thanh ghi A theo 2 cách (ꢆꢉnh ꢆꢉa ch  
ꢓ ꢕc tip  
34H c  
a RAM n  
i vào ô nh  
p).  
35H c  
(
ô nh gián tiꢅ  
0030H ca RAM ngoài.  
Bài tp Vi XLý 8051- Trang 1/6  
Đại Hc Bách Khoa TP.HCM – Khoa Đin-Đin Tử  
Lê Chí Thông – chithong@gmail.com  
2.7 Vit CT xóa ô nh0031H ca RAM ngoài.  
2.8 Vit CT ꢆꢌc ô nh0032H ca RAM ngoài vào thanh ghi A.  
2.8 Vit CT ghi ni dung thanh ghi A vào ô nh0033H ca RAM ngoài.  
2.10 Vit CT chuyn dliu ô nh0034H ca RAM ngoài vào ô nh0035H ca RAM ngoài.  
Truy xut Port  
2.11 Vit CT xut 0FH ra Port 1.  
2.12 Vit CT xut F0H ra Port 2.  
2.13 Vit CT xut ni dung thanh ghi A ra Port 1.  
2.14 Vit CT nhp tPort 1 vào thanh ghi A.  
2.15 Vit CT nhp tPort 1 và xut ra Port 2.  
2.16 Vit CT xut 1 (mc logic cao) ra chân P1.0  
2.17 Vit CT xut 0 (mc logic thp) ra chân P1.1  
Truy xut RAM ni, RAM ngoài và Port  
2.18 Vit CT chuyn dliu ô nh40H (RAM ni) ꢆꢅn ô nh2000H (RAM ngoài). Làm theo 2  
cách (ꢆꢉnh ꢆꢉa chô nhtrc tip và ꢆꢉnh ꢆꢉa chô nhgián tip).  
2.19 Vit CT chuyn dliu ô nh2001H (RAM ngoài) vào ô nh41H (RAM ni). Làm theo 2  
cách (ꢆꢉnh ꢆꢉa chô nhtrc tip và ꢆꢉnh ꢆꢉa chô nhgián tip).  
2.20 Vit CT nhp tPort 1 vào ô nh42H (RAM ni). Làm theo 2 cách (ꢆꢉnh ꢆꢉa chô nhtrc  
tip và ꢆꢉnh ꢆꢉa chô nhgián tip).  
2.21 Vit CT nhp tPort 1 vào ô nh2002H (RAM ngoài).  
2.22 Vit CT ly ô nh43H (RAM ni) xut ra Port 1. Làm theo 2 cách (ꢆꢉnh ꢆꢉa chô nhtrc  
tip và ꢆꢉnh ꢆꢉa chô nhgián tip).  
2.23 Vit CT ly ô nh2003H (RAM ngoài) xut ra Port 1.  
Sdng vòng lp  
2.24 Vit CT xóa 20 ô nhRAM ni có ꢆꢉa chbt ꢆꢄu là 30H.  
2.25 Vit CT xóa các ô nhRAM ni tꢘ ꢆꢉa ch20H ꢆꢅn 7FH.  
2.26 Vit CT xóa 250 ô nhRAM ngoài có ꢆꢉa chbt ꢆꢄu là 4000H.  
2.27 Vit CT xóa 2500 ô nhRAM ngoài có ꢆꢉa chbt ꢆꢄu là 4000H.  
2.28 Vit CT xóa toàn bRAM ngoài có dung lưꢚng 8KB, bit rng ꢆꢉa chꢊ ꢆꢄu là 2000H.  
2.29 Vit CT chuyn mt chui dliu 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 Vit CT chuyn mt chui dliu 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 Vit CT chuyn mt chui dliu 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 Vit CT chuyn mt chui dliu gm 10 byte trong RAM ngoài có ꢆꢉa chꢊ ꢆꢄu là 5F00H ꢆꢅn  
vùng RAM ni có ꢆꢉa chꢊ ꢆꢄu là 40H.  
Bài tp Vi XLý 8051- Trang 2/6  
Đại Hc Bách Khoa TP.HCM – Khoa Đin-Đin Tử  
Lê Chí Thông – chithong@gmail.com  
2.33 Cho mt chui dliu gm 20 byte liên tip trong RAM ni, bt ꢆꢄu tꢘ ꢆꢉa ch20H. Hãy vit  
CT ln lưꢚt xut các dkiu này ra Port 1.  
2.34 GisPort 1 ꢆưꢚc ni ꢆꢅn mt thit bphát dliu (ví dnhư 8 nút nhn). Hãy vit CT nhn  
liên tip 10 byte dliu tthit bphát này và ghi vào 10 ô nh(RAM ni) liên tip bt ꢆꢄu tô  
nh50H.  
To tr(delay)  
2.35 Vit CT con delay 100s, bit rng thch anh (xtal) dùng trong hthng là:  
a. 12 MHz  
b. 6 MHz  
2.36 Vit CT con delay 100ms, bit rng thch anh (xtal) dùng trong hthng là:  
a. 12 MHz  
b. 11,0592 MHz  
2.37 Vit CT con delay 1s, bit rng thch anh (xtal) dùng trong hthng là:  
a. 12 MHz  
b. 24 MHz  
To xung  
2.38 Vit CT to mt xung dưꢍng (  
là 12 MHz.  
) ti chân P1.0 vi ꢆꢒ rng xung 1ms, bit rng xtal  
2.39 Vit CT to chui xung vuông có f = 100 KHz ti chân P1.1 (Xtal 12 MHz).  
2.40 Vit CT to chui xung vuông có f = 100 KHz và có chu klàm vic D = 40% ti chân P1.2  
(Xtal 12 MHz).  
2.41 Vit CT to chui xung vuông có f = 10 KHz ti chân P1.3 (Xtal 24 MHz).  
2.42 Vit CT to chui xung vuông có f = 10 KHz và có chu klàm vic D = 30% ti chân P1.3  
(Xtal 24 MHz).  
2.43 Vit CT to chui xung vuông có f = 10 Hz ti chân P1.4 (Xtal 12 MHz).  
2.44 Vit CT to chui xung vuông có f = 10 Hz và có chu klàm vic D = 25% ti chân P1.5 (Xtal  
12 MHz).  
Các phép toán  
2.45 Cho mt chui s8 bit không du trong RAM ni gm 10 sbt ꢆꢄu tô nh30H. Hãy vit  
CT con cng chui snày và ghi kt quvào ô nh2FH (giskt qunhhn hoc bng 255).  
2.46 Cho mt chui s8 bit không du trong RAM ni gm 10 sbt ꢆꢄu tô nh30H. Hãy vit  
CT con cng chui snày và ghi kt quvào ô nh2EH:2FH (ô nh2EH cha byte cao ca kt  
quvà ô nh2FH cha byte thp ca kt qu).  
2.47 Cho mt chui s16 bit không du trong RAM ni gm 10 sbt ꢆꢄu tô nh30H theo  
nguyên tc ô nhꢆꢉa chnhhn cha byte cao và ô nhꢆꢉa chln hn cha byte thp. (Ví  
d: byte cao ca s16 bit ꢆꢄu tiên ꢆưꢚc ct ti ô nh30H và byte thp ca s16 bit ꢆꢄu tiên ꢆưꢚc  
ct ti ô nh31H). Hãy vit CT con cng chui snày và ct kt quvào ô nh2EH:2FH.  
2.48 Vit CT con ly bù 2 s16 bit cha trong R2:R3.  
Bài tp Vi XLý 8051- Trang 3/6  
Đại Hc Bách Khoa TP.HCM – Khoa Đin-Đin Tử  
Lê Chí Thông – chithong@gmail.com  
So sánh  
2.49 Cho hai s8 bit, sth1 cha trong (30H), sth2 cha trong (31H). Vit CT con so sánh  
hai snày. Nu sth1 ln hn hoc bng sth2 thì set cF0, nu ngưꢚc li thì xóa cF0.  
2.50 Cho hai s16 bit, sth1 cha trong (30H):(31H), sth2 cha trong (32H):(33H). Vit CT  
con so sánh hai snày. Nu sth1 ln hn hoc bng sth2 thì set cF0, nu ngưꢚc li thì xóa  
cF0.  
2.51 Cho mt chui ký tdưꢓi dng mã ASCII trong RAM ni, dài 20 byte, bt ꢆꢄu tꢘ ꢆꢉa ch50H.  
Vit CT xut các ký tin hoa có trong chui này ra Port 1. Bit rng mã ASCII ca ký tin hoa là  
t65 (chA) ꢆꢅn 90 (chZ).  
2.52 Vit CT nhp mt chui ký ttPort 1 dưꢓi dng mã ASCII và ghi vào RAM ngoài, bt ꢆꢄu  
tꢘ ꢆꢉa ch0000H. Bit rng chui này kt thúc bng ký tCR (có mã ASCII là 0DH) và ghi cký  
tnày vào RAM.  
2.53 Vit CT nhp mt chui ký ttPort 1 dưꢓi dng mã ASCII và ghi vào RAM ngoài, bt ꢆꢄu  
tꢘ ꢆꢉa ch0000H. Bit rng chui này kt thúc bng ký tCR (có mã ASCII là 0DH) và không ghi  
ký tnày vào RAM.  
2.54 Vit CT nhp mt chui ký ttPort 1 dưꢓi dng mã ASCII và ghi vào RAM ngoài, bt ꢆꢄu  
tꢘ ꢆꢉa ch0000H. Bit rng chui này kt thúc bng ký tCR (có mã ASCII là 0DH) và không ghi  
ký tnày vào RAM mà thay bng ký tnull (có mã ASCII là 00H).  
2.55 Cho mt chui ký tdưꢓi dng mã ASCII trong RAM ni, dài 20 byte, bt ꢆꢄu tꢘ ꢆꢉa ch50H.  
Vit CT ꢆꢃi các ký tin hoa có trong chui này thành ký tthưꢢng. Bit rng mã ASCII ca ký tꢕ  
thưꢢng bng mã ASCII ca ký tin hoa cng thêm 32.  
2.56 Cho mt chui ký tsdưꢓi dng mã ASCII trong RAM ni, dài 20 byte, bt ꢆꢄu tꢘ ꢆꢉa chꢊ  
50H. Vit CT ꢆꢃi các ký tsnày thành mã BCD. Bit rng mã ASCII ca các ký tslà t30H  
(s0) ꢆꢅn 39H (s9).  
Sdng lnh nhy có điu kin  
2.57 Cho mt chui dliu dưꢓi dng scó du trong RAM ngoài, dài 100 byte, bt ꢆꢄu tꢘ ꢆꢉa chꢊ  
0100H. Vit CT ln lưꢚt xut các dliu trong chui ra Port 1 nu là sdưꢍng (xem s0 là dưꢍng)  
và xut ra Port 2 nu là sâm.  
2.58 Cho mt chui dliu dưꢓi dng scó du trong RAM ngoài, bt ꢆꢄu tꢘ ꢆꢉa ch0100H và kt  
thúc bng s0. Vit CT ln lưꢚt xut các dliu trong chui ra Port 1 nu là sdưꢍng và xut ra  
Port 2 nu là sâm.  
2.59 Cho mt chui dliu dưꢓi dng skhông du trong RAM ngoài, bt ꢆꢄu tꢘ ꢆꢉa ch0100H và  
ꢆꢒ dài chui là ni dung ô nh00FFH. Vit CT ꢆꢅm sschn (chia ht cho 2) có trong chui và  
ct vào ô nh00FEH.  
2.60 Cho mt chui dliu dưꢓi dng skhông du trong RAM ngoài, bt ꢆꢄu tꢘ ꢆꢉa ch0100H và  
ꢆꢒ dài chui là ni dung ô nh00FFH. Vit CT ghi các schn (xem s0 là schn) có trong  
chui vào RAM ni bt ꢆꢄu tꢘ ꢆꢉa ch30H cho ꢆꢅn khi gp slthì dng.  
2.61 Vit CT con có nhim vly 1 byte t1 chui data gm 20 byte ct trong Ram ngoài bt ꢆꢄu  
tꢘ ꢆꢉa ch2000H và xut ra Port1. Mi ln gi CT con chxut 1 byte, ln gi kthì xut byte kꢅ  
tip, ln gi th21 thì li xut byte ꢆꢄu, ...  
3. TIMER  
3.1 Vit CT con mang tên DELAY500 có nhim vto tr0,5ms dùng Timer. (Xtal 6MHz).  
Bài tp Vi XLý 8051- Trang 4/6  
Đại Hc Bách Khoa TP.HCM – Khoa Đin-Đin Tử  
Lê Chí Thông – chithong@gmail.com  
3.2 Vit CT con mang tên DELAY10 có nhim vto tr10ms dùng Timer. (Xtal 12MHz).  
3.3 Dùng CT con DELAY500 (bài 3.1) ꢆꢇ vit CT to sóng vuông f=1KHz ti P1.0.  
3.4 Dùng CT con DELAY10 (bài 3.2) ꢆꢇ vit CT to sóng vuông f=50Hz ti P1.1.  
3.5 Dùng CT con DELAY500 (bài 3.1) ꢆꢇ vit CT to sóng vuông f=500Hz (D=25%) ti P1.2.  
3.6 Dùng CT con DELAY10 (bài 3.2) ꢆꢇ vit CT to sóng vuông f=20Hz (D=20%) ti P1.3.  
3.7 Vit CT dùng Timer to sóng vuông f=500Hz ti P1.4. (Xtal 12MHz).  
3.8 Vit CT dùng Timer to sóng vuông f=20KHz ti P1.5. (Xtal 24MHz).  
3.9 Vit CT dùng Timer to 2 sóng vuông có cùng f= 1KHz ti P1.6 và P1.7. Bit rng sóng vuông  
ti P1.7 chm pha hn sóng vuông ti P1.6 100(s. (Xtal 12MHz).  
3.10 Vit CT dùng Timer iu khin èn giao thông ti mt giao l. Cho bit rng:  
Đèn  
Bit điu khin Thi gian  
Xanh 1  
P1.0  
P1.1  
P1.2  
P1.3  
P1.4  
P1.5  
25s  
3s  
Vàng 1  
ꢏꢡ 1  
Xanh 2  
33s  
3s  
Vàng 2  
ꢏꢡ 2  
èn sáng khi bit iu khin bng 0.  
4. SERIAL PORT  
4.1 Vit CT ꢆꢌc 1 chui data cha trong RAM ni tꢘ ꢆꢉa ch30H ꢆꢅn 50H và xut ra 1 thit b(ví  
dnhư màn hình tinh thlng LCD) ꢆưꢚc ni vi port ni tip ca 8051 (chꢅ ꢆꢒ UART 8 bit, 2400  
baud). Cho Xtal 11,059 MHz.  
4.2 Vit CT nhn 1 chui data t1 thit bngoài (ví dnhư máy ꢆꢌc mã vch) ni vi 8051 qua  
port ni tip (chꢅ ꢆꢒ UART 8 bit, 4800 baud) và ghi data vào RAM ni tꢘ ꢆꢉa ch40H. Bit rng  
chui data gm 20 byte và Xtal 11,059MHz.  
4.3 Vit CT ly 1 chui data cha trong RAM ngoài bt ꢆꢄu tꢘ ꢆꢉa ch2000H và xut ra 1 thit bꢉ  
ꢆưꢚc ni vi port ni tip ca 8051 (chꢅ ꢆꢒ UART 8 bit, 1200 baud). Chui kt thúc bi ký tEOT  
(có mã ASCII là 04H) và ký tnày cng ꢆưꢚc xut ra (Xtal 11,059 MHz).  
4.4 Làm li bài 4.3 nhưng không xut ký tEOT.  
4.5 Vit CT nhn 1 chui data t1 thit bngoài ni vi 8051 qua port ni tip (chꢅ ꢆꢒ UART 8 bit,  
9600 baud) và ghi data vào RAM ngoài bt ꢆꢄu tꢘ ꢆꢉa ch4000H. Chui data bt ꢆꢄu bng ký tꢕ  
STX (02H) và kt thúc bng ký tETX (03H). Không ghi 2 ký tnày vào RAM. Cho Xtal  
11,059MHz.  
4.6 Vit CT con mang tên XUAT có nhim vly 1 chui data cha trong RAM ngoài xut ra port  
ni tip chꢅ ꢆꢒ UART 9 bit. Bit th9 là bit parity chn. Chui data kt thúc bng ký tnull  
(00H). CT gi CT con XUAT sꢩ ꢆꢐt ꢆꢉa chbt ꢆꢄu ca chui vào DPTR trưꢓc khi gi CT con  
XUAT. Gisport ni tip ã ꢆưꢚc khi ꢆꢒng.  
4.7 Vit CT con mang tên NHAP có nhim vnhp 1 chui data gm 30 byte tport ni tip chꢅ  
ꢆꢒ UART 9 bit, bit th9 là bit parity l. Nu data nhn ꢆưꢚc không bli thì ghi vào 1 vùng nhꢓ  
Bài tp Vi XLý 8051- Trang 5/6  
Đại Hc Bách Khoa TP.HCM – Khoa Đin-Đin Tử  
Lê Chí Thông – chithong@gmail.com  
ca RAM ni, nu bli thì không ghi. CT gi CT con NHAP sꢩ ꢆꢐt ꢆꢉa chꢊ ꢆꢄu ca vùng nhvào  
thanh ghi R0 trưꢓc khi gi CT con NHAP. Gisport ni tip ã ꢆưꢚc khi ꢆꢒng.  
5. INTERRUPT  
5.1 Vit CT dùng ngt Timer ꢆꢇ to sóng vuông f=2KHz ti P1.7. (Xtal 12MHz).  
5.2 Vit CT dùng ngt Timer ꢆꢇ to sóng vuông f=200Hz ti P1.6. (Xtal 12MHz).  
5.3 Vit CT dùng ngt Timer ꢆꢇ to ꢆꢝng thi 2 sóng vuông 1KHz và 50Hz ti P1.0 và P1.1. (Xtal  
6MHz)  
5.4 Vit CT ly 1 chui data cha trong Ram ngoài bt ꢆꢄu tꢘ ꢆꢉa ch6200H ꢆꢅn ꢆꢉa ch62FFH và  
xut ra Port1, mi ln xut cách nhau 50ms. Sdng ngt Timer. Xtal 12MHz.  
5.5 Vit CT nhp data tthit bngoài kt ni vi 8051 qua Port1, mi ln nhp cách nhau 5s, data  
nhp vꢦ ꢆưꢚc ghi vào vùng Ram ni bt ꢆꢄu tꢘ ꢆꢉa ch50H ꢆꢅn ꢆꢉa ch5FH. Bit rng sau khi ghi  
vào ô nhcui cùng thì trli ghi vào ô nhꢓ ꢆꢄu. Sdng ngt Timer. Xtal 12MHz.  
5.6 Vit CT phát liên tc chui st0 ꢆꢅn 9 ra port ni tip theo chꢅ ꢆꢒ UART 8 bit, 2400 baud. Sꢀ  
dng ngt serial. Xtal 12MHz.  
5.7 Vit CT chnhn data t1 thit bngoài gi ꢆꢅn 8051 qua port ni tip (chꢅ ꢆꢒ UART 8 bit,  
19200 baud). Nu nhn ꢆưꢚc ký tSTX (02H) thì bt sáng LED, nu nhn ꢆưꢚc ký tETX (03H)  
thì tt LED, bit rng LED ꢆưꢚc iu khin bng ngõ P1.3 (LED sáng khi bit iu khin bng 1).  
Sdng ngt serial. Xtal 11,059MHz.  
5.8 Vit CT chnhn 1 xung cnh xung ꢆưa vào chân /INT0 (P3.2), khi có xung thì nhp data tꢘ  
Port1 và phát ra port ni tip chꢅ ꢆꢒ UART 9 bit 4800 baud, bit th9 là bit parity l. Xtal 6MHz.  
5.9 Vit CT ꢆꢅm sxung ꢆưa vào chân /INT1 (P3.3) và iu khin relay thông qua chân P3.0 (relay  
óng khi P3.0 bng 1), ct sꢞ ꢆꢅm vào ô nh40H ca Ram ni, nu sꢞ ꢆꢅm chưa ꢆꢅn 100 thì óng  
relay, nu sꢞ ꢆꢅm ꢆꢂt 100 thì ngt relay.  
Bài tp Vi XLý 8051- Trang 6/6  
pdf 6 trang baolam 28/04/2022 2600
Bạn đang xem tài liệu "Bài tập vi xử lý (họ vi điều khiển 8051) - Lê Chí Thông", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_tap_vi_xu_ly_ho_vi_dieu_khien_8051_le_chi_thong.pdf