Chuong 5 hoat dong port noi tiep của môn vi xử lý 8051 ĐHCN TPHCM

32 6 0
Chuong 5 hoat dong port noi tiep của môn vi xử lý 8051 ĐHCN TPHCM

Đ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

Chương 5 của môn vxl của trường ĐHCN TPHCM. Chúc bạn đọc đạt điểm 10đ thi ck và gk nha. Tổng có 6 slide tôi gửi lên. Cảm ơn bạn đã tải nếu có yêu cầu phí thì zalo 0857620001 để tôi gửi free nha. Have you a very good day.

Chương 5: Hoạt động port nối tiếp I Giới thiệu: Các máy tính truyền liệu theo hai cách: Song song nối tiếp Trong truyền liệu song song thường cần nhiều đường dây dẫn để truyền liệu đến thiết bị cách xa vài bước Trong truyền thông nối tiếp liệu gửi bít so với truyền song song nhiều byte truyền lúc chuyển đổi nối tiếp sang song song với liệu nhập Port nối tiếp truy xuất qua chân TXD RXD Dữ liệu thu (nhập) qua chân RXD (P3.0) liệu phát (xuất) qua chân TXD(P3.1) Port nối tiếp cho hoạt động song công (full duplex: thu phát đồng thời) đệm thu (receiver buffering) cho phép ký tự thu giữ ký tự thứ hai nhận Nếu CPU đọc ký tự thứ trước ký tự thứ hai thu đầy đủ liệu không bị Hai ghi chức đặc biệt cho phép phần mềm truy xuất đến port nối tiếp là: SBUF SCON Bộ đệm port nối tiếp (SBUF) điạ 99H nhận liệu để thu phát Thanh ghi điều khiển port nối tiếp (SCON) điạ 98H ghi có điạ bit chứa bit trạng thái bit điều khiển II Các ghi PORT Thanh ghi đệm nối tiếp SBUF(Serial Buffer Register) Thanh ghi SBUF đóng vai trò vừa đệm phát vừa đệm thu: Dữ liệu cần phát ghi vào SBUF phát qua ngõ TXD, trường hợp đệm phát Dữ liệu thu nạp vào SBUF thông qua ngõ RXD đọc liệu từ ghi SBUF để truy xuất liệu thu được, trường hợp đệm thu Tốc độ baud port nối tiếp lấy từ dao động chip sử dụng timer Cấu trúc ghi SBUF: SBUF CLK (Chỉ ghi) Q D Thanh ghi dịch CLK SBUF (chỉ đọc) Baud rate clock (transmit) SBUF (chỉ đọc) BUS nội 8051 Ví dụ: lệnh ghi liệu vào SBUF đọc liệu từ SBUF MOV SBUF, # 40H ; phát giá trị 40H qua port nối tiếp MOV SBUF, A ; phát nội dung A qua port nối tiếp MOV A, SBUF ; đọc liệu thu từ port nối tiếp 2.Thanh ghi điều khiển port nối tiếp SCON  SCON SM0 SM1 SM2 REN TB8 RB8 TI RI - RI: Cờ ngắt thu RI = sau kết thúc việc thu liệu, RI xoá phần mềm - TI: Cờ ngắt phát TI = sau kết thúc việc phát liệu, TI xoá phần mềm - RB8: Bit thứ nhận ( chế độ 3) - TB8: Bit thứ phát ( chế độ 3) - REN: Cho phép thu REN = - SM2: SM2 = cho phép truyền thông đa xử lý ( chế độ 3) - SM1, SM0: Chọn chế độ hoạt động port nối tiếp SM0, SM1: Chọn chế độ hoạt động:  Ví du: Khởi động port nối tiếp chế độ 1, cho phép port thu liệu qua chân RxD sẵn sàng phát liệu qua chân TxD: MOV SCON,#52H Các chế độ hoạt động Chế độ ghi dịch bit (Mode 0) - Dữ liệu nối tiếp thu vào phát qua ngõ RXD - Ngõ TXD ngõ xuất xung nhịp dịch, với chu kỳ xung nhịp dịch 1bit phát thu - Dữ liệu phát thu với bit bit LSB - Tốc độ baud cố định 1/12 tần số dao động chip - Việc phát ký tự khởi động lệnh ghi liệu vào ghi SBUF Trước phát phải kiểm tra đệm phát rỗng Dữ liệu dịch ngòai đường RXD (P3.0) với xung nhịp gửi đường TXD (P3.1) Mỗi bit phát hợp lệ (trên RXD) chu kỳ máy, tín hiệu xung xuống thấp trở cao Việc thu khởi động cho phép thu (REN) = l ngắt thu (RI)= Quy tắc tổng quát đặt REN bắt đầu chương trình để khởi động port nối tiếp, xóa RI để bắt đầu nhận liệu Khi RI bị xóa, xung nhịp đưa đường TXD, bắt đầu chu kỳ máy liệu theo xung nhịp đường RXD Lấy xung nhịp cho liệu port nối tiếp xảy cạnh đường TXD Vi Dụ: Chương trình để phát 1byte liệu PHAT: JNB TI,$ CLR TI MOV SBUF, A RET Việc thu ký tự khởi động bit cho phép REN mức cờ ngắt thu RI mức Chương trình dùng để thu 1byte liệu: THU: JNB RI,$ CLR RI MOV A, SBUF RET Tốc độ baud cho chế độ 1,3: Timer1overflowrate Baudrate  ; SMOD  16 Timer1overflowrate Baudrate  ; SMOD  32 Tốc độ baud cho chế độ 2: VD: Sử dụng Timer để tạo xung nhịp tốc độ baud Chọn chế độ cho Timer 1: - Chế độ 13 bit (chế độ 0) - Chế độ 16 bit (chế độ 1) - Chế độ bit tự nạp lại (chế độ 2) ( thường dùng tốc độ nhanh) - Chế độ chia xẻ (chế độ 3) Nạp giá trị thích hợp vào ghi TH1 để có tốc độ tràn đúng, tạo tốc độ baud cho port nối tiếp Chọn tốc độ baud: Gọi M giá trị cần nạp cho ghi TH1 để có tốc độ Baud theo u cầu Ví dụ: Ví dụ 1:Tìm giá trị TH1 (ở dạng thập phân hex) để đạt tốc độ baud cho trường hợp sau a) 9600 b) 4800 Nếu SMOD = với tần số XTAL = 11.0592MHz Giải: Với tần số XTAL = 11.0592MHz SMOD = a/ M = - 11.0592x106 /192x9600 = -6 TH1 = 0FAH ( 192 MOD = 1) b) M = - 11.0592x106 /192x4800 = -12 TH1 = 0F4H Ví dụ: Tạo tốc độ baud 1200bps biết dao động chip sử dụng thạch anh 12MHz SMOD=0 Giải: Ta có fosc =12MHz, sử dụng SMOD =0 suy M = - 12x106 /384x1200 = -26 TH1 = 0E6H ( 384 MOD = 0) Các bước phát thu liệu Phát: Thu: MOV SCON,# MOV SCON,# MOV TMOD,# MOV TMOD,# MOV TH1,# MOV TH1,# SETB TR1 SETB TR1 JNB TI,$ JNB RI,$ CLR TI CLR RI MOV SBUF,# vị trí cất dl MOV vị trí lưu dl ,SBUF Quay lại bước để phát dl Quay lại bước để nhận dl VD: Viết chương trình để truyền liệu ghi A port nối tiếp Biết port nối tiếp họat động chế độ UART 8bit với tốc độ baud 1200bps, tần số thạch anh 12MHz Sử dụng Timer1 để tạo tốc độ baud (giống ví dụ trên) Khởi động ghi điều khiển port nối tiếp: UART 8bit : Mode (SM0 SM1= 1) SM2=0 Set bit cờ TI =1 để phát ký tự lần khởi động Giải ORG 0000H MAIN: MOV SCON,#0100 0010B MOV TMOD,#20H MOV TH1,#-26 SETB TR1 CALL PHAT PHAT: JNB TI,$ CLR TI MOV SBUF,A RET VD: Viết chương trình nhận byte liệu từ port nối tiếp Biết port nối tiếp họat động chế độ UART bit với tốc độ baud 1200bps, tần số thạch anh 12MHz ORG 0000H MAIN: MOV SCON,#0101 0000B MOV TMOD,#20H MOV TH1,#-26 SETB TR1 THU: JNB RI,$ CLR RI MOV A, SBUF RET END Bài tập viết ct để truyền liên tục ký tự “A” thơng qua port nối tiếp có tốc độ 4800bps (mode 1), smod=0 có fOsc= 11,0592MHz Viết ct để truyền liên tục chuổi ký tự “ DHCNTPHCM” thơng qua port nối tiếp có tốc độ 19200 bps (mode 1), Smod=1 có fOsc= 11,0592MHz Viết ct để nhận liên tục liệu thông qua port nối tiếp có tốc độ 4800bps (mode 1), Smod=0 gởi liệu p1, có fOsc= 11,0592MHz Bài làm ORG 0000H MOV SCON,# 42H MOV TMOD,#20H MOV TH1,#(-6) MOV A,PCON CLR ACC.7 MOV PCON,A SETB TR1 LAP: JNB TI,$ CLR TI MOV SBUF,#”A” LJMP LAP END ORG 0000H MOV SCON,# 42H MOV TMOD,#20H MOV TH1,#(-3) MOV A,PCON SETB ACC.7 MOV PCON,A SETB TR1 LAP: MOV DPTR,#BMA MOV R0,#00H AAA: MOV A,R0 MOVC A,@A+DPTR JNB TI,$ CLR TI MOV SBUF,A INC R0 CJNE R0,#09H,AAA LJMP LAP BMA: DB “ DHCNTPHCM” END ORG 0000H MOV SCON,# 51H MOV TMOD,#20H MOV TH1,#(-6) SETB TR1 MOV A,PCON CLR ACC.7 MOV PCON,A LAP: JNB RI,$ CLR RI MOV A,SBUF MOV P1,A LJMP LAP END BÀI TẬP VỀ NHÀ Viết ct để truyền liên tục chuổi ký tự “ HỌ VÀ TÊN SV” thơng qua port nối tiếp có tốc độ 9600bps (mode 1), Smod=0 có fOsc= 24MHz Viết ct để thu liên tục 8byte liệu thông qua port nối tiếp có tốc độ 19200bps (mode 3), Smod=1 Cất liệu địa 30H có fOsc= 12MHz

Ngày đăng: 27/12/2023, 07:58