Vi điều khiển PIC16F877A

MỤC LỤC

CHƯƠNG 1 TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC

1.1 PIC LÀ GÌ ??

1.2 TẠI SAO LÀ PIC MÀ KHÔNG LÀ CÁC HỌ VI ĐIỀU KHIỂN KHÁC??

1.3 KIẾN TRÚC PIC

1.4 RISC VÀ CISC

1.5 PIPELINING

1.6 CÁC DÒNG PIC VÀ CÁCH LỰA CHỌN VI ĐIỀU KHIỂN PIC

1.7 NGÔN NGỮ LẬP TRÌNH CHO PIC

1.8 MẠCH NẠP PIC

1.9 BOOTLOADER VÀ ICP (In Circuit Programming)

CHƯƠNG 2 VI ĐIỀU KHIỂN PIC16F877A

2.1 SƠ ĐỒ CHÂN VI ĐIỀU KHIỂN PIC16F877A

2.2 MỘT VÀI THÔNG SỐ VỀ VI ĐIỀU KHIỂN PIC16F877A

2.3 SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN PIC16F877A

2.4 TỔ CHỨC BỘ NHỚ

2.4.1 BỘ NHỚ CHƯƠNG TRÌNH

2.4.2 BỘ NHỚ DỮ LIỆU

2.4.2.1 THANH GHI CHỨC NĂNG ĐẶC BIỆT SFR

2.4.2.2 THANH GHI MỤC ĐÍCH CHUNG GPR

2.4.3 STACK

2.5 CÁC CỔNG XUẤT NHẬP CỦA PIC16F877A

2.5.1 PORTA

2.5.2 PORTB

2.5.3 PORTC

2.5.4 PORTD

2.5.5 PORTE

2.6 TIMER 0

2.7 TIMER1

2.8 TIMER2

2.9 ADC

2.10 COMPARATOR

2.10.1 BỘ TẠO ĐIỆN ÁP SO SÁNH

2.11 CCP

2.12 GIAO TIẾP NỐI TIẾP1.12.1 USART

2.12.1.1 USART BẤT ĐỒNG BỘ

2.12.1.1.1 TRUYỀN DỮ LIỆU QUA CHUẨN GIAO TIẾP USART BẤT ĐỒNG BỘ

2.12.1.1.2 NHẬN DỮ LIỆU QUA CHUẨN GIAO TIẾP USART BẤT ĐỒNG BỘ

2.12.1.1.2 USART ĐỒNG BỘ

2.12.1.2.1 TRUYỀN DỮ LIỆU QUA CHUẨN GIAO TIẾP USART ĐỒNG BỘ MASTER

MODE

2.12.1.2.2 NHẬN DỮ LIỆU QUA CHUẨN GIAO TIẾP USART ĐỒNG BỘ MASTER

MODE

2.12.1.2.3 TRUYỀN DỮ LIỆU QUA CHUẨN GIAO TIẾP USART ĐỒNG BỘ SLAVE

MODE

2.12.1.2.4 NHẬN DỮ LIỆU QUA CHUẨN GIAO TIẾP USART ĐỒNG BỘ SLAVE MODE

2.12.2 MSSP

2.12.2.1 SPI

2.12.2.1.1 SPI MASTER MODE

2.12.2.1.2 SPI SLAVE MODE

2.12.2.2 I2C

2.12.2.2.1 I2C SLAVE MODE

2.12.2.2.2 I2C MASTER MODE

2.13 CỔNG GIAO TIẾP SONG SONG PSP (PARALLEL SLAVE PORT)

2.14 TỔNG QUAN VỀ MỘT SỐ ĐẶC TÍNH CỦA CPU.

2.14.1 CONFIGURATION BIT

2.14.2 CÁC ĐẶC TÍNH CỦA OSCILLATOR

2.14.3 CÁC CHẾ ĐỘRESET

2.14.4 NGẮT (INTERRUPT)

2.14.4.1 NGẮT INT

2.14.4.2 NGẮT DO SỰ THAY ĐỔI TRẠNG THÁI CÁC PIN TRONG PORTB

2.14.5 WATCHDOG TIMER (WDT)

2.14.6 CHẾ ĐỘ SLEEP

