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... 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
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 6
GIÁO VIÊN HƯỚNG DẪN: LƯU PHÚ
TP HCM, ngày 01 tháng 04 năm 2020
Trang 2MỤC LỤC
Trang 3Câ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
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)
b)
Trang 5c)GIA TRI CAN NAP LAI LA -12
b)
Trang 6Câ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
ORG 00HTAOCHUOI:MOV R1,#30H
MOV A,#41H
INC R1INC ACJNE A,#4AH,LOOPMOV A,#0
MOV @R1,AINIT:
Trang 7MOV SCON,#0C2HMOV TMOD,#20HMOV TH1,#-3
MOV TL1,#-3
SETB TR1
MOV R0,#30HLAP:
MOV A,@R0
LCALL OUT_CHR9INC R0
Trang 8 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.
Bài làmORG 00H
Trang 9INIT:
MOV SCON,#0D2HMOV TMOD,#20HMOV TH1,#-3
MOV TL1,#-3
SETB TR1
MOV R1,#50HLAP:
CALL IN_CHR9MOV @R1,A
JNZ LP
JMP KT
IN_CHR9:
JNB RI,$
Trang 10CLR RI
MOV A,SBUFMOV C,P
ANL C,/RB8MOV F0,CMOV C,RB8ANL C,/P
ORL C,F0RET
DELAY_1S:
MOV R7,#4LAP1:MOV R6,#250LAP2:MOV R5,#250
DJNZ R5,$DJNZ R6,LAP2DJNZ R7,LAP1RET
KT:
END
Trang 11Câ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:
+ Nếu nhấn SW SE(tích cực mức 0),MCU xuất ký tự SO(0EH) ra cổng nối tiếp và tiếp tục xuất
10 ký tự ASCII của số 0,1…,9 kết thúc bằng mã NULL ra cổng nối tiếp.Chuỗi ký tự phát này
đượ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 12; -ORG 00HMOV SCON,#52H;CHE DO UART 8BIT CHO PHEP THU BAUDRATE
DO TIMER1
MOV TH1,#-3MOV TL1,#-3
CALL DELAY100MSJNB RE,NHAN_RESJMP KT_RE
NHAN_SE:CALL MODE1
JMP MAINNHAN_RE:CALL CLEAR
CALL MODE2JMP MAIN
Trang 13MOV A,#0EHCALL SENDMOV DPTR,#TAB ;DPTR TRO TOI MESSAGE
MOVC A,@A+DPTR
INC DPTR;TRO TOI KI TU TIEP THEO
NULL)
Trang 14JMP L3KT:
RET
CLR TIMOV SBUF,ARET
CLR RIMOV A,SBUFRET
DELAY100MS:
; -MOV R7,#200
Trang 15LAP1: MOV R6,#250
DJNZ R6,$
DJNZ R7,LAP1RET
INIT: MOV A,#38H
; -CLR RS
Trang 16MOV DBUS,ACLR RWSETB ECLR E
Trang 17; -END
Trang 18Câ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
Trang 19MOV TH1,#-3MOV TL1,#-3
CJNE A,#0EH,SKIPCALL CLEARCALL MODE1JMP MAINSKIP: CJNE A,#0FH,MAIN
CALL MODE2JMP MAIN
MOV R0,#30H
NULL)
INC R0
KT_THU: MOV R0,#30H
Trang 20L3: MOV A,@R0
CALL WRITETEXTINC R0
JMP L3KT:
INC DPTR;TRO TOI KI TU TIEP THEO
Trang 21CLR RIMOV A,SBUFRET
INIT: MOV A,#38H
Trang 22; -CLR RSMOV DBUS,ACLR RWSETB ECLR E
RET
WRITETEXT:
; -SETB RSMOV DBUS,ACLR RWSETB ECLR E
RET
CLEAR:
; -MOV A, #01H
RET
TAB:
Trang 23b 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
Trang 24DJNZ R7,LAPCLR STARTSETB STARTJNB RI,$
CLR RIMOV A,SBUFMOV BAR_LED,A
Trang 25JMP CHECKEND