Tải bản đầy đủ (.pdf) (23 trang)

Bài tập môn học kỹ thuật vi xử lý và ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (595.38 KB, 23 trang )

BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG

1. Yêu cầu thực hiện
- Bài tập môn học Kỹ thuật vi xử lý và ứng dụng được in thành tài liệu chính thống
phát cho người học, đây là tài liệu quan trọng giúp người học trong quá trình tự học,
tự nghiên cứu. Hệ thống bài tập giao cho người học còn giúp cho giảng viên kiểm
soát và đánh giá được việc tự học, tự nghiên cứu của người học.
- Bài tập được giao cho sinh viên ở cuối mỗi buổi học bài tập gắn liền với nội dung
dạy – học trong giáo án và nội dung môn học.
- Bài tập có các dạng:
+ Các chủ đề (dành cho sinh viên tự học, tự nghiên cứu, củng cố, tổng kết kiến thức,
thảo luận, học nhóm, thực hành…)
+ Câu hỏi lý thuyết.
+ Bài tập vận dụng.
+ Bài tập thực hành, vận dụng.
+ Bài tập nâng cao (nếu có).
- Hình thức báo cáo:
+ Giáo viên: Đầu mỗi buổi học, giáo viên sẽ tiến hành kiểm tra bài tập về nhà.
+ Sinh viên: Sau mỗi buổi học phải có nhiệm vụ làm bài tập giáo viên giao trên lớp
để báo cáo kết quả ở đầu mỗi buổi học sau. Các chủ đề bài tập theo nhóm được báo
cáo trong các buổi thảo luận. Các bài tập lớn được giao ở đầu chương trình học và
báo cáo (sản phẩm thực tế, kết quả thực hiện) ở buổi cuối khi kết thúc môn học.
- Tiêu chí đánh giá: Đánh giá vào điểm chuyên cần của sinh viên (Kết hợp với quá
trình điểm danh trên lớp).
2. Nội dung

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 1



BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
Chương 1. GIỚI THIỆU CHUNG.
1.1. Chủ đề:
-

Các hệ đếm: Thập phân, Nhị phân, Thập lục phân.

-

Các hệ thống mã hóa: Mã BCD, ASCII.

-

Các linh kiện điện tử số cơ bản: Cổng AND, OR, XOR, NOT, NAND, NOR.

-

Vi xử lý, hệ vi xử lý và sự ra đời và phát triển của bộ vi xử lý.

-

Cách chuyển đổi giữa các hệ đếm, cách mã hóa mã BCD, ASCII.

-

Cách xây dựng các mạch số từ các cổng logic cơ bản.

1.2. Câu hỏi lý thuyết:
1. Định nghĩa, đặc điểm của các hệ đếm: Thập phân, Nhị phân, Thập lục phân
và các hệ thống mã hóa: Mã BCD, ASCII? Số bù 1, số bù 2?

2. Cách chuyển đổi giữa hệ đếm thập phân sang nhị phân? Nhị phân sang thập
phân? Nhị phân sang thập lục phân? Thập lục phân sang nhị phân? Thập
phân sang thập lục phân? Thập lục phân sang thập phân?
3. Thực hiện các phép cộng, trừ, nhân, chia giữa các số trong cùng 1 hệ đếm,
lấy ví dụ? Cách thực hiện bằng tay và cách thực hiện trên máy tính?
4. Trình bày về lịch sử phát triển, đặc điểm của các bộ vi xử lý?
5. Cấu trúc của một hệ vi xử lý?
6. Bộ nhớ Cache là gì? Nó có công dụng gì?
7. Thế nào là vi xử lý 4 bit? 8 bit? 16 bit? 32 bit và 64 bit?
8. Các thuật ngữ CISC, RISC, Harvard, Von Neumann ý nghĩa là gì?
9. Có những kiểu truyền thông nào trong vi xử lý? Đặc điểm của nó?
10. Thế nào là hiện tượng tràn (overflow) của bộ đếm? Với bộ đếm 4, 8, 16, 32,
64 thì giá trị đếm tối đa là bao nhiêu?

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 2


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
1.3. Bài tập vận dụng
1. Chuyển sang số thập phân sau sang hệ nhị phân và hệ thập lục phân và cho
biết mỗi số cần tối thiểu bao nhiêu bit nhị phân? Cho biết số bù 1 và bù 2 của
chúng? Hãy chuyển sang số nhị phân trong trường hợp các số thập phân này
mang dấu âm ?
150888

270191

301262


060888

119550

700190

111000

266112

2. Chuyển các số nhị phân sau sang hệ thập phân và hệ thập lục phân ? Và cho
biết số bù 1 và bù 2 của chúng ? Cho biết số bù 1 và bù 2 của chúng ?
1111 1111 1111

1010 1010 1010

1100 1001 1010

1011 1110 1000

1011 1110 1111

1111 0001 0110

1000 0001 0101

