1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Dtcn gt md20 lap rap lap trinh vi dieu khien ver2 doc 017

62 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

Thông tin cơ bản

Định dạng
Số trang 62
Dung lượng 3,54 MB

Nội dung

UBND TỈNH BÌNH ĐỊNH TRƯỜNG CAO ĐẲNG KỸ THUẬT CÔNG NGHỆ QUY NHƠN GIÁO TRÌNH Mơ đun: LẮP RÁP LẬP TRÌNH VI ĐIỀU KHIỂN NGHỀ: ĐIỆN TỬ CƠNG NGHIỆP TRÌNH ĐỘ: CAO ĐẲNG – TRUNG CẤP Ban hành kèm theo Quyết định số: 99/QĐ-CĐKTCNQN ngày 14 tháng năm 2018 Hiệu trưởng Trường Cao đẳng Kỹ thuật Công nghệ Quy Nhơn Bình Định, năm 2018 TUYÊN BỐ BẢN QUYỀN Giáo trình biên soạn tác giả giảng viên môn Điện tử tự động, khoa Điện tử - Tin học Trường Cao đẳng Kỹ thuật Công nghệ Quy Nhơn Giáo trình sử dụng cho việc giảng dạy tham khảo cho giảng viên, sinh viên nghề Điện tử công nghiệp Trường Cao đẳng Kỹ thuật Cơng nghệ Quy Nhơn Mọi hình thức chép, in ấn đưa lên mạng Internet không cho phép Hiệu trưởng Trường Cao đẳng Kỹ thuật Công nghệ Quy Nhơn vi phạm pháp luật./ LỜI GIỚI THIỆU Để thực biên soạn giáo trình đào tạo nghề Điện tử cơng nghiệp trình độ Cao Đẳng Nghề Trung Cấp Nghề, giáo trình Lắp ráp lập trình vi điều khiển giáo trình môn học đào tạo chuyên ngành biên soạn theo nội dung chương trình khung Bộ Lao động Thương binh Xã hội Tổng cục Dạy Nghề phê duyệt Nội dung biên soạn ngắn gọn, dễ hiểu, tích hợp kiến thức kỹ chặt chẽ với nhau, logíc Khi biên soạn, nhóm biên soạn cố gắng cập nhật kiến thức có liên quan đến nội dung chương trình đào tạo phù hợp với mục tiêu đào tạo, nội dung lý thuyết thực hành biên soạn gắn với nhu cầu thực tế sản xuất đồng thời có tính thực tiển cao Trong trình sử dụng giáo trình, tuỳ theo yêu cầu khoa học cơng nghệ phát triển điều chỉnh thời gian bổ sung kiên thức cho phù hợp Trong giáo trình, chúng tơi có đề nội dung thực tập để người học cố áp dụng kiến thức phù hợp với kỹ Tuy nhiên, theo điều kiện sở vật chất trang thiết bị, trường có thề sử dụng cho phù hợp Mặc dù cố gắng tổ chức biên soạn để đáp ứng mục tiêu đào tạo không tránh khiếm khuyết Rất mong nhận đóng góp ý kiến thầy, giáo, bạn đọc để nhóm biên soạn hiệu chỉnh hoàn thiện Các ý kiến đóng góp xin gửi Trường Cao Đẳng nghề Quy Nhơn, 172 An Dương Vương, TP Quy Nhơn Biên soạn Lương Thanh Long MỤC LỤC Trang LỜI GIỚI THIỆU BÀI 1: KHẢO SÁT CẤU TRÚC HỌ VI ĐIỀU KHIỂN 8051 VÀ CHƯƠNG TRÌNH KIEL C 1.1 Cấu trúc họ vi điều khiển 8051 .6 1.2 Giao diện phần mền Keil C .11 1.3 Tạo dự án với Keil C 12 BÀI 2: LẬP TRÌNH C CĂN BẢN 19 2.1 Khai báo lập trình C 19 2.2 Thực phép tính chương trình C 21 3.1 Điều khiển led đơn tích cực mức thấp 25 3.2 Điều khiển led đơn tích cực mức cao 27 BÀI 4: LẮP RÁP, LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ LED ĐOẠN 30 4.1 Lập trình điều khiển hiển thị Led đoạn 30 4.2 Lập trình điều khiển thị nhiều led đoạn 32 BÀI 5: LẮP RÁP, LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ LED 34 MA TRẬN 8X8 34 5.1 Kết nối Led ma trận 8x8 với vi điều khiển 34 5.2 Lập trình hiển thị led ma trận 8x8 36 BÀI 6: LẮP RÁP, LẬP TRÌNH ĐIỀU KHIỂN HIỂN THỊ MÀN HÌNH LCD 16X2 38 6.1 Kết nối LCD với vi điều khiển 38 6.2 Lập trình hiển thị hình LCD 16x2 41 BÀI 7: LẬP TRÌNH ỨNG DỤNG BỘ ĐỊNH THỜI TRONG ĐIỀU KHIỂN THIẾT BỊ NGOẠI VI 44 7.1 Cài đặt chế độ cho định thời 44 7.2 Sử dụng định thời tạo xung vuông 2Khz 47 7.3 lắp ráp, lập trình điều khiển động điện chiều 48 BÀI 8: LẬP TRÌNH ỨNG DỤNG NGẮT 52 8.1 Cấu hình hoạt động ngắt 52 8.2 Lập trình sử dụng ngắt 58 CHƯƠNG TRÌNH MƠ ĐUN Tên mơ đun: Lắp ráp, lập trình vi điều khiển Mã mơ đun: MĐ 20 Thời gian thực mô đun: 135 (Lý thuyết: 30;Thực hành:102;Kiểm tra: 3) I Vị trí tính chất mơ đun: - Vị trí 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 mô đun: Là mô đun chuyên môn nghề giúp người hoc ̣ có kiến thức về điều khiển ̣thống thiết bi bằng ̣ Vi đều khiển II Mục tiêu mô đun: - 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 - 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 + Xác định nguyên nhân gây hư hỏng xảy thực tế - Năng lực tự chủ trách nhiệm: 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: Nội dung tổng quát phân bổ thời gian: Số Tên mô đun TT Bài 1: Khảo sát cấu trúc họ vi điều khiển 8051 chương trình Kiel C Bài 2: Lập trình C Bài 3: Lắp ráp, lập trình điều khiển hiển thị led đơn Bài 4: Lắp ráp, lập trình điều khiển hiển thị led đoạn Bài 5: Lắp ráp, lập trình điều khiển hiển thị led ma trận 8x8 Bài 6: Lắp ráp, lập trình điều khiển hiển thị hình LCD 16x2 Bài 7: Lập trình ứng dụng định thời Bài 8: Lập trình ứng dụng ngắt Tổng cộng Thời gian (giờ) TS LT TH KT 16 10   22 16 18 12     16 14     32 17 135 30 24 12 102 1 BÀI 1: KHẢO SÁT CẤU TRÚC HỌ VI ĐIỀU KHIỂN 8051 VÀ CHƯƠNG TRÌNH KIEL C Mã bài: MĐ20.01 Thời gian: 16 (LT: 02, TH: 6, Tự học: 8) GIỚI THIỆU Trong thập niên cuối kỷ XX, từ đời công nghệ bán dẫn, kỹ thuật điện tử có phát triển vượt bậc Các thiết bị điện tử sau đó tích hợp với mật độ cao cao diện tích nhỏ,nhờ thiết bị nhỏ nhiều chức Các thiết bị điện tử ngày nhiều chức giá thành ngày rẻ hơn, điện tử có mặt khắp nơi Bước đột phát kỹ thuật điện tử tạo thiết bị điện tử Vi điều khiển Một vi điều khiển (microcontroller) xem ―một máy tính chip‖ – nó mạch điện tích hợp chip, có thể lập trình được, dùng để điều khiển hoạt động hệ thống Vi điều khiển ứng dụng rộng rãi Đa số lĩnh vực có thể ứng dụng vi điều khiển Và khí tự động hố có lẽ nó gắn liền với vi xử lý Vi điều khiển câu trúc siêu nhỏ, gồm linh kiện điện tử có kích thước micro nano kết hợp với nhau, nối với thiết bị bên qua chân vi điều khiển Vì hiểu rõ cấu trúc nó, ta hiểu làm việc với gì? Và nó hoạt động nào? Mục tiêu: - Trình bày cấu trúc chung vi điều khiển Phát biểu ứng dụng vi điều khiển hướng phát triển vi điều khiển NỘI DUNG CHÍNH Vi xử lý có nhiều loại bit 64 bit, vi xử lý bit khơng cịn vi xử lý bit cịn có vi xử lý 64 bit Lý tồn vi xử lý bit phù hợp với số yêu cầu điều khiển công nghiệp Các vi xử lý 32 bit, 64 bit thường sử dụng cho máy tính khối lượng liệu máy tính lớn nên cần vi xử lý mạnh tốt Các hệ thống điều khiển công nghiệp sử dụng vi xử lý bit hay 16 bit hệ thống điện xe hơi, hệ thống điều hòa, hệ thống điều khiển dây chuyền sản xuất,… Khi sử dụng vi xử lý phải thiết kế hệ thống gồm có: Vi xử lý, có nhớ, ngoại vi Bộ nhớ dùng để lưu chương trình cho vi xử lý thực lưu liệu cần xử lý, ngoại vi dùng để xuất nhập liệu từ bên vào xử lý điều khiển trở lại Các khối liên kết với tạo thành hệ thống vi xử lý Yêu cầu điều khiển cao hệ thống phức tạp yêu cầu điều khiển đơn giản hệ thống vi xử lý phải có đầy đủ khối Để kết nối khối tạo thành hệ thống vi xử lý đòi hỏi người thiết kế phải hiểu biết tất thành phần vi xử lý, nhớ, thiết bị ngoại vi Hệ thống tạo phức tạp, chiếm nhiều không gian, mạch in, vấn đề địi hỏi người thiết kế hiểu thật rõ hệ thống Một lý vi xử lý thường xử lý liệu theo byte word đối tượng điều khiển cơng nghiệp thường điều khiển theo bit Chính phức tạp nên nhà chế tạo tích hợp nhớ số thiết bị ngoại vi với vi xử lý tạo thành IC gọi vi điều khiển – Microcontroller Khi vi điều khiển đời mang lại tiện lợi dễ dàng sử dụng điều khiển công nghiệp, việc sử dụng vi điều khiển khơng địi hỏi người sử dụng phải hiểu biết lượng kiến thức nhiều người sử dụng vi xử lý Có nhiều hãng chế tạo vi điều khiển, hãng sản xuất tiếng TI, Microchip, ATMEL, ST… phạm vi tài liệu trình bày vi điều khiển họ 8051 ATMEL 1.1 Cấu trúc họ vi điều khiển 8051 1.1.1 Hình dạng bên ngồi sơ đồ chân Đến thời điểm có nhiều loại vi điều khiển hãng Atmel, tài liệu giới thiệu họ vi điều khiển MCS – 52 cụ thể khảo sát vi điều khiển AT89S52 Vi điều khiển AT89S52 đóng gói với định dạng DIP40 TQFP44 Hình 1.1: Dạng đóng gói kiểu DIP40 Hình 1.2: Dạng đóng gói kiểu TQFP44 Chức chân vi điều khiển AT89S52 Hình 1.3: Sơ đồ chân đóng gói Hình1.4: Sơ đồ chân đóng gói TQFP44 DIP44 Vi điều khiển AT89S52 có 40 chân Trong có nhiều chân có chức kép (1 chân có chức năng), đường hoạt động đường xuất nhập điều khiển IO thành phần bus liệu bus địa để tải địa liệu giao tiếp với nhớ ngồi PORT0: có chức năng: Trong hệ thống điều khiển đơn giản sử dụng nhớ bên khơng dùng nhớ mở rộng bên ngồi port0 dùng làm đường điều khiển IO (Input- Output) Trong hệ thống điều khiển lớn sử dụng thêm nhớ mở rộng bên ngồi port có chức bus địa bus liệu AD7 ÷ AD0 (Address: địa chỉ, Data: liệu) PORT2: có chức năng: Trong hệ thống điều khiển đơn giản không dùng nhớ mở rộng bên ngồi port2 dùng làm đường điều khiển IO (Input- Output) Trong hệ thống điều khiển lớn sử dụng thêm nhớ mở rộng bên port2 có chức bus địa cao A8÷A15 PORT3: có nhiều chức liệt kê sau: Bảng 1.5 Chức chân Port - Chân VCC: Là chân cấp nguồn cho vi điều khiển (4.5 – 5.5V) - Chân GND: Là chân mass vi điều khiển - Chân Reset (chân số 9): chân cấp tín hiệu Reset cho vi điều khiển, vi điều khiển AT89S52 reset có mức logic [1] chân Reset (xem sơ đồ kết nối hình dưới) - Chân XTAL1 XTAL2 (chân số 18 19) chân ngõ vào dao động thạch anh ngoài, sử dụng AT89S52 chế độ thạch anh ngoài, người thiết kế phải cần kết nối thêm thạch anh tụ hình 2-3 Tần số tụ thạch anh thường sử dụng cho AT89S53 12Mhz ÷ 24Mhz (xem hình dưới) Hình 1.6 : Sơ đồ kết nối vi điều khiển AT89S52 1.1.2 Đặc tính kỹ thuật - Kbyte nhớ FLASH ROM bên dùng để lưu chương trình điều khiển - 256 Byte RAM nội ghi có chức đặc biệt - Port xuất/nhập (Input/Output) bit - Khả giao tiếp truyền liệu nối tiếp - nguồn ngắt - timer 16 bit - Cho phép lập trình nối chuẩn SPI với điện áp lập trình 5V - Có thể giao tiếp với 64 Kbyte nhớ bên dùng để lưu chương trình điều khiển - Có thể giao tiếp với 64 Kbyte nhớ bên dùng để lưu liệu - Có 210 bit truy xuất bit Có lệnh xử lý bit 1.2.3 Cấu trúc nhớ khối chức Các khối bên vi điều khiển bao gồm: Khối ALU kèm với ghi temp1, temp2 ghi trạng thái PSW: có chức thực phép tốn, ghi lưu liệu cho khối ALU thực hiện, ghi trạng thái lưu trạng thái kết sau thực xong phép tốn cịn bit cao TLx khơng dùng hình Ở chế độ giá trị đếm lớn 213 = 8192 tức đếm từ “0 0000 0000 0000B” đến “1 1111 1111 1111B” có thêm xung đếm tràn cờ tràn lên Nếu cho phép timer ngắt ngắt tác động Chế độ 16 bit timer (chế độ 1) Mode mode đếm 16 bit, xem hình 7-4 Ở mode giá trị đếm lớn 216 Timer hoạt động mode giống mode khác đếm 16 bit Chế độ bit tự nạp lại timer (Chế độ 2) Chế độ chế độ đếm bit tự động nạp lại, byte thấp TLx Timer hoạt động Timer bit byte cao THx Timer dùng để lưu trữ giá trị để nạp lại cho ghi TLx Khi đếm TLx đếm chuyển trạng thái từ FFH sang 00H: cờ tràn lên giá trị lưu THx nạp vào TLx đếm tiếp tục đếm từ giá trị vừa nạp vào TLx từ THx lên có chuyển trạng thái từ FFH sang 00H tiếp tục Sơ đồ minh họa cho timer hoạt động mode hình Thanh ghi TCON AT89S52 Thanh ghi điều khiển TCON chứa bit trạng thái bit điều khiển cho T0 T1 Hoạt động bit ghi TCON tóm tắt bảng sau: Khi timer bị tràn cờ tràn TFx = 1, ta xóa cờ phần mềm tự động xóa vi điều khiển thực chương trình phục vụ ngắt timer Khi có ngắt xảy ngõ vào INTx làm cờ IEx lên mức Khi vi điều khiển thực chương trình phục vụ ngắt INTx tự động xóa ln cờ báo ngắt IEx Chú ý: “x” nói chung cho T0 T1 INT0 INT1 Như trình bày timer có kiểu hoạt động, phần khảo sát chi tiết kiểu hoạt động timer 7.1.2 Trình tự thực hiện: Bước 1: Chọn chế độ phù hợp cho timer Tùy thuộc vào yêu cầu hoạt động mà ta lựa chọn chế độ làm việc phù hợp với timer, thơng thường chế độ sử dụng Bước 2: nạp giá trị ghi điều khiển Tính tốn giá trị ghi đa chức để đặt timer vào chế độ làm việc thich hợp 7.1.3 Thực hành: - Cài đặt timer0 chế độ bit tự nạp - Cài đặt timer1 chế độ 16 bit 7.2 Sử dụng định thời tạo xung vuông 2Khz 7.2.1 Lý thuyết liên quan Để tạo xung vuông với tần số 2Khz, tức chu kỳ 2ms, ta thực sử dụng định thời để tạo khoảng thời gian trễ 1ms theo chu kỳ lặp lại với 1ms đảo trạng thái tín hiệu ngõ Như ta biết, sau chu kỳ máy (tức 1us) giá trị ghi Timer (THx TLx) tăng lên đơn vị, đặt timer chế độ bit tự nạp lại, timer tràn 256us Tuy nhiên ta cần timer tràn sau 1ms ta phải sử dụng timer chế độ 16 bit chế độ 16 bit giá trị timer tràn sau 65536 chu kỳ máy (tức 65536us hay 65.536ms), mà thời gian ta cần timer tràn 1ms Do ta cần phải nạp trước giá trị cho timer Cụ thể Để sau 1ms timer đạt đến giá trị tràn (65535) ta cần nạp trước cho timer giá trị 65535 – 1000 = 64535 Như sau 1000us (tức 1ms) timer tràn, sau lần timer tràn ta đổi trạng thái tín hiệu ngõ nạp lại giá trị ban đầu (64535) cho timer 7.2.2 Trình tự thực hiện: Bước 1: Chọn chế độ làm việc cho timer Bước 2: Nạp giá trị cho ghi điều khiển timer Bước 3: Tính giá trị nạp trước cho timer Bước 4: Xóa cờ tràn timer khởi chạy timer 7.2.3 Thực hành: - Lập trình sử dụng định thời tạo xung vng có tần số 500Hz chân P3.1 vi điều khiển 89S52 - Lập trình sử dụng định thời tạo xung vng có tần số 2KHz chân P2.7 vi điều khiển 89S52 7.3 Lắp ráp, lập trình điều khiển động điện chiều 7.3.1 Lý thuyết liên quan Động chiều loại động có cấu tạo cách điều khiển đơn giản nhất, tốc độ động điều khiển thông qua điện áp ấcp vào đầu động Động chiều ứng dụng rộng rãi hệ thống tự động Cho đến nay, có r ất nhiều phương pháp dùngđể điều khiển động chiều, gi ảng s ẽ trình bày cách sử dụng module PWM để điều chế điện áp đặt lên haiđầu động cơ, điều khiển tốc độ động Hình 7.3: Mạch cầu H Có khóa chuyển mạch 1,2,3,4 Tại thời điểm ln ln có khóa m khóa đóng Giả sử khóa khóa đóng, dòng điện chạy qua động chạy từ trái qua phải, động quay theo chiều.Nếu khóa đóng, dịng điện qua động có chi ều từ phải qua trái, động quay theo chiều ngược lại.Tránhđể hai khóa ho ặc khóa đóng, nh gây tượng đoản mạch.Như với việc thay đổi việc đóng m van, thay đổi chiều quay động Bây gi cần điều khiển tốc độ động cơ, giả sử cho van đóng m liên ụtc (giống phần PWM), điện ápđặt lênđộng có dạng xung, tốc độ đóng m thấp, động quay giật cục lúc có điện áp, lúc khơng có điện áp Nếu tốc độ đóng m cao (khoảng 15KHz) qn tính nên chúng taẽs thấy động quay trơn Trong thực tế, khóa chuyển hình dùng transistor, hay Mostfet, không nên dùng relay, relay có t ốc độ đóng mở thấp Sau s đồ nguyên lí kênh module điều khiển động sử dụng ví dụ: Hình 7.4 Mạch cầu H chi tiết để đảochiều quay động DC Mạch sử dụng Mosfet để điều khiển động cơ, diode D11 có tác dụng bảo vệ cho FET, Opto Op6 có tác dụng cách li mạch động với mạch điều khiển, điều s ẽ đảm bảo an toàn cho phần mạch điều khiển Hình 7.5 Mạch cầu H dùng MOSFET đảo chiều quay động DC 7.3.2 Trình tự thực Bước 1: kết nối mạch cầu H, vi điều khiển động Bước 2: cài đặt timer theo yêu cầu Bước 3: Tạo xung ngõ điều khiển động Bước 4: Nạp chương trình kiểm tra hoạt động CÂU HỎI ÔN TẬP Câu 1: Vi điều khiên AT89S52 có timer? Câu 2: Timer vi điều khiển AT89S52 định thời khoảng thời gian tối đa bao lâu? Câu 3: Vi điều khiển AT89S52 chạy đồng thời nhiều timer lúc hay khơng? BÀI 8: LẬP TRÌNH ỨNG DỤNG NGẮT Mã bài: MĐ20-07 Thời gian: 20 (LT: 01, TH: 07, Tự học: 11, kiểm tra: 1) GIỚI THIỆU: Sử dụng ngắt cho phép thực dự án đáp ứng thời gian thực dễ dàng Thơng qua ngắt, chương trình làm việc liên tục mà không cần giám sát yêu cầu phát sinh từ bên đưa tới mà toàn kiện từ bên xử lý thơng qua chương trình phục vụ ngắt Bài học cho phép học viên làm quen với việc sử dụng ngắt ứng dụng điều khiển Mục tiêu: - Trình bày chức ngắt có họ vi điều khiển 8051; - Lập trình ngắt điều khiển thiết bị ngoại vi; NỘI DUNG CHÍNH: Ngắt có nhiều tiện ích điều khiển nên hầu hết vi điều khiển tích hợp, chương khảo sát nguyên lý hoạt động ngắt, nguồn ngắt, vector địa ngắt, viết chương trình phục vụ ngắt cho ứng dụng Sau kết thúc chương bạn sử dụng ngắt vi điều khiển 8.1 Cấu hình hoạt động ngắt 8.1.1 Lý thuyết liên quan Ngắt sử dụng vi xử lý hay vi điều khiển hoạt động sau: vi xử lý hay vi điều khiển thực chương trình thường gọi chương trình chính, có tác động từ bên phần cứng hay tác động bên làm cho vi xử lý ngừng thực chương trình để thực chương trình khác (cịn gọi chương trình phục vụ ngắt ISR) sau thực xong vi xử lý trở lại thực tiếp chương trình Q trình làm gián đoạn vi xử lý thực chương trình xem ngắt Có nhiều tác động làm ngừng chương trình gọi nguồn ngắt, ví dụ timer/counter đếm tràn phát sinh yêu cầu ngắt Ngắt đóng vai trị quan trọng lập trình điều khiển, vi xử lý hay vi điều khiển sử dụng ngắt để đáp ứng nhiều kiện quan trọng khác mà đảm bảo thực chương trình Ví dụ vi điều khiển thực chương trình có liệu từ hệ thống khác gởi đến, vi điều khiển ngừng chương trình để thực chương trình phục vụ ngắt nhận liệu xong trở lại tiếp tục thực chương trình chính, có tín hiệu báo ngắt từ bên ngồi vi điều khiển ngừng thực chương trình để thực chương trình ngắt tiếp tục thực chương trình Có thể sử dụng ngắt để yêu cầu vi điều khiển thực nhiều chương trình lúc có nghĩa chương trình thực xoay vịng CPU thực chương trình trường hợp có ngắt khơng có ngắt hình Hình 8.1: Vi điều khiển thực chương trình trường hợp khơng có ngắt Các nguồn ngắt AT89S52 Vi điều khiển AT89S52 có nguồn ngắt: ngắt ngồi, ngắt Timer ngắt truyền liệu nối tiếp, nguồn ngắt hình Mặc nhiên vi điều khiển bị reset tất ngắt bị cấm cho phép phần mềm Hình 8.2: Các nguồn ngắt vi điều khiển AT89S52 Các ghi điều khiển ngắt AT89S52 - Thanh ghi IE (Interrupt Enable) Có chức cho phép hay không cho phép nguồn ngắt cho toàn nguồn ngắt Tổ chức ghi hình sau: Chức bit ghi IE Trong ghi IE có bit IE.6 chưa dùng đến, bit IE.7 bit cho phép/cấm ngắt toàn nguồn ngắt Khi bit IE.7= cấm hết tất nguồn ngắt, bit IE.7=1 cho phép tất nguồn ngắt phụ thuộc vào bit điều khiển ngắt nguồn ngắt Khi có nhiều nguồn ngắt tác động lúc ngắt quan trọng cần thực trước ngắt khơng quan trọng thực sau giống công việc mà ta giải ngày Ngắt thiết kế có xếp thứ tự ưu tiên từ thấp đến cao để người lập trình xếp nguồn ngắt theo u cầu cơng việc mà xử lý Thanh ghi IP (Interrupt Priority) Có chức thiết lập chế độ ưu tiên cho nguồn ngắt Tổ chức ghi sau: Hình 8.3: Thanh ghi IP Chức bit ghi IP Khi reset vi điều khiển ghi IP bị xóa tất ngắt mức ưu tiên thấp Trong AT89S52 có mức ưu tiên thấp mức ưu tiên cao Nếu vi điều khiển thực ngắt có mức ưu tiên thấp có yêu cầu ngắt mức ưu tiên cao xuất vi điều khiển ngừng thực ngắt có mức ưu tiên thấp để thực ngắt có ưu tiên cao Ngược lại vi điều khiển thực ngắt có mức ưu tiên cao có yêu cầu ngắt ưu tiên thấp xuất vi điều khiển tiếp tục thực ngắt ưu tiên cao thực xong thực ngắt có ưu tiên thấp u cầu Chương trình mà vi điều khiển ln thực mức thấp nhất, luôn bị ngắt bất chấp ngắt ưu tiên cao hay thấp Nếu có yêu cầu ngắt với ưu tiên khác xuất đồng thời yêu cầu ngắt có mức ưu tiên cao phục vụ trước Nếu yêu cầu ngắt có mức ưu tiên xuất đồng thời vịng quét kiểm tra : xác định yêu cầu ngắt phục vụ trước Vòng quét kiểm tra theo thứ tự ưu tiên từ xuống: ngắt thứ (INT0), ngắt timer T0, ngắt thứ (INT1), ngắt Timer 1, ngắt truyền liệu nối tiếp (Serial Port), ngắt timer Hình 9-5 minh họa cho trình tự Hình 8.4: Cấu trúc ngắt vi điều khiển Như hình có nguồn ngắt bit ghi IE hoạt động contact (On/Off) ghi IP hoạt động contact chuyển mạch vị trí để lựa chọn mức độ ưu tiên Bit cho phép ngắt tồn cục (Global Enable) cho phép đóng toàn contact tùy thuộc vào bit cho phép nguồn ngắt: cho phép đóng mạch tín hiệu yêu cầu ngắt đưa vào bên để xử lý, cấm contact hở mạch nên tín hiệu u cầu ngắt khơng xử lý Tín hiệu sau khỏi ghi IE đưa đến ghi IP để xếp ưu tiên cho nguồn ngắt Có mức độ ưu tiên: mức ưu tiên cao mức ưu tiên thấp Nếu ngắt có ưu tiên cao contact chuyển mạch đưa u cầu ngắt đến vịng kiểm tra có ưu tiên cao, ngắt có ưu tiên thấp contact chuyển mạch đưa yêu cầu ngắt đến vịng kiểm tra có ưu tiên thấp Vịng kiểm tra ngắt ưu tiên cao thực trước kiểm tra theo thứ tự từ xuống gặp yêu cầu ngắt yêu cầu ngắt thực Sau tiếp tục thực cho vịng kiểm tra có mức ưu tiên thấp Ngắt truyền liệu nối tiếp tạo từ tổ hợp OR cờ báo nhận RI cờ báo phát TI Khi ngắt truyền liệu xảy muốn biết cờ nhận hay cờ phát tạo ngắt để thực công việc khác phải kiểm tra cờ RI TI để biết thực công việc tương ứng Ví dụ truyền liệu: có báo ngắt truyền liệu ta phải kiểm tra xem cờ RI = hay khơng? Nếu hệ thống khác gởi liệu đến phải chuyển hướng chương trình phục vụ ngắt sang hướng nhận liệu, khơng phải chắn cờ TI=1 báo cho biết liệu truyền xong sẳn sàng truyền kí tự ta phải chuyển hướng chương trình phục vụ ngắt sang phát liệu Tương tự, yêu cầu ngắt Timer2 tạo từ tổ hợp OR cờ tràn TF2 cờ nhận biết tín hiệu ngồi EXF2 Xử lý ngắt Khi tín hiệu u cầu ngắt xuất chấp nhận CPU thực công việc sau: - Nếu CPU thực lệnh phải chờ thực xong lệnh thực - Giá trị đếm chương trình PC cất vào nhớ ngăn xếp - Trạng thái ngắt hành lưu vào bên - Các yêu cầu ngắt khác bị ngăn lại - Địa chương trình phục vụ ngắt nạp vào đếm chương trình PC - Bắt đầu thực chương trình phục vụ ngắt Trong chương trình phục vụ ngắt kết thúc lệnh RETI Khi gặp lệnh RETI CPU lấy lại địa lệnh ngăn xếp trả lại cho ghi PC để tiếp tục thực công việc chương trình 8.1.2 Trình tự thực Bước 1: Xác định loại ngắt cần cấu hình mức độ ưu tiên Bước 2: tính nạp giá trị cho ghi điều khiển ngắt 8.1.3 Thực hành - cấu hình ngắt cho kiện tràn timer0 - Cấu hình ngắt cho kiện ngắt ngồi ngắt tràn timer1, ngắt ngồi có mức độ ưu tiên cao 8.2 Lập trình sử dụng ngắt 8.2.1 Lý thuyết liên quan Các vector ngắt (Interrupt Vectors) Khi yêu cầu ngắt xảy sau cất địa PC vào ngăn xếp, địa chương trình phục vụ ngắt gọi vector địa ngắt nạp vào ghi PC, địa cố định nhà chế tạo vi điều khiển thiết kế Các chương trình ngắt phải viết vector địa ngắt Bảng 8.5: Các vector địa nguồn ngắt: Vector reset hệ thống bắt đầu địa 0000H: reset vi điều khiển ghi PC = 0000H chương trình ln bắt đầu địa Khi sử dụng yêu cầu ngắt chương trình phục vụ ngắt phải viết địa tương ứng Ví dụ sử dụng ngắt timer T0 chương trình ngắt bạn phải viết địa 000BH Do khoảng vùng nhớ vector địa nguồn ngắt có vài nhớ ví dụ vector địa ngắt INT0 0003H vector địa ngắt T0 000BH cách có nhớ Nếu chương trình phục vụ ngắt INT0 có kích thước lớn byte đụng đến vùng nhớ ngắt T0 Cách giải địa 0003H nên viết lệnh nhảy đến vùng nhớ khác rộng Còn ngắt T0 ngắt khác khơng sử dụng viết chương trình Khai báo chương trình phục vụ ngắt Khai báo chương trình phục vụ ngắt Keil-C giống khai báo chương trình thêm phần thứ tự ngắt khai báo sử dụng bank ghi cho chương trình phục vụ ngắt sử dụng, cú pháp sau: void tên_chương_trình_ngắt() interrupt n using m Trong “tên_chương_trình_ngắt ()” tự đặt nên đặt với ngắt dùng, “interrupt n” với n số thứ tự nguồn ngắt bảng sau Hình 8.6 Thứ tự nguồn ngắt: Ví dụ: chương trình phục vụ ngắt timer0 Void  Name (void) interrupt 1       {   // chương trình phục vụ ngắt timer } 8.2.2 Trình tự thực Bước 1: Xác định ngắt cần sử dụng cho nhiệm vụ Bước 2: vẽ lưu đồ thuật tốn Bước 3: Cấu hình ghi điều khiển ngắt tương ứng Bước 4: Viết chương trình phụ vụ ngắt tương ứng Bước 5: Kiểm tra hoặt động ngắt 8.2.3 Thực hành: - Lập trình cho phép ngắt tràn timer0 sau 50ms, chương trình phục vụ ngắt tiền hành đảo trạng thái chân P2.5 - Lập trình cho phép ngắt ngồi cạnh xuống, chương trình phụ vụ ngắt thực đến lên biến giá trị hiển thị giá trị biến hình LCD 16x2 CÂU HỎI ƠN TẬP Câu 1: Vi điều khiển AT89S52 có nguyên nhân gây ngắt nào? Câu 2: Khai báo chương trình phục vụ ngắt khác chương trình nào? Câu 3: Ở trạng thái mặc đinh, ngắt ưu tiên cao nhất? TÀI LIỆU THAM KHẢO [1] Tống Văn On 2001 “Họ vi điều khiển 8051”, Nhà xuất Lao động – Xã hội [2] Vũ Trung Kiên (209) “Vi điều khiển, Cấu trúc lập trình ứng dụng”, Nhà xuất Giáo dục Việt Nam [3] Website dientuvietnam.net

Ngày đăng: 28/06/2023, 21:11

w