1. Trang chủ
  2. » Luận Văn - Báo Cáo

đề tài kit thực tập vi điều khiển pic

133 914 6

Đ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 133
Dung lượng 4,75 MB

Nội dung

Khi đó: Tần số dao động của thạch anh là 1.3.2 RESET PIC16F877A có thể bị reset bởi nhiều nguyên nhân khác nhau như: Power-on Reset POR MCLR Reset during sleep Lưu ý: Tụ có giá trị lớn

Trang 2

CHƯƠNG II: BỘ ĐỊNH THỜI trang 41

Trang 3

2.2.3 Chế độ định thời trong hoạt động của Timer 1 trang 432.2.4 Chế độ đếm trang 432.2.5 Giao động riêng của Timer 1 trang 442.2.6 Ngắt Timer 1 trang 442.3 Bộ định thời Timer 2 trang 442.3.1 Giới thiệu trang 442.3.2 Thanh ghi điều khiển T2CON trang 452.3.3 Xóa các bộ tỉ lệ trang 452.3.4 Nguồn xung clock cho Timer 2 trang 452.3.5 Thanh ghi TMR2 và PR2 trang 462.3.6 Tín hiệu báo trạng thái cân bằng trang 462.3.7 Chế độ ngủ trang 46

CHƯƠNG III: MODULE CCP trang 47

3.1 Giới thiệu trang 473.2 Thanh ghi điều khiển module CCP trang 473.3 Chế độ Capture trang 483.3.1 Bộ định tỉ lệ của CCP trang 483.4 Chế độ Compare trang 483.5 Chế độ điều biến xung PWM trang 493.5.1 Chu kỳ PWM trang 493.5.2.Chu kỳ nhiệm vụ của PWM trang 503.5.3 Cài đặt hoạt động cho PWM trang 503.5.4 Module MSSP trang 51

CHƯƠNG IV: BỘ BIẾN ĐỔI ADC 10 BIT trang 53

4.1 Giới thiệu module ADC 10 bit trang 534.2 Các thanh ghi điều khiển trang 534.3 Hoạt động của Module ADC trang 544.4.Thời gian lấy mẫu trang 554.5 Lựa chọn xung clock cho biến đổi ADC trang 564.6 Cấu hình các chân Analog trang 574.7 Chuyển đổi ADC trang 574.8 Hoạt động của module ADC trong chế độ ngủ trang 584.9 Ảnh hưởng của Reset trang 58

CHƯƠNG V: ĐIỆN THẾ THAM CHIẾU VÀ CÁC BỘ SO SÁNH ĐIỆN trang 59

5.1 Module Comparator trang 595.1.1 Giới thiệu về module comparator trang 595.1.2 Cài đặt chế độ cho bộ so sánh trang 595.1.3 Nguồn tham chiếu của bộ so sánh trang 615.1.3.1 Tín hiệu điện áp tham chiếu ngoại trang 61 5.1.3.2 Tín hiệu điện áp tham chiếu nội trang 615.1.4 Thời gian đáp ứng trang 615.1.5 Tín hiệu ngõ ra của bộ so sánh trang 615.1.6 Ngắt của các bộ so sánh trang 625.1.7 Hoạt động của các bộ so sánh trong chế độ ngủ trang 625.1.8 Ảnh hưởng của Reset trang 625.2 Module điện áp tham chiếu trang 625.2.1 Giới thiệu module điện áp tham chiếu trang 625.2.2 Thanh ghi điều khiển CVRCON trang 63

Trang 4

5.2.3 Độ chính xác của điện áp tham chiếu trang 635.2.4 Hoạt động của module VREF trong chế độ ngủ trang 63 5.2.5 Trạng thái của module khi Reset trang 635.2.6 Sử dụng module với các mạch ngồi trang 645.3 Giao Tiếp Nối Tiếp trang 64 5.3.1 Usart trang 64 5.3.1.1 Usart bất đồng bộ trang 655.3.1.2 Truyền Dữ Liệu Qua Chuẩn Giao Tiếp Usart Bất Đồng Bộ trang 655.3.1.3 Nhận Dữ Liệu Qua Chuẩn Giao Tiếp Usart Bất Đồng Bộ trang 665.3.2 Usart Đồng Bộ trang 685.4.2.1 Truyền dữ liệu qua chuẩn giao tiếp usart đồng bộ master mode trang 685.3.2.2 Nhận dữ liệu qua chuẩn giao tiếp usart đồng bộ master mode trang 695.3.3 Truyền dữ liệu qua chuẩn giao tiếp usart đồng bộ slave mode trang 695.3.4 Nhận dữ liệu qua chuẩn giao tiếp usart đồng bộ slave mode trang 705.4 MSSP trang 715.5 SPI trang 715.6 I2C trang 745.6.1 I2C Slave Mode trang 755.6.2 I2C Master Mode .trang 815.7 Cổng Giao Tiếp Song Song Psp (Parallel Slave Port) trang 865.8 Các Đặc Tính Của Oscillator trang 87

CHƯƠNG VI: TÂP LỆNH SỬ DUNG TRONG CCS trang 88 PHẦN II: CÁC THÀNH PHẦN CỦA KIT THỰC TÂP PIC 16F877A trang 113 CHƯƠNG I: HIỂN THỊ LED ĐƠN trang 114

CHƯƠNG II: HIỂN THỊ LED 7 ĐOẠN trang 115

2.1 Các khái niệm cơ bản trang 1152.2 Kết nối với vi điều khiển trang 1162.3 Giao tiếp vi điều khiển với nhiều led 7 đoạn trang 1172.4 Lưu đồ giải thuật trang 1182.5.Mạch nguyên lý trang 119

