1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Giải bài tập vi xử lý chương 6 lưu phú full kèm mô phỏng

22 168 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 269,03 KB
File đính kèm Mô phỏng Proteus chương 6 vi xử lý.rar (316 KB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

UART 8 bit baurate = 9600,cho phép thu, UART 9 bit baurate=19200,chỉ phát, c. UART 9 bit baurate=2400 sử dụng Timer2 MCU8052,cho phép thu, Câu 2: a. Viết một chương trình con tên OUT_CHR9 phát một ký tự 9 bit gồm 8 bit chứa trong (A) và bit thứ 9 là bit parity chẵn, Câu 4: Viết một chương trình thu chuỗi ký tự từ cổng nối tiếp kết thúc bằng mã NULL(thu luôn mã NULL),cất vào RAM nội địa chỉ đầu 50H,sử dụng chương trình con IN_CHR9 ở câu 2b.Chuỗi ký tự được phát từ MCU như bài 3.Sau khi thu xong chuỗi ký tự,xuất từng ký tự từ đầu đến cuối ra Port1 hiển thị barled 8 LED,thời gian xuất 2 ký tự cách nhau 1s, Câu 7: a.Vẽ sơ đồ giao tiếp MCU8051 với DIPSW8 ở Port1,SW nhấn với P2.0 và cổng nối tiếp với IC shift register 74LS164.Viết chương trình đọc data từ DIPSW khi có phím nhấn(tích cực mức 0chống rung phím),xuất data đọc được ra cổng nối tiếp để shift ra shift reg.18

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOAKHOA ĐIỆN – ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ -*** -

VI XỬ LÝ BÀI TẬP CHƯƠNG 6 GIÁO VIÊN HƯỚNG DẪN: LƯU PHÚ

TP HCM, ngày 01 tháng 04 năm 2020

Trang 2

Mục lục:

Câu 1: Viết một đoạn chương trình khởi động cổng nối tiếp làm việc như sau: 3

a UART 8 bit baurate = 9600,cho phép thu 3

b UART 9 bit baurate=19200,chỉ phát 3

c UART 9 bit baurate=2400 sử dụng Timer2 MCU8052,cho phép thu 3

Câu 2: a Viết một chương trình con tên OUT_CHR9 phát một ký tự 9 bit gồm 8 bit chứa trong (A) và bit thứ 9 là bit parity chẵn 4

b Viết một chương trình con tên IN_CHR9 thu một ký tự 9 bit gồm 8 bit cất vào (A)và kiểm tra bit thứ 9 là bit parity chẵn,nếu sai parity set cờ C 4

Câu 3: Viết một chương trình phát chuỗi ký tự cất trong RAM nội địa chỉ đầu 30H ra cổng nối tiếp,sử dụng chương trình con OUT_CHR9 ở câu 2a,chuỗi ký tự kết thúc bằng mã NULL(00H),phát luôn mã NULL.Cho baurate=9600 4

Câu 4: Viết một chương trình thu chuỗi ký tự từ cổng nối tiếp kết thúc bằng mã NULL(thu luôn mã NULL),cất vào RAM nội địa chỉ đầu 50H,sử dụng chương trình con IN_CHR9 ở câu 2b.Chuỗi ký tự được phát từ MCU như bài 3.Sau khi thu xong chuỗi ký tự,xuất từng ký tự từ đầu đến cuối ra Port1 hiển thị barled 8 LED,thời gian xuất 2 ký tự cách nhau 1s 7

Câu 5: Vẽ sơ đồ MCU8051 kết nối trực tiếp với đèn LCD 16 ký tự và hai SW nhấn ký hiệu là RE(thu) và SE(phát).Viết một chương trình thực hiện các công việc sau: 8

Câu 6: Vẽ sơ đồ kết nối MCU8051 trực tiếp với đèn LCD 16 ký tự.Viết một chương trình thực hiện các công việc sau: 14

Câu 7: a.Vẽ sơ đồ giao tiếp MCU8051 với DIP-SW8 ở Port1,SW nhấn với P2.0 và cổng nối tiếp với IC shift register 74LS164.Viết chương trình đọc data từ DIP-SW khi có phím nhấn(tích cực mức 0-chống rung phím),xuất data đọc được ra cổng nối tiếp để shift ra shift reg 18

b Vẽ sơ đồ giao tiếp MCU8051 với barled 8 led ở Port1,SW nhấn với P2.0,cổng nối tiếp với IC shift reg 74LS165.Viết một chương trình khi có SW nhấn(tích cực mức 0-chống rung phím) nạp data từ 8 input của shift reg và shift data vào cổng nối tiếp,sau đó xuất data thu được ra Port1 18

Trang 3

Các bài tập sau cho Fck=11.059Mhz,trừ trường hợp có ghi chú cụ thể

Mô phỏng trên Proteus từ bài 3 đến 7

Câu 1: Viết một đoạn chương trình khởi động cổng nối tiếp làm việc như sau:

a UART 8 bit baurate = 9600,cho phép thu

b UART 9 bit baurate=19200,chỉ phát

c UART 9 bit baurate=2400 sử dụng Timer2 MCU8052,cho phép thu

Bài làma)

