Tải bản đầy đủ (.docx) (12 trang)

Giải bài tập vi xử lý chương 2 Lưu Phú full

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 (739.79 KB, 12 trang )

ĐẠ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



1. 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.


6. 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?



Trả 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.


Trả 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
/CS0
/CS1
/CS2
/CS3
/CS4
/CS5
/CS6

A15

A14

A13

A12…A0

Vùng địa chỉ

0
0
0
0
1

1
1

0
0
1
1
0
0
1

0
1
0
1
0
1
0

X
X
X
X
X
X
X

0000H – 1FFFH
2000H – 3FFFH
4000H – 5FFFH

6000H – 7FFFH
8000H – 9FFFH
A000H – BFFFH
C000H – DFFFH


/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:


Câ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:
MOV R0,#0FFH
; nạp R0 giá trị FFH
SETB P2.0
; P2.0=1
SETB P2.1
; P2.1=1
MOVX @R0,A
; chuyển(A) ra ô nhớ data ngoài trỏ bởi (R0)
Đoạn 2:
MOV DPTR,#03FFH
MOVX @DPTR,A
Trả lời:


; nạp DPTR giá trị 03FFH
; chuyển (A) ra ô nhớ data ngoài trỏ bởi(DPTR)


Từ 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).


Câ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:
MOV R0,#5FH
; nạp R0 giá trị 5FH
MOV A,R0

; (A)←(R0)

MOV R7,A

; (R7)←(A)

SETB RS0

; RS0=1


SETB RS1

; RS1=1

MOV A,R0

; (A)←(R0)

MOV R7,A

; (R7)←(A)

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:



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:
MOV A,#76H
; (A)←#76H
MOV B,#68H

; (B)←#68H

ADD A,B

; (A)+(B)

ADD A,#20H

; (A)←(A)+#20H

Trả lời:
0100 1100

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

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

MOV A,#76H ; (A)←#76H

(A)←(A)+#20H

A= 11011000



Câ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.



×