CHƯƠNG III: ĐÈN GIAO THƠNG trang 120

3.1 Giới thiệu trang 1203.2 Sơ đồ nguyên lý trang 1203.3 Lưu đồ giải thuật trang 121

Trang 5

4.3.1.1 Giới thiệu chung về phương pháp quét hàng trang 1254.3.1.2 Quá trình thực hiện quét hàng trang 1264.3.1.3 Ví dụ trang 1274.3.2 Quét cột trang 1274.3.2.1 Giới thiệu chung về phương pháp quét cột trang 1274.3.2.2 Quá trình thực hiện quét cột trang 1274.3.2.3 Ví dụ trang 1274.4 Mạch nguyên lý trang 128

CHƯƠNG V: LCD trang 129

5.1 Giới thiệu chung về LCD trang 1295.1.1 Các thanh ghi trang 1315.1.2 Cờ báo bận BF trang 1315.1.3 Bộ đếm địa chỉ AC trang 1315.1.4 Vùng RAM hiển thị DDRAM trang 1325.1.5 Vùng ROM chứa ký tự CGROM trang 1325.1.6 Vùng RAM chứa ký tự đồ họa CGRAM trang 1335.2 Tập lệnh của LCD trang 1355.3 Khởi tạo LCD trang 1375.3.1 Mạch khởi tạo bên trong chip HD44780 trang 1375.3.2 Khởi tạo bằng lệnh trang 1385.4 Lưu đồ giải thuật trang 1395.5 Mạch nguyên lý trang 140

CHƯƠNG VI: ADC trang 140

6.1 Giới thiệu về module ADC trang 1416.1.1 Cơ bản về ADC trang 1416.1.2 ADC trong PIC 16F877A trang 142 6.2 Sơ đồ nguyên lý trang 142

CHƯƠNG VII: BÀN PHÍM GIAO TIẾP LCD trang 143

7.1 Keypad và nguyên lý hoạt động trang 1437.2 Keypad giao tiếp với LCD trang1437.3 Sơ đồ giải thuật trang143

CHƯƠNG VIII: EEPROM 24C04 trang 144

8.1 Giới Thiệu trang 1458.2 Hình dạng trang 1458.3 Sơ đồ cấu tạo trang 1458.4 Sơ đồ chân .trang 1458.5 Mạch nguyên lý trang 146

CHƯƠNG IX: ĐO NHIỆT ĐỘ DÙNG LM35 trang 147

9.1 Giới thiệu trang 1479.2 Một số đặc tính cơ bản của LM35 trang 1479.3 Mạch nguyên lý .trang 148

PHẦN III: CÁC BÀI TẬP THỰC HÀNH trang 150

Bài 1: hiển thị trạng thái port trên led trang 151Bài 2: hiển thị trạng thái các port và thay đổi thời gian delay trang 152Bài 3: hiển thị ngày tháng năm sinh trên led 7 trang 153Bài 4: hiển thị đồng hồ trên led 7 trang 154Bài 5: chương trình đèn giao thông trang 155

Trang 6

Bài 6: chẠy chữ led ma trận trang 156Bài 7: hiển thỊ ký tự trên lcd trang 157Bài 8: giao tiếp bàn phím số hex hiển thị lcd trang 158Bài 9: điều chỉnh adc hiển thị led đơn trang 159Bài 10: đo nhiệt độ trang 160

PHẦN VI: GIẢI CÁC BÀI TẬP THỰC HÀNH trang 161

Bài 1: hiển thị trạng thái port trên led đơn trang 162Bài 2: hiển thị trạng thái các port và thay đổi thời gian delay trang 164Bài 3: hiển thị ngày tháng năm sinh trên led 7 trang 165Bài 4: hiển thị đồng hồ trên led 7 trang 171Bài 5: chương trình đèn giao thông trang 173Bài 6: chạy chữ led ma trận trang 175Bài 7: hiển thị ký tự trên lcd trang 178Bài 8: giao tiếp bàn phím số hex hiển thị lcd trang 182Bài 9: điều chỉnh adc hiển thị led đơn trang 186Bài 10: đo nhiệt độ trang 187Bài 11: quét bàn phím hiển thị led 7 đoạn trang 191 Bài 12: giao tiếp eeprom 24c04 trang 196

PHẦN VI: PHỤ LỤC trang 198

Phụ lục 1: 16F877A trang 199

Phụ lục 2: DEFS_16F877A trang 205

Trang 7

I ĐẶT VẤN ĐỀ:

Ngày nay với sự phát triển của công nghiệp vi điện tử, kỹ thuật số các hệ thống điềukhiển dần được tự động hóa Với các kỹ thuật tiên tiến như vi xử lý, vi mạch số…đượcứng dụng vào lãnh vực điều khiển, thì các hệ thống điều khiển cơ khí thô sơ, với tốc độ

xử lý chậm chạm ít chính xác được thay thế bằng các hệ thống điều khiển tự động vớicác lệnh chương trình đã được thiết lập trước

Để có thể học tốt môn vi điều khiển chúng ta phải có thiết bị học tập một trongnhững thiết bị đó là kit thực tập, và được sự đồng ý của khoa Điện Tử - Tin Học Trường

Cao Đẳng Kỹ Thuật Cao Thắng Nhóm chúng em quyết định làm đề tài tốt nghiệp: “Kit

Thực Tập Vi Điều Khiển Pic”.

II GIỚI HẠN ĐỀ TÀI:

Với thời gian gần năm tuần thực hiện đề tài cũng như trình độ chuyên môn có hạn,chúng em đã cố gắng hết sức để hoàn thành đồ án này nhưng chỉ giải quyết được nhữngvấn đề sau:

