
Mô phỏng vi điều khiển
Biên tập bởi:
Nguyễn Phương Quang

MỤC LỤC
1. Nhập môn Lập trình Vi điều khiển
2. Bài tập Cơ Bản
2.1. Bài tập 1
2.2. Bài tập 2
2.3. Bài tập 3
2.4. Bài tập 4
2.5. Bài tập 5
2.6. Bài tập 6
2.7. Bài tập 7
2.8. Bài tập 8
2.9. Bài tập 9
2.10. Bài tập 10
2.11. Bài tập 11
3. Bài Tập Nâng cao
3.1. Bài tập nâng cao 1
3.2. Bài tập nâng cao 2
3.3. Bài tập nâng cao 3
3.4. Bài tập nâng cao 4
3.5. Bài tập nâng cao 5
3.6. Bài tập nâng cao 6
3.7. Bài tập nâng cao 7
4. Phụ Lục
4.1. Phụ lục A
4.2. Phụ lục B
4.3. Phụ lục C
Tham gia đóng góp
1/139

Nhập môn Lập trình Vi điều khiển
Giáo trình này chỉ chú trọng đến phần thực hành lập trình trên vi điều khiển nên không
có phần lý thuyết về vi điều khiển mà thay vào đó là nhập môn lập trình vi điều khiển.
Trong phần này, giáo trình sẽ trình bày những vấn đề lý thuyết cơ bản nhất về hệ 80x86,
vừa đủ cho người học giải quyết các bài tập cơ bản trong chương trình. Sau khi đã vững
phần cơ bản, người học sẽ nâng cao hơn các hiểu biết về vi điều khiển thông qua các bài
tập nâng cao.
1. Tổ chức hệ vi điều khiển :
1.1. Giới thiệu hệ vi điều khiển dùng trong phần mềm mô phỏng:
Như đã giới thiệu ở phần trước hệ vi xử lý dùng trong chương trình mô phỏng này
và hệ vi điều khiển thực tế nói chung bao gồm ba phần chính : bộ vi xử lý (CPU); bộ
nhớ và thiết bị xuất nhập (I/O). Cụ thể trình bày trên hình 2-1.
Bộ mô phỏng bao gồm khối xử lý trung tâm (CPU), 256 byte của bộ nhớ truy xuất
ngẫu nhiên (RAM) và 16 cổng vào ra nhưng chỉ sử dụng 6 port (từ port 0 đến port 5)?
2/139

Hình 2-1: Hệ thống vi điều khiển dùng trong phần mềm.
Chương trình mô phỏng có thể lập trình để chạy nhiều chương trình khác nhau. Trong
thực tế, bộ nhớ RAM được thay thế bằng ROM. Ở đây có hàng trăm thí dụ về các hệ
thống như : điều khiển đèn giao thông, các trò chơi giải trí đơn giản, điều khiển ti vi từ
xa, định thời gian cho lò viba, hệ thống điều khiển động cơ xe hơi, bộ điều khiển lò gia
nhiệt, các hệ thống điều khiển môi trường. Tất cả tuỳ thuộc vào sự uyển chuyển của giáo
viên giảng dạy.
1/ Khối xử lý trung tâm:
Khối xử lý trung tâm là " bộ não" của máy vi tính. Tất cả các sự tính toán, quyết
định và việc dịch chuyển dữ liệu đều được thực thi ở đây. CPU dùng các vị trí lưu trữ
tạm thời được gọi là thanh ghi, thanh ghi chỉ nhớ dữ liệu có dung lượng thấp và sẽ mất
dữ liệu khi mất điện nếu mạch không có back up ( mạch làm nhiệm vụ liên tục cấp điện
cho CPU ). Nó chứa khối số học và logic (viết tắt là ALU) khối này thực hiện việc xử
lý. Dữ liệu được lấy từ các thanh ghi, được xử lý và kết quả sau khi xử lý xong được
đưa trở lại các thanh ghi. Lệnh Move (MOV) được sử dụng để dịch chuyển dữ liệu giữa
vùng nhớ RAM và các thanh ghi. Ở đây ta có rất nhiều lệnh, mỗi lệnh thì có một chức
năng riêng. Tập hợp các lệnh này được gọi là tập lệnh.
2/ Các thanh ghi đa năng:
CPU có bốn thanh ghi mục đích chung gọi là AL, BL, CL và DL. Những thanh
ghi này chứa 8 bít hay 1 byte. Các thanh ghi quản lý số không dấu trong vùng từ 0 đến
255 và ô có dấu vùng từ - 128 đến + 127 : ở đây các thanh ghi này sử dụng như vùng
nhớ lưu trữ tạm thời. Các thanh ghi được sử dụng ưu tiên đối với vùng nhớ RAM bởi
vì nó cần 1 khoảng thời gian tương đối dài để chuyển dữ liệu giữa RAM và CPU. Nhìn
chung máy vi tính có tốc độ xử lý nhanh hơn nếu thanh ghi hay bộ nhớ có dung lượng
lớn hơn trong CPU.
Các thanh ghi được gọi tên là AL, BL, CL và DL vì phiên bản 16 bit của CPU này
có nhiều thanh ghi gọi là AH, BH, CH và DH . Chữ "L" có nghĩa là thấp (Low) và chữ
"H" có nghĩa là cao (High). Ở đây, 2 chữ cuối L và H trong các thanh ghi trên chính là
8 bít thấp và 8 bít cao của thanh ghi 16 bit.
3/ Các thanh ghi chuyên dùng :
Các thanh ghi chuyên dùng trong hệ vi điều khiển dùng trong phần mềm mô phỏng
là IP, SR và SP.
a) Con trỏ lệnh IP
3/139


