Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
447,74 KB
Nội dung
ÐẠI HỌC CÔNG NGHIỆP TP HỒ CHÍ MINH KHOA CÔNG NGHỆ ðIỆN TỬ BỘ MÔN ðIỆN TỬ CÔNG NGHIỆP BÀI GIẢNG LÝ THUYẾT VI XỬ LÝ Giáo viên: PHẠM QUANG TRÍ TP HỒ CHÍ MINH THÁNG 0909-2009 ÐẠI HỌC CÔNG NGHIỆP TP HỒ CHÍ MINH KHOA CÔNG NGHỆ ðIỆN TỬ BỘ MÔN ðIỆN TỬ CÔNG NGHIỆP CHƯƠNG HOẠT ðỘNG CỦA PORT NỐI TIẾP HOẠT ðỘNG CỦA PORT NỐI TIẾP GIỚI THIỆU CHUNG Chức năng:: • Chuyển ñổi liệu dạng song song sang dạng nối tiếp (khi phát liệu) liệu) • Chuyển ñổi liệu dạng nối tiếp thành dạng song song (khi thu liệu) liệu) Giao tiếp phần cứng: cứng: • Chân TxD (Transmit Data Data)): Phát liệu dạng nối tiếp tiếp • Chân RxD (Receive Data Data)): Thu liệu dạng nối tiếp tiếp ðặc trưng trưng:: • Hoạt ñộng song công (full duplex) duplex) • ðệm liệu thu thu HOẠT ðỘNG CỦA PORT NỐI TIẾP GIỚI THIỆU CHUNG Các SFR sử dụng port nối tiếp: tiếp: • SBUF SBUF:: Chứa liệu thu phát port nối tiếp (Serial port Buffer) Buffer) • SCON SCON:: ðiều khiển hoạt ñộng cho port nối tiếp (Serial port Control) Control) HOẠT ðỘNG CỦA PORT NỐI TIẾP THANH GHI SBUF (SERIAL PORT BUFFER) Cấu trúc SBUF SBUF:: HOẠT ðỘNG CỦA PORT NỐI TIẾP THANH GHI SCON (SERIAL PORT CONTROL) Cấu trúc SCON SCON:: HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế ñộ (Mode - bit Shift Register): Register): Hình minh họa port nối tiếp chế ñộ ghi dịch bit HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế ñộ (Mode - bit Shift Register): Register): • Chân RxD RxD:: dùng ñể thu (nhận nhận)) phát (truyền truyền)) liệu nối tiếp tiếp • Chân TxD TxD:: dùng ñể tạo xung clock clock • Tốc ñộ truyền (Baudrate Baudrate)): • ðịnh dạng liệu liệu:: DATA bit [D0 – D7] HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế ñộ (Mode - bit Shift Register): Register): • Quá trình phát liệu (Transmit Transmit)) • Quá trình thu liệu (Receive Receive)) ðiều kiện ban ñầu: ñầu: RI = 0, REN = HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế ñộ (Mode - bit UART): UART): Hình minh họa port nối tiếp chế ñộ UART bit HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế ñộ (Mode - bit UART): UART): • Quá trình phát liệu (Transmit Transmit)) • Quá trình thu liệu (Receive Receive)) ðiều kiện ban ñầu: ñầu: RI = 0, REN = HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế ñộ (Mode - bit UART): UART): Hình minh họa port nối tiếp chế ñộ UART bit HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế ñộ (Mode - bit UART): UART): • Chân RxD RxD:: dùng ñể thu (nhận nhận)) liệu nối tiếp tiếp • Chân TxD TxD:: dùng ñể phát (truyền truyền)) liệu nối tiếp tiếp • Tốc ñộ truyền (Baud rate rate)): • ðịnh dạng liệu liệu:: START bit [0] – DATA bit [D0 – D7] – 9th bit – STOP bit [1] HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế ñộ (Mode - bit UART): UART): • Quá trình phát liệu (Transmit Transmit)) • Quá trình thu liệu (Receive Receive)) ðiều kiện ban ñầu: ñầu: RI = 0, REN = HOẠT ðỘNG CỦA PORT NỐI TIẾP TỐC ðỘ BAUD (BAUD RATE) ðược xác ñịnh số lượng bit ñược thu/phát giây (bps bps:: bit per second second)) Tốc ñộ baud cho Mode 0: Tốc ñộ baud cho Mode 2: Tốc ñộ baud cho Mode Mode 3: HOẠT ðỘNG CỦA PORT NỐI TIẾP TỐC ðỘ BAUD (BAUD RATE) Sử dụng Timer làm tạo tốc ñộ baud: baud: • Bước 1: Cấm hoạt ñộng tính ngắt cho Timer • Bước 2: ðặt Timer chế ñộ bit tự ñộng nạp lại (Mode 2) MOV TH1, #20H • Bước 3: Tùy thuộc vào tốc ñộ baud cần thiết mà ghi vào ghi TH TH1 giá trị tương ứng (M) (M) Trong ñó ñó:: fOSC (MHz) (MHz):: Tần số thạch anh anh Baud rate (bps) (bps):: Tốc ñộ baud baud M: Giá trị cần ghi vào ghi TH TH1 HOẠT ðỘNG CỦA PORT NỐI TIẾP TỐC ðỘ BAUD (BAUD RATE) Sử dụng Timer làm tạo tốc ñộ baud: baud: • Ví dụ: dụ: Viết lệnh ñể sử dụng Timer làm tạo tốc ñộ baud cho port nối tiếp với tốc ñộ 1200 1200bps bps Cho biết tần số thạch anh 12 12MHz MHz Giải • Chọn SMOD = 0, áp dụng công thức thức:: • Ta có: có: M = - 26, 26,0416 ≈ - 26 • ðoạn lệnh sau sau:: MOV TMOD, #20H 20H MOV TH1 TH1, #(#(-26) 26) HOẠT ðỘNG CỦA PORT NỐI TIẾP TỐC ðỘ BAUD (BAUD RATE) Bảng so sánh khác dùng thạch anh 12MHz 12MHz 11, 11,0592 0592Mz Mz:: Sử dụng thạch anh 11,0592MHz thay cho 12MHz HOẠT ðỘNG CỦA PORT NỐI TIẾP TRUYỀN THÔNG ðA XỬ LÝ Ứng dụng truyền liệu hai vi ñiều khiển (d ng Master – Slave Slave)) Hệ thống ña xử lý sử dụng Master nhiều Slave Slave ðược cho phép cách thiết lập bit SM2 SM2 SCON SCON Hoạt ñộng Mode (UART bit bit)) port nối tiếp tiếp Khi truyền liệu, nếu: nếu: Bit thứ = 1: thông tin ñóng vai trò ñịa (Address) (Address) Bit thứ = 0: thông tin ñóng vai trò liệu (Data) (Data) Ngắt port nối tiếp ñược yêu cầu trường hợp bit RB8 RB8 = (bit th 9) HOẠT ðỘNG CỦA PORT NỐI TIẾP TRUYỀN THÔNG ðA XỬ LÝ Giai ñoạn xác ñịnh ñịa chỉ: chỉ: Giai ñoạn truyền liệu liệu:: HOẠT ðỘNG CỦA PORT NỐI TIẾP LẬP TRÌNH THU VÀ PHÁT DỮ LIỆU QUA PORT NỐI TIẾP Lập trình 8051 truyền (phát) liệu nối tiếp: tiếp: • Chọn chế ñộ hoạt ñộng cho port nối tiếp tiếp:: MOV SCON, # (1)… • Chọn chế ñộ hoạt ñộng Timer 1, cho bit GATE = C/T = 0: MOV TMOD, # (2)… • Chọn giá trị thích hợp (căn vào tốc ñộ baud) cho Timer 1: MOV TH1, # (3)… • Cho Timer chạy chạy:: SETB TR1 • Kiểm tra xem ñã phát toàn liệu hay chưa? JNB TI, TI, $ • Xoá cờ ngắt phát TI TI:: CLR TI • Ghi liệu cần phát vào port nối tiếp ñể phát ñi: ñi: MOV SBUF, (4)… (4)… • Quay trở lại bước ñể phát liệu theo HOẠT ðỘNG CỦA PORT NỐI TIẾP LẬP TRÌNH THU VÀ PHÁT DỮ LIỆU QUA PORT NỐI TIẾP Lập trình 8051 nhận (thu) liệu nối tiếp: tiếp: • Chọn chế ñộ hoạt ñộng cho port nối tiếp tiếp:: MOV SCON, # (1)… • Chọn chế ñộ hoạt ñộng Timer 1, cho bit GATE = C/T = 0: MOV TMOD, # (2)… • Chọn giá trị thích hợp (căn vào tốc ñộ baud) cho Timer 1: MOV TH1, # (3)… • Cho Timer chạy chạy:: SETB TR1 • Kiểm tra xem ñã thu toàn liệu hay chưa? JNB RI, $ • Xoá cờ ngắt thu RI RI:: CLR RI • Cất liệu vừa thu ñược vào nơi an toàn toàn:: MOV (4)…, SBUF • Quay trở lại bước ñể thu liệu theo HOẠT ðỘNG CỦA PORT NỐI TIẾP LẬP TRÌNH THU VÀ PHÁT DỮ LIỆU QUA PORT NỐI TIẾP Lập trình 8051 thu / phát liệu nối tiếp: tiếp: • Vị trí (1): Qui ñịnh chế ñộ hoạt ñộng cho port nối tiếp tiếp ðơn giản hóa hóa:: HOẠT ðỘNG CỦA PORT NỐI TIẾP LẬP TRÌNH THU VÀ PHÁT DỮ LIỆU QUA PORT NỐI TIẾP Lập trình 8051 thu / phát liệu nối tiếp: tiếp: • Vị trí (2): Qui ñịnh chế ñộ hoạt ñộng Timer ðơn giản hóa hóa:: • Vị trí (3): Qui ñịnh tốc ñộ baud cho port nối tiếp tiếp Dựa vào công thức thức:: • Vị trí (4): Dữ liệu thu / phát thông qua port nối tiếp tiếp CHƯƠNG 4: HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁM ƠN SỰ CHÚ Ý LẮNG NGHE VÀ TRÂN TRỌNG GIẢI ðÁP CÁC CÂU HỎI [...]... 5 ñể thu một dữ liệu tiếp theo theo HOẠT ðỘNG CỦA PORT NỐI TIẾP LẬP TRÌNH THU VÀ PHÁT DỮ LIỆU QUA PORT NỐI TIẾP Lập trình 8 051 thu / phát dữ liệu nối tiếp: tiếp: • Vị trí (1): Qui ñịnh chế ñộ hoạt ñộng cho port nối tiếp tiếp ðơn giản hóa hóa:: HOẠT ðỘNG CỦA PORT NỐI TIẾP LẬP TRÌNH THU VÀ PHÁT DỮ LIỆU QUA PORT NỐI TIẾP Lập trình 8 051 thu / phát dữ liệu nối tiếp: tiếp: • Vị trí (2): Qui ñịnh chế ñộ hoạt. .. phát TI TI:: CLR TI • Ghi dữ liệu cần phát vào port nối tiếp ñể phát ñi: ñi: MOV SBUF, (4)… (4)… • Quay trở lại bước 5 ñể phát một dữ liệu tiếp theo theo HOẠT ðỘNG CỦA PORT NỐI TIẾP LẬP TRÌNH THU VÀ PHÁT DỮ LIỆU QUA PORT NỐI TIẾP Lập trình 8 051 nhận (thu) dữ liệu nối tiếp: tiếp: • Chọn chế ñộ hoạt ñộng cho port nối tiếp tiếp:: MOV SCON, # (1)… • Chọn chế ñộ hoạt ñộng Timer 1, cho bit GATE = 0 và C/T =... ñầu: ñầu: RI = 0, REN = 1 HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế ñộ 2 (Mode 2 - 9 bit UART): UART): Hình minh họa port nối tiếp ở chế ñộ UART 9 bit HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế ñộ 2 (Mode 2 - 9 bit UART): UART): • Chân RxD RxD:: dùng ñể thu (nhận nhận)) dữ liệu nối tiếp tiếp • Chân TxD TxD:: dùng ñể phát (truyền truyền)) dữ liệu nối tiếp tiếp • Tốc ñộ truyền (Baud... [1] HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế ñộ 2 (Mode 2 - 9 bit UART): UART): • Quá trình phát dữ liệu (Transmit Transmit)) • Quá trình thu dữ liệu (Receive Receive)) ðiều kiện ban ñầu: ñầu: RI = 0, REN = 1 HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế ñộ 3 (Mode 2 - 9 bit UART): UART): Hình minh họa port nối tiếp ở chế ñộ UART 9 bit HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT... NỐI TIẾP TRUYỀN THÔNG ðA XỬ LÝ Giai ñoạn xác ñịnh ñịa chỉ: chỉ: Giai ñoạn truyền dữ liệu liệu:: HOẠT ðỘNG CỦA PORT NỐI TIẾP LẬP TRÌNH THU VÀ PHÁT DỮ LIỆU QUA PORT NỐI TIẾP Lập trình 8 051 truyền (phát) dữ liệu nối tiếp: tiếp: • Chọn chế ñộ hoạt ñộng cho port nối tiếp tiếp:: MOV SCON, # (1)… • Chọn chế ñộ hoạt ñộng Timer 1, cho bit GATE = 0 và C/T = 0: MOV TMOD, # (2)… • Chọn giá trị thích hợp (căn cứ...HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế ñộ 1 (Mode 1 - 8 bit UART): UART): • Chân RxD RxD:: dùng ñể thu (nhận nhận)) dữ liệu nối tiếp tiếp • Chân TxD TxD:: dùng ñể phát (truyền truyền)) dữ liệu nối tiếp tiếp • Tốc ñộ truyền (Baud rate rate)): • ðịnh dạng dữ liệu liệu:: START bit [0] – DATA bit [D0 – D7] – STOP bit [1] HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế... TMOD, #20H 20H MOV TH1 TH1, #(#(-26) 26) HOẠT ðỘNG CỦA PORT NỐI TIẾP TỐC ðỘ BAUD (BAUD RATE) Bảng so sánh sự khác nhau khi dùng thạch anh 12MHz 12MHz và 11, 11, 059 2 059 2Mz Mz:: Sử dụng thạch anh 11, 059 2MHz thay cho 12MHz HOẠT ðỘNG CỦA PORT NỐI TIẾP TRUYỀN THÔNG ðA XỬ LÝ Ứng dụng trong truyền dữ liệu giữa hai vi ñiều khiển (d ng Master – Slave Slave)) Hệ thống ña xử lý sử dụng 1 Master và nhiều Slave Slave... SM2 SM2 trong SCON SCON Hoạt ñộng ở Mode 2 và 3 (UART 9 bit bit)) của port nối tiếp tiếp Khi truyền dữ liệu, nếu: nếu: Bit thứ 9 = 1: thông tin ñóng vai trò là ñịa chỉ (Address) (Address) Bit thứ 9 = 0: thông tin ñóng vai trò là dữ liệu (Data) (Data) Ngắt port nối tiếp sẽ ñược yêu cầu chỉ trong trường hợp bit RB8 RB8 = 1 (bit th 9) HOẠT ðỘNG CỦA PORT NỐI TIẾP TRUYỀN THÔNG ðA XỬ LÝ Giai ñoạn xác ñịnh... NỐI TIẾP Lập trình 8 051 thu / phát dữ liệu nối tiếp: tiếp: • Vị trí (2): Qui ñịnh chế ñộ hoạt ñộng của Timer 1 ðơn giản hóa hóa:: • Vị trí (3): Qui ñịnh tốc ñộ baud cho port nối tiếp tiếp Dựa vào công thức thức:: • Vị trí (4): Dữ liệu thu / phát thông qua port nối tiếp tiếp CHƯƠNG 4: HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁM ƠN SỰ CHÚ Ý LẮNG NGHE VÀ TRÂN TRỌNG GIẢI ðÁP CÁC CÂU HỎI ... (Mode 2 - 9 bit UART): UART): • Chân RxD RxD:: dùng ñể thu (nhận nhận)) dữ liệu nối tiếp tiếp • Chân TxD TxD:: dùng ñể phát (truyền truyền)) dữ liệu nối tiếp tiếp • Tốc ñộ truyền (Baud rate rate)): • ðịnh dạng dữ liệu liệu:: START bit [0] – DATA bit [D0 – D7] – 9th bit – STOP bit [1] HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế ñộ 3 (Mode 2 - 9 bit UART): UART): • Quá trình phát dữ liệu (Transmit ... theo HOẠT ðỘNG CỦA PORT NỐI TIẾP LẬP TRÌNH THU VÀ PHÁT DỮ LIỆU QUA PORT NỐI TIẾP Lập trình 8 051 thu / phát liệu nối tiếp: tiếp: • Vị trí (1): Qui ñịnh chế ñộ hoạt ñộng cho port nối tiếp tiếp... = 0, REN = HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế ñộ (Mode - bit UART): UART): Hình minh họa port nối tiếp chế ñộ UART bit HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế... = 0, REN = HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế ñộ (Mode - bit UART): UART): Hình minh họa port nối tiếp chế ñộ UART bit HOẠT ðỘNG CỦA PORT NỐI TIẾP CÁC CHẾ ðỘ HOẠT ðỘNG Chế