III MỤC ĐÍCH NGHIÊN CỨU :

Mục đích trước hết khi thực hiện đề tài này là để hoàn tất chương trình môn học để

đủ điều kiện ra trường Cụ thể khi nghiên cứu đề tài là chúng em muốn phát huy nhữngthành quả ứng dụng của vi điều khiển để tạo ra những sản phẩm cho các bạn sinh viênkhóa sau Không những thế nó còn là tập tài liệu cho các bạn sinh viên tham khảo

Ngoài ra quá trình thực hiện đề tài là một cơ hội để chúng em tự kiểm tra lại nhữngkiến thức đã học ở trường Đồng thời phát huy tính sáng tạo, khả năng giải quyết một vấn

đề theo nhu cầu đặt ra Và đây cũng là dịp để chúng em khẳng định mình trước khi ratrường để tham gia vào các hoạt động sản xuất của xã hội

Trang 9

1.1 SƠ LƯỢC VỀ VI ĐIỀU KHIỂN PIC16F877A

Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài

14 bit Mỗi lệnh đều được thực thi trong một chu kì xung clock Tốc độ hoạt động tối

đa cho phép là 20 MHz

PIC 16F877A là dịng PIC phổ biến nhất hiện nay (đủ mạnh về tính năng, 40 chân,

bộ nhớ đủ cho hầu hết các ứng dụng thơng thường) Cấu trúc tổng quát của PIC16F877Anhư sau:

kiệm năng lượng (SLEEP MODE) với nguồn xung Clock ngồi

CÁC ĐẶC TÍNH NGOẠI VI BAO GỒM CÁC KHỐI CHỨC NĂNG SAU

dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độsleep

Trang 10

 Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C.

khiển RD, WR,

chương trình ngay trên mạch điện ICSP (In Circuit Serial Programming)thông qua 2 chân Watchdog Timer với bộ dao động trong

1.2 SƠ LƯỢC VỀ CÁC CHÂN CỦA PIC16F877A

Trang 14

PIC16F877A là họ vi điều khiển có 40 chân, mỗi chân có một chức năng khác nhau.Trong đó có một số chân đa công dụng: mỗi chân có thể hoạt động như một đường xuấtnhập hoặc là một chân chức năng đặc biệt dùng để giao tiếp với các thiết bị ngoại vi.

SƠ ĐỒ KHỐI PIC16F877A

Trang 15

1.3 MỘT SỐ ĐIỂM ĐẶC BIỆT CỦA CPU

sử dụng thạch anh dao động nối vào các chân

OSC1 và OSC2 để tạo dao động.

Việc lựa chọn tụ trong dao động thạch anh dựa vào bảng sau:

Cách Tính Chu Kì Máy

Ví dụ ta sử dụng thạch anh 10Mhz Khi đó: Tần số dao động của thạch anh là

1.3.2 RESET

PIC16F877A có thể bị reset bởi nhiều nguyên nhân khác nhau như:

Power-on Reset (POR)

MCLR Reset during sleep

Lưu ý: Tụ có giá trị lớn sẽ tang tính ổn

định của dao động nhưng cũng làm tăng

thời gian khởi động

Chế độ dao động RC được sử dụng nhưmột giải pháp tiết kiệm trong các ứngdụng không cần sự chính xác về thời gian

Trang 16

MCLR Reset during normal operation

WDT Reset (during normal operation)

WDT Wake-up (during sleep)

Brown-out Reset (BOR)

1.3.3 MCLR

này xuống thấp thì các thanh ghi bên trong VĐK sẽ được tải những giá trị thích hợp để

Trang 17

1.3.4 INTERRUPTS

PIC16F877A có nhiều nguồn ngắt khác nhau Đây là một số ngắt tiêu biểu :

* Các thanh ghi chức năng ngắt: INTCON, PIE1, PIR1, PIE2, PIR2 (các thanh ghi

này sẽ được nghiên cứu ở các phần sau)

Trang 18

1.3.5 CHẾ ĐỘ NGUỒN THẤP SLEEP (POWER DOWN MODE)

Đây là chế độ hoạt động của VĐK khi lệnh sleep được thực thi Khi đó nếu đượccho phép hoạt động, bộ đếm của WDT sẽ bị xóa nhưng WDT vẫn tiếp tục hoạt động bit

PD (STATUS <3>) được reset về không, bit TO được set, oscillator ngưng hoạt động vàcác PORT giữ nguyên trạng thái như trước khi lệnh sleep được thực thi

Do khi chế độ sleep dòng cung cấp cho VĐK là rất nhỏ nên ta cần thực hiện các bước sau trước khi VĐK thực thi lệnh sleep

điện của VĐK vì dòng điện nhỏ không đủ khả năng cung cấp cho các mạch

ngoại vi hoạt động

ngoài tác dụng vào VĐK

1.3.6 BỘ ĐỊNH THỜI GIÁM SÁT (WATCH DOG TIMER -WDT)

Giả sử bạn viết một chương trình, bạn mong đợi chương trình này sẽ chạy nếukhông có gì trục trặc xảy ra thì nó sẽ không bao giờ dừng lại, như vậy bạn phải làm mộtvòng lặp để khi chương trình chạy đến điểm cuối thì nó lại quay trở về điểm bắt đầu.Nhưng mà hãy xem một trường hợp: Giả sử chương trình kiểm tra một chân input, nếu

nó lên mức cao thì Pic16f877A sẽ tiếp tục kiểm tra một chân input thứ hai có lên mức caohay không, nếu chân input thứ hai không lên mức cao, con Pic sẽ ngồi đó chờ và nó sẽchỉ thoát ra khỏi chỗ ngồi của nó nếu chân input thứ hai lên mức cao