2.14.6.1 “ĐÁNH THỨC” VI ĐIỀU KHIỂN

CHƯƠNG 3 TẬP LỆNH CỦA VI ĐIỀU KHIỂN PIC

3.1 VÀI NÉT SƠ LƯỢC VỀ TẬP LỆNH CỦA VI ĐIỀU KHIỂN PIC

3.2 TẬP LỆNH CỦA VI ĐIỀU KHIỂN PIC

3.3 CẤU TRÚC CỦA MỘT CHƯƠNG TRÌNH ASSEMBLY VIẾT CHO VI ĐIỀU KHIỂN

PICCHƯƠNG 4 MỘT SỐ ỨNG DỤNG CỤ THỂ CỦA PIC16F877A

4.1 ĐIỀU KHIỂN CÁC PORT I/O

4.1.1 CHƯƠNG TRÌNH DELAY

4.1.2 MỘT SỐ ỨNG DỤNG VỀ ĐẶC TÍNH I/O CỦA CÁC PORT ĐIỀU KHIỂN

4.2 VI ĐIỀU KHIỂN PIC16F877A VÀ IC GHI DỊCH 74HC595

4.3 PIC16F877A VÀ LED 7 ĐOẠN

4.4 NGẮT VÀ CẤU TRÚC CỦA MỘT CHƯƠNG TRÌNH NGẮT

4.5 TIMER VÀ ỨNG DỤNG

4.5.1 TIMER VÀ HOẠT ĐỘNG ĐỊNH THỜI

PHỤ LỤC 1 SƠ ĐỒ KHỐI CÁC PORT CỦA VI ĐIỀU KHIỂN PIC16F877A

PHỤ LỤC 2 THANH GHI SFR (SPECIAL FUNCTION REGISTER)

 

pdf173 trang | Chuyên mục: Vi Xử Lý – Vi Điều Khiển | Chia sẻ: tuando | Lượt xem: 512 | Lượt tải: 2download
Tóm tắt nội dung Vi điều khiển PIC16F877A, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 giao tiếp MSSP. 
Khi MSSP hoạt động ở chế độ SPI: 
 Bit 7 SMP Sample bit 
 SPI Master mode: 
 SMP = 1 dữ liệu được lấy mẫu (xác định trang thái logic) tại thời điểm cuối 
xung clock. 
 SMP = 0 dữ liệu được lấy mẫu tại thời điểm giữa xung clock. 
 SPI Slave mode: bit này phải được xóa về 0. 
 Bit 6 CKE SPI Clock Select bit 
 CKE = 1 SPI Master truyền dữ liệu khi xung clock chuyển từ trạng thái tích 
cực đến trạng thái chờ. 
 CKE = 0 SPI Master truyền dữ liệu khi xung clock chuyển từ trạng thái chờ 