1100 1110 0101

3. Chuyển các số thập lục phân sau sang hệ nhị phân và hệ thập phân ? Cho biết

số bù 1 và bù 2 của chúng ?
1508H

2711H

1988H

1991H

FAFBH

FAFCH

FA0FH

DEB2H

4. Thực hiện các phép toán cộng, trừ, nhân, chia giữa các số đã cho trong 3 bài
1, 2, 3 với nhau ?

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 3


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
Chương 2. VI XỬ LÝ INTEL 8088
2.1. Chủ đề:
-


Cấu trúc bên trong và hoạt động của vi xử lý Intel 8088.

-

Sơ đồ chân và các tín hiệu của 8088.

-

Cấu trúc thanh ghi của 8088.

-

Tổ chức BIU và EU.

-

Sự khác nhau giữa 8086 và 8088.

-

Lập trình ứng dụng đơn giản với các thanh ghi của 8086/8088 sử dụng ngôn
ngữ Asembly.

-

Các chế độ địa chỉ của 8086/8088.

2.2. Câu hỏi lý thuyết:
1. Các đặc tính kỹ thuật của 8086/8088? Chức năng các chân của 8086/8088?
2. Ý nghĩa của các câu lệnh MOV, ADD, SUB, SHL, SHR, DIV, INC, DEC,

CMP, JNE, LOOP, INT, PUSH, POP, AND, OR, NOR, NOT, XOR? Lấy ví
dụ minh họa?
3. 8088/8086 có các thanh ghi nào? Chức năng của chúng? Lấy ví dụ bằng 1
đoạn chương trình đơn giản viết bằng ngôn ngữ ASM?
4. Các thanh ghi đoạn của vi xử lý? Địa chỉ logic là gì? Địa chỉ vật lý là gì ?
Cách xác định địa chỉ vật lý từ địa chỉ logic? Địa chỉ của thanh ghi đoạn? Địa
chỉ của thanh ghi lệch? Lấy ví dụ?
5. Các thanh ghi đa năng? Chức năng của chúng?
6. Các thanh ghi con trở và chỉ số? Chức năng của chúng?
7. Thanh ghi cờ? ý nghĩa của từng bit cờ?
8. Cơ chế xử lý xen kẽ dòng mã lệnh là gì? Khi nào không được dùng?
9. Chức năng của các khối BIU và EU?
10. Các chế độ địa chỉ của 8086/8088? Lấy ví dụ?

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 4


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
2.3. Bài tập vận dụng
1. Xác định địa chỉ vật lý của ô nhớ khi biết địa chỉ logic CS:IP của nó như sau:
1234 : 5678

1508 : 2711

FAFB : FC0F

1357 : 2468


1221: 0408

1004 : 1988

EDCA : 3012

0550 : 5500

2. Xác định địa chỉ logic có thể có của địa chỉ vật lý: 64143H?
3. Một ô nhớ trong hệ vi xử lý 8086 có địa chỉ vật lý là FAFBDH khi CPU thực
hiện nạp lệnh tại địa chỉ này thì CS = ? : IP = ? Nếu biết địa chỉ của thanh ghi
đoạn là:
F1F2H

1234H

1508H

711AH

3686H

6414H

4143H

1307H

4. Vẫn câu hỏi trên nhưng trong trường hợp các địa chỉ đã là cho là địa chỉ của
thanh ghi lệch?

5. Cho biết kết quả khi thực hiện các lệnh: NOT, OR, NOR, XOR, AND,
NAND cho 1100 0101 1111 1010?
6. Viết chương trình bằng ngôn ngữ ASM nạp dữ liệu vào các thanh ghi đa
năng và thực hiện các phép toán cộng, trừ, nhân, chia, di chuyển dữ liệu,
NOT, OR, NOR, XOR, AND, NAND các bit?

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 5


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
Chương 3. TỔ CHỨC VÀO RA DỮ LIỆU
3.1. Chủ đề
-

Hệ thống hỗ trợ BUS: Đệm BUS: Ghép nối giữa các IC 74LS244, 74LS245,
74LS373 với vi xử lý.

-

Biểu đồ thời gian của các lệnh đọc ghi.

-

Phối ghép vi xử lý với bộ nhớ: Giải mã địa chỉ bộ nhớ: Sử dụng các cổng
logic cơ bản, Dùng IC 74LS138, Dùng PROM. Cách ghép nối các bộ nhớ...

-


Thâm nhập bộ nhớ trực tiếp DMA.

-

Phối ghép vi xử lý với thiết bị ngoại vi.