Bây giờ hãy xem một trường hợp khác, giả sử như bạn viết một chương trình, bạncompiled nó thành công, và ngay cả bạn đã cho chạy mô phỏng từng bước, từng bướcmột trên máy tính, bằng MPLAB chẳng hạn, có vẻ như mọi chuyện đều tốt, bạn đem nạpvào con Pic Sau một thời gian chạy thử, con Pic thình lình bị kẹt vào nơi nào đó trong chương trình mà không thể thoát ra được trạng thái hiện tại Điều gì là cần thiết để giải

Trang 19

Khi Pic16F877A bị kẹt khơng thể thốt ra khỏi tình trạng hiện tại thì WDT vẫn tiếptục đếm mà khơng bị bất kỳ điều gì ngăn cấm nĩ đếm tới FF và đến FF+1, vì vậy nĩ sẽreset làm cho chương trình phải khởi động lại từ đầu.

Để Sử Dụng WDT Chúng Ta Cần Làm 3 Việc

1.4 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.4.1 Bộ Nhớ Chương Trình

PIC16F877A cĩ bộ đếm chương trình dài 13 bits cĩ thể định địa chỉ cho khoảng khơng

1FFFh

0000h và vector ngắt được đặt tại địa chỉ 0004h

Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash, dunglượng bộ nhớ 8K word (1 word = 14 bit) và được phân thành nhiều trang (từ page0

Trang 20

đến page 3) Như vậy bộ nhớ chương trình có khả năng chứa được 8*1024 = 8192lệnh (vì một lệnh sau khi mã hóa sẽ có dung lượng 1 word (14 bit).

Để mã hóa được địa chỉ của 8K word bộ nhớ chương trình, bộ đếm chươngtrình có dung lượng 13 bit (PC<12:0>) Khi vi điều khiển được reset, bộ đếmchương trình sẽ chỉ đến địa chỉ 0000h (Reset vector) Khi có ngắt xảy ra, bộ đếmchương trình sẽ chỉ đến địa chỉ 0004h (Interrupt vector)

Bộ nhớ chương trình không bao gồm:

Bộ nhớ stack và không được địa chỉ hóa bởi bộ đếm chương trình Bộ nhớ stacksẽ được đề cập cụ thể trong phần sau

Trang 21

Purpose Register) nằm ở vùng địa chỉ còn lại trong bank Các thanh ghi SFR thườngxuyên được sử dụng (ví dụ như thanh ghi STATUS) sẽ được đặt ở tất cà các bank củabộ 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ủachương trình Sơ đồ cụ thể của bộ nhớ dữ liệu PIC16F877A như sau:

Trang 22

1.4.2.1Vùng Ram Đa Mục Đích

Vùng RAM đa mục đích có chiều rộng 8 bit và có thể được truy nhập trực tiếp hoặcgián tiếp thông qua thanh ghi FSR Vùng RAM đa mục đích được phân phối ở các Banknhư sau:

1.4.2.2 Vùng Thanh Ghi Chức Năng Đặc Biệt

Các thanh ghi chức năng đặc biệt được sử dụng bởi bộ xử lý trung tâm CPU hoặccác module ngoại vi để điều khiển hoạt động của VĐK Các thanh ghi chức năng đặc biệtnày được chia làm 2 loại: loại thứ nhất dùng cho các chức năng của CPU, loại thứ 2 dùngcho các chức năng ngoại vi

Trang 23

Bảng tóm tắt các thanh ghi chức năng đặc biệt

Trang 26

1.4.3 Các Thanh Ghi Chức Năng Đặc Biệt

1.4.3.1 Thanh Ghi Trạng Thái ( Status Register)

Thanh ghi trạng thái chứa các trạng thái số học của bộ ALU, trạng thái Reset và cácbit chọn Bank của bộ nhớ dữ liệu

Bit 7 IRP: Bit lựa chọn bank thanh ghi (Sử dụng cho định địa chỉ gián tiếp).

Each bank is 128 bytes

Bit 4 TO: Bit báo hiệu hoạt động của WDT.

1: Lệnh xóa WDT hoặc Sleep xảy ra

0: WDT hoạt động

Bit 3 PD: Bit báo công suất thấp ( Power down bit).

1: Sau khi nguồn tăng hoặc có lệnh xóa WDT

0: Thực thi lệnh Sleep

Bit 2 Z: bit Zero

1: Khi kết quả của một phép toán bằng 0

0: Khi kết quả của một phép toán khác 0

Trang 27

Bit 7 RBPU : Bit cho phép PORTB được kéo lên nguồn

1: Không cho phép PORTB kéo lên nguồn

0: Cho phép PORTB kéo lên nguồn

Bit 6 INTEDG: Bít lựa chọn cạnh tác động ngắt (INTERRUPT EDGE)

1: Ngắt sẽ được tác động bởi cạnh lên của chân RB0/INT

0: Ngắt sẽ được tác động bởi cạnh xuống của chân RB0/INT

Bit 5 T0CS: Bit lựa chọn nguồn xung Clock cho Timer 0

1: Xung Clock cung cấp bởi nguồn ngoài qua chân RA4/T0CKI

0: Xung Clock cung cấp bởi nguồn dao động nội

Bit 4 T0SE: Bit lựa chọn cạnh nào của xung clock tác động lên timer 0

1.4.3.3 Thanh Ghi Điều Khiển Ngắt INTCON (Interrupt Control Register)

Bit 7 GIE: Bit cho phép ngắt toàn cục

1: Cho phép ngắt toàn cục

0: Không cho phép ngắt

