Sơ lược về các chân của PIC16F877A:

Một phần của tài liệu Thiết kế và thi công cửa tự động có hiển thị số người ra vào (Trang 37)

SVTH : Nguyễn Ngọc Thanh Nguyên MSSV : 20762069 Trang 33 Hình 28 : Sơđồ 16F877A

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ất nhậ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.

Hình 29 : Hình dáng thực tế của 16F877A

SVTH : Nguyễn Ngọc Thanh Nguyên MSSV : 20762069 Trang 34

3/ Sơ đồ khối PIC16F877A :

Hình 30

SVTH : Nguyễn Ngọc Thanh Nguyên MSSV : 20762069 Trang 35

4/ Bộ nhớ dữ liệu:

Bảng đồ cấu trúc bộ nhớ dữ liệu P16F877A

Hình 31

SVTH : Nguyễn Ngọc Thanh Nguyên MSSV : 20762069 Trang 36

5/ Các thanh ghi chức năng đặc biệt:

+ 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ác bit 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). 1 = Bank 2, 3 (100h – 1FFh )

0 = Bank 0, 1 (00h – FFh)

Bit 6 – 5 RP1 – RP0: Bit lựa chọn bank thanh ghi (Dùng trong định điạ chỉ trực tiếp). 11 = Bank 3 ( 180h – 1FFh)

10 = Bank 2 (100h – 17Fh) 01 = Bank 1 (80h – FFh) 00 = Bank 0 (00h – 7Fh) 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 tốn bằng 0. 0: Khi kết quả của một phép tốn khác 0. Bit 1 DC: Digit Carry

1: Cĩ một số nhớđược sinh ra bởi phép cộng hoặc phép trừ 4 bit thấp. 0: Khơng cĩ số nhớ sinh ra.

Bit 0 C: cờ nhớ (Carry Flag)

1: Cĩ một số nhớ sinh ra bởi phép cộng hoặc phép trừ. 0: Khơng cĩ số nhớ sinh ra.

+ Thanh ghi tùy chọn (Option _Reg Register):

Thanh ghi tùy chọn chứa các bit điều khiển để cấu hình cho các chứa năng như: ngắt ngồi, Timer 0 chức năng kéo lên Vdd của các chân Port B, và thời gian chờ của WDT

SVTH : Nguyễn Ngọc Thanh Nguyên MSSV : 20762069 Trang 37 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: Bit 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 ngồi qua chân RA4/T0CKI 0: Xung Clock cung cấp bởi nguồn dao động nội. (adsbygoogle = window.adsbygoogle || []).push({});

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

0: Cạnh lên

Bit 3 PSA: Bit quyết định tốc độđếm PS2:PS0 sẽ tác động lên Timer 0 hay WDT 1: Tốc độđếm PS2:PS0 sẽ tác động lên WDT

0: Tốc độđếm PS2:PS0 sẽ tác động lên Timer 0

Bit 2-0 PS2:PS0: Dùng để lựa chọn tốc độđếm của timer hay WDT

+ Thanh ghi điều khiển ngắt INTCON (Interrupt Control Register):

Bit 7 GIE: Bit cho phép ngắt tồn cục 1: Cho phép ngắt tồ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 hồn tất. 1: Cho phép ngắt ghi vào EEPROM hoạt động

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 1: Cho phép

0: Khơng cho phép

Bit 2 TMR0IF: Cờ báo ngắt Timer 0 1: Timer 0 tràn

0: Timer 0 chưa tràn

Bit 1 INTF: Cờ báo ngắt ngồi RB0/INT 1: Cĩ ngắt

0: Khơng xảy ra ngắt.

SVTH : Nguyễn Ngọc Thanh Nguyên MSSV : 20762069 Trang 38 1: Cĩ thay đổi

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

+ 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 1: Cho phép

0: Khơng cho phép

Bit 6 ADIE: Bit cho phép ngắt chuyển đổi A/D 1: Cho phép

0: Khơng cho phép

Bit 5 RCIE: Bit cho phép ngắt nhận USART 1: Cho phép

0: Khơng cho phép

Bit 4 TXIE: Bit cho phép ngắt truyền USART 1: Cho phép (adsbygoogle = window.adsbygoogle || []).push({});

0: Khơng cho phép

Bit 3 SSPIE: Bit cho phép ngắt Port nối tiếp đồng bộ 1: Cho phép

0: Khơng cho phép

Bit 2 CCP1IE: Bit cho phép ngắt module CCP1 1: Cho phép ngắt

0: Khơng cho phép

Bit 1 TMR2IE: Bit cho phép ngắt xảy ra khi TMR2 bằng thanh ghi PR2 1: Cho phép

0: Khơng cho phép

Bit 0 TMR1IE: Bit cho phép ngắt tràn TMR1 1: Cho phép

0: Khơng cho phép

+ 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

SVTH : Nguyễn Ngọc Thanh Nguyên MSSV : 20762069 Trang 39 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 đã hồn thành 0: Chuyển đổi A/D chưa hồ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 chương trình chính từ chương trình phục vụ ngắt.

0: Khơng cĩ ngắt xảy ra

Bit 2 CCP1IF: Cờ báo ngắt CCP1

Chế độ Capture (Bắt giữ):

1: Một Capture thanh ghi TMR1 xảy ra( phải được xĩa bằng phần mềm) 0: Khơng xảy ra Capture thanh ghi TMR1

Chế độ Compare ( So sánh):

1: Khi các giá trị so sánh trong thanh ghi TMR1 được thỏa ( phải được xĩa bằng phần mềm)

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 (adsbygoogle = window.adsbygoogle || []).push({});

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

+ 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: Cho phép

0: Khơng cho phép

Bit 4 EEIE: Bit cho phép ngắt do ghi EEPROM 1: Cho phép

SVTH : Nguyễn Ngọc Thanh Nguyên MSSV : 20762069 Trang 40 0: Khơng cho phép

Bit 3 BCLIE: Bit cho phép ngắt do xung đột bus 1: Cho phép

0: Khơng cho phép

Bit 0 CCP2IE: Cho phép ngắt module CCP2 1: Cho phép

0: Khơng cho phép

+ 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 hồn tất (phải được xĩa bằng phần mềm) 0: Ghi EEPROM chưa hồ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 0: Khơng cĩ xung đột bus xảy ra

Bit 0 CCP2IF: Cờ báo ngắt CPP2

Chế độ Capture (bắt giữ):

1: Một sự bắt giữ thanh ghi TMR1 đã xảy ra (phải được xĩa bằng phần mềm)

0: Khơng xảy ra Capture thanh ghi TMR1

Chế độ Compare (So sánh):

1: Một thuật tốn so sánh trong thanh ghi TMR1 xảy ra (phải được xĩa bằng phần mềm)

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

Một phần của tài liệu Thiết kế và thi công cửa tự động có hiển thị số người ra vào (Trang 37)