3.2. Câu hỏi lý thuyết:
1. Chức năng, bảng sự thật, nguyên tắc hoạt động, sơ đồ chân, sơ đồ kết nối của
chúng với vi xử lý của các IC 74LS373, 74LS244, 74LS245, 74LS138?
2. Chức năng của các chân của vi xử lý: READY, INTR, INTA, NMI, ALE,
DEN, DT/R, IO/M, RD, WR?
3. Vẽ biểu đồ thời gian của các lệnh đọc ghi? Quán trình làm việc của CPU
trong các chu kì đồng hồ? Chu kì bus là gì? Cách xác định?
4. Vẽ mạch tạo từ 0 đến 7 chu kì đợi của vi xử lý?
5. Các bộ nhớ bán dẫn?
6. Cấu tạo, các tín hiệu chức năng, cách xác định dung lượng và từ nhớ của một
vi mạch nhớ?
7. Cách ghép nối các vi mạch nhớ với nhau? Lấy ví dụ?
8. Trình bày 3 phương pháp giải mã địa chỉ cho bộ nhớ: Sử dụng các cổng logic
cơ bản, Dùng IC 74LS138, Dùng PROM?
9. Trình bày về quá trình thâm nhập bộ nhớ trực tiếp DMA?
10. Các kiểu ghép nối vào ra? Đặc điểm của nó?
11. Vẽ sơ đồ ghép nối giữa 8086/8088 với bàn phím 16 số dạng tiếp điểm? Trình
bày nguyên lý hoạt động của hệ thống?
12. Vẽ mạch hiển thị số sử dụng vi mạch 7447 và LED bảy đoạn với vi xử lý?
Trình bày nguyên lý hoạt động của hệ thống?

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 6



BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
13. Sơ đồ khối mạch ghép nối song song lập trình được 8255A? Chức năng các
chân? Các chế độ làm việc và cách cấu hình cho 8255A? Lấy ví dụ?
14. Trình bày về cơ sở truyền thông nối tiếp trong vi xử lý?
15. Vẽ sơ đồ khối, chức năng các chân, các thanh ghi và cách cấu hình để lập
trình cho mạch USART 8251A? lấy ví dụ?
16. Chức năng, cách cấu hình cho các chế độ làm việc của các vi mạch sau:
8284, 8288, 8253, 8259, 8237? Lấy ví dụ?
3.3. Bài tập vận dụng
1. Tần số 1000MHz đưa tới chân CLK của các bộ đếm của 8253. Muốn tạo ra
một tín hiệu xung vuông có tần số bằng 2KHz thì ta phải nạp trước giá trị
bao nhiêu vào bộ đếm?
2. Xác định chu kì BUS (chu kì đọc ghi) và chu kì đồng hồ của CPU khi CPU
làm việc với xung nhịp:
5 MHz

10 Hz

15 KHz

20 Ghz

8 Mhz

88 Hz

368 Khz


135 Ghz

3. Thiết kế bộ nhớ có dung lượng 2K x 8bit dùng các IC nhớ 2K x 4bit? Thiết
kế bộ nhớ có dung lượng 4K x 4bit dùng các IC nhớ 2K x 4bit? Thiết kế bộ
nhớ 16K x 8bit dùng các IC nhớ 16K x 1 bit? Thiết kế bộ nhớ ROM 8Kx8
bit từ các IC 1Kx 8bit?
4. Xác định địa chỉ đầu và cuối của mỗi vùng dữ liệu sau:

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 7


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
5. Phân tích, xác định vùng địa chỉ của các đầu ra 74LS138, IC 2764, IC 2716,
địa chỉ các cổng PA, PB, PC và thanh ghi từ điều khiển CWR của 8255A?

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 8


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
Chương 4. NGẮT VÀ XỬ LÝ NGẮT TRONG HỆ VI XỬ LÝ
4.1. Chủ đề:
-

Tầm quan trọng của ngắt.

-


Các loại ngắt trong vi xử lý.

-

Đáp ứng của CPU khi có yêu cầu ngắt.

-

Xử lý ưu tiên của CPU khi có ngắt.

-

Mạch điều khiển ưu tiên ngắt 8259A.

4.2. Câu hỏi lý thuyết:
-

Trình bày về tầm quan trọng và các loại ngắt trong vi xử lý?

-

Các loại ngắt trong vi xử lý 8086/8088? Các kiểu ngắt mềm?

-

Đáp ứng của CPU khi có yêu cầu ngắt?

-


Bảng vectơ ngắt của 8086/8088 tại 1KB RAM đầu tiên?

-

Xử lý của CPU khi có yêu cầu ngắt?

-

Vẽ sơ đồ khối mạch điều khiển ưu tiên ngắt 8259A? Chức năng các chân và
tín hiệu của 8559A?

-

8259A có khả năng quản lý được bao nhiêu ngắt ở chế độ đơn lẻ và khi nối
tầng thêm từ 1 đến 8 mạch 8259A thợ?

-

Nguyên tắc lập trình cho 8259A? Các thanh ghi từ điều khiển của nó?

-

Cấu trúc các thanh ghi từ điều khiển khởi đầu ICW và cách cấu hình cho nó
trong các chế độ hoạt động?

-