Bit 6 PEIE: Bit cho phép ngắt khi ghi vào EEPROM hoàn tất.

1: Cho phép ngắt ghi vào EEPROM hoạt động

Trang 28

0: Không cho phép ngắt ghi vào EEPROM hoạt động

Bit 5 TMR0IE: Bit cho phép ngắt khi timer 0 tràn

1: Cho phép ngắt khi timer 0 tràn

0: Không cho phép ngắt khi timer 0 tràn

Bit 4 INTE: Bit cho phép ngắt ngoại vi trên chân RB0/INT

1: Cho phép ngắt ngoại vi

0: Không cho phép ngắt ngoại vi

Bit 3 RBIE: Cho phép ngắt khi trạng thái PORTB thay đổi

0: Không có thay đổi xảy ra trên PORTB

1.4.3.4 Thanh Ghi Cho Phép Ngắt Ngoại Vi 1 (PIE1 Register)

Chú ý: Bit PEIE (INTCON<6>) phải được set để cho phép bất kì ngắt ngọai vi nào xảy ra.

Bit 7 PSPIE: Bit cho phép ngắt đọc/ ghi Port song song

Trang 29

1.4.3.5 Thanh Ghi Cờ Của Các Ngắt Ngoại Vi 1

Bit 7 PSPIF: Cờ ngắt đọc/ ghi của Port song song

1: Một hoạt động đọc/ghi đã diễn ra (phải xóa bằng phần mềm)

0: Không có hoạt động đọc/ghi

Bit 6 ADIF: Cờ báo ngắt chuyển đổi A/D

1: Một quá trình chuyển đổi A/D đã hoàn thành

0: Chuyển đổi A/D chưa hoàn tất

Bit 5 RCIF: Cờ báo ngắt nhận USART

1: Buffer nhận USART đầy

0: Buffer nhận USART trống.

Bit 4 TXIF: Cờ báo ngắt phát USART

1: Buffer truyền USART trống

0: Buffer truyền USART đầy

Bit 3 SSPIF: Cờ báo ngắt port nối tiếp đồng bộ (ngắt SSP)

1: Ngắt SSP xảy ra và phải được xóa bằng phần mềm trước khi trở lại

0: Khi các giá trị so sánh trong thanh ghi TMR1 không được thỏa

Chế độ PWM: Không sử dụng trong chế độ này

Bit 1 TMR2IF: Cờ báo ngắt xảy ra khi giá trị trong thanh ghi TMR2 bằng trong thanh ghi PR2

1: Giá trị trong thanh ghi TMR2 bằng thanh ghi PR2 (phải được xóa bằng

phần mềm)

0: Giá trị trong thanh ghi TMR2 chưa bằng thanh ghi PR2

Bit 0 TMR1IF: Cờ báo tràn thanh ghi TMR1

1: Thanh ghi TMR1 tràn (phải được xóa bắng phần mềm)

0: Thanh ghi TMR1 chưa tràn

Trang 30

1.4.3.6 Thanh Ghi Cho Phép Ngắt Ngoại Vi 2

Chú ý: Bit PEIE (INTCON<6>) phải được set để cho phép bất kì ngắt ngọai vi nào

xảy ra

Bit 7,5,2,1 Unimplemented : read as ‘0’

Bit 6 CMIE: Bit cho phép ngắt do bộ so sánh điện thế

1.4.3.7 Thanh Ghi Cờ Của Các Ngắt Ngoại Vi 2

Bit 7,5,2,1 Unimplemented : read as ‘0’

Bit 6 CMIF: Cờ báo ngắt do bộ so sánh

1: Ngõ vào bộ so sánh đã thay đổi (phải được xóa bằng phần mềm)

0: Ngõ vào bộ so sánh không thay đổi

Bit 4 EEIF: Cờ báo ngắt ghi EEPROM

1: Ghi EEPROM hoàn tất (phải được xóa bằng phần mềm)

0: Ghi EEPROM chưa hoàn tất.

Bit 3 BCLIF: Cờ báo ngắt do xung đột bus

1: Xung đột bus đã xuất hiện trong chế độ SSP

Trang 31

0: Khơng xảy ra thuật tốn so sánh

1.4.4 PCL và PCLATH:

Bộ đếm chương trình PC

(program counter) cĩ độ dài 13 bit, được

dùng để chứa địa chỉ của lệnh được thực

thi kế tiếp Byte thấp chứa trong thanh

ghi PCL cĩ thể đọc/ghi một cách trực tiếp

Các bit cao (bit 12:8) chứa trong thanh ghi

PCLATH, khơng thể đọc nhưng cĩ thể ghi

gián tiếp bằng cách sử dụng thanh ghi

PCLATH Khi cĩ bất kỳ sự Reset nào xảy

ra, các bit cao của bộ đếm chương trình PC

sẽ bị xĩa Xem thêm hai ví dụ sau đây để

hiểu thêm về hoạt động của bộ đếm chương

trình PC.

1.4.5 Ngăn Xếp Stack

Stack cho phép 8 lệnh gọi chương trình con và ngắt hoạt động Stack chứa địa chỉ

mà chương trình chính sẽ quay về thực hiện từ sau chương trình con hay ngắt Đối với

PIC16F877A Stack cĩ độ sâu 8 lớp

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 hat 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 qui trình định

trướ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á tri6 cất vào Stack lần thứ 2.

Cần chú ý là không có cờ hiệu nào cho biết trạng thái stack, do đó ta không biết được khi nào stack tràn Bên cạnh đó tập lệnh của vi điều khiển dòng PIC cũng không có lệnh POP hay PUSH, các thao tác với bộ nhớ stack sẽ hoàn toàn được điều khiển bởi CPU.

