Giáo trình Vi điều khiển (Nghề: Điện tử công nghiệp - Cao đẳng): Phần 1 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội

107 6 0
Giáo trình Vi điều khiển (Nghề: Điện tử công nghiệp - Cao đẳng): Phần 1 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội

Đ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

(NB) Giáo trình Vi điều khiển với mục tiêu giúp các bạn có thể vận hành được các thiết bị và dây chuyền sản xuất dùng vi điều khiển; Xác định được các nguyên nhân gây ra hư hỏng xảy ra trong thực tế; Kiểm tra và viết được các chương trình điều kiển. Mời các bạn cùng tham khảo nội dung giáo trình phần 1 dưới đây.

ỦY BAN NHÂN DÂN THÀNH PHỐ HÀ NỘI TRƯỜNG CAO ĐẲNG NGHỀ VIỆT NAM - HÀN QUỐC THÀNH PHỐ HÀ NỘI TRẦN VĂN NAM (Chủ biên) NGUYỄN ANH DŨNG – NGUYỄN THANH HÀ GIÁO TRÌNH VI ĐIỀU KHIỂN Nghề: Điện tử cơng nghiệp Trình độ: Cao đẳng (Lưu hành nội bộ) Hà Nội - Năm 2018 LỜI NÓI ĐẦU Để cung cấp tài liệu học tập cho học sinh - sinh viên tài liệu cho giáo viên giảng dạy, Khoa Điện tử Trường CĐN Việt Nam - Hàn Quốc thành phố Hà Nội chỉnh sửa, biên soạn giáo trình “VI ĐIỀU KHIỂN” dành riêng cho học sinh - sinh viên nghề Điện tử công nghiệp Đây môn học kỹ thuật sở chương trình đào tạo nghề Điện tử cơng nghiệp trình độ Cao đẳng Nhóm biên soạn tham khảo tài liệu: Giáo trình “Họ vi điều khiển” Tống văn On - Đại học Bách khoa TP.HCM – 2005 Và giáo trình “8051 Development Boad”, Rev - Paul Stoffregen nhiều tài liệu khác Mặc dù nhóm biên soạn có nhiều cố gắng khơng tránh thiếu sót Rất mong đồng nghiệp độc giả góp ý kiến để giáo trình hồn thiện Xin chân thành cảm ơn! Hà Nội, tháng 09 năm 2018 Chủ biên: Trần Văn Nam MỤC LỤC LỜI NÓI ĐẦU MỤC LỤC GIÁO TRÌNH MƠ ĐUN Bài 1Sơ lược lịch sử hướng phát triển vi điều khiển 1.1 Lịch sử xuất vi điều khiển 8051 1.2 Vi điều khiển (microcontroller) Bài 2Cấu trúc họ vi điều khiển 8051 16 2.1 Tổng quan 16 2.3 Cấu trúc Port I/O 25 2.4 Tổ chức nhớ 29 2.5 Các ghi chức đặc biệt (SFR) 32 2.6 Tổ chức nhớ 36 Bài 3Tập lệnh 8051 40 3.1 Mở đầu 40 3.2 Các phương pháp định địa 42 3.3 Các nhóm lệnh 47 Bài 4Bộ định thời 89 4.1.Mở đầu 89 4.2.Thanh ghi SFR của timer 91 4.3.Các chế độ làm việc 93 4.4 Nguồn cung cấp xung cho Timer 95 4.5 Khởi động, dừng điều khiển Timer 95 4.6 Khởi tạo truy xuất ghi Timer 96 Bài 5Cổng nối tiếp (serial port) 108 5.1 Mở đầu 108 5.2 Thanh ghi điều khiển 111 5.3 Chế độ làm việc 113 5.4 Khởi tạo truy xuất ghi PORT nối tiếp 118 5.5 Truyền thông đa xử lý (Multiprocessor Communications) 120 5.6 Tốc độ baud 121 Bài 6Ngắt 131 6.1 Mở đầu 131 6.2.Tổ chức ngắt của 8051 133 6.3 Xử lý ngắt 138 6.4 Thiết kế chương trình sử dụng ngắt 140 6.5 Ngắt cổng nối tiếp 145 6,6 Các cổng ngắt 145 6.7 Đồ thị thời gian của ngắt 145 Bài 7Phần mềm hợp ngữ 157 7.1 Mở đầu 157 7.2 Hoạt động của trình biên dịch Assembler 158 7.3 Cấu trúc chung chương trình hợp ngữ cho 8051 159 7.4 Tính biểu thức hợp dịch 162 7.5 Các điều khiển của ASSEMBLER 167 7.6 Hoạt động liên kết (Linker) 173 7.7 Macro 173 TÀI LIỆU THAM KHẢO 223 GIÁO TRÌNH MƠ ĐUN Tên mơ đun: Vi điều khiển Mã số mô đun: MĐ 24 Thời gian mô đun: 120 (LT: 40 giờ; BT: 75 giờ; KT: giờ) I Vị trí, tính chất, ý nghĩa vai trị mơ đun Vị trí của mơ đun: Mơ đun bố trí dạy sau học xong môn học mô đun: Kỹ thuật xung số điện tử bản, điện tử nâng cao, điện tử công suất, học trước môn vi mạch số lập trình Tính chất của mơ đun: Là mơ đun chuyên môn nghề Ý nghĩa của mô đun: mô đun giúp ngườu học có kiến thức điều khiển hệ thống va thiết bị bằng Vi khiển Vai trò của mô đun: Là mô đun chuyên ngành giúp người học điều Vi khiển hệ thống thông qua Vi xử lý II Mục tiêu mô đun Về kiến thức: - Trình bày cấu trúc, ứng dụng vi điều khiển công nghiệp - Kiểm tra viết chương trình điều khiển Về kỹ năng: - Vận hành thiết bị dây chuyền sản xuất dùng vi điều khiển - Xác định nguyên nhân gây hư hỏng xảy thực tế - Kiểm tra viết chương trình điều kiển Về thái độ: Rèn luyện cho học sinh thái độ nghiêm túc, cẩn thận, xác học tập thực công việc III Nội dung mô đun Số TT Thời gian Tên mô đun Tổng số Lý thuyết Thực hành Kiểm tra* Sơ lược lịch sử hướng phát triển của vi điều khiển 4 0 Cấu trúc họ vi điều khiển 8051 5 0 Tập lệnh 8051 25 18 Bộ định thời 25 16 Cổng nối tiếp 20 14 Ngắt 25 17 Phần mềm hợp ngữ 16 10 Cộng 120 40 75 Bài Sơ lược lịch sử hướng phát triển vi điều khiển Mục tiêu Trình bày cấu trúc chung của vi điều khiển Phát biểu ứng dụng của vi điều khiển hướng phát triển của vi điều khiển Rèn luyện cho học sinh thái độ nghiêm túc, cẩn thận, xác học tập thực công việc 1.1 Lịch sử xuất vi điều khiển 8051 Năm 1976 Intel giới thiệu vi điều khiển (microcontroller) 8748, chip tương tự vi xử lý chip họ MCS-48 Độ phức tạp, kích thước khả của Vi điều khiển tăng thêm bậc quan trọng vào năm 1980 intel tung chip 8051, Vi điều khiển của họ MCS-51 chuẩn công nghệ cho nhiều họ Vi điều khiển sản xuất sau Chip 8051 chứa 60000 transistor bao gồm 4K byte ROM, 128 byte RAM, 32 đường xuất nhập, port nối tiếp định thời 16 bit Sau nhiều họ Vi điều khiển của nhiều nhà chế tạo khác đưa thị trường với tính cải tiến ngày mạnh Hiện có nhiều họ Vi điều khiển thị trường với nhiều ứng dụng khác nhau, họ Vi điều khiển họ MCS-51 sử dụng rộng rãi giới Việt Nam Vào năm 1980 Intel cơng bố chíp 8051(80C51), vi điều khiển của họ vi điều khiển MCS-51 Nó bao gồm 4KB ROM, 128 byte RAM, 32 đường xuất nhập, port nối tiếp định thời 16 bit Tiếp theo sau đời của chip 8052, 8053, 8055 với nhiều tính cải tiến Hiện Intel khơng cung cấp loại Vi điều khiển họ MCS-51 nữa, thay vào nhà sản xuất khác Atmel, Philips/signetics, AMD, Siemens, Matra&Dallas, Semiconductors cấp phép làm nhà cung cấp thứ hai cho chip của họ MSC-51 Chip Vi điều khiển sử dụng rộng rãi giới Việt Nam Vi điều khiển của hãng Atmel với nhiều chủng loại vi điều khiển khác Hãng Atmel có chip Vi điều khiển có tính tương tự chip Vi điều khiển MCS-51 của Intel, mã số chip thay đổi chút Atmel sản xuất Mã số 80 chuyển thành 89, chẳng hạn 80C52 của Intel sản xuất Atmel mã số thành 89C52 (Mã số đầy đủ: AT89C52) với tính chương trình tương tự Tương tự 8051,8053,8055 có mã số tương đương Atmel 89C51,89C53,89C55 Vi điều khiển Atmel sau ngày cải tiến bổ sung thêm nhiều chức tiện lợi cho người dùng Bảng Dung lượng RAM Dung lượng ROM Chế độ nạp 89C51 128 byte Kbyte song song 89C52 128 byte Kbyte song song 89C53 128 byte 12 Kbyte song song 89C55 128 byte 20 Kbyte song song Sau khoảng thời gian cải tiến phát triển, hãng Atmel tung thị trường dòng Vi điều khiển mang số hiệu 89Sxx với nhiều cải tiến đặc biệt có thêm khả nạp chương trình theo chế độ nối tiếp đơn giản tiện lợi cho người sử dụng Bảng Dung lượng RAM Dung lượng ROM Chế độ nạp 89S51 128 byte Kbyte nối tiếp 89S52 128 byte Kbyte nối tiếp 89S53 128 byte 12 Kbyte nối tiếp 89S55 128 byte 20 Kbyte nối tiếp Tất Vi điều khiển có đặc tính giống phần mềm (các tập lệnh lập trình nhau), còn phần cứng bổ sung với chip có mã số hai số cuối cao hơn, Vi điều khiển sau có nhiều tính vượt trội Vi điều khiển hệ trước Các Vi điều khiển 89Cxx bảng có cấu tạo ROM RAM 98Sxx bảng 2, nhiên 98Sxx bổ sung số tính có thêm chế độ nạp nối tiếp 8051 vi điều khiển bit tức CPU làm việc với bit liệu Dữ liệu lớn bit chia thành liệu bit để xử lý 8051 trở nên phổ biến sau Intel cho phép nhà sản xuất khác (Siemens, Atmel, Philips, AMD, Matra, Dallas, Semiconductor …) sản xuất bán dạng biến thể của 8051 mà họ muốn với điều kiện họ phải để mã chương trình tương thích với 8051 Từ dẫn đến đời của nhiều phiên của 8051 với tốc độ dung lượng ROM chip khác Tuy nhiên, điều quan trọng có nhiều biến thể của 8051, khác tốc độ, dung lượng ROM tất lệnh tương thích với 8051 ban đầu Điều có nghĩa chương trình viết cho phiên 8051 chạy với phiên khác không phụ thuộc vào hãng sản xuất Các loại vi điều khiển khác: vi điều khiển AVR, vi điều khiển PIC, vi điều khiển MCUs của Philips, Ngoài ra, loại vi điều khiển chuyên dụng của hãng sản xuất khác: loại vi điều khiển sử dụng chuyên dụng theo chức cần điều khiển Bảng 3: Địa chỉ số hãng sản xuất thành viên vi điều khiển Hãng Địa Website intel www.intel.com/design/mcs51 Antel www.atmel.com Philips/Signetis www.semiconductors.philips.com Siemens www.sci.siemens.com Dallas Semiconductor www.dalsemi.com 1.2 Vi điều khiển (microcontroller) 1.2.1 Nguyên lý, cấu tạo a Cấu tạo vi điều khiển Vi điều khiển máy tính tích hợp chíp, thường sử dụng để điều khiển thiết bị điện tử Vi điều khiển thực chất gồm vi xử lý có hiệu suất đủ cao giá thành thấp (so với vi xử lý đa dùng máy tính) kết hợp với thiết bị ngoại vi nhớ, mô đun vào/ra, mô đun biến đổi từ số sang tương tự từ tương tự sang số, mô đun điều chế độ rộng xung (PWM) Vi điều khiển thường dùng để xây dựng hệ thống nhúng Nó xuất nhiều dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, dây truyền tự động Hầu hết loại vi điều khiển có cấu trúc Harvard loại cấu trúc mà nhớ chương trình nhớ liệu phân biệt riêng Cấu trúc của vi điều khiển gồm CPU, nhớ chương trình (thường nhớ ROM nhớ Flash), nhớ liệu (RAM), định thời, cổng vào/ra để giao tiếp với thiết bị bên ngoài, tất khối tích hợp vi mạch Các loại vi điều khiển thị trường nay: -VDK MCS-51: 8031, 8032, 8051, 8052, -VDK ATMEL: 89Cxx, AT89Cxx51 -VDK AVR AT90Sxxxx -VDK PIC 16C5x, 17C43 b Nguyên lý hoạt động Vi điều khiển Mặc dù có nhiều họ vi điều khiển phát triển nhiều chương trình điều khiển tạo cho chúng, tất chúng có số điểm chung Do ta hiểu cặn kẽ họ việc tìm hiểu thêm họ vi điều khiển hoàn toàn đơn giản Một kịch chung cho hoạt động của vi điều khiển sau: Khi khơng có nguồn điện cung cấp, vi điều khiển chip có chương trình nạp sẵn vào khơng có hoạt động xảy Khi có nguồn điện, hoạt động bắt đầu xảy với tốc độ cao Đơn vị điều khiển logic có nhiệm vụ điều khiển tất hoạt động Nó khóa tất mạch khác, trừ mạch giao động thạch anh Sau vài mili giây tất sẵn sàng hoạt động Điện áp nguồn nuôi đạt đến giá trị tối đa của tần số giao động trở nên ổn định Các bit của ghi SFR cho biết trạng thái của tất mạch vi điều khiển Toàn vi điều khiển hoạt động theo chu kỳ của chuỗi xung Thanh ghi đếm chương trình (Program Counter) xóa Câu lệnh từ địa gửi tới giải mã lệnh sau thực thi Giá trị ghi PC tăng lên tồn q trình lặp lại vài … triệu lần giây Các kiểu cấu trúc nhớ (Hình 1.1) Memory (bộ nhớ): ROM/RAM lưu trữ chương trình hay kết trung gian Read Only Memory (ROM): Read Only Memory (ROM) loại nhớ sử dụng để lưu vĩnh viễn chương trình thực thi Kích cỡ của chương trình viết phụ thuộc vào kích cỡ của nhớ ROM tích hợp vi điều khiển hay thêm vào chip gắn bên ngoài, tùy thuộc vào loại vi điều khiển Cả hai tùy chọn có số nhược điểm Nếu ROM thêm vào chip bên ngoài, vi điều khiển rẻ chương trình tồn lâu đáng kể Đồng thời, làm giảm số lượng chân vào/ra để vi điều khiển sử dụng với mục đích khác ROM nội 10 Bảng 4.4 Thanh ghi điều khiển định thời TCON Bit Ký Địa chỉ hiệu bit Mô tả TCON.7 TF1 8FH Cờ tràn của định thời 1.Cờ set phần cứngkhicótràn, đượcxóabởiphần mềm, phần cứng vi xử lý tác động đến chương trình phục vụ ngắt TCON.6 TR1 8EH Bit điều khiển hoạt động của định thời 1.Bit set xóa phần mềm để điều khiển định thời hoạt động hay ngưng hoạt động TCON.5 TF0 8DH Cờ tràn của định thời TCON.4 TR0 8CH Bit điều khiển hoạt động của định thời TCON.3 IE1 Cờ ngắt bên 1.Cờ set phần 8BH cứng có cạnh âm( xuống),xuất chân INT1 đảo,được xóa phần mềm,hoặc phần cứng CPU trỏ đến chương trình phục vụ ngắt TCON.2 IT1 8AH Bit chọn ngắt thuộc loại tác động cạnh hay tác động mức.0:mức;1:cạnh TCON.1 IE0 89H Cờ ngắt bên ngồi (kích khởi cạnh) TCON.0 IT0 88H Bit chọn ngắt thuộc loại tác động cạnh hay tác động mức.0:mức;1:cạnh 4.3.Các chế độ làm việc Do ta có hai định thời chip 8051,kí hiệu “x” sử dụng đểchỉ định thời định thời 1.Thí dụ : THx TH0 hay TH1 tùy theo định thời hay 4.3.1.Chế độ định thời 13 bit (chế độ 0) Chế độ định thời chế độ định thời 13 bit cung cấp khả tương thích với vi điều khiển tiền nhiệm 8048.Chế độ không dùng cho thiết kế mới.Byte cao của định thời THx ghép cascade với bit thấp của byte thấp của định thời THx để tạo thành định thời 13bit Ba bit cao của TLx không sử dụng 93 4.3.2.Chế độ định thời 16 bit (chế độ 1) Chế độ định thời 16 bit có cấu hình giống chế độ định thời 13 bit Khi có xung clock định thời đếm lên: 0000H,0001H,0002H … FFFFH (65535) Một tràn xuất có chuyển số đếm từ FFFFH xuống 0000H, kiện set cờ tràn bằng (TFx = 1) định thời tiếp tục đếm Bit có ý nghĩa lớn (MSB : Most significant bit) của giá trị ghi định thời bit của THx bit có ý nghĩa thấp (LSB : Least significan bit ) bit của TLx Các ghi định thời ( THx,TLx) đọc ghi bằng phần mềm thời điểm Timer clock TLx THx T Fx 4.3.3.Chế độ tự nạp lại bit (chế độ 2) Chế độ chế độ tự nạp lại 8bit Byte thấp của định thời (TLx) hoạt động định thời bit byte cao của định thời lưu giữ giá trị nạp lại Khi số đếm tràn từ FFH xuống 00H không cờ tràn của định thời set lên mà giá trị THx còn nạp vào TLx, việc đếm tiếp tục từ giá trị xảy lần tràn kế tiếp,v.v… 4.3.4.Chế độ định thời tách biệt timer (chế độ 3) Chế độ chế độ định thời chia xẻ có hoạt động khác cho từng định thời Bộ định thời của chế độ chia thành định thời bit hoạt động riêng lẻ TL0 TF1, định thời Set cờ tràn tương ứng TF0 TF1 xảy tràn Bộ định thời khơng hoạt động chế độ khởi động bắng cách chuyển định thời vào chế độ khác Giới hạn cờ tràn TF1 của định thời không bị ảnh hưởng định thời xảy tràn TF1 nối với định thời TH0 Chế độ chủ yếu cung cấp thêm định thời bit nữa, nghĩa 8051 có thêm định thời thứ 3.Khi định thời của chế độ 3,bộ định thời hoạt động ngưng bằng cách chuyển khỏi chế độ vào chế độ Bộ định thời sử dụng port nối tiếp (lúc định thời làm nhiệm vụ của tạo xung clock tốc độ baud) sử dụng theo cách khơng u cầu ngắt (vì định thời lúc khơng cịn nối với TF1) 94 4.4 Nguồn cung cấp xung cho Timer Có khả tạo nguồn xung clock này,việc lựa chọn khả ta thiết lập bit C/ T (counter/timer) của ghi TMOD bằng hay định thời khởi động.Một nguồn xung clock dùng để định thời khoảng thời gian, nguồn xung clock lại dùng để đếm kiện 4.4.1 Chức định thời Nếu C/ T =0,hoạt động định thời chọn nguồn xung clock của định thời mạch dao động bên chip tạo Một mạch chia 12 tầng thêm vào để giảm tần số xung clock đến giá trị thích hợp với hầu hết ứng dụng Lúc định thời dùng để định thời khoảng thời gian.Các ghi định thời (TLx/THx) đếm lên với tần số xung clock bằng 1/12 tần số của mạch dao động chip (nghĩa thạch anh 12MHz, tần số xung clock 1MHz) Bộ định thời tràn sau số xung clock cố định phụ thuộc vào giá trị ban đầu nạp cho ghi định thời( TLx/THx) 4.4.2.Đếm kiện Nếu C/ T = 1, định thời cung cấp xung clock từ nguồn tạo xung bên Trong đa số ứng dụng,nguồn xung clock cung cấp cho định thời xung dựa việc xảy kiện định thời đếm kiện Số kiện xác định phần mềm bằng cách đọc ghi định thời (TLx/THx), giá trị 16-bit ghi tăng theo kiện Hai chân của port 3( P3.4 P3.5 ) trở thành ngõ vào xung clock cho định thời Chân P3.4 ngõ vào xung clock cho định thời (ta gọi chân T0 ngữ cảnh này), chân P3.5 ngõ vào xung clock cho định thời 1(T1) Trong ứng dụng đếm kiện, ghi định thời tăng xảy chuyển trạng thái từ xuống ngõ vào Tx (T0 1).Ngõ vào Tx lấy mẫu suốt chu kỳ máy, ngõ vào mức cao chu kỳ mức thấp chu kỳ kế, số đếm tăng Phải chu kỳ máy (2us) để nhận biết chuyển trạng thái từ xuống 0, tần số cực đại của nguồn xung clock bên 500KHz (với giả sử chip vi điều khiển hoạt động với thạch anh 12 MHz) 4.5 Khởi động, dừng điều khiển Timer Cách đơn giản để khởi động dừng định thời sử dụng bit điều khiển hoạt động TRx ghi TCON TRx xóa thiết lập hệ thống; nghĩa định thời ngưng hoạt động Ngược lại ta set bit TRx 95 nghĩa cho phép định thời hoạt động Do ghi TCON ghi định địa từng bit, ta dễ dàng khởi động dừng định thời bằng chương trình Một phương pháp khác để điều khiển định thời sử dụng bit GATE ghi TMOD ngõ vào /INTx Bằng cách set bit GATE lên ta cho phép định thời điều khiển /INTx 4.6 Khởi tạo truy xuất ghi Timer Các định thời thường khởi động lần thời điểm bắt đầu chương trình để thiết lập chế độ hoạt động yêu cầu.Trong thân của chương trình,các định thời điều khiển hoạt động, dừng, kiểm tra bit cờ xóa, cá ghi định thời đọc cập nhật tuỳ theo yêu cầu ứng dụng TMOD ghi khởi động trước tiên ghi thiết lập chế độ hoạt động Hình 4.2 Ngắt ngồi 96 Các tác vụ: Đặt chế độ làm việc Cho timer chạy Dừng timer Kiểm tra cờ tràn Xóa cờ tràn Đọc cập nhật ghi timer Chú ý: có sử dụng ngắt ngồi ( TD: chế độ 1) Ví dụ: Đặt chế độ làm việc: Khởi động định thời hoạt động chế độ 16-bit (chế độ 1), xung clock cấp từ mạch dao động chip(định thời khỏang thời gian) MOV TMOD,#00010000B Timer 1: Gate = 0, C/T = 0, M1M0 = 01 (mode 1) Timer : Gate = 0, C/T = 0, M1M0 = 00(mode 0) Trong trường hợp cần đến số đếm ban đầu, ghi định thời TL1/TH1 phải khởi động Cần nhớ định thời đếm lên thiết lập cờ tràn bằng xảy tràn số đếm từ FFFFH xuống 0000H, khoảng thời gian 100us định thời bằng cách khởi động TL1/TH1 chứa số đếm nhỏ 0000H lượng 100 nghĩa -100 hay FF9CH Các lệnh sau thực điều MOV TL1,#9CH MOV TH1,#0FFH Cho timer chạy: Kế đến định thời bắt đầu hoạt động bằng cách thiết lập bit điềukhiển hoạt động bằng sau : SETB TR1 Cờ tràn tự động sau khoảng thời gian 100us Phần mềm chứa vịng lặp trì hỗn thời gian 100us bằng cách sử dụng lệnh rẽ nhánh lặp lại lệnh cờ tràn chứa set bằng WAIT : JNB TF1, WAIT Dừng timer: Khi định thời tràn ta cần dừng định thời xóa cờ tràn bằng phần mềm: 97 CLR TR1 CLR TF1 Kiểm tra cờ xóa cờ: WAIT: JNB TF1,WAIT CLR TR1 ;dừng timer T1 CLR TF1 ; xóa cờ báo tràn Cập nhật ghi timer MOV TL1,#9CH MOV TH1,#0FFH 4.6.1 Đọc định thời hoạt động Trong số ứng dụng ta cần phải đọc giá trị (nội dung) chứa ghi định thời hoạt động.Do ta phải đọc ghi định thời bằng dòng lệnh liên tiếp (do khơng có lệnh đọc đồng thời hai ghi định thời này), số pha xuất có tràn từ byte thấp chuyển sang byte cao hai lần đọc đọc giá trị cần đọc Giải pháp đưa trước tiên ta phải đọc byte cao đọc byte thấp đọc byte cao lần Nếu byte cao thay đổi giá trị, ta lặp lại thao tác đọc vừa nêu Các lênh sau đọc nội dung ghi định thời TL1/TH1, đưa vào ghi R6/R7 giải vấn đề vừa nêu: AGAIN : MOV A, TH1 MOV R6,TL1 CJNE A,TH1, AGAIN MOV R7,A Ví dụ: Viết chương trình tạo sóng vng 10KHz chân P0.0 bằng cách sử dụng định thời ( Thạch anh 12MHz ) ORG 0030H ; thiết lập gốc của chương trình MOV TMOD,#00000010B MOV TH0,#206 ;( #02H ) chế độ tự nạp lai ; TH0 chứa giá trị 206 =0CEH= -50 SETB TR0 ; cho phép định thời hoạt động LOOP: JNB TF0,LOOP ; chờ timer tràn CLR TF0 ; xóa cờ tràn chuẩn bị cho lần sau CPL P0.0 ; đổi trạng thái bit P0.0 SJMP LOOP ; nhảy nhãn LOOP, lăp lại END 98 Ví dụ: Viết chương trình tạo sóng vng 1KHz chân P1.0 sử dụng định thời ORG 0030H ; thiết lập gốc của chương trình MOV TMOD,#00000001B ; chế độ định thời 16 bit LOOP: MOV TH0,#0FEH ; nạp trước cho TH0 byte cao của -500 MOV TL0,#0CH SETB TR0 ; nạp trước cho TL0 byte thấp của -500 ; cho phép định thời hoạt động WAIT: JNB TF0,WAIT ; chờ timer tràn CLR TR0 CLR TF0 ; xóa cờ tràn CPL P1.0 ; dừng định thời ; lấy bù SJMP LOOP ; lặp lại END 4.6.2 Thời gian ngắn thời gian dài Khoảng thời gian định thời cực đại (µs) Khoảng thời gian Kỹ thuật ≈ 10 Điều chỉnh phần mềm 256 Bộ định thời bit tự động nạp lại 65536 Bộ định thời 16 bit Không giới hạn Bộ định thời 16 bit + vòng lặp Ví dụ: Tạo dạng xung chân P1.0 Viết chương trình tạo dạng sóng có chu kỳ P1.0 với tần số cao Tần số chu kỳ nhiệm vụ của dạng sóng bao nhiêu? (giả sử dùng XTAL = 12MHz 1MC = 1µs)  Với dạng sóng ngắn: không cần timer ORG LOOP: 8000H SETB P1.0 ; 1MC CLR P1.0 ; 1MC SJMP LOOP ; 2MC Tần số = 250 Khz (1/4 µs) 99 TON = 1µs, TOFF = 3µs  duty cycle = TON/(TON + TOFF) = 25Khz (1/4 μs) Tạo sóng vng 10KHz chân P1.0 Tạo sóng vng 10KHz Tần số = 10KHz chu kỳ T=1/10000 = 10 us TON = 50 US, TOFF = 50 us Dùng mode ( bit mode ), khoảng thời gian

Ngày đăng: 25/03/2022, 09:05

Tài liệu cùng người dùng

Tài liệu liên quan