Bài giảng Vi xử lý - Chương 4: Các chức năng họ 8051
Số trang: 99
Loại file: ppt
Dung lượng: 628.50 KB
Lượt xem: 16
Lượt tải: 0
Xem trước 10 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Vi xử lý - Chương 4: Các chức năng họ 8051. Chương này cung cấp cho sinh viên những nội dung gồm: timer; các thanh ghi của timer; điều khiển các bộ định thời; các chế độ định thời; port nối tiếp; thanh ghi điều khiển port nối tiếp SCON; tốc độ baud cho port nối tiếp; interrupt;... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
Nội dung trích xuất từ tài liệu:
Bài giảng Vi xử lý - Chương 4: Các chức năng họ 8051 Đại Học Giao Thông Vận Tải Tp.HCM Khoa Điện – Điện Tử Viễn Thông Học phần: Vi Xử Lý Chương 4: Các chức năng họ 8051 Giảng viên: TS. NGUYỄN HỮU CHÂN THÀNH Chương 4 bao gồm 3 nội dung: 1. Timer. 2. Port nối tiếp. 3. Interrupt. . Timer 1. Giới thiệu -Một bộ định thời (timer) là một chuỗi các Flip Flop (FF) với mỗi FF là một mạch chia 2. Chuỗi này nhận một tín hiệu ngõ vào làm xung clock kích cho tầng đầu tiên, ngõ ra của tầng đầu lại trở thành nguồn xung clock cho tầng kế tiếp. Ngõ ra của tầng cuối cùng làm xung clock cho một FF báo tràn timer hay còn gọi là cờ tràn (overflow flag). Cờ tràn này sẽ được kiểm tra bởi phần mềm hay tạo ra một ngắt (interrupt). Hình dưới minh họa một timer đơn giản 3-bit. - Giá trị nhị phân trong các FF của timer được dùng để tính số xung clock (số chu kì) của tín hiệu ngõ vào từ khi timer bắt đầu đếm. 4 1. Giới thiệu - 8051/8031 có 2 timer 16 bit: + Timer 0: số đếm chứa trong thanh ghi TH0 (byte cao) và TL0 (byte thấp) + Timer 1: số đếm chứa trong thanh ghi TH1 (byte cao) và TL1 (byte thấp) Ngoài ra, các chip 8032/8052 còn có thêm timer 2. - Các timer chỉ đếm lên (0000H ÷ FFFFH). Khi số đếm tràn từ FFFFH xuống 0000H, cờ tràn sẽ được đặt lên 1. 5 2. Các thanh ghi của timer a. Thanh ghi chế độ định thời (TMOD): - Không được định địa chỉ bit. - Được dùng để định chế độ hoạt động cho các timer. - Chức năng từng bit: + M1, M0: chọn chế độ hoạt động. + C/T: bit chọn chức năng đếm hoặc định thời cho timer. + Gate: bit điều khiển cổng cho bộ định thời. 6 2. Các thanh ghi của timer b. Thanh ghi điều khiển định thời (TCON): - Chứa các bit điều khiển và trạng thái của timer 0 và 1 ở 4 bit cao, 4 bit thấp được dùng cho chức năng ngắt (interrupt). - Được định địa chỉ bit. - Chức năng từng bit: + TFx: cờ tràn của timer x (x là 0 hay 1) + TRx = 0: không cho phép timer chạy. + TRx = 1: cho phép timer chạy. 7 3. Điều khiển các bộ định thời 8 3. Điều khiển các bộ định thời - (Counter/Timer): + C/T= 0: timer nhận xung clock từ bộ dao động nội (sau khi qua bộ chia 12). Ứng dụng: thường dùng cho việc định thời một khoảng thời gian (mỗi số đếm tương ứng với 1 chu kỳ máy). + C/T = 1: timer nhận xung clock từ chân Tx (P3.4 đối với timer 0 và P3.5 đối với timer 1). Ứng dụng: thường dùng để đếm sự kiện bên ngoài. Mỗi sự kiện tạo ra một xung kích vào chân Tx (tích cực cạnh xuống). Số các sự kiện được xác định trong phần mềm bằng cách đọc các thanh ghi định thời (THx/TLx), giá trị 16-bit trong các thanh ghi này tăng theo mỗi sự kiện. 9 3. Điều khiển các bộ định thời - Gate: + Gate = 0: việc điều khiển timer x chỉ phụ thuộc vào TRx. TRx = 0: không cho phép timer x chạy. TRx = 1: cho phép timer x chạy. + Gate = 1: việc điều khiển timer x phụ thuộc vào TRx và /INTx. TRx = 1 và /INTX= 1: cho phép timer chạy. Ứng dụng: thường dùng để đo độ rộng xung (thời gian xung ở mức cao) đưa vào ở chân . Độ rộng xung tương ứng với số đếm trong THx/TLx. 10 4. Các chế độ định thời a. Chế độ 0 - Xác lập bit M1M0 = 00 - Là chế độ định thời 13-bit tương thích với bộ vi điều khiển 8048 trước đó. Chế độ này thường ít dùng. 11 4. Các chế độ định thời b. Chế độ 1 - Xác lập bit M1M0 = 01 - Là chế độ định thời 16-bit: số đếm 16-bit chứa trong cặp thanh ghi THx/TLx khoảng đếm tối đa là 65536 chu kì máy. - Giá trị bắt đầu đếm được nạp vào THx và TLx. Khi timer tràn, để nạp lại giá trị bắt đầu đếm cần phải dừng timer. 12 4. Các chế độ định thời Ví dụ 1: Viết 1 đoạn chương trình khởi động timer 0 ở chế độ 1 và dùng timer 0 để tạo ra 1 xung mức cao rộng 1ms ở chân P1.0. Giả sử dùng thạch anh 12MHz. 13 4. Các chế độ định thời ; 8051 code MOV TMOD,#00000001B ; khởi động timer 0 ở chế độ 1 CLR P1.0 ; xóa P1.0 MOV TH0,#HIGH(-1000) ; nạp byte cao của -1000 (FCH) vào TH0 MOV TL0,#LOW(-1000) ; nạp byte thấp của -1000 (18H) vào TL0 SETB TR0 ; cho timer 0 chạy SETB P1.0 ; đặt P1.0 lên mức cao JNB TF0,$ ; chờ cho đến khi timer tràn (TF0 = 1) CLR P1.0 ; xóa P1.0 CLR TF0 ; xóa cờ tràn TF0 để dùng cho các lần sau 14 4. Các chế độ định thời Ví dụ 2: Viết chương trình con tạo trễ 200ms dùng timer 1. Giả sử fOSC = 12MHz. Hướng dẫn: fOSC = 12MHz chu kỳ máy TM= 1 s. Nếu dùng timer 1 ở chế độ 1 thì thời gian định thời tối đa là 65536 s < 200.000 s = 200ms phải dùng thêm vòng lặp ngoài. Để đơn giản, mỗi vòng lặp sẽ delay 50.000 s số lần lặp là 4. 15 4. Các chế độ định thời ; 8051 code DELAY_200MS: MOV TMOD,#10H MOV R7,#4 ...
Nội dung trích xuất từ tài liệu:
Bài giảng Vi xử lý - Chương 4: Các chức năng họ 8051 Đại Học Giao Thông Vận Tải Tp.HCM Khoa Điện – Điện Tử Viễn Thông Học phần: Vi Xử Lý Chương 4: Các chức năng họ 8051 Giảng viên: TS. NGUYỄN HỮU CHÂN THÀNH Chương 4 bao gồm 3 nội dung: 1. Timer. 2. Port nối tiếp. 3. Interrupt. . Timer 1. Giới thiệu -Một bộ định thời (timer) là một chuỗi các Flip Flop (FF) với mỗi FF là một mạch chia 2. Chuỗi này nhận một tín hiệu ngõ vào làm xung clock kích cho tầng đầu tiên, ngõ ra của tầng đầu lại trở thành nguồn xung clock cho tầng kế tiếp. Ngõ ra của tầng cuối cùng làm xung clock cho một FF báo tràn timer hay còn gọi là cờ tràn (overflow flag). Cờ tràn này sẽ được kiểm tra bởi phần mềm hay tạo ra một ngắt (interrupt). Hình dưới minh họa một timer đơn giản 3-bit. - Giá trị nhị phân trong các FF của timer được dùng để tính số xung clock (số chu kì) của tín hiệu ngõ vào từ khi timer bắt đầu đếm. 4 1. Giới thiệu - 8051/8031 có 2 timer 16 bit: + Timer 0: số đếm chứa trong thanh ghi TH0 (byte cao) và TL0 (byte thấp) + Timer 1: số đếm chứa trong thanh ghi TH1 (byte cao) và TL1 (byte thấp) Ngoài ra, các chip 8032/8052 còn có thêm timer 2. - Các timer chỉ đếm lên (0000H ÷ FFFFH). Khi số đếm tràn từ FFFFH xuống 0000H, cờ tràn sẽ được đặt lên 1. 5 2. Các thanh ghi của timer a. Thanh ghi chế độ định thời (TMOD): - Không được định địa chỉ bit. - Được dùng để định chế độ hoạt động cho các timer. - Chức năng từng bit: + M1, M0: chọn chế độ hoạt động. + C/T: bit chọn chức năng đếm hoặc định thời cho timer. + Gate: bit điều khiển cổng cho bộ định thời. 6 2. Các thanh ghi của timer b. Thanh ghi điều khiển định thời (TCON): - Chứa các bit điều khiển và trạng thái của timer 0 và 1 ở 4 bit cao, 4 bit thấp được dùng cho chức năng ngắt (interrupt). - Được định địa chỉ bit. - Chức năng từng bit: + TFx: cờ tràn của timer x (x là 0 hay 1) + TRx = 0: không cho phép timer chạy. + TRx = 1: cho phép timer chạy. 7 3. Điều khiển các bộ định thời 8 3. Điều khiển các bộ định thời - (Counter/Timer): + C/T= 0: timer nhận xung clock từ bộ dao động nội (sau khi qua bộ chia 12). Ứng dụng: thường dùng cho việc định thời một khoảng thời gian (mỗi số đếm tương ứng với 1 chu kỳ máy). + C/T = 1: timer nhận xung clock từ chân Tx (P3.4 đối với timer 0 và P3.5 đối với timer 1). Ứng dụng: thường dùng để đếm sự kiện bên ngoài. Mỗi sự kiện tạo ra một xung kích vào chân Tx (tích cực cạnh xuống). Số các sự kiện được xác định trong phần mềm bằng cách đọc các thanh ghi định thời (THx/TLx), giá trị 16-bit trong các thanh ghi này tăng theo mỗi sự kiện. 9 3. Điều khiển các bộ định thời - Gate: + Gate = 0: việc điều khiển timer x chỉ phụ thuộc vào TRx. TRx = 0: không cho phép timer x chạy. TRx = 1: cho phép timer x chạy. + Gate = 1: việc điều khiển timer x phụ thuộc vào TRx và /INTx. TRx = 1 và /INTX= 1: cho phép timer chạy. Ứng dụng: thường dùng để đo độ rộng xung (thời gian xung ở mức cao) đưa vào ở chân . Độ rộng xung tương ứng với số đếm trong THx/TLx. 10 4. Các chế độ định thời a. Chế độ 0 - Xác lập bit M1M0 = 00 - Là chế độ định thời 13-bit tương thích với bộ vi điều khiển 8048 trước đó. Chế độ này thường ít dùng. 11 4. Các chế độ định thời b. Chế độ 1 - Xác lập bit M1M0 = 01 - Là chế độ định thời 16-bit: số đếm 16-bit chứa trong cặp thanh ghi THx/TLx khoảng đếm tối đa là 65536 chu kì máy. - Giá trị bắt đầu đếm được nạp vào THx và TLx. Khi timer tràn, để nạp lại giá trị bắt đầu đếm cần phải dừng timer. 12 4. Các chế độ định thời Ví dụ 1: Viết 1 đoạn chương trình khởi động timer 0 ở chế độ 1 và dùng timer 0 để tạo ra 1 xung mức cao rộng 1ms ở chân P1.0. Giả sử dùng thạch anh 12MHz. 13 4. Các chế độ định thời ; 8051 code MOV TMOD,#00000001B ; khởi động timer 0 ở chế độ 1 CLR P1.0 ; xóa P1.0 MOV TH0,#HIGH(-1000) ; nạp byte cao của -1000 (FCH) vào TH0 MOV TL0,#LOW(-1000) ; nạp byte thấp của -1000 (18H) vào TL0 SETB TR0 ; cho timer 0 chạy SETB P1.0 ; đặt P1.0 lên mức cao JNB TF0,$ ; chờ cho đến khi timer tràn (TF0 = 1) CLR P1.0 ; xóa P1.0 CLR TF0 ; xóa cờ tràn TF0 để dùng cho các lần sau 14 4. Các chế độ định thời Ví dụ 2: Viết chương trình con tạo trễ 200ms dùng timer 1. Giả sử fOSC = 12MHz. Hướng dẫn: fOSC = 12MHz chu kỳ máy TM= 1 s. Nếu dùng timer 1 ở chế độ 1 thì thời gian định thời tối đa là 65536 s < 200.000 s = 200ms phải dùng thêm vòng lặp ngoài. Để đơn giản, mỗi vòng lặp sẽ delay 50.000 s số lần lặp là 4. 15 4. Các chế độ định thời ; 8051 code DELAY_200MS: MOV TMOD,#10H MOV R7,#4 ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Vi xử lý Vi xử lý Các chức năng họ 8051 Port nối tiếp Thanh ghi chế độ định thời Chương trình phục vụ ngắt ISR Thanh ghi ưu tiên ngắt IP Chương trình khởi động port nối tiếpGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Vi xử lý
12 trang 297 0 0 -
Báo cáo môn Vi xử lý - TÌM HIỂU VỀ CÁC BỘ VI XỬ LÝ XEON CỦA INTEL
85 trang 154 0 0 -
Báo cáo bài tập lớn môn Kỹ thuật vi xử lý: Thiết kế mạch quang báo - ĐH Bách khoa Hà Nội
31 trang 133 0 0 -
Bài tập lớn môn Vi xử lý, vi điều khiển: Thiết kế bộ điều khiển tốc độ của động cơ điện một chiều
27 trang 117 0 0 -
Bài tập lớn Vi xử lý: Thiết kế môn học Đèn LED đơn ghép thành đèn quảng cáo
15 trang 116 0 0 -
Giáo trình Vi xử lý: Phần 1 - Phạm Quang Trí
122 trang 85 0 0 -
Giáo trình Hệ vi điều khiển: Phần 1
129 trang 72 0 0 -
Đề tài : ĐIỀU KHIỂN CHUYỂN ĐỘNG RÔBÔT BẰNG ĐỘNG CƠ BƯỚC
23 trang 68 0 0 -
Điều khiển số (Digital Control Systems) - ĐH Bách Khoa Hà Nội
110 trang 57 0 0 -
Bài Giảng Kỹ Thuật Số - CÁC HỌ VI MẠCH SỐ
7 trang 56 0 0