1.4.6 Địa Chỉ Trực Tiếp Và Địa Chỉ Gián Tiếp, Thanh Ghi INF Và Thanh Ghi FSR

Thanh ghi INF khơng phải là một thanh ghi vật lí Nĩ chứa giá trị của thanh ghi cĩ địa chỉ nằm ở thanh ghi FSR.

Ví dụ: Thanh ghi tại địa chỉ 10h cĩ giá trị 5Ah Nếu ta đưa 10h vào thanh ghi FSR thì khiđọc thanh ghi INF ta sẽ cĩ giá trị 5Ah

Trang 32

Data EEPROM và Flash Program Memory

EEPROM là bộ nhớ có khả năng đọc và ghi trong điều kiện làm việc bình thường(khi nguồn Vdd không đổi) Bộ nhớ này không được định địa chỉ trực tiếp trong bản đồ

bộ nhớ mà được định địa chỉ gián tiếp thông qua các thanh ghi chức năng đặc biệt:

Trang 33

1.5 I/O PORTS

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 quátrình 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.Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy theocách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượngchân trong mỗi cổng có thể khác nhau Bên cạnh đó, do vi điều khiển được tích hợpsẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuấtnhập thông thường, một số chân xuất nhập còn có thêm các chức năng khác để thểhiện sự tác động của các đặc tính ngoại vi nêu trên đối với thế giới bên ngoài Chứcnăng của từng chân xuất nhập trong mỗi cổng hoàn toàn có thể được xác lập vàđiều khiển được thông qua các thanh ghi SFR liên quan đến chân xuất nhập đó

Vi điều khiển PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB,

PORTC, PORTD và PORTE

1.5.1 Port A Và Thanh Ghi TRISA

Port A gồm 6 chân từ RA0 đến RA5

Việc ghi giá trị vào thanh ghi TRISA sẽ qui

định các chân của Port A là input hay output

(nếu là 1 thì là input, là output nếu là 0) Việc

đọc thanh ghi Port A sẽ đọc trạng thái của các

chân ở Port A Việc ghi giá trị vào thanh ghi

Port A sẽ thay đổi trạng thái của các chân

Port A Riêng chân RA4 được tích hợp chức

năng là chân cung cấp xung clock ngồi cho

Timer 0 (RA4/T0CKI) Những chân khác

của Port A được đa hợp với các chân ngõ vào

Analog của ADC và chân ngõ vào điện thế so

sánh của bộ so sánh Comparator Hoạt động

của những chân này được quy định bằng

những bit tương ứng trong các thanh ghi

ADCCON1 và CMCON1.

Khi các chân của Port A được sử dụng

làm ngõ vào Analog thì các bit trong thanh ghi

TRISA phải được set bằng 1.

Trang 34

Chức năng của các chân Port A

Trang 35

Cấu trúc bên trong và chức năng cụ thể của từng chân trong PORTA sẽ được

trình bày cụ thể trong Phụ lục 1

Các thanh ghi SFR liên quan đến PORTA bao gồm:

PORTA (địa chỉ 05h) : chứa giá trị các pin trong PORTA.

TRISA (địa chỉ 85h) : điều khiển xuất nhập.

CMCON (địa chỉ 9Ch) : thanh ghi điều khiển bộ so sánh.

CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp

ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển bộ ADC.

Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2

1.5.2 Port B Và Thanh Ghi TRISB

Port B gồm 8 chân từ chân RB0-RB7 Việc ghi giá trị vào thanh ghi TRISB sẽ quy định các chân của Port B là input hay output (1: input, 0: output) Việc đọc thanh ghi

PortB sẽ đọc trạng thái của các chân ở Port B Việc ghi giá trị vào thanh ghi Port B sẽ

thay đổi trạng thái của các chân Port B

Ba chân của Port B được đa hợp với chức năng In-Circuit Debugger và Low Voltage Programming function: RB3/PGM, RB6/PGC, RB7/PGD Mỗi chân Port B cĩ một transistor kéo lên Vdd Chức năng này hoạt động khi bit RBPU (Option <7>) được xĩa Chức năng này sẽ tự động được xĩa khi Port B được quy định là input.

Bốn chân của Port B từ RB7 đến RB4 cĩ chức năng ngắt khi trạng thái chân Port B thay đổi (Khi Port B được quy định là output thì chức năng này khơng hoạt động Giá trị

chân của PortB được so sánh với giá trị đã được lưu trước đĩ, khi cĩ sự sai lệch giữa 2

giá trị này ngắt sẽ xảy ra với cờ ngắt RBIF (INTCON<0) sẽ bật lên Ngắt cĩ thể làm cho

VĐK thốt khỏi trạng thái SLEEP

Bất cứ sự truy xuất nào trên PortB sẽ xĩa trạng thái sai lệch, kết thúc ngắt và cho phép xĩa cờ ngắt RBIF.

Bảng chức năng PortB

Trang 36

Các thanh ghi SFR liên quan đến PORTB bao gồm:

PORTB (địa chỉ 06h,106h) : chứa giá trị các pin trong PORTB

TRISB (địa chỉ 86h,186h) : điều khiển xuất nhập

OPTION_REG (địa chỉ 81h,181h) : điều khiển ngắt ngoại vi và bộ

Timer0.

1.5.3 Port C và Thanh Ghi TRISC

Port C gồm 8 chân từ chân RC0-RC7 Việc ghi giá trị vào thanh ghi TRISC sẽ quy

định các chân của Port C là input hay output (1: input, 0: output) Việc đọc thanh ghi

Port C sẽ đọc trạng thái của các chân ở Port C Việc ghi giá trị vào thanh ghi Port C sẽ

thay đổi trạng thái của các chân Port C.

Các chân của Port C được đa hợp với các chức năng ngoại vi

Khi các chức năng ngoại vi được cho phép ta cần quan tâm chặt chẽ tới giá trị các

bit của thanh ghi TRISC Một số chức năng ngoại vi sẽ ghi đè giá trị 0 lên các bit của thanh ghi TRISC và mặc định các chân này là output, ngồi ra một số chức năng ngoại vi

khác sẽ tự động mặc định một số chân là ngõ vào Do đĩ cần xem xét kĩ các tính năng

của các hàm ngoại vi để thiết lập giá trị các bit trong thanh ghi TRISC cho thích hợp

Trang 37

Bảng chức năng Port C

Các thanh ghi điều khiển liên quan đến PORTC:

PORTC (địa chỉ 07h) : chứa giá trị các pin trong PORTC

TRISC (địa chỉ 87h) : điều khiển xuất nhập.

1.5.4 Port D Và Thanh Ghi TRISD

Port D gồm 8 chân từ chân RD0-RD7 Bên cạnh chức năng là port xuất nhập, PortD cịn cĩ thể hoạt động như một cổng song song bằng cách set bit PSPMODE

(TRISD<4>), trong chế độ này buffer ngõ vào là TTL PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel Slave Port)

