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

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

Đ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

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

ĐẠ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 GIÁO VIÊN HƯỚNG DẪN: LƯU PHÚ TP HCM, ngày 01 tháng 04 năm 2020 Mục lục: Câu 1: Viết đoạn chương trình khởi động cổng nối tiếp làm việc sau: a UART bit baurate = 9600,cho phép thu b UART bit baurate=19200,chỉ phát c UART bit baurate=2400 sử dụng Timer2 MCU8052,cho phép thu .3 Câu 2: a Viết chương trình tên OUT_CHR9 phát ký tự bit gồm bit chứa (A) bit thứ bit parity chẵn b Viết chương trình tên IN_CHR9 thu ký tự bit gồm bit cất vào (A)và kiểm tra bit thứ bit parity chẵn,nếu sai parity set cờ C Câu 3: Viết chương trình phát chuỗi ký tự cất RAM nội địa đầu 30H cổng nối tiếp,sử dụng chương trình OUT_CHR9 câu 2a,chuỗi ký tự kết thúc mã NULL(00H),phát mã NULL.Cho baurate=9600 Câu 4: Viết chương trình thu chuỗi ký tự từ cổng nối tiếp kết thúc mã NULL(thu mã NULL),cất vào RAM nội địa đầu 50H,sử dụng chương trình IN_CHR9 câu 2b.Chuỗi ký tự phát từ MCU 3.Sau thu xong chuỗi ký tự,xuất ký tự từ đầu đến cuối Port1 hiển thị barled LED,thời gian xuất ký tự cách 1s .7 Câu 5: Vẽ sơ đồ MCU8051 kết nối trực tiếp với đèn LCD 16 ký tự hai SW nhấn ký hiệu RE(thu) SE(phát).Viết chương trình thực cơng việc sau: Câu 6: Vẽ sơ đồ kết nối MCU8051 trực tiếp với đèn LCD 16 ký tự.Viết chương trình thự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 cổng nối tiếp với IC shift register 74LS164.Viết chương trình đọc data từ DIP-SW có phím nhấn(tích cực mức 0-chống rung phím),xuất data đọc cổng nối tiếp để shift shift reg .18 b Vẽ sơ đồ giao tiếp MCU8051 với barled led Port1,SW nhấn với P2.0,cổng nối tiếp với IC shift reg 74LS165.Viết chương trình có SW nhấn(tích cực mức 0-chống rung phím) nạp data từ input shift reg shift data vào cổng nối tiếp,sau xuất data thu Port1 18 Các tập sau cho Fck=11.059Mhz,trừ trường hợp có ghi cụ thể Mơ Proteus từ đến Câu 1: Viết đoạn chương trình khởi động cổng nối tiếp làm việc sau: a UART bit baurate = 9600,cho phép thu b UART bit baurate=19200,chỉ phát c UART bit baurate=2400 sử dụng Timer2 MCU8052,cho phép thu Bài làm a) MOV SCON,#52H MOV TMOD,#20H MOV TH1,#-3 MOV TL1,#-3 SETB TR1 b) MOV SCON #11000010B MOV TMOD,#20H MOV TH1,#-3 MOV TL1,#-3 MOV A,PCON SETB ACC.7 MOV PCON,A SETB TR1 c)GIA TRI CAN NAP LAI LA -12 MOV SCON,#11010010B MOV T2CON,#00110000B MOV TL2,#-12 MOV TH2,#0 MOV RCAP2L,#-12 MOV RCAP2H,#-12 SETB TR2 Câu 2: a Viết chương trình tên OUT_CHR9 phát ký tự bit gồm bit chứa (A) bit thứ bit parity chẵn b Viết chương trình tên IN_CHR9 thu ký tự bit gồm bit cất vào (A)và kiểm tra bit thứ bit parity chẵn,nếu sai parity set cờ C Bài làm a) OUT_CHR9: MOV C,P JNB TI,$ CLR TI MOV SUBF,A MOV TB8,C RET b) IN_CHR9: JNB RI,$ CLR TI MOV A,SBUF MOV C,P ANL C,/RB8 MOV F0,C MOV C,RB8 ANL C,/P ORL C,F0 ;C=P XOR RB8 RET Câu 3: Viết chương trình phát chuỗi ký tự cất RAM nội địa đầu 30H cổng nối tiếp,sử dụng chương trình OUT_CHR9 câu 2a,chuỗi ký tự kết thúc mã NULL(00H),phát mã NULL.Cho baurate=9600 Bài làm - Mạch mô phỏng: - Code thực hiện: ORG 00H TAOCHUOI: MOV R1,#30H MOV A,#41H LOOP: MOV @R1,A INC R1 INC A CJNE A,#4AH,LOOP MOV A,#0 MOV @R1,A INIT: MOV SCON,#0C2H MOV TMOD,#20H MOV TH1,#-3 MOV TL1,#-3 SETB TR1 MOV R0,#30H LAP: MOV A,@R0 LCALL OUT_CHR9 INC R0 JNZ LAP XUAT: MOV R0,#30H LP: MOV A,@R0 MOV P1,A CALL DELAY INC R0 JNZ LP JMP KT OUT_CHR9: MOV C,P JNB TI,$ CLR TI MOV TB8,C MOV SBUF,A RET DELAY: MOV R7,#4 LAP1:MOV R6,#250 LAP2:MOV R5,#250 DJNZ R5,$ DJNZ R6,LAP2 DJNZ R7,LAP1 RET KT: END Câu 4: Viết chương trình thu chuỗi ký tự từ cổng nối tiếp kết thúc mã NULL(thu mã NULL),cất vào RAM nội địa đầu 50H,sử dụng chương trình IN_CHR9 câu 2b.Chuỗi ký tự phát từ MCU 3.Sau thu xong chuỗi ký tự,xuất ký tự từ đầu đến cuối Port1 hiển thị barled LED,thời gian xuất ký tự cách 1s  Mô kết hợp: viết chương trình phát khoảng 10 ký tự tạo sẵn RAM nội địa đầ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 Bài làm ORG 00H INIT: MOV SCON,#0D2H MOV TMOD,#20H MOV TH1,#-3 MOV TL1,#-3 SETB TR1 MOV R1,#50H LAP: CALL IN_CHR9 MOV @R1,A INC R1 JNZ LAP MOV @R1,A XUAT: MOV R0,#50H LP: MOV A,@R0 MOV P1,A CALL DELAY_1S INC R0 JNZ LP JMP KT IN_CHR9: JNB RI,$ CLR RI MOV A,SBUF MOV C,P ANL C,/RB8 MOV F0,C MOV C,RB8 ANL C,/P ORL C,F0 RET DELAY_1S: MOV R7,#4 LAP1:MOV R6,#250 LAP2:MOV R5,#250 DJNZ R5,$ DJNZ R6,LAP2 DJNZ R7,LAP1 RET KT: END Câu 5: Vẽ sơ đồ MCU8051 kết nối trực tiếp với đèn LCD 16 ký tự hai SW nhấn ký hiệu RE(thu) SE(phát).Viết chương trình thực cơng việc sau: + Nếu nhấn SW SE(tích cực mức 0),MCU xuất ký tự SO(0EH) cổng nối tiếp tiếp tục xuất 10 ký tự ASCII số 0,1…,9 kết thúc mã NULL cổng nối tiếp.Chuỗi ký tự phát cất 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) cổng nối tiếp chờ thu chuỗi ký tự ASCII kết thúc mã NULL cất RAM nội địa đầu 30H + Xuất chuỗi ký tự thu LCD,sau quay lại kiểm tra phím tiếp + Chống rung phím nhấn + Cho baudrate=9600 Bài làm RS BIT P2.0 RW BIT P2.1 E BIT P2.2 RE BIT P0.0 SE BIT P0.1 DBUS EQU P1 ; ORG 00H MOV SCON,#52H;CHE DO UART 8BIT CHO PHEP THU BAUDRATE DO TIMER1 MOV TMOD,#20H ;TIMER1 MODE AUTO RELOAD MOV TH1,#-3 MOV TL1,#-3 SETB TR1 ;KHOI DONG TIMER1 BAUDRATE 9600 CALL CLEAR CALL INIT ;KHOI DONG LCD MAIN: CLR A KT_SE: JB SE,KT_RE CALL DELAY100MS JNB SE,NHAN_SE SJMP KT_SE KT_RE: JB RE,KT_SE CALL DELAY100MS JNB RE,NHAN_RE SJMP KT_RE NHAN_SE:CALL MODE1 JMP MAIN NHAN_RE:CALL CLEAR CALL MODE2 JMP MAIN ; MODE1: CPL P2.7 MOV A,#0EH CALL SEND MOV DPTR,#TAB ;DPTR TRO TOI MESSAGE L1: CLR A MOVC A,@A+DPTR CALL SEND ;TRUYEN KI TU INC DPTR;TRO TOI KI TU TIEP THEO JZ KT_PHAT ;KET THUC KHI GAP NULL (DA TRUYEN KI TU NULL) JMP L1 ;LAP LAI KT_PHAT:RET ; MODE2: CPL P2.6 MOV A,#0FH CALL SEND ;TRUYEN KI TU #0FH MOV R0,#30H L2: CALL RECV ;NHAN KI TU MOV @R0,A ;LUU VAO 30H++ JZ ;NEU KI TU LA NULL THI KT THU (DA THU KI TU KT_THU NULL) INC R0 JMP L2 ;LAP LAI KT_THU: MOV R0,#30H L3: MOV A,@R0 JZ KT CALL WRITETEXT INC R0 JMP L3 KT: RET ; SEND: JNB TI,$ CLR TI MOV SBUF,A RET ; RECV: JNB RI,$ CLR RI MOV A,SBUF RET ; DELAY100MS: MOV R7,#200 LAP1: MOV R6,#250 DJNZ R6,$ DJNZ R7,LAP1 RET ; DELAY: MOV R7,#4 LAP: MOV R6,#250 DJNZ R6,$ DJNZ R7,LAP RET ; INIT: MOV A,#38H CALL WRITECOM MOV A,#01H CALL WRITECOM MOV A,#0EH CALL WRITECOM MOV A,#06H CALL WRITECOM RET ; WRITECOM: CLR RS MOV DBUS,A CLR RW SETB E CLR E LCALL DELAY RET ; WRITETEXT: SETB RS MOV DBUS,A CLR RW SETB E CLR E CALL DELAY RET ; CLEAR: MOV A, #01H CALL WRITECOM RET ; TAB: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,0 ; - END Câu 6: Vẽ sơ đồ kết nối MCU8051 trực tiếp với đèn LCD 16 ký tự.Viết chương trình thực công việc sau: + MCU chờ thu mã lệnh(từ MCU phát mã lệnh 5)từ cổng nối tiếp + Nếu nhận mã lệnh SO(0EH),MCU chờ nhận tiếp chuỗi ký tự từ cổng nối tiếp(chuỗi mã ASCII ký tự từ đến mã NULL)cất vào RAM nội địa đầu 30H,sau xuất chuỗi ký tự vừa thu LCD.Sau quay lại chờ nhận mã lệnh tiếp + Nếu nhận mã lệnh SI(0FH),MCU phát chuỗi 10 ký tự mã ASCII chữ A,B,C, …,I,J mã NULL cổng nối tiếp.Sau quay lại chờ nhận mã lệnh tiếp + Cho baurate=9600 Bài làm RS BIT P2.0 RW BIT P2.1 E BIT P2.2 DBUS EQU P1 ; ORG 00H MOV SCON,#52H;CHE DO UART 8BIT CHO PHEP THU BAUDRATE DO TIMER1 MOV TMOD,#20H ;TIMER1 MODE AUTO RELOAD MOV TH1,#-3 MOV TL1,#-3 SETB TR1 MAIN: ;KHOI DONG TIMER1 BAUDRATE 9600 CALL CLEAR CALL INIT ;KHOI DONG LCD CALL RECV CJNE A,#0EH,SKIP CALL CLEAR CALL MODE1 JMP MAIN SKIP: CJNE A,#0FH,MAIN CALL MODE2 JMP MAIN ; MODE1: CPL P2.7 MOV R0,#30H L2: CALL RECV ;NHAN KI TU MOV @R0,A ;LUU VAO 30H++ JZ ;NEU KI TU LA NULL THI KT THU (DA THU KI TU KT_THU NULL) INC R0 JMP L2 ;LAP LAI KT_THU: MOV R0,#30H L3: MOV A,@R0 JZ KT CALL WRITETEXT INC R0 JMP L3 KT: RET ; MODE2: CPL P2.6 MOV DPTR,#TAB ;DPTR TRO TOI MESSAGE L1: CLR A MOVC A,@A+DPTR CALL SEND ;TRUYEN KI TU INC DPTR;TRO TOI KI TU TIEP THEO JZ KT_PHAT ;KET THUC KHI GAP NULL (DA TRUYEN KI TU NULL) JMP L1 ;LAP LAI KT_PHAT:RET ; SEND: JNB TI,$ CLR TI MOV SBUF,A RET ; RECV: JNB RI,$ CLR RI MOV A,SBUF RET ; DELAY: MOV R7,#4 LAP: MOV R6,#250 DJNZ R6,$ DJNZ R7,LAP RET ; INIT: MOV A,#38H CALL WRITECOM MOV A,#01H CALL WRITECOM MOV A,#0EH CALL WRITECOM MOV A,#06H CALL RET WRITECOM ; WRITECOM: CLR RS MOV DBUS,A CLR RW SETB E CLR E LCALL DELAY RET ; WRITETEXT: SETB RS MOV DBUS,A CLR RW SETB E CLR E CALL DELAY RET ; CLEAR: MOV A, #01H CALL WRITECOM RET ; TAB: DB ; 41H,42H,43H,44H,45H,46H,47H,48H,49H,4AH,0 END Câu 7: a.Vẽ sơ đồ giao tiếp MCU8051 với DIP-SW8 Port1,SW nhấn với P2.0 cổng nối tiếp với IC shift register 74LS164.Viết chương trình đọc data từ DIP-SW có phím nhấn(tích cực mức 0-chống rung phím),xuất data đọc cổng nối tiếp để shift shift reg b Vẽ sơ đồ giao tiếp MCU8051 với barled led Port1,SW nhấn với P2.0,cổng nối tiếp với IC shift reg 74LS165.Viết chương trình có SW nhấn(tích cực mức 0chống rung phím) nạp data từ input shift reg shift data vào cổng nối tiếp,sau xuất data thu Port1 Bài làm a) ORG 00H SW EQU P2.0 STA EQU P2.1 MOV SCON,#00000010B CHECK: MOV R7,#50 LAP: JB SW,CHECK DJNZ R7,LAP CLR STA SETB STA JNB TI,$ CLR TI MOV A,P1 MOV SBUF,A JMP CHECK END b) SW BIT P2.0 START BIT P2.1 BAR_LED EQU P1 ORG 00H MOV SCON,#00010010B ;MODE BAUDRAT=DAO DONG NOI /12; CHO PHEP THU CHECK: MOV R7,#50 LAP: JB SW,CHECK DJNZ R7,LAP CLR START SETB START JNB RI,$ CLR RI MOV A,SBUF MOV BAR_LED,A JMP CHECK END ... đèn LCD 16 ký tự hai SW nhấn ký hiệu RE(thu) SE(phát) .Vi? ??t chương trình thực công vi? ??c sau: Câu 6: Vẽ sơ đồ kết nối MCU8051 trực tiếp với đèn LCD 16 ký tự .Vi? ??t chương trình thực công vi? ??c sau:... Vi? ??t chương trình phát chuỗi ký tự cất RAM nội địa đầu 30H cổng nối tiếp,sử dụng chương trình OUT_CHR9 câu 2a,chuỗi ký tự kết thúc mã NULL(00H),phát mã NULL.Cho baurate= 960 0 Bài làm - Mạch mô phỏng: ... DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,0 ; - END Câu 6: Vẽ sơ đồ kết nối MCU8051 trực tiếp với đèn LCD 16 ký tự .Vi? ??t chương trình thực công vi? ??c sau: + MCU chờ thu mã lệnh(từ

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

Từ khóa liên quan

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:

  • 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

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

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

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

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

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

Tài liệu cùng người dùng

Tài liệu liên quan