Trang 5

Bài làm

- Mạch mô phỏng:

- Code thực hiện:

ORG 00HTAOCHUOI:

MOV R1,#30HMOV A,#41HLOOP: MOV @R1,A

INC R1INC ACJNE A,#4AH,LOOPMOV A,#0

MOV @R1,AINIT:

MOV SCON,#0C2H

MOV TMOD,#20H

MOV TH1,#-3

MOV TL1,#-3

Trang 6

SETB TR1

MOV R0,#30HLAP:

MOV A,@R0

LCALL OUT_CHR9INC R0

JNZ LAP

XUAT:

MOV R0,#30HLP: MOV A,@R0

Trang 7

END

Câu 4: Viết một chương trình thu chuỗi ký tự từ cổng nối tiếp kết thúc bằng mã NULL(thu luôn mã NULL),cất vào RAM nội địa chỉ đầu 50H,sử dụng chương trình con IN_CHR9 ở câu 2b.Chuỗi ký tự được phát từ MCU như bài 3.Sau khi thu xong chuỗi ký tự,xuất từng ký tự từ đầu đến cuối ra Port1 hiển thị barled 8 LED,thời gian xuất 2 ký tự cách nhau 1s

Mô phỏng bài 3 và 4 kết hợp: viết chương trình phát khoảng 10 ký tự tạo sẵn trong RAM nội địa chỉ đầu 30H nạp vào MCU phát,viết chương trình thu chuỗi ký tự nạp vào MCU thu.

Trang 8

MOV @R1,AINC R1

JNZ LAP

MOV @R1,AXUAT:

MOV R0,#50HLP: MOV A,@R0

MOV P1,A

CALL DELAY_1SINC R0

ANL C,/RB8MOV F0,C

MOV C,RB8ANL C,/P

DJNZ R5,$

DJNZ R6,LAP2DJNZ R7,LAP1

Trang 9

được cất trong bộ nhớ code.Sau đó quay lại kiểm tra phím tiếp

+ Nếu nhấn SW SI(tích cực mức 0),MCU xuất ký tự SI(0FH) ra cổng nối tiếp và chờ thu chuỗi

ký tự ASCII kết thúc bằng mã NULL về cất trong RAM nội địa chỉ đầu 30H

+ Xuất chuỗi ký tự thu được ra LCD,sau đó quay lại kiểm tra phím tiếp

Trang 10

DO TIMER1

MOV TMOD,#20H ;TIMER1 MODE 2 AUTO RELOADMOV TH1,#-3

MOV TL1,#-3SETB TR1 ;KHOI DONG TIMER1 BAUDRATE 9600

KT_RE: JB RE,KT_SE

CALL DELAY100MSJNB RE,NHAN_RESJMP KT_RE

NHAN_SE:CALL MODE1

JMP MAINNHAN_RE:CALL CLEAR

CALL MODE2JMP MAIN

; -MODE1: CPL P2.7

Trang 11

MOV A,#0EHCALL SENDMOV DPTR,#TAB ;DPTR TRO TOI MESSAGE

MOVC A,@A+DPTRCALL SEND ;TRUYEN KI TUINC DPTR;TRO TOI KI TU TIEP THEO

JZ KT_PHAT ;KET THUC KHI GAP NULL (DA TRUYEN KI TU NULL)

JMP L1 ;LAP LAIKT_PHAT:RET

; -MODE2: CPL P2.6

MOV A,#0FHCALL SEND ;TRUYEN KI TU #0FHMOV R0,#30H

L2: CALL RECV ;NHAN KI TU

MOV @R0,A ;LUU VAO 30H++

JZ KT_THU ;NEU KI TU LA NULL THI KT THU (DA THU KI TU NULL)

INC R0JMP L2 ;LAP LAIKT_THU: MOV R0,#30H

L3: MOV A,@R0

JZ KTCALL WRITETEXTINC R0

JMP L3KT:

RET

Trang 12

SEND: JNB TI,$

; -CLR TIMOV SBUF,ARET

RECV: JNB RI,$