Bảng chức năng Port D

Các thanh ghi liên quan đến PORTD bao gồm:

Thanh ghi PORTD : chứa giá trị các pin trong PORTD.

Thanh ghi TRISD : điều khiển xuất nhập.

Thanh ghi TRISD : điều khiển xuất nhập PORTD và chuẩn giao tiếp PSP

1.5.4 Port E Và Thanh Ghi TRISE

Port E cĩ 3 chân RE0 /RD/AN5, RE1/WR /AN6, RE2 /CS/AN7, cĩ thể được cấu

hình như các chân xuất nhập thơng thường

Các chân của Port E cĩ thể trở thành các chân điều khiển cho cổng song song của VĐK khi bit PSPMODE (TRISE<4>) được set bằng 1 Trong chế độ này, người sử dụng phải đảm bảo các chân của PortE là ngõ vào

Ngồi ra các chân Port E cịn cĩ thể được cấu hình như các ngõ vào Analog, tại

chế độ này, khi đọc giá trị của các chân này sẽ cho ta giá trị là 0

Trang 38

Thanh ghi TRISE quy định chức năng xuất nhập của Port E ngay cả khi nĩ được sử dụng như các ngõ vào Analog Phải đảm bảo các chân này được quy định là ngõ vào

trong chế độ này

Bảng chức năng các chân Port E

Các thanh ghi liên quan đến PORTE bao gồm:

PORTE: chứa giá trị các chân trong PORTE.

TRISE: điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếp PSP.

ADCON1 : thanh ghi điều khiển khối ADC

Trang 39

2.1 Bộ Định Thời Timer 0

2.1.1 Giới thiệu

Module Timer 0 là một bộ định thời/ đếm 8 bit, có khả năng đọc và ghi được , cómột bộ tiền định tỉ lệ (Prescaler) 8 bit lập trình được, có bit lựa chọn nguồn xung clocktrong hoặc ngoài, có ngắt khi Timer tràn, có bit lựa chọn cạnh tác động của xung clockngoài

2.1.2 Hoạt Động Của Bộ Định Thời

Chế độ định thời được chọn bằng cách xóa bit T0CS (OPTION_REG <5>) Trong chế độ này thanh ghi TMR0 sẽ tăng lên sau mỗi chu kì (prescaler không có tác dụng hoặc tỉ lệ 1 :1) Nếu thanh ghi TMR0 được ghi một giá trị mới, giá trị trong thanh ghi này

sẽ không tăng trong 2 chu kỳ lệnh kế tiếp.Vì vậy để khắc phục hiện tượng này chúng ta

có thể hiệu chỉnh giá trị nhập vào thanh ghi TMR0

Chế độ đếm được lựa chọn bằng cách set bit T0CS (OPTION_REG <5>) Trong chế độ đếm, thanh ghi TMR0 sẽ tăng lên khi có cạnh lên hoặc cạnh xuống xuất hiện trên chân T0CKL (cạnh lên hoặc cạnh xuống được lựa chọn bởi bit T0SE

(OPTION_REG<4>, xóa bit T0SE sẽ lựa chọn cạnh lên).

Trang 40

2.1.3 Ngắt Timer 0

Ngắt Timer 0 được tạo ra khi thanh ghi TMR0 tràn từ 0FFh đến 00h Khi xảy ra tràn, cờ T0IF(INTCON<2>) được bật lên Ngắt cĩ thể được ngăn chặn bằng cách xĩa bit T0IE (INTCON<5>) Cờ ngắt T0IF phải được xĩa bằng phần mềm truớc khi thốt

khỏi chương trình ngắt trở về chương trình chính

Lưu ý : Ngắt Timer 0 khơng làm VĐK thốt khỏi trạng thái ngủ.

2.1.4 Sử Dụng Timer 0 Với Nguồn Xung Clock Ngồi.

Khi bộ tiền định tỉ lệ khơng được sử dụng, ngõ vào xung clock ngoại cũng giốngnhư ngõ ra bộ tiền định tỉ lệ Nguồn xung clock ngoại sẽ được đồng bộ với xung clocknội bằng cách: nĩ sẽ được lấy mẫu tại chu kỳ Q2 và Q4 của xung clock nội Do đĩ,

T0CKI phải ở mức cao ít nhất 2 Tosc và ở mức thấp ít nhất cũng là 2 Tosc.

2.1.5 Bộ Tiền Định Tỉ Lệ 8 Bit Của Timer 0

Bộ đếm 8 bit được sử dụng như bộ tiền định tỉ lệ cho Timer 0 hoặc bộ hậu định tỉ lệ cho WDT Bit PSA (OPTION_REG<3>) sẽ lựa chọn bộ đếm này sẽ sử dụng cho

Timer0 hay WDT, các bit PS2, PS1, PS0 sẽ xác định tỉ lệ của bộ đếm.

Các thanh ghi điều khiển liên quan đến Timer0 bao gồm:

TMR0 (địa chỉ 01h, 101h) : chứa giá trị đếm của Timer0.

INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE và PEIE).