Cấu trúc các thanh ghi từ điều khiển hoạt động OCW và cách cấu hình cho
nó trong các chế độ hoạt động?


-

Trình bày hoạt động của 8086/8088 với 8259A?

4.3. Bài tập ứng dụng
1. Các địa chỉ cần gán cho thanh ghi các thanh ghi từ điều khiển ICW khi muốn
lập trình cho 8259 làm việc với CPU 8088 ở chế độ chủ (đơn lẻ), trong có
đệm bus, chế độ ưu tiên cố định và với EOI thường, IR kích theo mức, tín
hiệu IR7 được gán với số hiệu ngắt là 57h?

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 9


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
Gợi ý:
Thứ tự ghi và điều kiện để ghi các điều khiển ICW vào 8259A.

Cấu hình cho thanh ghi từ điều khiển ICW1

Cấu hình cho thanh ghi từ điều khiển ICW2

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 10


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
Cấu hình cho thanh ghi từ điều khiển ICW4


2. Câu hỏi tổng quát: Các địa chỉ cần gán cho thanh ghi các thanh ghi từ điều
khiển ICW khi muốn lập trình cho 8259 làm việc với CPU 8088 ở chế độ
chủ ( hoặc thợ - tớ) (đơn lẻ), trong có đệm ( hoặc không đệm) bus, chế độ ưu
tiên cố định (hoặc không ưu tiên) và với EOI thường (hoặc EOI tự động) IR
kích theo mức (hoặc kích theo sườn), tín hiệu IR0 (hoặc IR bất kì từ IR0 đến
IR7) được gán với số hiệu ngắt là 80h? (hoặc gán giá trị bất kì từ 00h-F1h)
3. Các địa chỉ cần gán cho thanh ghi thanh ghi từ điều khiển ICW3 khi muốn
lập trình cho 8259A chủ và 8 mạch 8259A thợ nối vào chân IR0  IR7 của
mạch chủ?
Gợi ý: Cấu hình cho thanh ghi từ điều khiển ICW3

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 11


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
4. Câu hỏi tổng quát: Các địa chỉ cần gán cho thanh ghi thanh ghi từ điều khiển
ICW3 khi muốn lập trình cho 8259A chủ và 8 (Hoặc từ 1 đến 8) mạch
8259A thợ nối vào chân IR0  IR7 (Hoặc 1 trong các chân IRi ) của mạch
chủ?
5. Tìm địa chỉ gán vào các từ điều khiển hoạt động OCW của 8255A?
-

Các ngắt IR0-IR7 bị che

-

EOI thường, Mức ưu tiên ngắt thấp nhất là IR2.


-

Thiết lập chế độ mặt nạ đặc biệt, thăm dò yêu cầu ngắt, chọn thanh ghi
IRR để đọc?

Gợi ý:
Cấu hình cho thanh ghi từ điều khiển OCW1

Cấu hình cho thanh ghi từ điều khiển OCW2

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 12


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
Cấu hình cho thanh ghi từ điều khiển OCW3

6. Câu hỏi tổng quát: Tìm địa chỉ gán vào các từ điều khiển hoạt động OCW
của 8255A?
-

Các ngắt IR0IR7 (Hoặc bất kì IR nào) bị che (Hoặc không che)

-

EOI thường (Hoặc EOI bất kì) , Mức ưu tiên ngắt thấp nhất là IR1 (Hoặc
1 trong những IR từ IR0 đến IR7).


-

Thiết lập chế độ mặt nạ đặc biệt (Hoặc xóa mặt nạ đặc biệt), thăm dò yêu
cầu ngắt (Hoặc không thăm dò), chọn thanh ghi IRR (Hoặc ISR) để đọc?

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 13


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
Chương 5. LẬP TRÌNH ỨNG DỤNG VỚI HỌ VI ĐIỀU KHIỂN 8051
5.1. Chủ đề:
-

Giới thiệu chung về họ vi điều khiển 8051.

-

Chương trình C cho vi điều khiển 8051.

-

Lập trình hợp ngữ cho 8051.

-

Lập trình I/O, Timer/Counter, Interrupt, truyền thông nối tiếp cho 8051.

-


Các phần mềm hỗ trợ soạn thảo, gỡ lỗi, biên dịch, mô phỏng và nạp chương
trình cho vi điều khiển 8051.

