Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 171 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
171
Dung lượng
4,77 MB
Nội dung
201 ASP Cấu trúc ngoại vi lập trình điều khiển ngơn ngữ Assembly Mục tiêu • Các kiến thức đạt sau lớp học: – Cấu trúc ngoại vi ghi điều khiển có liên quan – Khởi tạo ngoại vi – Phương pháp lập trình cho ngoại vi:ngắt (Interrupt) hỏi vịng (Polling) – Viết chương trình ứng dụng điều khiển ngoại vi Biên soạn: Phạm Nguyễn Huy Cường Slide Các kiến thức cần có • Lí tưởng, bạn nắm bắt kiến thức sau: – Lập trình Assembler – Tập lệnh dòng Mid-Range – Tổ chức nhớ liệu nhớ chương trình – Mơi trường làm việc MPLAB IDE – Sử dụng công cụ MPLAB ICD2 Microchip Biên soạn: Phạm Nguyễn Huy Cường Mục lục • Ơn lại kiến thức cấu trúc, tập lệnh dịng Mid-Range cơng cụ PIC • Ngắt vi điều khiển PIC dịng MidRange – Thực hành: Viết chương trình ngắt • Giới thiệu ngoại vi – Các cổng vào/ra – Các định thời (Timer) • Timer0 • Timer1 – Thực hành Timer1 • Timer – Thực hành Timer2 Biên soạn: Phạm Nguyễn Huy Cường Mục lục (tt.) • Module CCP (Capture/Compare/PWM) – Thực hành: PWM So sánh đầu • Bộ so sánh tín hiệu tương tự • Bộ chuyển đổi tín hiệu tương tự sang số (ADC) – Thực hành: ADC • Module giao tiếp UASART • Module giao tiếp I2C – Thực hành: giao tiếp với cảm biến nhiệt độ qua module I2C • Tổng kết Biên soạn: Phạm Nguyễn Huy Cường Ôn lại cấu trúc công cụ phát triển dòng Mid-Range Sơ đồ khối dòng PIC Mid-Range Biên soạn: Phạm Nguyễn Huy Cường Bộ nhớ chương trình • Dung lượng tối đa: 8K words – (8k x 14bits/word)/ 1byte = 14Kbytes nhớ • Reset Vector: 0000h – Bộ đếm chương trình (PC) đến địa reset • Interrupt Vector: 0004h – Bộ đếm chương trình (PC) đến địa ngắt xảy Biên soạn: Phạm Nguyễn Huy Cường PC Stack • Bộ đếm chương trình 13 bit – PCL → Kết ALU (8-bits) OPCODE (11-bits) – PCH → Các bit chọn trang nhớ chương trình • Cập nhật từ PCLATH • Xác định trang nhớ chương trình • ô nhớ Stack – Lưu giá trị nhớ chương trình (PC) • PUSHES – CALL/Interrupt • POPS – RETURN, REFIE, RETLW Biên soạn: Phạm Nguyễn Huy Cường Sơ đồ nhớ liệu Biên soạn: Phạm Nguyễn Huy Cường 10 THÍ NGHIỆM VỀ NGẮT • Bài bao gồm – hay nhiều ngắt đồng thời – Xác định nguồn ngắt – Quyết đinh ngắt phục vụ trước Biên soạn: Phạm Nguyễn Huy Cường 157 Tổng quan Lab thuật tốn Cấu hình CCP ngõ so sánh Như Lab6 Cho tích cực Timer PORTC Như Lab6 Cấu hình PORTB: cho phép ngắt ngồi “ S3” Như Lab1 NOP Biên soạn: Phạm Nguyễn Huy Cường 158 Tổng quan Lab Trình phục vụ ngắt INT_ISR CCP_ISR Xóa IF Gọi chương trình tạo trể Chống rung phím Đảo giá trị biến Gọi “ push_flag” Xóa cờ IF Trở chương trình Biên soạn: Phạm Nguyễn Huy Cường Đặt -1 vào WREG Thiết lập Push_flag? Đặt vào WREG Cộng WREG với CCPR1L Trở chương trình 159 Tổng quan Lab ĐIỀU KHIỂN NGẮT Lưu trạng thái Có ngắt CCP? NO Có ngắt ngồi? YES Đến trình phục vụ ngắt CCP YES Phục vụ ngắt Biên soạn: Phạm Nguyễn Huy Cường NO Trở chương trình 160 Chi tiết Lab • Lab lưu tại: – C:\RTC\201_ASP\Lap8-MXINT • trình phục vụ ngắt: – INT_ISR – CCP_ISR • Hồn thành chương trình theo phần sau – Khi sảy ngắt, xác định truyền tín hiệu điều khiển tới trình phục vụ ngắt tương ứng – Thiết lập ghi chức đặc biệt ( SFR) để tích cực INT CCP Biên soạn: Phạm Nguyễn Huy Cường 161 Bạn cần biết • INTCON, ghi chức đặc biệt PIR lab Biên soạn: Phạm Nguyễn Huy Cường 162 Bài giải Lab Int_service_Routine Call save_regs Btfsc INTCON,INTF Goto INTE_ISR Btfsc PIR1,CCP1IF Finish_int Call restore_regs retfie Biên soạn: Phạm Nguyễn Huy Cường ;lưu W, STATUS, PCLATH ;### kiểm tra yêu cầu ngắt ; ; ### kiểm tra yêu cầu ngắt CCP ;Phục hồi W, STATUS, PCLATH 163 Bài giải lab Bsf Bsf Bsf Bsf Bcf PIE1,CCP1IE INTCON,INTE INTCON,GIE INTCON,PEIE STATUS,RP0 Biên soạn: Phạm Nguyễn Huy Cường ;### Cho phép ngắt CCP1 ;### Cho phép ngắt ;### Cho phép ngắt toàn cục ;### Cho phép ngắt ngoại vi ; trở BANK 164 Câu hỏi • Câu hỏi – cần ý ổn định S3 nhấn • Trả lời – Khi chương trình chống rung gọ chương trình ngắt, GIE bị xóa, ngắt CCP1 lật trạng thái, không cho phép loa hoạt động Loa không kêu Biên soạn: Phạm Nguyễn Huy Cường 165 Câu hỏi • Câu hỏi – Làm để khoảng lặng cách li loa tiếp tục hoạt động? • Trả lời – Bắt xung S3 chương trình gọi chương trình chống rung GIE tích cực – Sử dụng timer để tạo trễ – Cho phép ngắt tích cực trở lại INT_ISR Biên soạn: Phạm Nguyễn Huy Cường 166 Lớp ngoại vi • Hơm ta tìm hiểu phận ngoại vi họ PIC cỡ vừa – – – – PORT I/O Cấu trúc xử lí ngắt Timer(timer0, timer1, timer2) Module CCP (Ngõ so sánh, bắt xung ngõ vào, PWM) – Các so sánh chuyển đổi AD • Điện áp tham chiếu – AUSART – Port nối tiếp – Sử dụng module MSSP cho I2C Biên soạn: Phạm Nguyễn Huy Cường 167 201ASP Wrap-up Biên soạn: Phạm Nguyễn Huy Cường 168 Lời cuối • Phần thảo luận trình bày theo chuẩn Microchip: Tổng quan ngoại vi Mô tả ghi cấu hình Sử dụng phần để: -Phát triển lưu đồ thuật toán mã giả ( Tránh mã rối) Mách nước: -Chú thích đoạn mã suốt chương trình -Chọn tên gợi nhớ để xác định thành ghi Nâng cao chức đặc biệt Biên soạn: Phạm Nguyễn Huy Cường 169 Nguồn • Truy cập www.microchip.com : – Hỗ trợ kĩ thuật 24/7 – Các lưu ý thiết kế ứng dụng – Semina – Các chương trình ví dụ – Datasheet – Và Nhiều !! Biên soạn: Phạm Nguyễn Huy Cường 170 Thank You!! Biên soạn: Phạm Nguyễn Huy Cường 171