OPTION_REG (địa chỉ 81h, 181h): điều khiển prescaler.

Ngày đăng: 18/02/2014, 13:37

HÌNH ẢNH LIÊN QUAN

Việc lựa chọn tụ trong dao động thạch anh dựa vào bảng sau: - đề tài kit thực tập vi điều khiển pic
i ệc lựa chọn tụ trong dao động thạch anh dựa vào bảng sau: (Trang 15)
Bảng tĩm tắt các thanh ghi chức năng đặc biệt - đề tài kit thực tập vi điều khiển pic
Bảng t ĩm tắt các thanh ghi chức năng đặc biệt (Trang 23)
Bảng chức năng PortB - đề tài kit thực tập vi điều khiển pic
Bảng ch ức năng PortB (Trang 35)
Bảng chức năng Por tC - đề tài kit thực tập vi điều khiển pic
Bảng ch ức năng Por tC (Trang 37)
Bảng chức năng PortD - đề tài kit thực tập vi điều khiển pic
Bảng ch ức năng PortD (Trang 37)
Bảng chức năng các chân PortE - đề tài kit thực tập vi điều khiển pic
Bảng ch ức năng các chân PortE (Trang 38)
- Cấu hình cho module CCP hoạt động trong chế độ PWM. - đề tài kit thực tập vi điều khiển pic
u hình cho module CCP hoạt động trong chế độ PWM (Trang 48)
Bit 3:0 PCFG3:PCFG0: Các bit điều khiển cấu hình các chân ADC - đề tài kit thực tập vi điều khiển pic
it 3:0 PCFG3:PCFG0: Các bit điều khiển cấu hình các chân ADC (Trang 52)
- Cấu hình cho các chân ngõ vào/ điện thế chuẩn và I/O số (ADCON1) -Lựa chọn kênh ngõ vào A/D (ADCON0) - đề tài kit thực tập vi điều khiển pic
u hình cho các chân ngõ vào/ điện thế chuẩn và I/O số (ADCON1) -Lựa chọn kênh ngõ vào A/D (ADCON0) (Trang 53)
Sau khi module ADC đã được cấu hình như mong muốn, chúng ta phải lựa chọn kênh chuyển đổi A/D trước khi chuyển đổi ADC xảy ra - đề tài kit thực tập vi điều khiển pic
au khi module ADC đã được cấu hình như mong muốn, chúng ta phải lựa chọn kênh chuyển đổi A/D trước khi chuyển đổi ADC xảy ra (Trang 53)
4.6 Cấu Hình Các Chân Analog - đề tài kit thực tập vi điều khiển pic
4.6 Cấu Hình Các Chân Analog (Trang 55)
Bảng sau đây chỉ ra mơi liên hệ giữa TAD và tần số của thiết bị: - đề tài kit thực tập vi điều khiển pic
Bảng sau đây chỉ ra mơi liên hệ giữa TAD và tần số của thiết bị: (Trang 55)
Khi sử dụng nguồn tham chiếu ngoại, module so sánh cĩ thể được cấu hình hoạt động từ một hoặc 2 nguồn so sánh khác nhau - đề tài kit thực tập vi điều khiển pic
hi sử dụng nguồn tham chiếu ngoại, module so sánh cĩ thể được cấu hình hoạt động từ một hoặc 2 nguồn so sánh khác nhau (Trang 59)
Sơ đồ vị trí các led được trình bày như hình bên: Các điện trở 330Ω là các điện trở bên ngồi được kết nối để giới hạn dịng điện qua led nếu led 7 đoạn được nối với nguồn 5V - đề tài kit thực tập vi điều khiển pic
Sơ đồ v ị trí các led được trình bày như hình bên: Các điện trở 330Ω là các điện trở bên ngồi được kết nối để giới hạn dịng điện qua led nếu led 7 đoạn được nối với nguồn 5V (Trang 115)
Bảng mã hiển thị led 7 đoạn: - đề tài kit thực tập vi điều khiển pic
Bảng m ã hiển thị led 7 đoạn: (Trang 116)
Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn cĩ Anode chung (các led đơn sáng ở mức 0) - đề tài kit thực tập vi điều khiển pic
Bảng m ã hiển thị led 7 đoạn dành cho led 7 đoạn cĩ Anode chung (các led đơn sáng ở mức 0) (Trang 116)
2.3 Giao Tiếp Vi Điều Khiển Với Nhiều Led 7 Đoạn: - đề tài kit thực tập vi điều khiển pic
2.3 Giao Tiếp Vi Điều Khiển Với Nhiều Led 7 Đoạn: (Trang 117)
Mắt người cĩ đặc điểm sinh lí là chỉ thu nhận 24 hình/giây để tổng hợp các hình ảnh về thế giới xung quanh - đề tài kit thực tập vi điều khiển pic
t người cĩ đặc điểm sinh lí là chỉ thu nhận 24 hình/giây để tổng hợp các hình ảnh về thế giới xung quanh (Trang 117)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w