Câu 4.1: Thiết kế mạch giải mã địa chỉ tạo tín hiệu chọn chip theo vùng địa chỉ như sau: /CS0: 0000H-7FFFH, /CS1: 8XXXH , /CS2: 9XXXH , /CS3: AXXXH, Theo hình 4.6,viết một đoạn chương trình nhận dạng khi SW nhấn rồi nhả ra sẽ nhảy đến nhãn LOOP.Chống rung khi nhấn và nhả, Câu 4.5 Phát triển sơ đồ hình 4.6 thành mạch có 4SW nhấn/nhả ký hiệu là 01,02,03,04. Viết một chương trình con nhận dạng có phím nhấn/nhả,trả kết quả về cờ C=1 nếu không có phím nào nhấn,C=0 và mã phím trong thanh ghi A nếu có phím nhấn/nhả,chống rung phím như bài 4.4
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Ử
BỘ MÔN ĐIỆN TỬ -*** -
VI XỬ LÝ BÀI TẬP CHƯƠNG 4
GIÁO VIÊN HƯỚNG DẪN : LƯU PHÚ
HCM,Ngày 25 tháng 02 năm 2020
1
Trang 2Câu 4.1: Thiết kế mạch giải mã địa chỉ tạo tín hiệu chọn chip theo vùng địa chỉ như sau: /CS0:
0000H-7FFFH, /CS1: 8XXXH , /CS2: 9XXXH , /CS3: AXXXH 3
Câu 4.2 5
Câu 4.3 7
Câu 4.4 Theo hình 4.6,viết một đoạn chương trình nhận dạng khi SW nhấn rồi nhả ra sẽ nhảy đến nhãn LOOP.Chống rung khi nhấn và nhả 9
Câu 4.5 Phát triển sơ đồ hình 4.6 thành mạch có 4SW nhấn/nhả ký hiệu là 01,02,03,04 Viết một chương trình con nhận dạng có phím nhấn/nhả,trả kết quả về cờ C=1 nếu không có phím nào nhấn,C=0 và mã phím trong thanh ghi A nếu có phím nhấn/nhả,chống rung phím như bài 4.4 9
Câu 4.6: Từ bài 4.5 kết nối Port2 với BARLED8(là mạch LED gồm 08 LED chung anode,08 cathode riêng)qua mạch đệm không đảo 74LS244,phân cực mỗi cathode LED bằng R hạn dòng 11
Câu 4.7: Viết một chương trình con đổi số nhị phân 16 bit cất trong R1-A sang số BCD đóng gói cất trong R1,B,A 18
Câu 4.8: Từ sơ đồ quét LED hình 4.10,viết một chương trình thực hiện công việc sau: 20
Câu 4.9: Thiết kế một bộ hiển thị 08 LED 7 đoạn anode chung kết hợp phương pháp quét và chốt như sau:.22 Câu 4.10: Từ sơ đồ 4.9,viết một chương trình con xuất số HEX(0 – F) hiển thị ra bộ hiển thị 8 LED 7 đoạn.Tám số HEX được cất trong 4 ô nhớ 33H,32H,31H,30H theo thứ tự trọng số từ cao xuống thấp 23
Câu 4.15 Vẽ sơ đồ giao tiếp MCU với IC 74LS165 shift register parallel in/serial out.Viết chương trình con nhập data từ 8 ngõ vào song song shift register,lần lượt shift 8bit nối tiếp vào MCU cất data trong thanh ghi A 26
Câu 4.14: Vẽ sơ đồ giao tiếp MCU với IC 74HC595 shift register serial in/parallel out.Viết chương trình con xuất data nối tiếp từ thanh ghi A ra shift register sao cho trong thời gian shift,data out shift register không đổi,sau khi shift đủ 8bit điều khiển xuất một lượt ra ngõ data out shift register 28
Câu 4.11: Vẽ sơ đồ giao tiếp ADC0809 trực tiếp với các port của MCU8051,viết chương trình con đọc ADC tương ứng 30
Câu 4.13: Dựa vào sơ đồ hình 4.13,thay mạch giao tiếp DIPSW bằng ADC0809 với địa chỉ truy xuất từ 4000-5FFFH Ngõ vào ADC là nguồn áp DC thay đổi qua VR.Viết một chương trình đọc điện áp từ ADC và hiển thị giá trị ra LCD theo định dạng: Giá trị đo được:/xuống dòng/ x.xxV 31
Câu 4.12 Dựa vào ví dụ 4.11,phát triển sơ đồ giao tiếp ADC0809 đọc data cả 08 kênh ngõ vào analog.Cho địa chỉ ADC từ 8XX0H đến 8XX7H.Vẽ sơ đồ hoàn chỉnh và viết chương trình con đọc data bất kỳ một kênh analog 32
Câu 4.9_4.10 bổ sung 33
Câu 4.8 bổ sung 34
4.10 bổ sung 42
Câu 4.13 bổ sung 47
2
Trang 3Câu 4.1: Thiết kế mạch giải mã địa chỉ tạo tín hiệu chọn chip theo vùng địa chỉ như sau: / CS0: 0000H-7FFFH , /CS1: 8XXXH , /CS2: 9XXXH , /CS3: AXXXH
Bài làm:
Bảng phân vùng địa chỉ 4.1:
3
Trang 4- Mạch giải mã 3-8 sử dụng IC 74HC138
4
Trang 5Câu 4.2.
5
Trang 6Mạch giải mã theo yêu cầu (/nCS1 tích cực mức 0, các tín hiệu nCS0, nCS2… tích cực mức 1) :
6
Trang 7Câu 4.3.
a) Bảng sự thật của mạch :
- Bảng phân vùng địa chỉ:
7
Trang 9Câu 4.4 Theo hì nh 4.6,viết một đoạn chương trình nhận dạng khi SW nhấn rồi nhả ra sẽ nhảy đến nhãn LOOP.Chống rung khi nhấn và nhả
9
Trang 10Câu 4.5 Phát triển sơ đồ hình 4.6 thành mạch có 4SW nhấn/nhả ký hiệu là 01,02,03,04 Viết một chương trình con nhận dạng có phím nhấn/nhả,trả kết quả về cờ C=1 nếu không có phím nào nhấn,C=0 và mã phím trong thanh ghi A nếu có phím nhấn/nhả,chống rung phím như bài 4.4
10
Trang 13Câu 4.6: Từ bài 4.5 kết nối Port2 với BARLED8(là mạch LED gồm 08 LED chung anode,08 cathode riêng)qua mạch đệm không đảo 74LS244,phân cực mỗi cathode LED bằng R hạn dòng
a) Tính R hạn dòng,khi LED sáng VAK=2V,IA=10mA
b) Vẽ sơ đồ kết nối hoàn chỉnh
c) Viết một chương trình đọc trạng thái các SW:
Trang 14c) Chương trình đọc trạng thái các SW:
14
Trang 20Câu 4.7: Viết một chương trình con đổi số nhị phân 16 bit cất trong R1-A sang số BCD đóng gói cất trong R1,B,A
(Số BCD đóng gói: 2 số BCD chứa trong 01 byte)
Gợi ý: dựa vào phương pháp đổi hệ thống số đếm(cơ số)
20
Trang 21
21
Trang 22Câu 4.8: Từ sơ đồ quét LED hình 4.10,viết một chương trình thực hiện công việc sau:
Inputs:Số nhị phân 16 bit cất trong R1-A
Inputs:Số nhị phân 16 bit cất trong R1-A
Gọi chương trình con đổi số nhị phân 16 bit sang số BCD đóng gói cất trong R1,B,A
Inputs:Số nhị phân 16 bit cất trong R1-A
Nếu kết quả BCD chưa tràn ≤9999,hiển thị ra LED 7 đoạn
Inputs:Số nhị phân 16 bit cất trong R1-A
Nếu kết quả BCD tràn >9999 hiển thị 4 decade cao ra LED 7 đoạn
Inputs:Số nhị phân 16 bit cất trong R1-A
22
Trang 24Câu 4.9: Thiết kế một bộ hiển thị 08 LED 7 đoạn anode chung kết hợp phương pháp quét
và chốt như sau:
Một IC chốt 74HC573 chốt mã 7 đoạn xuất ra từ MCU kết nối cathode các LED qua
Inputs:Số nhị phân 16 bit cất trong R1-A
các R hạn
dòng
Một IC chốt 74HC573 chốt tín hiệu tích cực mức 0 kích cực B BJT lái anode 01 đèn
Inputs:Số nhị phân 16 bit cất trong R1-A
sáng
Địa chỉ IC chốt mã 7 đoạn là 2XXXH
Inputs:Số nhị phân 16 bit cất trong R1-A
Địa chỉ IC chốt quét anode là 3XXXH
Inputs:Số nhị phân 16 bit cất trong R1-A
Vẽ sơ đồ hoàn chỉnh và giải thích
Inputs:Số nhị phân 16 bit cất trong R1-A
24
Trang 25Câu 4.10: Từ sơ đồ 4.9,viết một chương trình con xuất số HEX(0 – F) hiển thị ra bộ hiển thị 8 LED 7 đoạn.Tám số HEX được cất trong 4 ô nhớ 33H,32H,31H,30H theo thứ tự trọng số từ cao xuống thấp.
25
Trang 28
28
Trang 29Câu 4.15 Vẽ sơ đồ giao tiếp MCU với IC 74LS165 shift register parallel in/serial out.Viết chương trình con nhập data từ 8 ngõ vào song song shift register,lần lượt shift 8bit nối tiếp vào MCU cất data trong thanh ghi A
29
Trang 3030
Trang 31Câu 4.14: Vẽ sơ đồ giao tiếp MCU với IC 74HC595 shift register serial in/parallel out.Viết chương trình con xuất data nối tiếp từ thanh ghi A ra shift register sao cho trong thời gian shift,data out shift register không đổi,sau khi shift đủ 8bit điều khiển xuất một lượt ra ngõ data out shift register
Câu 4.11: Vẽ sơ đồ giao tiếp ADC0809 trực tiếp với các port của MCU8051,viết chương trình con đọc ADC tương ứng
31
Trang 33Phần lệnh:
Câu 4.13: Dựa vào sơ đồ hình 4.13,thay mạch giao tiếp DIPSW bằng ADC0809 với địa chỉ truy xuất từ 4000-5FFFH Ngõ vào ADC là nguồn áp DC thay đổi qua VR.Viết một chương trình đọc điện áp từ ADC và hiển thị giá trị ra LCD theo định dạng: Giá trị đo được:/xuống dòng/ x.xxV
33
Trang 34Câu 4 12 Dựa vào ví dụ 4.11,phát triển sơ đồ giao tiếp ADC0809 đọc data cả 08 kênh ngõ vào analog.Cho địa chỉ ADC từ 8XX0H đến 8XX7H.Vẽ sơ đồ hoàn chỉnh và viết chương trình con đọc data bất kỳ một kênh analog.
34
Trang 35Câu 4.9_4.10 bổ sung
35
Trang 37PUSH ACC ;c?t (A) ANL A,#0FH ; l?y decade0 ORL A,#0E0H ; kích LED0 MOV DPTR,#1000H; DPTR tr? d?a ch? ngo?i vi MOVX @DPTR,A ;xu?t ra lái LED0
LCALL DELAY1S ;t?o tr? sáng dèn MOV A,#0FFH ;t?t dèn tránh sáng nhi?u khi sáng dèn khác MOVX @DPTR,A
POP ACC SWAP A ANL A,#0FH ; l?y decade1 ORL A,#0D0H ; kích LED1 MOVX @DPTR,A ;xu?t ra lái LED1 LCALL DELAY1S ;t?o tr? sáng dèn MOV A,#0FFH ;t?t dèn tránh sáng nhi?u khi sáng dèn khác MOVX @DPTR,A
MOV A,B ; ANL A,#0FH ; l?y decade2 ORL A,#0B0H ; kích LED2
37
Trang 38MOVX @DPTR,A ;xu?t ra lái LED2 LCALL DELAY1S ;t?o tr? sáng dèn MOV A,#0FFH ;t?t dèn tránh sáng nhi?u khi sáng dèn khác MOVX @DPTR,A
MOV A,B SWAP A ANL A,#0FH ; l?y decade3 ORL A,#70H ; kích LED3 MOVX @DPTR,A ;xu?t ra lái LED3 LCALL DELAY1S ;t?o tr? sáng dèn MOV A,#0FFH ;t?t dèn tránh sáng nhi?u khi sáng dèn khác MOVX @DPTR,A
RET
; -;HEX16_BCD DOI SO HEX 2 BYTE THANH SO BCD
;INPUTS: R2-A SO HEX 2 BYTE
;OUTPUTS: R2-B-A CHUA SO BCD NEN
;SU DUNG SUB DIV16_8 CHIA 16 BIT CHO 8 BIT
;SU DUNG CAC O NHO 30H,31H,32H,33H,34H,R0,B
38
Trang 39HEX16_BCD:
Trang 40ORL A,30HRET
; -;DIV16_8 INPUTS: SBC 16 BIT R2_A,SC 8 BIT B
; OUTPUTS: THUONG SO(Q.) R2_A,DU SO(R.) B
CHUA BIT CHIA NAP VAO BYTE THAP
40
Trang 41XCH A,R2 ;(A)=R.BYTE CAO (R2)BYTE THAP DA DICH BIT
C QUA R BYTE CAO,C CHUA BIT CAO R.BYTE CAO
JC GREAT_THAN ;C=1 SBC>SC,KHONG CAN SO SANH SBC VA SC
LOW_THAN
C,(A)=Q.BYTE THAP
41
Trang 42; -;Chuong trinh con kiem tra tran ket qua
;input: so BCD nen trong R2,B,A
;output: 4 decade cao cua so bcd
Trang 44MOV A,#0FFH ;(A)=FFH làm t?i LED
MOV DPTR,#LED0 ;làm t?i LED0
Trang 45PUSH ACC ;c?t (A)
ANL A,#0FH ;che 4bit th?p
MOV DPTR,#TAB ;tr? vào b?ng mã 7 do?n
MOVC A,@A+DPTR ;tra b?ng mã 7 do?n nibble th?p
MOV DPTR,#LED0 ;xu?t ra LED0
45
Trang 46POP ACC ;ph?c h?i(A)
SWAP A ;tráo nibble cao thành nibble th?p
ANL A,#0FH ;che nibble th?p
MOV DPTR,#TAB ;tra b?ng l?y mã 7 do?n
PUSH ACC ;c?t (A)
ANL A,#0FH ;che 4bit th?p
MOV DPTR,#TAB ;tr? vào b?ng mã 7 do?n
MOVC A,@A+DPTR ;tra b?ng mã 7 do?n nibble th?p MOV DPTR,#LED2 ;xu?t ra LED0
POP ACC ;ph?c h?i(A)
SWAP A ;tráo nibble cao thành nibble th?p
ANL A,#0FH ;che nibble th?p
MOV DPTR,#TAB ;tra b?ng l?y mã 7 do?n
46
Trang 47MOV DPTR,#LED3 ;xu?t ra LED1
PUSH ACC ;c?t (A)ANL A,#0FH ; l?y decade0 ORL A,#0E0H ; kích LED0 MOV DPTR,#LED4; DPTR tr? d?a ch? ngo?i vi MOVX @DPTR,A ;xu?t ra lái LED0
LCALL DELAY1S ;t?o tr? sáng dèn MOV A,#0FFH ;t?t dèn tránh sáng nhi?u khi sáng dèn khác
47
Trang 48MOVX @DPTR,A
POP ACC
SWAP A
ANL A,#0FH ; l?y decade1
ORL A,#0D0H ; kích LED1
MOVX @DPTR,A ;xu?t ra lái LED1
LCALL DELAY1S ;t?o tr? sáng dèn
MOV A,#0FFH ;t?t dèn tránh sáng nhi?u khi sáng dèn khác MOVX @DPTR,A
MOV A,R2 ;
ANL A,#0FH ; l?y decade2
ORL A,#0B0H ; kích LED2
MOVX @DPTR,A ;xu?t ra lái LED2
LCALL DELAY1S ;t?o tr? sáng dèn
MOV A,#0FFH ;t?t dèn tránh sáng nhi?u khi sáng dèn khác MOVX @DPTR,A
MOV A,R2
SWAP A
ANL A,#0FH ; l?y decade3
ORL A,#70H ; kích LED3
48
Trang 49MOVX @DPTR,A ;xu?t ra lái LED3 LCALL DELAY1S ;t?o tr? sáng dèn MOV A,#0FFH ;t?t dèn tránh sáng nhi?u khi sáng dèn khác MOVX @DPTR,A
Trang 51CALL WAITRET
Trang 52LOOP: MOV R6,#250
DJNZ R6,$
DJNZ R7,LOOPRET
DOC_ADC:
; -END
52