Professional Documents
Culture Documents
Lê Trung Dũng
1
Đại học Thủy Lợi, Hà Nội, 10000, Vietnam
2
dung_lt@tlu.edu.vn
Tóm tắt nội dung Nội dung này được soạn thảo nhằm mục đích củng
cố kiến thức cho môn học Kỹ thuật Vi xử lý, mã môn học AUTO274,
đang được giảng dạy tại Đại học Thủy Lợi.
Nội dung của phần này sẽ tập trung củng cố kiến thức về mạch giải mã địa chỉ
cho RAM và ROM khi ghép nối với 8051.
1. Thiết kế mạch giải mã địa chỉ bộ nhớ gồm 16KB RAM trên cơ sở vi mạch
RAM loại 4KB và 32KB ROM trên cơ sở vi mạch ROM loại 16KB. Địa chỉ vùng
RAM bắt đầu từ 0000h và địa chỉ vùng ROM tiếp theo sau địa chỉ vùng RAM.
2. Cho mạch giải mã địa chỉ của hệ thống dùng Vi xử lý 8051 được mô tả
như trong hình 1
2 Tập lệnh
1. Viết chương trình ghi 50H vào ô nhớ 40H 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. Viết chương trình xóa ô 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).
⋆
Đại học Thủy Lợi - Bộ môn Kỹ thuật Điều khiển và tự động hóa.
2 Lê Trung Dũng
RD của 8051
RD RD của 8051
RD
DS2016
DS2016
A13
C 1
A12
B 2
A11
A 3
LS74138
4
5V
G1 5
A14 G2A
6
A15 G2B 7
3. Viết chương trình ghi nội dung thanh ghi A vào ô nhớ 33H 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).
4. Viết chương trình đọc ô nhớ 44H 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).
5. Viết chương trình chuyển dữ liệu ô nhớ 55H của RAM nội vào ô nhớ 33H
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).
1. Viết chương trình 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. Viết chương trình con delay 100ms, biết rằng thạch anh (xtal) dùng trong
hệ thống là:
(a) 12 Mhz
(b) 6 Mhz
1. Viết chương trình tạo xung vuông gồm một sườn xung dương và một sườn
xung âm với độ rộng của xung là 100µs tại chân P0.0, biết rằng thạch anh
(xtal) dùng trong hệ thống là:
(a) 12 Mhz
(b) 6 Mhz
2. Viết chương trình tạo chuỗi xung vuông có f = 100 KHz, độ rộng xung là
50% tại chân P1.1, biết rằng thạch anh (xtal) dùng trong hệ thống là:
(a) 12 Mhz
(b) 24 Mhz
3. Viết chương trình tạo chuỗi xung vuông có f = 100 KHz, độ rộng xung là
40% tại chân P0.0, biết rằng thạch anh (xtal) dùng trong hệ thống là:
(a) 12 Mhz
(b) 6 Mhz
1. 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ết6 chương trình 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. 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 chương trình con cộng chuỗi số này và cất kết quả vào
ô nhớ 2EH:2FH.
3. Viết chương trình con lấy bù 2 số 16 bit chứa trong R2:R3.
2.8 So sánh
1. Cho hai số 8 bit, số thứ nhất chứa trong (60H), số thứ hai chứa trong (39H).
Viết chương trình con so sánh hai số này. Nếu số thứ nhất nhỏ hơn hoặc
bằng số thứ hai thì set bit P0.0, nếu ngược lại thì xóa bit P0.0.
4 Lê Trung Dũng
2. Cho một chuỗi ký tự dưới dạng mã ASCII trong RAM nội, dài 16 byte, bắt
đầu từ địa chỉ 40H. Viết chương trình chỉ 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).
3. Viết chương trình 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ỉ 1000H. 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.
3 Bộ định thời
1. Viết chương trình con mang tên là Tre500 để tạo trễ 0.5ms dùng Timer 0
khi vi điều khiển dùng thạch anh 12Mhz.
2. Viết chương trình con mang tên là Tre1000 để tạo trễ 1ms dùng Timer 1 khi
vi điều khiển dùng thạch anh 6Mhz.
3. Viết chương trình con để tạo xung vuông tuần hoàn có tần số f=500Hz với
độ rộng xung D=50% tại chân P0.0 khi vi điều khiển dùng thạch anh Xtal
12 Mhz.
4. Viết chương trình con để tạo xung vuông tuần hoàn có tần số f=200Hz với
độ rộng xung D=25% tại chân P1.0 khi vi điều khiển dùng thạch anh Xtal
12 Mhz.
5 Ngắt
1. Viết chương trình dùng ngắt bộ định thời 0 để tạo xung vuông tuần hoàn có
tần số f = 2kHz tại P0.0. Biết rằng vi điều khiển dùng thạch anh 12MHz.
Bài tập Kỹ thuật Vi xử lý 5
2. Dùng ngắt bộ định thời 0 và 1 để tạo đồng thời 2 xung vuông tuần hoàn có
tần số lần lượt là 1kHz và 100Hz tại chân P1.0 và P1.1 khi 8051 sử dụng
thạch anh 6Mhz.
3. Viết chương trình phát một chuỗi dữ liệu chứa trong RAM từ địa chỉ 50H
tới 70H qua cổng truyền thông nối tiếp ở chế độ UART 8 bit, 9600. Có sywr
dụng ngắt truyền thông nối tiếp. Biết rằng vi điều khiển sử dụng thạch anh
11.0592Mhz.
4. Viết chương trình chờ nhận 1 xung âm tại chân P3.2. Khi xuất hiện xung
thì gửi một ký tự @ ra cổng truyền thông nối tiếp ở chế độ UART 9 bit, tốc
độ baud 9600. Trong đó bit thứ 9 là bit kiểm lỗi chẵn/lẻ và vi điều khiển
dùng thạch anh 6Mhz.
Tài liệu
1. Tống Văn On, Họ vi điều khiển 8051. NXB: Lao Động - 2001
2. Phạm Quang Huy & Nguyễn Trọng Hiếu, Vi điều khiển và Ứng dụng Ardunio dành
cho người tự học. NXB: Bách khoa Hà Nội -2015.
3. Lê Chí Thông, Bài tập Vi xử lý, Đại Học Bách Khoa TP.HCM – Khoa Điện-Điện
Tử