Tổng quan vi điều khiển PIC16F87xA

92 1.6K 32
Tổng quan vi điều khiển PIC16F87xA

Đ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

Ketnooi.com vì sự nghiệp giáo dục Chương 1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC16F87xA 1.1 Giới thiệu về vi điều khiển PIC PIC bắt nguồn từ chữ viết tắt của “Programmable intelligen computer” (Máy tính khả trình thông minh) là sản phẩm của hãng General Instrument đặt cho dòng sản phẩm đầu tiên của họ là PIC 1650. Lúc này Pic dùng để giao tiếp với các thiết bị ngoại vi cho máy chủ 16 bit CP1600, vì vậy người ta gọi PIC với tên là “Peripheral Interface Controller” (bộ điều khiển giao tiếp ngoại vi). Ngày nay rất nhiều dòng PIC được xuất xưởng với hàng loạt các modul ngoại vi được tích hợp sẵn (như :USART, PWM, ADC…) với bộ nhớ chương trình từ 512word đến 32k Word. PIC sử dụng tập lệnh RISC, với dòng PIC low-end (độ dài mã lệnh 12 Bit ví dụ PIC12Cxxx) và mid-range (độ dài mã lệnh 14 bit , ví dụ PIC16Fxxx), tập lệnh bao gồm khoảng 35 lệnh, và 70 lệnh đối với dòng PIC high-end (có độ dài mã lệnh 16bit PIC18Fxxxx). Tập lệnh bao gồm các lệnh tính toán trên các thanh ghi, và các hằng số, hoặc các vị trí ô nhớ, cũng như có các lệnh điều kiện, nhảy/ gọi hàm, và các lệnh quay trở về, nó cũng có các chức năng phần cứng khác như ngắt hoặc sleep (chế độ hoạt động tiết kiệm điện). Microchip cung cấp môi trường lập trình MPLAB0, nó bao gồm phần mềm mô phỏng và trình dịch ASM. Hiện nay có khá nhiều dòng PIC và có rất nhiều khác biệt về phần cứng, nhưng chúng ta có thể điểm qua một vài nét như sau : - 8/16 bit CPU, xây dựng theo kiến trúc Harvard - Flash và Rom có thể tuỳ chọn 256 byte đến 256 kbybe - Các cổng xuất/ nhập (mức lôgic thường từ 0v đến 5 v, ứng với mức logic 0 và 1) - 8/16 bit timer - Các chuẩn giao tiếp ngoại vi nối tiếp đồng bộ/ không đồng bộ - Bộ chuyển đổi ADC - Bộ so sánh điện áp SVTH: Lê Tiến Thanh Trang 1 Ketnooi.com vì sự nghiệp giáo dục - MSSP Pripheral dùng cho các giao tiếp I2C, SPI - Bộ nhớ nội EEPROM - có thể ghi/ xoá lên tới hàng triệu lần - Modul điều khiển động cơ, đọc encoder - Hỗ trợ giao tiếp USB - Hỗ trợ điều khiển Ethernet - Hỗ trợ giao tiếp CAN - Hỗ trợ giao tiếp LIN - Hỗ trợ giao tiếp IrDA - DSP những tính năng xử lý tín hiệu số 1.2 Tổng quan vi điều khiển PIC16F87xA 1.2.1 Sơ đồ chân của PIC16F87xA Hình 1.1 Sơ đồ chân của PIC16F87xA 1.2.2 Các thông số về vi điều khiển PIC16F877A CPU tốc độ cao : - Chỉ có 35 cấu trúc lệnh. - Hầu hết các cấu trúc lệnh chỉ mất một chu kỳ máy, ngoại trừ lệnh rẻ nhánh chương trình mất hai chu kỳ máy. - Tốc độ làm việc: xung đồng hồ đến 20MHz, tốc độ thực thi lệnh 200ns. - 8K*14 words của bộ nhớ chương trình (flash program memory). - 368*8 byte bộ nhớ dữ liệu RAM. - 256*8 byte bộ nhớ dữ liệu EEPROM. SVTH: Lê Tiến Thanh Trang 2 Ketnooi.com vì sự nghiệp giáo dục Đặc điểm ngoại vi: - Timer 0: 8 bit timer/counter với 8 bít bộ chia tỉ lệ. - Timer 1: 16 bit timer/counter với bộ chia tỉ lệ có thể tăng lên trong chế độ Sleep theo xung đồng hồ bên ngoài. - Timer2 : 8 bit timer/counter. - Hai Modul capture, compare, PWM. + Capturre 16 bit có độ phân giải 12,5ns. + Compare 16 bit có độ phân giải 200ns. + PWM 16 bít có độ phân giải 10 bit. - Cổng giao tiếp nối tiếp đồng bộ với chế độ Master và Master/ Slave. - Bộ truyền nhận nối tiếp vạn năng. - Cổng Slave song song 8 bit được điều khiển đọc ghi từ bên ngoài. Đặc điểm tương tự - Độ phân giải 10 bit với 8 kênh chuyển đổi tương tự- số. - Modul so sánh tương tự gồm: + Hai modul so sánh tương tự. + Modul tham chiếu điện áp trên chip (VEF) có thể lập trình được, có thể lập trình nhiều chức năng đầu vào từ các đầu vào và điện áp bên trong. + Hai đầu ra so sánh có thể sử dụng bên ngoài. SVTH: Lê Tiến Thanh Trang 3 Ketnooi.com vì sự nghiệp giáo dục 1.3 Sơ đồ khối của vi điều khiển PIC16F877A Hình 1.2 Sơ đồ khối vi điều khiển PIC16F877A SVTH: Lê Tiến Thanh Trang 4 Ketnooi.com vì sự nghiệp giáo dục 1.3.1 Tổ chức bộ nhớ: Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình (Program memory) và bộ nhớ dữ liệu (Data memory). 1.3.1.1 Bộ nhớ chương trình Hình 1.3 Bộ nhớ chương trình PIC16F877A Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ Flash, dung lượng bộ nhớ 8K word (một word =14bit) và được phân thành nhiều trang (từ Page0 đến Page 3). Như vậy bộ nhớ chương trình có khả năng chứa được 8*1024 lệnh vì một word sau khi mã hoá sẽ có dung lượng một word 14bit). Để mã hoá được địa chỉ của 8 K word bộ nhớ chương trình, bộ đếm chương trình có dung luợng 13 bit. Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h (Reset vector). Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h (Interup Vector). Bộ nhớ chương trình không bao gồm stack và SVTH: Lê Tiến Thanh Trang 5 Ketnooi.com vì sự nghiệp giáo dục không được địa chỉ hoá bởi bộ đếm chương trình. Bộ nhớ Stack sẽ được đề cập trong phần sau. 1.3.1.2 Bộ nhớ dữ liệu SVTH: Lê Tiến Thanh Trang 6 Ketnooi.com vì sự nghiệp giáo dục Hình 1.4 Sơ đồ bộ nhớ dữ liệu của PIC16F877A SVTH: Lê Tiến Thanh Trang 7 Ketnooi.com vì sự nghiệp giáo dục Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank. Đối với PIC16F877A bộ nhớ dữ liệu được chia làm 4 bank. Mỗi bank có dung lượng 128byte, bao gồm các thanh ghi có chức năng đặc biệt SFG (Speccial Function Register) nằm ở các vùng địa chỉ thấp và các thanh ghi mục đích chung GPR (General Purpose Register) nằm ở vùng địa chỉ còn lại trong bank. Các thanh ghi SFR thường xuyên được sử dụng sẽ được đặt ở tất cả các bank của bộ nhớ dữ liệu giúp thuận tiện trong quá trình truy xuất và làm giảm bớt lệnh của chương trình. Sơ đồ cụ thể của bộ nhớ dữ liệu PIC16F877A như hình 1.4. 1.3.1.2.1 Thanh ghi chức năng đặc biệt Đây là thanh ghi được sử dụng bởi CPU hoặc được dùng để thiết lập và điều khiển các khối chức năng tích hợp trên vi điều khiển . - Thanh ghi STATUS (03h, 83h, 103h, 183h): thanh ghi chứa kết quả thực hiện phép toán của khối ALU, trạng thái RESET và các bit chọn bank cần truy xuất trong bộ nhớ dữ liệu. - Thanh ghi OPTION_REG (81h, 181h): thanh ghi này cho phép đọc và ghi, cho phép điều khiển chức năng Pull up của các chân trong PORTB, xác lập các tham số về xung tác động, cạnh tác động của ngắt ngoại vi và bộ đếm Timer0. - Thanh ghi INTCON (0B, 8Bh, 10Bh, 18Bh): thanh ghi cho phép đọc và ghi, chứa các bit điều khiển và các bit cờ hiệu khi Timer0 bi tràn, ngắt ngoại vi RB0/INT và ngắt Interup un change tại các chân của PORTB. - Thanh ghi PIE1 (8Ch): chứa các bit điều khiển chi tiết các ngắt của các khối chức năng ngoại vi . SVTH: Lê Tiến Thanh Trang 8 Ketnooi.com vì sự nghiệp giáo dục - Thanh ghi PIR1 ( 0Ch) : chứa cờ ngắt của các khối chức năng ngoại vi các ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE1 . - Thanh ghi PIE2 (8Dh): chứa các bit điều khiển các ngắt của các khối chức năng CCP2, SSP bus, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM . - Thanh ghi PIR2 (0Dh): chứa các cờ ngắt của các khối chức năng ngoại vi, các ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE2. - Thanh ghi PCON (8Eh): chứa các cờ hiệu cho biết trạng thái các chế độ Reset của vi điều khiển. 1.3.1.3 Stack Stack không nằm trong bộ nhớ chương trình hay bộ nhớ dữ liệu mà là một vùng nhớ đặc biệt không cho phép đọc hay ghi. Khi lệnh Call được thực hiện hay khi một ngắt xảy ra làm chương trình bị rẻ nhánh, giá trị của bộ đếm chương trình PC tự động được vi điều khiển cất vào trong Stack. Khi một trong các lệnh RETURN, RETLW, RETFIE được thực thi, giá trị PC sẽ tự động được lấy ra từ trong stack, vi điều khiển sẽ thực hiện tiếp chương trình theo đúng quy trình định trước. SVTH: Lê Tiến Thanh Trang 9 Ketnooi.com vì sự nghiệp giáo dục Bộ nhớ Stack trong vi điều khiển PIC họ 16F87xA có khả năng chứa được 8 địa chỉ và hoạt động theo cơ chế xoay vòng. Nghĩa là giá trị cất vào bộ nhớ Stack lần thứ 9 sẽ ghi đè lên giá trị cất vào Stack lần đầu tiên và giá trị cất vào bộ nhớ Stack lần thứ 10 sẽ ghi đè lên giá trị cất vào Stack lần thứ 2. 1.3.2 Các cổng xuất nhập Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để tương tác với thế giới bên ngoài. Sự tương tác này rất đa dạng và thông qua sự tương tác đó, chức năng của vi điều khiển được thể hiện một cách rỏ ràng. Vi điều khiển PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB, PORTC, PORTD và PORTE. Tương ứng với các thanh ghi điều khiển các cổng xuất nhập là TRISA, TRISB, TRISC, TRISD, TRISE. Chức năng của từng port xuất nhập được cho ở bảng 1.1. Bảng 1.1 Sơ đồ chân của vi điều khiển PIC Số chân Tên chân Loại(I/O/P) Chức năng 1 MCLL Vpp I P Chân Reset ,tích cực ở mức thấp Đầu vào điện áp nguồn 2 PORT A là cổng hai hướng RA0 AN0 I/O I đầu vào tương tự 0 3 RA1 AN1 I/O I Đầu vào tương tự 1 4 RA2 AN2 VREF- CVREF I/O I I O Đầu vào tương tự 2 Đầu vào điện áp tham chiếu Đầu ra Vref bộ so sánh 5 RA3 AN3 VREF+ I/O I I Đầu vào tương tự 3 Đầu vào điện áp tham chiếu 6 RA4 TOCKI C1OUT I/O I/O O Đầu vào xung đồng bộ bên ngoài Đầu ra bộ so sánh 1 7 RA5 AN4 SS* I/O I I Đầu vào tương tự 4 Đầu vào chọn chip ( SPI) SVTH: Lê Tiến Thanh Trang 10 [...]... được điều khiển bởi thanh ghi INTCON(bit GIE) Bên cạnh đó mỗi ngắt còn có một bit điều khiển và cờ ngắt riêng Các cờ ngắt vẫn được set binh thường khi thỏa mãn điều kiện ngắt xảy ra bất chấp trạng thái của GIE Tuy nhiên hoạt động ngắt vẫn phụ thuộc vào bit GIE và các bit điều khiển khác Bit điều khiển ngắt RB0/INT và TMR0 nằm trong thanh ghi INTCON, thanh ghi còn chứa bit cho phép ngắt ngoại vi PEIE... kích S Từ công thức (2.15) ta thấy 0 ≤Ut ≤ U , và Ut phụ thuộc tỉ số γ, vậy có thể điều chỉnh điện áp trên tải theo ý muốn bằng cách thay đổi tỉ số γ Trong điều khiển động cơ DC bằng phương pháp PWM với tần số của xung điều khiển cao, người ta có thể sử dụng các vi điều khiển để tạo xung (tần số từ 5Khz đến 20Khz) để điều khiển các mạch động lực (trong các khối mạch động lực, thường dùng IGBT hay MosFet... mức trên cổ góp Điều n ày dẫn đến vi c giá trị thực tế của I sẽ giảm xuống khi tốc độ tăng cao Đối với động cơ DC kích từ độc lập, vi c điều khiển kích từ được thực hiện bằng cách thay đổi điện áp kích từ với bộ chỉnh lưu có thể điều khiển hoặc bộ chopper, tùy theo nguồn cung cấp được sử dụng là AC hay DC Với động cơ công suất nhỏ, cũng có thể nối tiếp biến trở vào mạch kích từ để điều khiển từ thông... đồng bộ từ bên ngoài qua chân RC6/TX/CK Điều này cho phép Slave mode hoạt động ngay cả khi vi điều khiển đang ở chế độ Sleep 1.3.9.2 MSSP ( Master Synchronous Serial Port) SVTH: Lê Tiến Thanh Trang 23 Ketnooi.com vì sự nghiệp giáo dục Là giao diện đồng bộ nối tiếp dùng để giao tiếp với các thiết bị ngoại vi( EERPROM, ghi dich, chuyển đổi ADC…) hay các vi điều khiển khác MSSP hoạt động dưới hai dạng... hoặc bộ định thời của vi điều khiển PIC16F877A Timer0 là bộ đếm 8 bit được kết nối với bộ chia tần số 8bit Cấu trúc của Timer0 cho phép ta lựa chọn xung clock tác động và cạnh tích cực của xung clock Ngắt Timer0 sẽ xuất hiện khi Timer bị tràn Bit TMR0IE(INTCON) là bit điều khiển của Timer0 Sơ đồ khối của Timer0 như sau: Hình 1.5 Sơ đồ khối của Timer0 Các thanh ghi điều khiển liên quan đến Timer0 bao... hiện tại pin RB0/INT, cờ ngắt INTF được set bất chấp trạng thái các bit điều khiển GIE và PEIE Ngắt này có khả năng đánh thức vi điều khiển từ chế độ Sleep nếu bit cho phép ngắt được set trước khi lệnh sleep được thực thi  Ngắt do sự thay đổi trạng thái các pin trong portB Các pin portB được dùng cho ngắt này và được điều khiển bởi bit RBIE ( thanh ghi INTCON), cờ ngắt của ngắt này là bit... dụng: + Máy phát DC (Hệ Máy phát – Động cơ) + Bộ chỉnh lưu có điều khiển (Biến đổi AC → DC ) + Bộ Chopper (Bộ biến đổi xung áp) : DC → DC Hình 2.4: Điều khiển bằng cách thay đổi điện áp phần ứng, từ thông báo 2.2.3 Điều chỉnh điện trở phụ trong mạch phần ứng Hình 2.6 biểu diễn đặc tính cơ của động cơ DC kích từ độc lập và nối tiếp khi điều khiển tốc độ bằng cách thêm điện trở phụ vào phần ứng Nhược... phương pháp điều chỉnh tốc độ động cơ DC Từ công thức (2.5) biểu diễn quan hệ giữa tốc độ–moment động cơ, có thể thấy rằng tốc độ động cơ có thể được điều chỉnh bằng các phương pháp sau: + Điều chỉnh tốc độ bằng cách thay đồi từ thông kích từ của động cơ + Điều chỉnh tốc độ bằng cách thay đổi điện áp phần ứng + Điều chỉnh tốc độ bằng cách thay đổi điện trở phụ trong mạch phần ứng 2.2.1 Điều chỉnh từ... thể làm vi c tại bất kỳ tốc độ nào, moment nào Tính chất quan trọng của phương pháp này là độ cứng đặc tính cơ không thay đổi khi tốc độ động cơ được điều chỉnh Điều này khiến hệ có khả năng đáp ứng với tải có moment hằng số vì dòng phần ứng cực đại cho phép I ưmax- tương ứng với nó là moment tải cực đại cho phép của động cơ không đổi với mọi tốc độ Điện áp phần ứng động cơ có thể được điều khiển bằng... RA4 và RA5 Thanh ghi điều khiển bộ so sánh là CMCON Các bit CM2: CM0 trong thanh ghi CMCON đóng vai trò chọn lựa các chế độ hoạt động cho bộ Comparator Cơ chế hoạt động của bộ Compartor như sau: Tín hiệu analog ở chân Vin + sẽ được so sánh với điện áp chuẩn ở chân Vin- và tín hiệu ở ngõ ra bộ so sánh sẽ thay đổi tương ứng như hình vẽ Khi điện áp ở chân Vin- lớn hơn điện áp ở chân Vin+ ngõ ra sẽ ở mức . Ketnooi.com vì sự nghiệp giáo dục Chương 1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC16F87xA 1.1 Giới thiệu về vi điều khiển PIC PIC bắt nguồn từ chữ viết tắt. Hỗ trợ giao tiếp LIN - Hỗ trợ giao tiếp IrDA - DSP những tính năng xử lý tín hiệu số 1.2 Tổng quan vi điều khiển PIC16F87xA 1.2.1 Sơ đồ chân của PIC16F87xA Hình 1.1 Sơ đồ chân của PIC16F87xA 1.2.2. Timer0. Sơ đồ khối của Timer0 như sau: Hình 1.5 Sơ đồ khối của Timer0 Các thanh ghi điều khiển liên quan đến Timer0 bao gồm: TMR0(01h, 101h): chứa giá trị đếm của Timer0. INTCON (0Bh, 8Bh, 10Bh,

Ngày đăng: 31/08/2014, 09:15

Từ khóa liên quan

Mục lục

  • Chương 1

  • TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC16F87xA

    • 1.1 Giới thiệu về vi điều khiển PIC

    • 1.2 Tổng quan vi điều khiển PIC16F87xA

      • 1.2.1 Sơ đồ chân của PIC16F87xA

      • 1.2.2 Các thông số về vi điều khiển PIC16F877A

      • 1.3 Sơ đồ khối của vi điều khiển PIC16F877A

        • 1.3.1 Tổ chức bộ nhớ:

        • 1.3.2 Các cổng xuất nhập

        • 1.3.3 Bộ đếm Timer0

        • 1.3.4 Bộ đếm Timer1

        • 1.3.5 Bộ đếm Timer2

        • 1.3.6 Bộ chuyển tín hiệu ADC

        • 1.3.7 Bộ so sánh Comparator

        • 1.3.8 CCP

        • 1.3.9 Giao tiếp nối tiếp

        • Chương 2

        • ĐỘNG CƠ ĐIỆN MỘT CHIỀU VÀ CÁC PHƯƠNG PHÁP ĐIỀU CHỈNH TỐC ĐỘ

          • 2.1 Đặc tính cơ tĩnh của động cơ điện một chiều ( Động cơ DC )

          • 2.2 Các phương pháp điều chỉnh tốc độ động cơ DC

            • 2.2.1 Điều chỉnh từ thông kích từ của động cơ

            • 2.2.2 Điều chỉnh theo điện áp phần ứng

            • 2.2.3 Điều chỉnh điện trở phụ trong mạch phần ứng

            • 2.3 Phương pháp điều chế độ rộng xung

            • 2.4 Sơ đồ khối của động cơ điện một chiều kích từ độc lập

              • 2.4.1 Sơ đồ khối của động cơ điện một chiều kích từ độc lập với kích từ định mức

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

Tài liệu liên quan