đến trạng thái tích cực. 
 (trạng thái chờ được xác định bởi bit CKP (SSPCON). 
 Bit 5 bit. 
 Bit này chỉ có tác dụng ở chế độ I2C mode. 
 Bit 4 P Stop bit 
 Bit này chỉ sử dụng khi MSSP ở chế độ I2C. 
 Bit 3 S Start bit 
 Bit này chỉ có tác dụng khi MSSP ở chế độ I2C. 
 Bit 2 bit information 
 Bit này chỉ có tác dụng khi MSSP ở chế độ I2C. 
 Bit 1 UA Update Address bit 
 Bit này chỉ có tác dụng khi MSSP ở chế độ I2C. 
 Bit 0 BF Buffer Status bit 
 BF = 1 thanh ghi đệm SSPBUF đã có dữ liệu. 
 BF = 0 thanh ghi đệm SSPBUF chưa có dữ liệu. 
Khi hoạt động ở chế độ I2C 
 Bit 7 SPM Slew Rate Control bit 
 SPM = 1 dùng tốc độ chuẩn (100 KHz và 1 MHz). 
 SPM = 0 dùng tốc độ cao ( 400 KHz). 
 Bit 6 CKE MSBus Select bit 
 CKE = 1 cho phép MSBus. 
 CKE = 0 không cho phép MSBus. 
 Bit 5 bit 
 I2C Master mode: không quan tâm. 
 = 1 byte vừa truyền đi hoặc nhận được là dữ liệu. 
 = 0 byte vừa truyền đi hoặc nhận được là địa chỉ. 
 Bit 4 P Stop bit 
 P = 1 vừa nhận được bit Stop. 
 P = 0 chưa nhận được bit Stop. 
 Bit 3 S Start bit 
 S = 1 vừa nhận được bit Start. 
 S = 0 chưa nhận được bit Start. 
 Bit 2 bit information 
 I2C Slave mode: 
 = 1 đọc dữ liệu. 
 = 0 ghi dữ liệu. 
 I2C Master mode: 
 = 1 đang truyền dữ liệu. 
 = 0 không truyền dữ liệu. 
 Bit 1 UA Update Address 
 Bit này chỉ có tác dụng đối với chế độ I2C Slave mode10 bit địa chỉ. 
 UA = 1 vi điều khiển cần cập nhật thêm địa chỉ từ thanh ghi SSPADD. 
 UA = 0 không cần cập nhật thêm địa chỉ. 
 Bit 0 BF Buffer Full Status bit 
 BF = 1 Thanh ghi SSPBUF đang chứa dữ liệu truyền đi hoặc nhận được. 
 BF = 0 thanh ghi SSPBUF không có dữ liệu. 
P2.44 Thanh ghi TXSTA: địa chỉ 98h 
 Thanh ghi chứa các bit trạng thái và điều khiển việc truyền dữ liệu thông qua chuẩn 
giao tiếp USART. 
 Bit 7 CSRC Clock Source Select bit 
 Ở chế độ bất đồng bộ: không cần quan tâm. 
 Ở chế độ đồng bộ: 
 CSRC = 1 Master mode (xung clock được lấy từ bộ tạo xung BRG). 
 CSRC = 0 Slave mode (xung clock được nhận từ bên ngoài). 
 Bit 6 TX-9 9-bit Transmit Enable bit 
 TX-9 = 1 truyền dữ liệu 9 bit. 
 TX-9 = 0 truyền dữ liệu 8 bit. 
 Bit 5 TXEN Transmit Enable bit 
 TXEN = 1 cho phép truyền. 
 TXEN = 0 không cho phép truyền. 
 Bit 4 SYNC USART Mode Select bit 
 SYNC = 1 dạng đồng bộ 
 SYNC = 0 dạng bất đồng bộ. 
 Bit 3 Không cần quan tâm và mặc định mang giá trị 0. 
 Bit 2 BRGH High Baud Rate Select bit 
 Bit này chỉ có tác dụng ở chế độ bất đồng bộ. 
 BRGH = 1 tốc độ cao. 
 BRGL = 0 tốc độ thấp. 
 Bit 1 TRMT Transmit Shift Register Status bit 
 TRMT = 1 thanh ghi TSR không có dữ liệu. 
 TRMT = 0 thanh ghi TSR có chứa dữ liệu. 
 Bit 0 TX9D 
 Bit này chứa bit dữ liệu thứ 9 khi dữ liệu truyền nhận là 9 bit. 
P2.45 Thanh ghi SPBRG: địa chỉ 99h 
 Thanh ghi chứa giá trị tạo xung clock cho bộ tạo xung BRG (Baud Rate Generator). 
Tần số xung clock do BRG tạo ra được tính theo các công thức trong bảng sau: 
 Trong đó X là giá trị chứa trong thanh ghi SRBRG. 
Thanh ghi CMCON: địa chỉ 9Ch 
 Thanh ghi điều khiển và chỉ thị các trạng thái cũng như kết quả của bộ so sánh. 
 Bit 7 C2OUT Comparator 2 (C2) Output bit 
 Khi C2INV = 0 
 C2OUT = 1 khi (pin VIN+ của C2)> (pin VIN- của C2). 
 C2OUT = 0 khi (pin VIN+ của C2) < (pin VIN- của C2). 
 Khi C2INV = 1 
 C2OUT = 1 khi (pin VIN+ của C2)< (pin VIN- của C2). 
 C2OUT = 0 khi (pin VIN+ của C2) > (pin VIN- của C2). 
 Bit 6 C1OUT Comparator 1 (C1) Output bit 
 Khi C1INV = 0 
 C1OUT = 1 khi (pin VIN+ của C1)> (pin VIN- của C1). 
 C1OUT = 0 khi (pin VIN+ của C1) < (pin VIN- của C1). 
 Khi C1INV = 1 
 C1OUT = 1 khi (pin VIN+ của C1)< (pin VIN- của C1). 
 C1OUT = 0 khi (pin VIN+ của C1) > (pin VIN- của C1). 
 Bit 5 C2INV Comparator 2 Output Conversion bit 
 C2INV = 1 ngõ ra C2 được đảo trạng thái. 
 C2INV = 0 ngõ ra C2 không đảo trạng thái. 
 Bit 4 C1INV Comparator 1 Output Conversion bit 
 C1INV = 1 ngõ ra C1 được đảo trạng thái. 
 C1INV = 0 ngõ ra C1 không đảo trạng thái. 
 Bit 3 CIS Comparator Input Switch bit 
 Bit này chỉ có tác dụng khi CM2:CM0 = 110 
 CIS = 1 khi pin VIN- của C1 nối với RA3/AN3 và 
 pin VIN- của C2 nối với RA2/AN2 
 CIS = 0 khi pin VIN- của C1 nối với RA0/AN0 và 
 pin VIN- của C2 nối với RA1/AN1 
 Bit 2-0 CM2:CM0 Comparator Mode bit 
 Các bit này đóng vai trò trong việc thiết lập các cấu hình hoạt động của bộ 
Comparator. Các dạng cấu hình của bộ Comparator đựơc trình bày trong bảng sau: 
Trong đó: A là ngõ vào Analog, khi đó giá trị của các pin này đọc từ các PORT luôn bằng 0. 
 B là ngõ vào Digital. 
P2.46 Thanh ghi CVRCON: địa chỉ 9Dh 
 Thanh ghi điều khiển bộ tạo điện áp so sánh khi bộ Comparator hoạt động với cấu 
hình ‘110’. 
 Bit 7 CVREN Comparator Voltage Reference Enable bit. 
 CVREN = 1 bộ tạo điện áp so sánh được cấp điện áp hoạt động. 
 CVREN = 0 bộ tạo điện áp so sánh không được cấp điện áp hoạt động. 
 Bit 6 CVROE Comparator VREF Output Enable bit 
 CVROE = 1 điện áp do bộ tạo điện áp so sánh tạo ra được đưa ra pin RA2. 
 CVROA = 0 điện áp do bộ tạo điện áp so sánh tạo ra không được đưa ra ngoài. 
 Bit 5 CVRR Comparator VREF Range Selection bit 
 CVRR = 1 một mức điện áp có giá trị VDD/24 (điện áp do bộ tạo điện áp so 
sánh tạo ra có giá trị từ 0 đến 0.75VDD). 
 CVRR = 0 một mức điện áp có giá trị VDD/32 (điện áp do bộ tạo điện áp so 
sánh tạo ra có giá trị từ 0.25 đến 0.75VDD). 
 Bit 4 Không cần quan tâm và mặc định mang giá trị 0. 
 Bit 3-0 CVR3:CVR0 Các bit chọn điện áp ngõ ra của bộ tạo điện áp so sánh. 
 Khi CVRR = 1: 
 Điện áp tại pin RA2 có giá trị CVREF = (CVR/24)*VDD. 
 Khi CVRR = 0 
 Điện áp tại pin RA2 có giá trị CVREF = (CVR/32)*VDD + ¼VDD. 
P2.47 Thanh ghi ADRESL: địa chỉ 9Eh 
 Thanh ghi chứa các bit thấp của kết quả bộ chuyển đổi A/D (8 bit cao chứa trong 
thanh ghi ADRESH địa chỉ 1Eh). 
P2.48 Thanh ghi ADCON1: địa chỉ 9Fh 
 Thanh ghi chứa các bit điều khiển bộ chuyển đổi ADC (ADC có hai thanh ghi điều 
khiển là ADCON1 và ADCON0). 
 Bit 7 ADFM A/D Result Format Select bit 
 ADFM = 1 Kết quả được lưu về phía bên phải 2 thanh ghi ADRESH:ADRESL 
(6 bit cao mang giá trị 0). 
 ADFM = 0 Kết quả được lưu về phía bên trái 2 thanh ghi ADRESH:ADRESL 
(6 bit thấp mang giá trị 0). 
 Bit 6 ADCS2 A/D Conversion Clock Select bit 
 ADCS2 kết hợp với 2 bit ADCS1:ADCS0 trong thanh ghi ADCON0 để điều 
khiển việc chọn xung clock cho khối chuyển đổi ADC. 
 Bit 5,4 Không cần quan tâm và mặc định mang giá trị 0. 
 Bit 3-0 PCFG3:PCFG0 A/D Port Configuration Control bit 
 Các bit này điều khiển việc chọn cấu hình hoạt động các cổng của bộ chuyển 
đổi ADC. 
 Trong đó A là ngõ vào Analog. 
 D là ngõ vào Digital. 
 C/R là số ngõ vào Analog/số điện áp mẫu. 
P2.49 Thanh ghi EEDATA: địa chỉ 10Ch 
 Thanh ghi chứa byte thấp của dữ liệu trong quá trình ghi đọc trên bộ nhớ dữ liệu 
EEPROM. 
P2.50 Thanh ghi EEADR: địa chỉ 10Dh 
 Thanh ghi chứa byte thấp của địa chỉ trong quá trình ghi đọc trên bộ nhớ dữ liệu 
EEPROM. 
P2.51 Thanh ghi EEDATH: địa chỉ 10Eh 
 Thanh ghi chứa byte cao của dữ liệu trong quá trình ghi đọc trên bộ nhớ dữ liệu 
EEPROM (thanh ghi này chỉ sử dụng 6 bit thấp). 
P2.52 Thanh ghi EEADRH: địa chỉ 10Fh 
 Thanh ghi chứa byte cao của địa chỉ trong quá trình ghi đọc trên bộ nhớ dữ liệu 
EEPROM (thanh ghi này chỉ sử dụng 4 bit thấp). 
P2.53 Thanh ghi EECON1: địa chỉ 18Ch 
 Thanh ghi điều khiển bộ nhớ EEPROM. 
 Bit 7 EEPGD Program/Data EEPROM Select bit 
 EEPGD = 1 truy xuất bộ nhớ chương trình. 
 EEPGD = 0 truy xuất bộ nhớ dữ liệu. 
 Bit 6-4 Không cần quan tâm và mặc định mang giá trị 0. 
 Bit 3 WRERR EEPROM Error Flag bit 
 WRERR = 1 quá trình ghi lên bộ nhớ bị gián đoạn và không thể tiếp tục (do 
các chế độ Reset WDT hoặc ). 
 WRERR = 0 quá trình ghi lên bộ nhớ hoàn tất. 
 Bit 2 WREN EEPROM Write Enable bit 
 WREN = 1 cho phép ghi. 
 WREN = 0 không cho phép ghi. 
 Bit 1 WR Write Control bit 
 WR = 1 ghi dữ liệu. Bit này chỉ được set bằng chương trình và tự động xóa về 0 
khi quá trình ghi dữ liệu hoàn tất. 
 WR = 0 hoàn tất quá trình ghi dữ liệu. 
 Bit 0 RD Read Control bit 
 RD = 1 đọc dữ liệu. Bit này chỉ được set bằng chương trình và tự động xóa về 0 
khi quá trình đọc dữ liệu hoàn tất. 
 RD = 0 quá trình đọc dữ liệu không xảy ra. 
P2.54 Thanh ghi EECON2: địa chỉ 18Dh. 
 Đây là một trong 2 thanh ghi điều khiển bộ nhớ EEPROM. Tuy nhiên đây không phải 
là thanh ghi vật lí thông thường và không cho phép ngươi1 sử dụng truy xuất dữ liệu trên 
thanh ghi. 
TÀI LIỆU THAM KHẢO 
 PIC16F877A DATASHEET WWW.MICROCHIP.COM 
 MIDRANGE PICmicro FAMILY WWW.MICROCHIP.COM 
CÁC TRANG WEB 
 WWW.MICROCHIP.COM 
 WWW.DIENDANDIENTU.COM 
 WWW.PICVIETNAM.NET 
 VÀ CÁC TRANG WEB KHÁC 

File đính kèm:

  • pdfvi_dieu_khien_pic16f877a.pdf
Tài liệu liên quan