5.2. Câu hỏi lý thuyết
1. Đặc tính kỹ thuật của vi điều khiển 8051?
2. Sơ đồ khối và chức năng của vi điều khiển AT89C51?
3. Các thanh ghi của 8051 và chức năng của nó?
4. Cấu tạo và chức năng các chân của vi điều khiển AT89C51?
5. Cấu trúc một chương trình C, ASM cho vi điều khiển 8051? Lấy ví dụ?
6. Ý nghĩa các câu lệnh ASM sau: ORG DJNZ, ANL, MOVE, MOVC,
ACALL, POP, SETB, JNZ, JZ, CPL, ADD, INC, JNC
7. Các kiểu dữ liệu, các phép toán cơ bản của 8051?
8. Lập trình ứng dụng với 8051 điều khiển I/O, sử dụng các bộ định thời và bộ
đếm? Lấy ví dụ?
9. Lập trình ứng dụng với 8051 điều khiển I/O, sử dụng các bộ định thời và bộ
đếm? Cách tạo thời gian trễ với Timer? Ví dụ?
10. Cấu hình cho các thanh ghi của Timer/Counter trong các chế độ làm việc?
Lấy ví dụ?
11. Cơ sở về truyền thông nối tiếp trong 8051? Cấu hình và lập trình truyền
thông nối tiếp cho 8051 lấy ví dụ?
12. Các ngắt và trình phục vụ ngắt trong 8051? Phân biệt ngắt với hỏi vòng
(thăm dò – polling)? Cấu hình và lập trình ngắt cho 8051? Lấy ví dụ?
13. Khai báo một chương trình con với các ngắt: Ngắt được tạo bởi bộ định thời?
Ngắt ngoài? Ngắt truyền thông nối tiếp? Ví dụ?

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 14



BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
5.3. Bài tập vận dụng: Trong các bài về lập trình đều sử dụng KeilC để soạn thảo,
gỡ lỗi, biên dịch và dùng Proteus để mô phỏng cho vi điều khiển 8051.
1. Xác định tần số và chu kì đồng hồ của bộ định thời/bộ đếm nếu các tần số
thạch anh mắc với 8051 là:
11,0592MHz

16 MHz

32 MHz

12Mhz

2. Ghép nối LED đơn với chân P1.0 của vi điều khiển, viết chương trình điều
khiển LED nhấp nháy với các yêu cầu:
-

Khai báo đầy đủ 4 phần trong 1 chương trình C?

-

Khai báo 2 phần chính: Tiền xử lý, chương trình chính.

-

Tạo một khoảng thời gian trễ đặt trước?

3. Điều khiển LED đơn nối với 1 PORT (PORT 1) sáng theo hiệu ứng? Với 3
yêu cầu như bài 1.

4. Đọc trạng thái phím bấm và hiện thị lên LED? Dùng 2 phương pháp: Ngắt và
hỏi vòng:
-

1 nút bấm nối với 1 chân, 1 led nối với 1 chân của 8051.

-

2 nút bấm, 1 nút ấn thì led sáng, 1 nút ấn thì led tắt.

-

8 led nối với PORT 1, 3 nút ấn nối với 3 chân của 8051, 1 nút ấn thì led
sáng từ trái sang phải, 1 nút ấn thì led sáng từ phải qua trái, 1 nút ấn thì
tất cả led tắt?

5. Lập trình điều khiển hiện thị LED 7 thanh Anode chung theo các yêu cầu:
-

1 led 7 thanh nối với 1 PORT, điều khiển hiện thị các số đếm trong hệ
16?

-

2 led 7 thanh nối với 2 PORT hiện thị các số đếm tiến từ 00 đến 99?

-

2 led 7 thanh nối với 2 PORT hiện thị các số đếm lùi từ 99 về 00?


-

2 led 7 thanh nối với 2 PORT hiện thị các số đếm tiến từ 00 đến 99 và khi
đến 99 thì đếm lùi về 00?

-

3 led 7 thanh nối với 3 PORT hiện thị các số đếm tiến từ 000 đến 999?

-

3 led 7 thanh nối với 3 PORT hiện thị các số đếm lùi từ 999 về 000?

-

3 led 7 thanh nối với 3 PORT hiện thị các số đếm tiến từ 000 đến 999 và
khi đến 999 thì lùi về 000.

-

4 led 7 thanh nối với 4 PORT hiện thị các số đếm tiến từ 0000 đến 9999?

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 15


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
-


4 led 7 thanh nối với 4 PORT hiện thị các số đếm lùi từ 9999 về 0000?

-

4 led 7 thanh nối với 4 PORT hiện thị các số đếm tiến từ 000 đến 999 và
khi đến 9999 thì lùi về 0000?

6. Cùng các câu hỏi trên nhưng LED 7 thanh được sử dụng là loại mắc Cathode
chung?
7. Có 1 led 7 thanh (Anode chung hoặc Cathode chung) mắc vào 1 PORT, 2
phím bấm được nối vào 2 chân của 8051 yêu cầu: Dùng 2 phương pháp:
Ngắt và hỏi vòng:
-

Nếu ấn 1 phím bấm số hiện thị sẽ tăng.

-

Nếu ấn phím còn lại số hiện thị sẽ giảm.

