1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo thí nghiệm vi xử lý bài 4

13 1 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

BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT THÍ NGHIỆM u cầu Viết chương trình tạo sóng vng Hhz chân P1.0 sử dụng timer chế độ ORG 2000H MOV TMOD,#01H LOOP1: MOV R7,#7 LOOP2: MOV TL0,#LOW(-65535) MOV TH0,#HIGH(-65535) SETB TR0 JNB TF0, $ CLR TF0 DJNZ R7, LOOP2 CPL P1.0 SJMP LOOP1 END BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT Kiểm tra Biên dịch, thực thi kiểm tra chương trình Để tạo sóng Hz, ta sử dụng timer chế độ khơng? - Ta sử dụng Timer mode được, nhung2 phải lặp phần mềm 1807 lần: ORG 2000H MOV TMOD,#02H LOOP1: MOV R7,#7 LOOP3: MOV R6,#255 LOOP2: MOV TL0,#LOW(-255) ;MOV TH0,#HIGH(-65535) SETB TR0 BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT JNB TF0, $ CLR TF0 DJNZ R6, LOOP2 DJNZ R7,LOOP3 CPL P1.0 SJMP LOOP1 END Dạng sóng có bị sai số không? Để hạn chế sai số ta phải nạp giá trị vào timer nào? - Dạng sóng bị sai số Vì sai số gây thời gian thực câu lệnh phần mềm, tức tốn thêm xx chu kỳ máy, nên ta khơng sử dụng cơng thức tính giá trị nạp cho timer BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT THÍ NGHIỆM Yêu cầu Viết chương trình tạo sóng vng Hz chân P1.0 sử dụng timer chế độ ORG 2000H MOV TMOD,#02H LOOP1: MOV R7,#7 LOOP3: MOV R6,#255 LOOP2: MOV TL0,#LOW(-255) SETB TR0 JNB TF0, $ CLR TF0 DJNZ R6, LOOP2 DJNZ R7,LOOP3 CPL P1.0 SJMP LOOP1 END Kiểm tra Biên dịch, thực thi kiểm tra chương trình BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT Câu hỏi Ở chế độ 2, độ trễ gây câu lệnh đảo giá trị bit có gây sai số cho dạng sóng ngõ khơng? Vì sao? - Có sai số phải sử dụng thêm câu lệnh lặp, tốn thêm nhiều chu kỳ máy THÍ NGHIỆM u cầu Viết chương trình phát chuỗi ký tự “Hello, world” lên máy tính thơng qua HyperTerminal với tốc độ baud 19200 bps SW 310 (gắn vào P1.0) nhấn ORG 2000H MOV DPTR,#TABLE MOV R1,#0 MOV SCON,#01000010B MOV TMOD,#20H MOV TH1,#(-3) SETB TR1 LAP: CLR TI MOV A,R1 MOVC A,@A+DPTR MOV SBUF,A LA: JNB TI, LA L: JNB P1.0,NEXT SJMP L NEXT: MOV R5,#4 AY:MOV R7,#255 AX:MOV R6,#255 DJNZ R6,$ DJNZ R7,AX BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT DJNZ R5,AY INC R1 CJNE R1,#11,LAP SJMP $ TABLE: DB "HELLO WORLD" END Kiểm tra Biên dịch kiểm tra hoạt động chương trình BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT THÍ NGHIỆM Yêu cầu Viết chương trình nhận ký tự từ máy tính gửi đến EME-MC8 thông qua HyperTerminal (bằng cách gõ ký tự bàn phím chương trình HyperTerminal) hiển thị lên LCD vị trí cột hàng 0, đồng thời phát trở lại lên serial port LCD_E BIT LCD_RS P3.4 BIT LCDADDR EQU ORG P3.5 6000H 2000H MAIN: MOV @R0, 30H MOV DPTR, #LCDADDR ACALL CLEAR ACALL INIT_LCD MOV SCON,#01010000B MOV TMOD,#20H MOV TH1,#(-3) SETB TR1 L:JNB RI,L CLR RI MOV A,SBUF ACALL WRITETEXT SJMP L INIT_LCD: MOV A, #38H ACALL WRITECOM MOV A, #0EH ACALL WRITECOM BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT MOV ACALL A, #06H WRITECOM RET CLEAR: MOV A, #01H ACALL WRITECOM RET WRITECOM: MOV DPTR, #LCDADDR SETB LCD_E CLR MOVX CLR ACALL LCD_RS @DPTR, A LCD_E WAIT_LCD RET WRITETEXT: MOV DPTR, #LCDADDR SETB LCD_E SETB LCD_RS MOVX @DPTR, A CLR ACALL LCD_E WAIT_LCD RET WAIT_LCD: MOV R6,#10 MOV R7, #250 DJNZ R7, $ DJNZ R6,DL1 DL1: RET END BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT Kiểm tra Biên dịch kiểm tra hoạt động chương trình BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT THÍ NGHIỆM Yêu cầu Viết chương trình nhận ký tự từ máy tính gửi đến EME-MC8 thơng qua HyperTerminal (bằng cách gõ ký tự bàn phím chương trình HyperTerminal) hiển thị lên LCD sau: Nếu ký tự chữ hiển thị lên LCD; Enter xuống hàng; ESC xóa hình LCD; Backspace xóa ký tự bên trái dấu nháy LCD_E BIT LCD_RS P3.4 BIT LCDADDR EQU ORG P3.5 6000H 2000H MAIN: MOV MOV DPTR, #LCDADDR ACALL CLEAR ACALL INIT_LCD MOV SCON,#01010000B MOV TMOD,#20H MOV TH1,#(-3) SETB TR1 L:JNB RI,L CLR RI MOV A,SBUF CJNE A,#1BH,EX ACALL CLEAR SJMP L EX: CJNE A,#13,EX2 @R0, 30H BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT MOV A,#0C0H ACALL WRITECOM SJMP L EX2: CJNE A,#8,EX3 MOV A,#10H ACALL WRITECOM MOV A,#20H ACALL WRITETEXT MOV A,#10H ACALL WRITECOM SJMP L EX3: ACALL WRITETEXT SJMP L INIT_LCD: MOV A, #38H ACALL WRITECOM MOV A, #0EH ACALL WRITECOM MOV A, #06H ACALL WRITECOM RET CLEAR: MOV A, #01H ACALL WRITECOM RET WRITECOM: MOV DPTR, #LCDADDR SETB LCD_E CLR MOVX CLR LCD_E LCD_RS @DPTR, A BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT ACALL WAIT_LCD RET WRITETEXT: MOV DPTR, #LCDADDR SETB LCD_E SETB LCD_RS MOVX @DPTR, A CLR ACALL LCD_E WAIT_LCD RET WAIT_LCD: MOV R6,#10 MOV R7, #250 DJNZ R7, $ DJNZ R6,DL1 DL1: RET END BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT Kiểm tra Biên dịch kiểm tra hoạt động chương trình ... DL1: RET END BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT Kiểm tra Biên dịch kiểm tra hoạt động chương trình BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT THÍ NGHIỆM Yêu cầu Vi? ??t chương... WORLD" END Kiểm tra Biên dịch kiểm tra hoạt động chương trình BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT THÍ NGHIỆM Yêu cầu Vi? ??t chương trình nhận ký tự từ máy tính gửi đến EME-MC8 thông... máy, nên ta khơng sử dụng cơng thức tính giá trị nạp cho timer BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT THÍ NGHIỆM Yêu cầu Vi? ??t chương trình tạo sóng vng Hz chân P1.0 sử dụng timer chế

Ngày đăng: 18/08/2022, 16:13

Xem thêm:

w