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

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

Đ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

ĐẠ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: Các tập sau cho Fck=11.059Mhz,trừ trường hợp có ghi cụ thể Mô Proteus từ đến 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) b) c)GIA TRI CAN NAP LAI LA -12 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) b) 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 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: NULL) 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 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 KT_THU: MOV R0,#30H ;LAP LAI 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 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 ; 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 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 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 START P2.0 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 ... 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ừ... Timer2 MCU8052,cho phép thu Bài làm a) b) c)GIA TRI CAN NAP LAI LA -12 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... 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

Ngày đăng: 05/12/2020, 23:03

Từ khóa liên quan

Mục lục

  • Câu 1: 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. 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.

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

  • Câu 7:

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

Tài liệu liên quan