1. Trang chủ
  2. » Tất cả

BAO_CAO_THI_NGHIM_BAI_4_VI_X_LY_BKHCM

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

Cấu trúc

  • MỤC TIÊU:

  • CHUẨN BỊ:

  • THÍ NGHIỆM 4

Nội dung

BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT MỤC TIÊU:  Nắm cách giao tiếp timer để tạo trễ tạo baudrate  Nắm cách giao tiếp port nối tiếp CHUẨN BỊ:  Đọc chương 3, tài liệu hướng dẫn  Viết chương trình mơ thí nghiệm THÍ NGHIỆM Mục tiêu Nắm cách thức tạo trễ sử dụng Timer chế độ Yê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 LOOP: CPL P1.0 MOV R7,#9 L1: MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R7,L1 BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT SJMP LOOP END Kiểm tra Biên dịch, thực thi kiểm tra chương trình Kiểm tra Để tạo sóng Hz, ta sử dụng timer chế độ khơng? Ta sử dụng TIMER chế độ chế độ 2để tạo song 1Hz số lần lặp nhiều 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 có sai số Vì tần số dao động thạch anh 11.059MHz , nên số lần lặp có giá trị thực giá trị nạp vào phần mềm số nguyên Ở mode có sai số thực nạp giá trị timer để thực THÍ NGHIỆM Mục tiêu Nắm cách thức tạo trễ sử dụng Timer chế độ u cầu Viết chương trình tạo sóng vuông Hz chân P1.0 sử dụng timer chế độ ORG 2000H MOV TMOD,#02H MOV TH0,#-250 MOV TL0,#-250 SETB TR0 LOOP: CPL P1.0 BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT MOV R6,#7 L2: MOV R7,#250 L1: JNB TF0,$ CLR TF0 DJNZ R7,L1 DJNZ R6,L2 SJMP LOOP END BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT Hướng dẫn Dùng biến đếm 16 bit để đếm lần timer tràn Khi đếm đủ số lần timer tràn đảo chân port 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 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? Ở chế độ này, có xảy sai số sử dụng them câu lệnh lặp THÍ NGHIỆM Mục tiêu Nắm cách thức điều khiển cổng nối tiếp Yê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 SCON,#01000010B ORL PCON,#80H MOV TMOD,#21H MOV TH1,#-3 SETB TR1 WAIT: ACALL DELAY JB P1.0,$ MOV DPTR,#TABLE LAP: CLR A BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT MOVC A,@A+DPTR ACALL XUAT INC DPTR JZ WAIT SJMP LAP XUAT: JNB TI,$ CLR TI MOV SBUF,A RET DELAY :MOV R7,#4 L1: MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R7,L1 RET TABLE: DB "Hello, world" END Kiểm tra Biên dịch kiểm tra hoạt động chương trình THÍ NGHIỆM BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT 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 P3.4 LOOP: LCD_RS BIT P3.5 NHAN ACALL ACALL LCDADDR EQU 6000H WRITETEXT ORG 2000H ACALL XUAT MAIN: ; Phát tro lai MOV len serial port DPTR,#LCDADDR ORL PCON,#80H SJMP LOOP NHAN: CLR RI MOV MOV A,SBUF SCON,#01010010B RET MOV TMOD,#20H JNB RI,$ XUAT: JNB TI,$ ACALL CLR TI CLEAR MOV SBUF,A ACALL INIT_LCD RET INIT_LCD: MOV TH1,#-3 SETB TR1 MOV A,#38H ACALL WRITECOM MOV A,#0EH BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT ACALL SETB LCD_E WRITECOM SETB MOV A,#06H LCD_RS ACALL WRITECOM MOVX @DPTR,A MOV A,#0EH CLR LCD_E ACALL ACALL WRITECOM WAIT_LCD RET CLEAR: MOV A,#01H WAIT_LCD: MOV R6,#10 ACALL DL1: MOV R7,#250 WRITECOM WRITECOM: DJNZ R7,$ RET DJNZ R6,DL1 MOV RET DPTR,#LCDADDR SETB LCD_E CLR LCD_RS MOVX @DPTR,A CLR LCD_E ACALL WAIT_LCD RET WRITETEXT: RET MOV DPTR,#LCDADDR 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 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 P3.4 LCD_ADDR EQU 6000H LCD_RS BIT P3.5 ORG 2000H BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT MAIN: MOV JC TT SCON,#01010000B MOV CJNE A,#7BH,$+3 TMOD,#20H JNC TT MOV TH1,#- NEXT: ACALL WRITETEXT SJMP KT ORL PCON,#80H TT: CJNE A,#8,TT1 SETB TR1 MOV A,#10H ACALL CLEAR ACALL WRITECOM ACALL INIT LAP: ACALL NHAN SJMP KT TT1: CJNE A,#0DH,TT2 MOV P2,A ACALL JB F0,DONG1 XU_LY MOV SJMP LAP XU_LY: A,#0C0H CJNE SETB F0 A,#41H,$+3 SJMP TIEP JC TT DONG1: CJNE CLR F0 A,#5BH,$+3 JC NEXT TIEP: ACALL WRITECOM SJMP KT CJNE A,#61H ,$+3 MOV A,#80H TT2: CJNE A,#1BH,TT3 BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT MOV A,#01H WRITECOM ACALL WRITECOM MOV A,#0EH SJMP KT TT3: CJNE A,#20H,KT ACALL WRITECOM RET MOV A,#14H ACALL MOV DPTR,#LCD_ADDR WRITECOM KT: WRITECOM: RET CLR LCD_RS NHAN: JNB RI,$ SETB LCD_E CLR RI MOV MOVX @DPTR,A RET CLR LCD_E A,SBUF CLEAR: MOV A,#01H ACALL ACALL WAIT_LCD RET RET WRITECOM INIT: MOV A,#38H ACALL WRITETEXT: DPTR,#LCD_ADDR WRITECOM MOV A,#06H ACALL MOV SETB LCD_E BÀI TN LẬP TRÌNH GIAO TIẾP TIMER VÀ SERIAL PORT SETB LCD_RS RET END MOVX @DPTR,A CLR LCD_E ACALL WAIT_LCD RET WAIT_LCD: PUSH MOV R6,#60 L1: MOV R7,250 DJNZ R7,$ DJNZ R6,L1 POP POP PUSH 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

Ngày đăng: 10/02/2022, 15:47

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w