Giới thiệu về vi điều khiển PIC.pdf

21 3.3K 33
Giới thiệu về vi điều khiển PIC.pdf

Đ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

Tài liệu giới thiệu về vi điều khiển PIC.

DKS GROUP http://www.embestdks.com Chương 1: Giới thiệu chung vi điều khiển I Giới thiệu chung - Lịch sử vi điều khiển Ngày nay, vi điều khiển có ứng dụng ngày rộng rãi lĩnh vực kỹ thuật đời sống xã hội, đặc biệt kỹ thuật tự động hoá điều khiển từ xa Cùng với phát triển nhanh chóng khoa học kỹ thuật, nghệ chế tạo vi mạch tích hợp thay đổi ngày đáp ứng yêu cầu sản xuất cơng nghiệp tính chun dụng hố, tối ưu (thời gian, không gian, giá thành), bảo mật, tính chủ động cơng việc ngày địi hỏi khắt khe Việc đưa công nghệ lĩnh vực chế tạo mạch điện tử để đáp ứng yêu cầu hoàn toàn cấp thiết mang tính thực tế cao Lịch sử Vi điều khiển bắt đầu - Kiến trúc vi điều khiển (RISC + CISC) II Các khối vi điều khiển I.1 Khối nhớ ROM + RAM I.2 Khối xử lý trung tâm (CPU) I.3 Tổ chức Bus I.4 Các đường vào/ra I.5 Khối giao tiếp nối tiếp I.6 Khối Timer I.7 Watchdog I.8 Bộ chuyển đổi tương tự - số (ADC) DKS GROUP http://www.embestdks.com Chương 2: Vi điều khiển PIC Giới thiệu chung Trong chương tìm hiểu Vi điều khiển PIC, mà cụ thể dòng Vi điều khiển PIC18F4331 Tại lại chọn PIC18F4331, điều đơn giản Thực bắt đầu học PIC bạn chọn PIC để tìm hiểu, hầu hết dịng PIC có cấu trúc phần cứng giống nhau, tùy dịng PIC mà có tính nâng cao khác, điều giúp ta làm việc với nhiều loại PIC cách nhanh chóng Đầu tiên tìm hiểu cấu trúc phần cứng chung PIC, khối chức cách cách lập trình ứng dụng Sau tìm hiều tính riêng PIC18F4331 PIC18F4550 - Kiến trúc RISC vi điều khiển PIC PIC tổ chức phần cứng theo kiến trúc Harvard, tập lệnh RISC (reduced instruction set computer - máy tính với tập lệnh giản lược) Trong kiến trúc Harvard, nhớ liệu nhớ chương trình nằm riêng biệt, CPU làm việc trực tiếp với hai nhớ liệu nhớ chương trình lúc, làm cho tốc độ xử lý nhanh Việc nhớ chương trình nhớ liệu tách riêng, đó, tập lệnh kiến trúc Harvard tối ưu tùy theo yêu cầu kiến trúc vi điều khiển Bằng chứng, độ dài lệnh dịng PIC16 ln ln 14 bit Trong đó, độ dài lệnh vi điều khiển kiến trúc von-Neumann bội số byte (8 bit) PIC Vi điều khiển RISC, tập lệnh PIC có 35 lệnh, phần lớn lệnh thực chu kỳ máy Chính nhờ kiến trúc phần cứng tiên tiến, PIC tỏ vướt trội so với loại Vi điều khiển bít khác mặt tốc độ hiệu sử dụng - Xử lý song song (Pipeline) Việc xử lý lệnh PIC thực song song, xử lý lệnh đồng thời CPU nạp lệnh vào để trình xử lý lệnh liên tục Chính phương thức xử lý giúp cho tốc độ hoạt động PIC nhanh nhiều DKS GROUP http://www.embestdks.com - Sơ đồ chân PIC18F4331 DKS GROUP http://www.embestdks.com - Sơ lược tính bật PIC18F4331  Nguồn dao động nội đến 8MHz, dao động thach anh lên tới 40MHz  Tiêu thụ nguồn thấp (nanoWatt)  Kênh vào (Port A, B, C, D, E)  ADC 10 - bit tốc độ cao với kênh vào (AN0 ~ AN8)  kênh PWM 14-bit  Khối phản hồi chuyển động (Encoder)  kênh CCCP  chân ngắt  Giao tiếp nối tiếp RS232, RS485, I2C, SPI  ICSP ICD DKS GROUP http://www.embestdks.com - Cấu trúc bên vi điều khiển PIC DKS GROUP http://www.embestdks.com DKS GROUP http://www.embestdks.com Cấu trúc khối chức Vi điều khiển PIC 2.1 Khối tạo xung dao động Mạch tạo dao động sử dụng để cung cấp xung đồng hồ cho Vi điều khiển Xung đồng hồ cần thiết để Vi điều khiển thực thi chương trình lập trình bên Mỗi loại Vi điều khiển PIC hỗ trợ kiểu mach tạo dao động khác mạch dao động thạch anh (XT, HS), mạch dao động RC, mạch dao động nội, nguồn dao động chuẩn bên ngồi khác Trong loại mạch dao động mạch dao động RC mạch dao động thạch anh loại thường hay sử dụng, mạch dao động thạch anh Mạch dao động thạch anh (XT, HS): Sơ đồ mạch dao động thạch anh mạch dao động phổ biến cho PIC Đây nguồn cung cấp xung đồng hồ cho CPU tất khối PIC Hai chân OSC1 (chân 13) OSC2 (chân 14) mắc với mạch dao động thạch anh bên Các điện trở C1 C2 cần thiết mắc mạch dao động thạch anh cho PIC Trị số chúng xem bảng Ưu điểm mạch tần số dao động xác cho tần số dao động cao Mạch dao động RC: Mạch gồm điện trở tự điện mắc nối tiếp hình Xung dao động đươc đưa vào chân OSC1, chân OSC2 chân xuất dao động, cung cấp dao động cho IC PIC khác DKS GROUP http://www.embestdks.com 2.2 Khối Reset, Chân MCLR mạch Reset cho PIC Reset is used for putting the microcontroller into a 'known' condition That practically means that microcontroller can behave rather inaccurately under certain undesirable conditions In order to continue its proper functioning it has to be reset, meaning all registers would be placed in a starting position Reset is not only used when microcontroller doesn't behave the way we want it to, but can also be used when trying out a device as an interrupt in program execution, or to get a microcontroller ready when loading a program DKS GROUP http://www.embestdks.com Các nguyên nhân làm Reset PIC (POR, manual reset…) - Reset PIC cấp nguồn (Power-On Reset) - Reset tay cấp mức logic ‘0’ cho chân MCLR PIC - Reset chế độ SLEEP - Reset watchdog timer xảy tràn … Microcontroller PIC16F84 knows several sources of resets: a) Reset during power on, POR (Power-On Reset) b) Reset during regular work by bringing logical zero to MCLR microcontroller's pin c) Reset during SLEEP regime d) Reset at watchdog timer (WDT) overflow e) Reset during at WDT overflow during SLEEP work regime 2.3 Khối xử lý trung tâm ghi trạng thái Là não PIC Central processing unit (CPU) is the brain of a microcontroller That part is responsible for finding and fetching the right instruction which needs to be executed, for decoding that instruction, and finally for its execution Central processing unit connects all parts of the microcontroller into one whole Surely, its most important function is to decode program instructions When programmer writes a program, instructions have a clear form like MOVLW 0x20 However, in order for a microcontroller to understand that, this 'letter' form of an instruction must be translated into a series of zeros and ones which is called an 'opcode' This transition from a letter to binary form is done by translators such as assembler translator (also known as an assembler) Instruction thus fetched from program memory must be DKS GROUP http://www.embestdks.com decoded by a central processing unit We can then select from the table of all the instructions a set of actions which execute a assigned task defined by instruction As instructions may within themselves contain assignments which require different transfers of data from one memory into another, from memory onto ports, or some other calculations, CPU must be connected with all parts of the microcontroller This is made possible through a data bus and an address bus Arithmetic logic unit is responsible for performing operations of adding, subtracting, moving (left or right within a register) and logic operations Moving data inside a register is also known as 'shifting' PIC16F84 contains an 8-bit arithmetic logic unit and 8-bit work registers In instructions with two operands, ordinarily one operand is in work register (W register), and the other is one of the registers or a constant By operand we mean the contents on which some operation is being done, and a register is any one of the GPR or SFR registers GPR is an abbreviation for 'General Purposes Registers', and SFR for 'Special Function Registers' In instructions with one operand, an operand is either W register or one of the registers As an addition in doing operations in arithmetic and logic, ALU controls status bits (bits found in STATUS register) Execution of some instructions affects status bits, which depends on the result itself Depending on which instruction is being executed, ALU can affect values of Carry (C), Digit Carry (DC), and Zero (Z) bits in STATUS register STATUS Register bit IRP (Register Bank Select bit) Bit whose role is to be an eighth bit for purposes of indirect addressing the internal RAM = bank and = bank and (from 00h to FFh) bits 6:5 RP1:RP0 (Register Bank Select bits) These two bits are upper part of the address for direct addressing As instructions which address the memory directly have only seven bits, they need one more bit in order to address all 256 bytes which is how many bytes 10 DKS GROUP http://www.embestdks.com PIC16F84 has RP1 bit is not used, but is left for some future expansions of this microcontroller 01 = first bank 00 = zero bank bit TO Time-out ; Watchdog overflow Bit is set after turning on the supply and execution of CLRWDT and SLEEP instructions Bit is reset when watchdog gets to the end signaling that overflow took place = overflow did not occur = overflow did occur bit PD (Power-down bit) This bit is set whenever power supply is brought to a microcontroller : as it starts running, after each regular reset and after execution of instruction CLRWDT Instruction SLEEP resets it when microcontroller falls into low consumption mode Its repeated setting is possible via reset or by turning the supply off/on Setting can be triggered also by a signal on RB0/INT pin, change on RB port, upon writing to internal DATA EEPROM, and by a Watchdog = after supply has been turned on = executing SLEEP instruction bit Z (Zero bit) Indication of a zero result This bit is set when the result of an executed arithmetic or logic operation is zero = result equals zero = result does not equal zero bit DC (Digit Carry) DC Transfer Bit affected by operations of addition, subtraction Unlike C bit, this bit represents transfer from the fourth resulting place It is set in case of subtracting smaller from greater number and is reset in the other case = transfer occurred on the fourth bit according to the order of the result = transfer did not occur DC bit is affected by ADDWF, ADDLW, SUBLW, SUBWF instructions bit C (Carry) Transfer Bit that is affected by operations of addition, subtraction and shifting = transfer occurred from the highest resulting bit = transfer did not occur C bit is affected by ADDWF, ADDLW, SUBLW, SUBWF instructions 11 DKS GROUP http://www.embestdks.com 2.4 Bộ nhớ RAM chế độ định địa PIC Bộ nhớ Flash RAM Bank Thanh ghi điều khiển việc truy cập nhớ Các chế độ truy cập RAM (trực tiếp,gián tiếp…) Lập trình truy cập nhớ RAM 12 DKS GROUP http://www.embestdks.com 2.4 Tổ chức nhớ ROM + EEPROM 2.4.1 Bộ nhớ chương trình – Flash Program Memory Bộ nhớ chương trình (sau viết tắt nhớ flash) nới lưu trữ chương trình mà người lập trình viết ra, nhằm làm cho PIC thực chức mong muốn Bộ nhớ flash nhớ vừa đọc, ghi xóa q trình hoạt động PIC Quá trình đọc thực đọc byte lần, trình ghi vào nhớ thực theo môi khối bytes cho lần ghi việc xóa nhớ flash thực xóa khối 64 bytes cho lần thực 2.4.1.1 Đọc ghi liệu nhớ flash RAM Để thực việc đọc, ghi nhớ flash, có hai hoạt động cho phép vi xử lý thực việc di chuyển byte liệu nhớ flash nhớ RAM : Table Read (TBLRD) Table Write (TBLWR) Bộ nhớ chương trình PIC có độ rộng 16-bit, nhớ RAM 8bit Quá trình thực đọc/ghi Table Read Table Write thực thông qua ghi 8-bit TBLAT 13 DKS GROUP http://www.embestdks.com 2.4.1.2 Các ghi điều khiển Có bốn ghi đảm nhận chức điều khiển trình trao đổi liệu với nhớ Flash, là: – EECON1 – EECON2 – TABLAT – TBLPTR Thanh ghi EECON1 EECON2: Thanh ghi EECON1 ghi điều khiển việc truy cập nhớ Flash EEPROM Thanh ghi EECON2 ghi vật lý, đọc EECON2 cho kêt ‘0’ EECON2 dành riêng cho việc ghi xóa nhớ flash Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit6 EEPGD: Bit chọn nhớ chương trình hay nhơ EEPROM = Truy cập nhớ flash = Truy cập nhớ EEPROM CFGS: Bit chon Thanh ghi cấu hình hay nhơ Flash/Data EE = Truy cập đến ghi cấu hình = Truy cập nhớ Flash/data EEPROM Không sử dung (đọc = ‘0’) FREE: Bit cho phép xóa hàng nhớ Flash = Xóa hàng nhớ Flash có địa cho TBLPTR lệnh WR = Chỉ thực ghi vào nhớ Flash WRERR: Cờ báo lỗi nhớ EEPROM = Quá trình ghi kết thúc sớm (Reset trình tự ghi) = Q trình ghi liệu hồn tất khơng có lỗi WREN: Bit cho phép ghi = Cho phép thực ghi/xóa = Khơng cho phép ghi/xóa WR: Kiểm sốt việc ghi/xóa nhớ Flash/Data EE = Bắt đầu q trình ghi/xóa nhớ Flash/ Bộ nhớ EEPROM = Quá trình ghi thực xong RD: Kiểm soát việc đọc nhớ Flash/Data EE = Bắt đầu trình đọc = Quá trình đọc liệu hoàn tất 14 DKS GROUP http://www.embestdks.com Bộ nhớ EEPROM Thanh ghi điều khiển việc truy cập nhớ Lập trình đọc liệu từ EEPROM, F-ROM Lập trình ghi liệu vào EEPROM, F-ROM Chế độ bảo vệ (Code Protect) 15 DKS GROUP http://www.embestdks.com 2.5 Tổ chức vào/ra PIC Giới thiệu chung cổng vào/ra PIC: Cổng nhóm chân Vi điều khiển, chúng truy cập đồng thời hay theo bit một, đọc trạng thái có cổng Về mặt vật lý, cổng ghi nằm bên Vi điều khiển kết nối đến chân Vi điều khiển Cổng đóng vai trò kết nối vật lý CPU giới bên Physically, port is a register inside a microcontroller which is connected by wires to the pins of a microcontroller Ports represent physical connection of Central Processing Unit with an outside world Microcontroller uses them in order to monitor or control other components or devices Due to functionality, some pins have twofold roles like PA4/TOCKI for instance, which is in the same time the fourth bit of port A and an external input for free-run counter Selection of one of these two pin functions is done in one of the configuration registers An illustration of this is the fifth bit T0CS in OPTION register By selecting one of the functions the other one is disabled Thanh ghi cổng ghi điều khiển chế độ vào/ra Trong Vi điều khiển PIC có từ 10 cổng, số lượng tùy theo loại PIC Đối với loại PIC 40 chân mà ta thường hay sử dụng có tất cổng là: - PORTA: Độ rộng bit - PORTB: Độ rộng bit - PORTC: Độ rộng bit - PORTD: Độ rộng bit - PORTE: Độ rộng bit Không giống AT8051, cổng PIC ngồi ghi cổng cịn có thêm ghi điều khiển chế độ vào cho chân cổng PORTA có ghi TRISA, PORTB có ghi TRISB… Khi lập trình điều khiển vào cho PIC ta cần ý tới điều để tránh gặp sai sót khơng đáng có Vì cổng giống nhau, ta tìm hiều vài PORT cụ thể PIC PORTA TRISA PORTA PIC16F877A có độ rộng 6-bit tương ứng với chân từ RA0 đến RA5 Thanh ghi điều khiển hướng liệu TRISA Thiết lập giá tri “1” cho bit ghi TRISA định nghĩa chân tương ứng với bit chân vào liệu, thiết lập “0” cho bit TRISA định nghĩa chân tương ứng chân xuất liệu Đọc ghi PORTA đọc trạng thái chân ghi giá trị vào ghi PORTA ghi vào chốt cổng PORTA Tồn q trình ghi đọc – sửa – ghi, nghĩa đọc giá trị cổng, sửa giá trị ghi trở lại chốt liệu cổng Một số chân PORTA chân vào giá trị tương tự chân vào điện áp tham chiếu (Vref) cho Chuyển đổi tương tự số (Analog to Digital Converter) So sánh (Comparators), cấu hình cho chân chân vào tương tự hay số thông qua 16 DKS GROUP http://www.embestdks.com ghi ADCON1 Mặc định khởi động chân PORTA thiết lập chân vào tương tự Khi lập trình ta cần ý điều PORTB TRISB PORTB có chân từ RB0 RB7 tương ứng với độ rộng bit Thanh ghi để điều khiển hướng liệu PORTB có tên TRISB có độ dài bit, tương ứng với bit PORTB Thiết lập giá tri “1” cho bit ghi TRISB định nghĩa chân tương ứng với bit chân vào liệu, thiết lập “0” cho bit TRISB định nghĩa chân tương ứng chân xuất liệu TRISB.0 = =>> Chân RB0 chân xuất TRISB.0 = =>> Chân RB0 chân nhập Mỗi chân PORTB có điện trở kéo kích hoạt cách xóa bit thứ RBPU ghi OPTION Các điện trở kéo tự động ngắt PORTB thiết lập cổng xuất Mặc định khởi động, điện trở kéo ngắt Lập trình chế độ vào (Input) - Thiết lập cho bit ghi TRISB - Kích hoạt điện trở kéo - Nhận liệu từ cổng cách đọc ghi PORTB Ví dụ: unsigned char port_buffer; // Khai báo biến đệm giá trị củ PORTB TRISB = 0b11111111; // Toàn PORTB cổng vào 17 DKS GROUP http://www.embestdks.com RBPU = 0; port_buffer = PORTB; // Kích hoạt điện trở kéo // Đọc giá trị PORTB vào biến port_buffer Lập trình chế độ (Output) - Thiết lập cho bit ghi TRISB - Xuất liệu cổng (ghi giá trị vào ghi PORTB) Ví dụ: TRISB = 0b00000000; // PORTB cổng PORTB = 0xAA; // Xuất giá trị 0xAA cổng B Trên hai ví dụ nhỏ lập trình vào cho PIC, lập trình chi tiết trình bày cuối chương Trong chân PORTB, chân từ RB4 đến RB7, ngồi chức chân vào ra, chúng cịn sinh ngắt gọi ngắt On-Change Ngắt xảy chân có chuyển trạng thái từ logic sang hay ngược lại Chi chân thiết lập chân vào ngắt xảy (nếu chân RB7 ~ RB4 chân vào ngắt khơng xảy có chuyển trạng thái chân đó) Ta thường ứng dụng ngắt On-Change việc quét ma trận bàn phím, hàng phím nối đến chân này, việc xử lý ngắt xác định phím nhấn Ngồi PORTB cịn có chân RB0 chân vào ngắt ngồi (INT0), chân RB7PGD, RB6-PGC, RB3-PGM kết hợp sử dụng tính In-Circuit Debugger Low-Voltage Programming PORTC TRISC 18 DKS GROUP http://www.embestdks.com 2.6 Timer/Counter Mô tả chung Timer (cấu trúc) Các Timer thành phần khơng thể thiếu Vi điều khiển, cần thiết cho việc xác định xác khoảng thời gian trôi qua Các Timer PIC (0,1,2…) Mỗi Vi điều khiển PIC có số lượng Timer định, tối thiểu Timer Timer0, Timer1, Timer2 Trong Timer0 Timer2 bit, Timer1 la 16 bit Thanh ghi điều khiển Tính tốn thời gian cho Timer Lập trình cho Timer 19 DKS GROUP http://www.embestdks.com 2.7 Giao tiếp nối tiếp RS232 Cấu trúc khối RS232 Thanh ghi điều khiển Tốc độ Baud tính tốn Chế độ Master (Truyền – nhận) Chế độ Slave (Truyền – nhận) 20 ... http://www.embestdks.com Chương 2: Vi điều khiển PIC Giới thiệu chung Trong chương tìm hiểu Vi điều khiển PIC, mà cụ thể dòng Vi điều khiển PIC18F4331 Tại lại chọn PIC18F4331, điều đơn giản Thực bắt đầu... động sử dụng để cung cấp xung đồng hồ cho Vi điều khiển Xung đồng hồ cần thiết để Vi điều khiển thực thi chương trình lập trình bên Mỗi loại Vi điều khiển PIC hỗ trợ kiểu mach tạo dao động khác... vào/ra PIC Giới thiệu chung cổng vào/ra PIC: Cổng nhóm chân Vi điều khiển, chúng truy cập đồng thời hay theo bit một, đọc trạng thái có cổng Về mặt vật lý, cổng ghi nằm bên Vi điều khiển kết nối

Ngày đăng: 20/08/2012, 09:41

Từ khóa liên quan

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

Tài liệu liên quan