8. Ghép nối ma trận bàn phím 4x4 với vi điều khiển, lập trình cho 8051 hiện thị
các số từ 1 đến 16 khi có 1 phím được tác động?
9. Thiết kế mạch đồng hồ hiện thị giờ, phút, giây với các phím bấm điều chỉnh
các thông số về thời gian tương ứngx?
10. Lập trình hiện thị kí tự bất kì lên LED matrix 8x8?
11. Tạo ra một sóng vuông với độ đầy xung 50% (cùng tỷ lệ giữa phần cao và
phần thấp) trên chân P1.5. Bộ định thời Timer0 (Hoặc Timer1) được dùng
để tạo độ trễ thời gian?
12. Viết chương trình sử dụng bộ đếm 1, đếm các xung ở chân P3.5 và hiển thị
số đếm được (trong thanh ghi TL1) lên cổng P2?

13. Hãy lập trình cho 8051 để nhận các byte dữ liệu nối tiếp tốc độ 9600 baud và
bật các Led trên Port 2 tương ứng: Máy tính gửi xuống số 1: 1 Led sáng, số
2: 2 Led sáng, … , số 8: 8 Led sáng, nếu các ký tự khác thì tắt tất cả các Led?
14. Chương trình trễ 10s cho 8051 với tần số thạnh anh 24MHz sử dụng timer 0?
15. Cấu hình cho bộ định thời của 8051 khi nó làm việc với Timer0 ở :
-

Bộ định thời 13 bit:8 bit, 5 bit đặt trước.

-

Bộ định thời 16 bit: không có đặt trước.

-

Bộ định thời 8 bit: tự nạp lại.

-

Chế độ bộ định thời chia tách.

16. Câu hỏi tương tự câu 15 nhưng khi sử dụng Timer1?
17. Câu hỏi tương tự câu 15 nhưng khi sử dụng Counter?
GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 16


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
18. Lấy ví dụ với hiện thị led đơn, led 7 thanh, led matrix 8x8, lập trình ứng

dụng với các ngắt ngoài (0 và 1), ngắt do bộ định thời (Timer0 và Timer1),
ngắt truyền thông nối tiếp?
Các câu hỏi bên dưới sử dụng ngôn ngữ ASM
19. Viết đoạn chương trình gửi giá trị 88H đến cổng P1 sử dụng địa chỉ các
cổng?
20. Viết đoạn chương trình để sao giá trị 88H vào ngăn nhớ RAM tại địa chỉ từ
15H đến 20H
-

Sử dụng chế độ định địa chỉ trực tiếp?

-

Sử dụng chế độ định địa chỉ gián tiếp tiếp không dùng vòng lập?

-

Sử dụng chế độ định địa chỉ gián tiếp tiếp dùng vòng lập?

21. Viết chương trình liên tục kiểm tra cổng P2 khi có giá trị khác với 15H. Nếu
P2 = 15H thì không kiểm tra P1 nữa?
22. Xác định giá trị của thanh ghi A sau khi thực hiện các lệnh viết bằng ASM:
A = 08h

MOV A,#15H ;

MOV A,#19H ;

MOV DPTR,#88H


RR A

RL A

MOVC A,@A+DPTR

RL A
RL A

23. Con trỏ ngăn xếp của 8051 sẽ có giá trị là bao nhiêu sau khi thực hiện
chương trình sau?
MOV R6,#15H
MOV R1,#08H
MOV R4,#88H
PUSH 6
PUSH 1
PUSH 4
24. Xác định nội dung ngăn nhớ 11H trong RAM của 8051 sau khi thực hiện
đoạn chương trình sau?
SETB PSW.4
GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 17


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
MOV 0,#15H
MOV 1,#08H
MOV 2,#19H
MOV 7,#88H

MOV 5,#91H
25. Viết chương trình xác định xem R1 có chứa giá trị 8 không? Nếu bằng 8 thì
nạp vào R1 giá trị 15H?
26. Viết chương trình để xóa ACC và sau đó cộng 8 vào ACC 15 lần?
27. Viết chương trình nạp thanh ghi ACC với giá trị 15H và lấy bù ACC 88 lần ?
28. Viết đoạn chương trình tính tổng 15H và 88H ghi kết quả vào R1?
29. Viết đoạn chương trình tính tổng 15+88, kết quả đặt vào thanh ghi A?
30. Tính tổng 15H, 08H và 88H. Ghi byte thấp của tổng vào R0 và byte cao vào
R5?
31. Các cờ CY, PF, AC sẽ ảnh hưởng như thế nào sau khi thực hiện lệnh:
MOV A,#FAH
ADD A,#0FH
32. Viết đoạn chương trình để lưu thanh ghi tích lũy vào R5 của băng 2?
33. Viết đoạn chương trình kiểm tra bit P1.0 cho đến khi bit này lên cao sau đó
ghi giá trị 69H ra cổng P2?
34. Viết đoạn chương trình kiểm tra bit P1.0 cho đến khi bit này lên cao sau đó
ghi giá trị 96H ra cổng P2 và gửi một xung Cao Xuống Thấp tới P0.1?
35. Viết đoạn chương trình xác lập cổng P1 là cổng vào và liên tục đọc cổng P1
và xuất giá trị đọc được ra cổng P3?
36. Hãy tính độ trễ thời gian tính, bỏ qua thời gian thực hiện các lệnh trong vòng
lập?(Tần số thạch anh sử dụng là 16Mhz)
TMOD = 0x10 ;
TL1=0 ;
TH1=0 ;
TR1=1 ;
while ( !TF1) ;
TR1=0 ;
GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 18



BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
TF1=0 ;
37. Hãy viết chương trình cho bộ đếm 0 ở chế độ 1 để đếm các xung và hiển thị
trạng thái của số đếm TL1 trên cổng P2?
38. Lập trình cho 8051 để nhận các byte dữ liệu nối tiếp và đặt chúng vào cổng
P1. Đặt tốc độ baud là 9600, 8 bit dữ liệu và 1 bit stop ?
39. Cho tần số thạch anh XTAL = 16Mhz, hãy tìm giá trị TH1 để đặt tốc độ baud
là 9600 và 4800 với SMOD=1 ?
40. Hãy tính tốc độ baud với TH1= -2 và XTAL=16Mhz ?
41. Hãy lập trình cho 8051 để nhận các byte dữ liệu nối tiếp và đặt chúng vào
cổng P2. Đặt tốc độc baud là 9600, 8 bit dữ liệu và một bit stop ?
42. Viết chương trình thực hiện truyền ra cổng nối tiếp liên tục một ký tự ‘K’ với
tốc độ baud 9600?
43. Trong đoạn chương trình 8051 sau lệnh MOV DPTR,#KB thì DPTR sẽ có
giá trị bằng bao nhiêu?
ORG 0
MOV DPTR, #TAB1
MOV A,#0FFH
MOV P1,A
TG:
MOV

A,P1

MOVC A,@A+DPTR
MOV

P2,


SJMP TG,
ORG

300H

KB: DB 80, 1, 4, 9, 16, 25, 36, 49, 64, 81
END

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 19


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
Chương 6. LẬP TRÌNH ỨNG DỤNG VỚI VI ĐIỀU KHIỂN TIÊN TIẾN
6.1. Chủ đề:
-

Các họ vi điều khiển: AVR, PIC, lõi xử lý ARM.

-

Các phần mềm hỗ trợ: CCS và Proteus.

-

Lập trình C cho PIC.

-


Lập trình ADC, Timer/Counter UART, I2C, PARALLEL cho PIC 16F877A.

6.2. Câu hỏi lý thuyết:
1. Các đặc tính kỹ thuật của họ vi điều khiển AVR, phần mềm hỗ trợ soạn thảo,
gỡ lỗi, biên dịch và nạp chương trình cho nó?
2. Các đặc tính kỹ thuật của vi điều khiển PIC16f877a, phần mềm hỗ trợ soạn
thảo, gỡ lỗi, biên dịch và nạp chương trình cho nó?
3. Các cổng của PIC16F877A, đặc điểm các cổng và chức năng các chân?
4. Các thanh ghi của PIC16F77A? Chức năng của các thanh ghi
OPTION_REG, SFR, STATUS, INTCON?
5. Các ngăn xếp của PIC 16F877A?
6. Cách sử dụng công cụ hỗ trợ lập trình PIC CCS?
7. Cấu trúc một chương trình C cho PIC?
8. Cách cấu hình cho các cổng ? Các hàm lập trình vào ra cho PIC 16F877A?
Ví dụ?
9. Để thực hiện xong một lệnh, PIC cần mấy chu kỳ xung clock? Xác định thời
gian thực hiện một lệnh khi biết tần số xung thạch anh?
10. Cơ sở lý thuyết ADC cho PIC? Các độ phân giải của ADC? Các hàm lập
trình ADC cho PIC 16F877A? Ví dụ?
11. Các bộ điều chế PWM cho PIC16F877A? Lấy ví dụ?
12. Cơ sở lý thuyết truyền thông nối tiếp, I2C, SPI, PARALLEL cho PIC và Các
hàm lập trình truyền thông cho PIC 16F877A? Ví dụ?
13. Cơ sở lý thuyết Timer/Counter cho PIC? Các Timer/Counter của PIC
16F877A? Các hàm lập trình Timer/Counter cho PIC 16F877A? Ví dụ?
14. Các ngắt của PIC16F877A? Các ngắt được phát sinh khi nào? Các hàm lập
trình ngắt cho PIC 16F877A? Ví dụ?
GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 20



BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
6.3. Bài tập ứng dụng:
1. Lập trình cấu hình cho các cổng của PIC16F877A là cổng ra và xuất giá trị
99H ra các cổng?
2. Lập trình cấu hình cho các cổng của PIC16F877A là cổng vào và nhập giá trị
66H vào các cổng?
3. Viết chương trình điều khiển nhấp nháy 8 LED tại PORTA của PIC
16F877A, thời gian trễ do người lập trình định trước?
4. Viết chương trình sử dụng ADC 8 bit, đọc và xuất ra dãy led ở PORT B và
hiển thị trên màn hình máy tính?
5. Viết chương trình giao tiếp giữa PIC16F877A với máy tính, sử dụng giao
tiếp nối tiếp RS232, có hiển thị qua LCD.
6. Viết chương trình thực hiện giao tiếp I2C giữa PIC 16F877A và IC DS1307
để cài đặt thời gian, đọc thời gian từ DS1307, hiển thị lên LCD, truyền qua
RS232?
7. Viết chương trình giao tiếp SPI song công giữa 2 PIC 16F877A?
8. Viết chương trình dịch LED trên PORTD, thời gian dịch là 1s. Chương
trình sử dụng Timer?
9. Viết chương trình nháy led theo nhiều 8 kiểu khác nhau, sử dụng 1 phím
bấm nối với chân ngắt ngoài RB0 để chọn kiểu nháy?

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 21


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
BÀI TẬP THỰC HÀNH VẬN DỤNG

(Chú ý: Trong các bài tập, vi điều khiển được sử dụng là 8051 và PIC, tuy nhiên
sinh viên có thể lựa chọn các họ vi điều khiển như AVR, MSP, STM...)
1. Lập trình ứng dụng với Timer/Counter của vi điều khiển?
2. Lập trình truyền thông UART với vi điều khiển?
3. Lập trình truyền thông SPI với vi điều khiển?
4. Lập trình truyền thông PARALLEL với vi điều khiển?
5. Lập trình truyền thông I2C với vi điều khiển?
6. Lập trình ADC với vi điều khiển?
7. Lập trình cho vi điều khiển giao tiếp với cảm biến dòng điện và điện áp?
8. Lập trình cho vi điều khiển giao tiếp với cảm biến lưu lượng nước?
9. Lập trình cho vi điều khiển giao tiếp với cảm biến mưa?
10. Lập trình cho vi điều khiển giao tiếp với cảm biến tiệm cận?
11. Lập trình cho vi điều khiển giao tiếp với cảm biến màu sắc?
12. Lập trình cho vi điều khiển giao tiếp với cảm biến pulse?
13. Lập trình cho vi điều khiển giao tiếp với cảm biến siêu âm?
14. Lập trình cho vi điều khiển giao tiếp với cảm biến hồng ngoại?
15. Lập trình cho vi điều khiển giao tiếp với cảm biến vân tay?
16. Lập trình cho vi điều khiển giao tiếp với cảm biến ánh sáng?
17. Lập trình cho vi điều khiển giao tiếp với cảm biến chuyển động PIR?
18. Lập trình cho vi điều khiển giao tiếp với cảm biến gia tốc?
19. Lập trình cho vi điều khiển giao tiếp với cảm biến loadcell?
20. Lập trình cho vi điều khiển giao tiếp với cảm biến độ ẩm?
21. Lập trình cho vi điều khiển giao tiếp với cảm biến nhiệt độ?
22. Lập trình cho vi điều khiển giao tiếp với cảm biến khí?
23. Lập trình cho vi điều khiển giao tiếp với Led 7 thanh?
24. Lập trình cho vi điều khiển giao tiếp với Led matrix?
25. Lập trình cho vi điều khiển giao tiếp với Module thu phát RF?
26. Lập trình cho vi điều khiển giao tiếp với động cơ bước?
27. Lập trình cho vi điều khiển giao tiếp với động cơ servo?
GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử


Page 22


BÀI TẬP MÔN HỌC KỸ THUẬT VI XỬ LÝ VÀ ỨNG DỤNG
28. Lập trình cho vi điều khiển giao tiếp với một chiều?
29. Lập trình cho vi điều khiển giao tiếp với máy phát một chiều?
30. Lập trình cho vi điều khiển giao tiếp với IC thời gian thực?
31. Lập trình cho vi điều khiển giao tiếp với module wifi?
32. Lập trình cho vi điều khiển giao tiếp với module bluetooth?
33. Lập trình cho vi điều khiển giao tiếp với module camera?
34. Lập trình cho vi điều khiển giao tiếp với module nhận dạng giọng nói VR?
35. Lập trình cho vi điều khiển giao tiếp với module Joystick?
36. Lập trình cho vi điều khiển giao tiếp với ma trận bàn phím?
37. Lập trình cho vi điều khiển giao tiếp với module RFID?
38. Lập trình cho vi điều khiển giao tiếp với module GPS?
39. Lập trình cho vi điều khiển giao tiếp với module Sim?
40. Lập trình cho vi điều khiển giao tiếp truyền thông với máy tính?
41. Lập trình cho vi điều khiển giao tiếp với LCD?

GV: Nguyễn Thanh Tùng – Bộ môn Công nghệ Điện tử

Page 23



×