Giải bài tập vi xử lý chương 2 các dạng bài như phân chia bộ nhớ của IC 8051, nối dây proteus đầy đủ,chức năng các chân EA, PSEN,ALE,kết nối chân IC 27C64(EPROM) , phân vùng bộ nhớ 128KB, 64kB, Vẽ sơ đồ kết nối mạch dao động nội tần số 12Mhz và mạch reset nguồn cho MCU 8051.Làm cách nào để biết có dao động.
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN – ĐIỆN TỬ NĂM HỌC 2019 – 2020
-* -VI XỬ LÝ BÀI TẬP CHƯƠNG 2
GVHD: Lưu Phú
TP HỒ CHÍ MINH, 12-2019
Trang 31 Chức năng chân của MCU 8051 ?
Trả lời:
Chức năng chân của MCU 8051: khi chân tín hiệu chân lên mức 1 thì 8051 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp (4K) Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng
2 Chức năng chân của MCU 8051 Khi =1 trạng thái như thế nào?
Trả lời:
( program store enable) tín hiệu được xuất ra ở chân 29 dùng để truy xuất bộ nhớ chương trình ngoài Chân này thường được nối với chân (output enable) của ROM ngoài
- Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này phát ra tín hiệu kích hoạt
ở mức thấp
- Khi thực thi một chương trình ở ROM nội, chân này được duy trì ở mức thụ động (logic 1)
=> Khi chân = 1 tức là đang sử dụng bộ nhớ chương trình trong nên chân = 1
3 Sử dụng IC 27C64(EPROM) làm bộ nhớ chương trình ngoài.Kết nối với chân
nào của IC 27C64?
Trả lời:
Kết nối với chân của IC 27C64
4 Chức năng chân ALE.Tần số xung trên chân ALE?
Trả lời:
ALE (Address Latch Enable = cho phép chốt địa chỉ)
- Do đối với Port 0 là một port 2 chức năng, nó được dồn kênh giữa bus địa chỉ và bus dữ liệu,
do vậy cần có tín hiệu để giúp phân biệt khi nào tín hiệu từ port 0 là địa chỉ, tín hiệu từ port là
dữ liệu Chân ALE đảm nhận chức năng này ALE là tín hiệu (như clock cấp cho 74HC373)
để chốt địa chỉ vào một thanh ghi bên ngoài trong nữa đầu chu kỳ bộ nhớ
- Tần số xung trên chân ALE = 1/6 lần tần số dao động trên chíp
5 Vẽ sơ đồ kết nối mạch dao động nội tần số 12Mhz và mạch reset nguồn cho
MCU 8051.Làm cách nào để biết có dao động?
Trả lời:
Để biết mạch có giao động hay không thì ta sử dụng oscilloscope đo chân XTAL2 nếu xuất hiện xung vuông thì có dao động
Trang 46 Tại sao phải lắp thêm R 10K kéo lên nguồn +5V cho cả Port 0?
Trả lời:
Nếu không kết nối chân này với điện trở 10K thì khi chân này làm việc với chức năng ghi ra cổng IO bên ngoài (ví dụ ghi “1” thì khi đó trạng thái tại Port 0 sẽ không được xác định (trạng thái bị treo)) Do vậy cần nối với 1 điện trỡ kéo lên để trạng thái tại Port 0 luôn được xác định
7 Tại sao phải chốt địa chỉ byte thấp.Sử dụng IC 74HC373 làm mạch chốt địa chỉ
byte thấp,vẽ sơ đồ kết nối MCU 8051 với IC 74HC373.
Trả lời:
Khi dùng bộ nhớ ngoài, port 0 không còn là một cổng I/O thuần túy nữa Nó được dồn kênh giữa bus địa chỉ (A0-A7) và bus dữ liệu ( D0-D7) với tín hiệu ALE để chốt byte thấp của địa chỉ trong nửa chu kỳ đầu bộ nhớ
8 Sử dụng IC HM6264(RAM) làm bộ nhớ dữ liệu(data) ngoài Kết nối chân và
đến chân nào của IC HM6264?
Trang 5Trả lời:
Khi đọc dữ liệu từ bộ nhớ ngoài thì ta kết nối chân vào chân của RAM ngoài và chân vào chân
9 Sử dụng IC 27C64 làm bộ nhớ chương trình ngoài vùng địa chỉ từ 0000H
÷1FFFH.Vẽ sơ đồ kết nối hoàn chỉnh các đường bus địa chỉ,data, điều khiển MCU
8051 với IC 27C64.
Trả lời:
10 Sử dụng IC HM6264 làm bộ nhớ dữ liệu ngoài vùng địa chỉ từ
0000H÷1FFFH.Vẽ sơ đồ kết nối hoàn chỉnh các đường bus địa chỉ,data, điều
khiển MCU 8051 với IC HM6264
Trả lời:
11 Kết hợp sơ đồ câu 9 và 10 thành một sơ đồ hoàn chỉnh.
Trang 6Trả lời:
12 Sử dụng 02 IC 27C64 và HM6264 làm bộ nhớ chương trình và data ngoài
vùng địa chỉ từ 0000H÷2FFFH.Vẽ sơ đồ kết nối với MCU 8051.
Trả lời:
Bộ nhớ chương trình và dữ liệu có địa chỉ 0000H÷2FFFH là 12 KB => cần 14 đường địa chỉ ứng với bộ nhớ có dung lượng 16 KB
Cần 2 IC HM6264 để làm bộ nhớ data ngoài và cần 2 IC 27C64 làm bộ nhớ chương trình ngoài với bit A13 (P2.5) làm tín hiệu chọn chip
P2.5 (A13) = 0 => IC (U2 & U3) có vùng địa chỉ 0000H - 1FFFH
P2.5 (A13) = 1 => IC (U4 & U6) có vùng địa chỉ 2000H – 2FFFH
13 Sử dụng IC 27C64 và HM6264 tạo 64KB bộ nhớ chương trình và data
ngoài.Vẽ sơ đồ kết nối với MCU 8051.
Trả lời:
Bộ nhớ 64 KB data ngoài: cần 8 x 8KB, dùng 8 IC HM6264
Bộ nhớ chương trình 64KB ngoài cần 8 x 8KB, dùng 8 IC 27C64
Bảng địa chỉ:
Tín hiệu
chọn chip A15 A14 A13 A12…A0 Vùng địa chỉ
/CS0 0 0 0 X 0000H – 1FFFH
/CS1 0 0 1 X 2000H – 3FFFH
/CS2 0 1 0 X 4000H – 5FFFH
/CS3 0 1 1 X 6000H – 7FFFH
/CS4 1 0 0 X 8000H – 9FFFH
/CS5 1 0 1 X A000H – BFFFH
/CS6 1 1 0 X C000H – DFFFH
Trang 7/CS7 1 1 1 X E000H – FFFFH
- Các chân A12 – A8 của MCU sẽ nối lần lượt với A12 – A8 của tất cả các IC 6264 và IC 27C64
- Các chân D7 – D0 của tất cả các IC sẽ nối lần lượt với P0.7 – P0.0 của 8051
- Tất cả các chân /CE của IC 6264 được nối đất
- Tất cả các chân /OE của 27C64 và 6264 nối với /RD của 8051
- Tất cả các chân /WE của 6264 nối với /WR của 8-51
- Mỗi ngõ ra của 74HC373 nối với 1 chân /CE của 27C64 (tín hiệu chọn chip)
- Mỗi ngõ ra của 74HC373 sẽ được lấy bù để nối với 1 chân CS của 6264 (đây chính là tín hiệu chọn chip)
- Các chân A15 – A13 sẽ nối lần lượt với C, B, A của 74HC373
Sơ đồ nối dây
Câu 14 Sử dụng IC HM62256 (RAM) 32KB làm bộ nhớ chương trình và data
ngoài (overlay memory), mỗi vùng chiếm 16KB.Vẽ sơ đồ kết nối với MCU 8051 và
tự chọn vùng địa chỉ cho bộ nhớ chương trình và data.
Trả lời:
- Dùng IC HM62256 (RAM) 32KB được tích hợp vừa làm bộ nhớ chương trình và data ngoài mỗi bộ nhớ chiếm 16KB.
- Ta chọn vùng dữ liệu từ 0000H – 3FFFH là vùng địa chỉ của bộ nhớ
chương trình Vùng dữ liệu từ 4000H – 7FFFH là vùng địa chỉ của bộ nhớ data dữ liệu.
Ta có sơ đồ nối dây sau:
Trang 8Câu 15 Vẽ sơ đồ kết nối MCU 8051 với bộ nhớ ngoài địa chỉ từ 0000H÷03FFH Nhận xét về 02 đoạn chương trình sau khi truy xuất ô nhớ địa chỉ 03FFH:
Đoạn 1:
MOVX @R0,A ; chuyển(A) ra ô nhớ data ngoài trỏ bởi (R0)
Đoạn 2:
MOV DPTR,#03FFH ; nạp DPTR giá trị 03FFH
MOVX @DPTR,A ; chuyển (A) ra ô nhớ data ngoài trỏ bởi(DPTR) Trả lời:
Trang 9Từ yêu cầu là 1KB cần 10 đường địa chỉ nên sẽ sử dụng IC 6264 với 12 đường địa chỉ và dung lượng tối đa là 4KB
Câu 17 Tại sao ở đầu chương trình người ta thường viết lệnh dời vùng stack lên
vùng cao của bộ nhớ RAM nội.
Trả lời:
Đầu chương trình người ta thường viết dời vùng stack lên vùng cao của bộ nhớ RAM vì nếu reset thì khi bắt đầu thanh ghi SP sẽ bắt đầu từ 07H.Sẽ xuất hiện trùng địa chỉ với các dữ liệu chương trình trong vùng địa chỉ này (trùng với vùng ram nội, vùng ram địa chỉ hóa từng bit)
Khi sử dụng ngăn xếp thì dữ liệu của ngăn xếp và dữ liệu trong vùng RAM có thể bị chồng lấn nhau nên người ta mới phân vùng bộ nhớ đẩy vùng stack lên vùng cao và vùng thấp của bộ nhớ RAM nội sẽ là nơi lưu trữ dữ liệu chương trình.
Với lệnh trên,cho biết chiều dài vùng stack của MCU 8051 là 60H – 7FH (32 byte) Đối với MCU 8052 là 60H – FFH (160 byte).
Trang 10Câu 18 Ở trạng thái reset bắt đầu chương trình,LED
sáng.Giải thích tại sao?
Nêu cách khắc phục sao cho khi reset bắt đầu chương
trình LED tối.
Viết lệnh điều khiển LED sáng/tối như thế nào?
Trả lời:
Do BJT là dòng linh kiện kích dòng để đóng ngắt điện áp, cho nên khi Reset thì chân P1.0 có mức điện áp 1, nên có dòng IB, dẫn tới có dòng trên LED => LED sáng
Cách khắc phục là làm điện áp trên P1.0 về 0 hay không có dòng ở cực B Dùng lệnh CLR
P1.0.
CLR P1.0 ;LED OFF
SETB P1.0 ;LED ON
Câu 19 Sau khi reset,lệnh đầu tiên trong chương trình đặt ở địa chỉ ô nhớ chương
trình nào?
Trả lời:
Sau khi reset, chương trình luôn bắt đầu ở ô nhớ thứ nhất của bộ nhớ chương trình: 0000H
Câu 20 Sau khi reset chương trình thực hiện đoạn lệnh sau:
Cho biết nội dung 4 bank thanh ghi,ACC,PSW sau khi thực
hiện đoạn lệnh trên.
Trả lời:
• Nội dung thanh ghi như sau:
Trang 11 ACC: 00H
PSW: 18H
• Nội dung 4 bank thanh ghi:
Bank 1:
(R0) = (R7) = 5FH
Từ R1 tới R6 chứa nội dung 00H
Bank 2:
Từ R0 tới R7 chưa nội dung 00H
Bank 3: Tương tự Bank 2
Bank 4: Tương tự Bank 2
Câu 21 Cho biết trạng thái các cờ C,AC,OV sau khi thực hiện đoạn lệnh sau:
Trả lời:
0100 1100 76H MOV A,#76H ; (A)←#76H
+ 0110 1100 +6CH MOV B,#6CH ; (B)←#6CH
1011 1000 -46H ADD A,B ; (A)← (A)+(B)
1011 1000 -46H
0010 0000 +20H
1101 1000 -26H (A)←(A)+#20H A= 11011000 Tràn từ bit3 qua bit4 nên cờ AC = 1
Tràn từ bít6 qua bit7 nên cờ OV = 1
Tràn qua bit7 nên cờ C = 1
Cờ p= 0 vì số bit1 trong A bằng 4 là số chẳn
Trang 12Câu 22 Với MCU 8052 cho nhận xét về 2 đoạn lệnh sau:
Đoạn 1: MOV A,80H Đoạn 2: MOV R0,#80H MOV A,@R0
Trả lời:
Hai đoạn lệnh trên là cách thể hiện 2 loại định vị địa chỉ Đoạn 1 là định vị trực tiếp đoạn 2 là định vị gián tiếp Hai cách định vị trên đều đúng và tương đương nhau.