; -CLR RIMOV A,SBUFRET

DELAY100MS:

; -MOV R7,#200LAP1: MOV R6,#250

DJNZ R6,$

DJNZ R7,LAP1RET

DELAY: MOV R7,#4

; -LAP: MOV R6,#250

DJNZ R6,$

DJNZ R7,LAPRET

INIT: MOV A,#38H

; -CALL WRITECOMMOV A,#01H

CALL WRITECOMMOV A,#0EH

CALL WRITECOM

Trang 13

MOV A,#06HCALL WRITECOMRET

; -WRITECOM:

CLR RSMOV DBUS,ACLR RWSETB ECLR ELCALL DELAYRET

; -WRITETEXT:

SETB RSMOV DBUS,ACLR RWSETB ECLR E

; -TAB:

DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,0

Trang 15

Câu 6: Vẽ sơ đồ kết nối MCU8051 trực tiếp với đèn LCD 16 ký tự.Viết một chương trình thực hiện các công việc sau:

+ MCU chờ thu mã lệnh(từ MCU phát mã lệnh như bài 5)từ cổng nối tiếp

+ Nếu nhận mã lệnh là SO(0EH),MCU sẽ chờ nhận tiếp chuỗi ký tự từ cổng nối

tiếp(chuỗi mã

ASCII ký tự từ 0 đến 9 và mã NULL)cất vào RAM nội địa chỉ đầu 30H,sau đó xuất chuỗi

ký tự

vừa thu được ra LCD.Sau đó quay lại chờ nhận mã lệnh tiếp

+ Nếu nhận mã lệnh là SI(0FH),MCU sẽ phát chuỗi 10 ký tự mã ASCII của chữ A,B,C,

DO TIMER1

MOV TMOD,#20H ;TIMER1 MODE 2 AUTO RELOADMOV TH1,#-3

MOV TL1,#-3SETB TR1 ;KHOI DONG TIMER1 BAUDRATE 9600

CALL INIT ;KHOI DONG LCDMAIN: CALL RECV

CJNE A,#0EH,SKIP

Trang 16

CALL CLEARCALL MODE1JMP MAINSKIP: CJNE A,#0FH,MAIN

CALL MODE2JMP MAIN

; -MODE1: CPL P2.7

MOV R0,#30HL2: CALL RECV ;NHAN KI TU

MOV @R0,A ;LUU VAO 30H++

JZ KT_THU ;NEU KI TU LA NULL THI KT THU (DA THU KI TU NULL)

INC R0JMP L2 ;LAP LAIKT_THU: MOV R0,#30H

L3: MOV A,@R0

JZ KTCALL WRITETEXTINC R0

JMP L3KT:

Trang 17

JZ KT_PHAT ;KET THUC KHI GAP NULL (DA TRUYEN KI TU NULL)

JMP L1 ;LAP LAIKT_PHAT:RET

; -SEND: JNB TI,$

CLR TIMOV SBUF,ARET

; -RECV: JNB RI,$

CLR RIMOV A,SBUFRET

; -INIT: MOV A,#38H

CALL WRITECOMMOV A,#01H

CALL WRITECOMMOV A,#0EH

CALL WRITECOMMOV A,#06H

CALL WRITECOMRET

Trang 18

; -WRITECOM:

CLR RSMOV DBUS,ACLR RWSETB ECLR ELCALL DELAYRET

; -WRITETEXT:

SETB RSMOV DBUS,ACLR RWSETB ECLR E

Trang 19

Câu 7: a.Vẽ sơ đồ giao tiếp MCU8051 với DIP-SW8 ở Port1,SW nhấn với P2.0 và cổng nối tiếp với IC shift register 74LS164.Viết chương trình đọc data từ DIP-SW khi có phím nhấn(tích cực mức 0-chống rung phím),xuất data đọc được ra cổng nối tiếp để shift ra shift reg

b Vẽ sơ đồ giao tiếp MCU8051 với barled 8 led ở Port1,SW nhấn với P2.0,cổng nối tiếp với IC shift reg 74LS165.Viết một chương trình khi có SW nhấn(tích cực mức 0- chống rung phím) nạp data từ 8 input của shift reg và shift data vào cổng nối tiếp,sau đó xuất data thu được ra Port1

Bài làma) ORG 00H

Trang 20

CHECK: MOV R7,#50

LAP: JB SW,CHECK

DJNZ R7,LAPCLR STARTSETB STARTJNB RI,$

CLR RIMOV A,SBUFMOV BAR_LED,AJMP CHECK

Trang 21

END

Ngày đăng: 10/12/2020, 19:01

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w