SƠ ĐỒ CHÂN VI ĐIỀU KHIỂN PIC16F877A MỘT VÀI THÔNG SỐ ...
Có thể bạn quan tâm
- Trang chủ >
- Kỹ Thuật - Công Nghệ >
- Điện - Điện tử >
Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.29 MB, 173 trang )
CHƯƠNG 2 VI ĐIỀU KHIỂN PIC16F877A
2.1 SƠ ĐỒ CHÂN VI ĐIỀU KHIỂN PIC16F877A
Hình 2.1 Vi điều khiển PIC16F877APIC16F874A và các dạng sơ đồ chân2.2 MỘT VÀI THÔNG SỐ 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 với một chu kì lệnh là 200ns. Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte. Số PORT IO là 5 với 33pin IO. Các đặc tính ngoại vi bao gồmcác khối chức năng sau:Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit. Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựa vàoxung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep. Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler.Hai bộ Captureso sánhđiều chế độ rông xung. Các chuẩn giao tiếp nối tiếp SSP Synchronous Serial Port, SPI và I2C.Chuẩn giao tiếp nối tiếp USART với 9 bit đòa chỉ. Cổng giao tiếp song song PSP Parallel Slave Port với các chân điều khiển RD, WR,CS ở bên ngoài. Các đặc tính Analog:8 kênh chuyển đổi ADC 10 bit. Hai bộ so sánh.Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:Bộ nhớ flash với khả năng ghi xóa được 100.000 lần. Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần.Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm. Khả năng tự nạp chương trình với sự điều khiển của phần mềm.Nạp được 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. Chức năng bảo mật mã chương trình.Chế độ Sleep. Có thể hoạt động với nhiều dạng Oscillator khác nhau.2.3 SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN PIC16F877A
Hình 2.2 Sơ đồ khối vi điều khiển PIC16F877A.2.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 Programmemory và bộ nhớ dữ liệu Data Memory. 2.4.1 BỘ NHỚ CHƯƠNG TRÌNHBộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash, dung lượng bộnhớ 8K word 1 word = 14 bit 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 81024 = 8192 lệnh vì một lệnhsau 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ương trình códung lượng 13 bit PC12:0.Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến đòa chỉ 0000h Resetvector. Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến đòa chỉ 0004h Interruptvector.Bộ nhớ chương trình không bao gồm bộ nhớ stack và không được đòa chỉ hóa bởibộ đếm chương trình. Bộ nhớ stack sẽ được đề cập cụ thể trong phần sau.Hình 2.3 Bộ nhớ chương trình PIC16F877A2.4.2 BỘ NHỚ DỮ LIỆU Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank. Đối vớiPIC16F877A bộ nhớ dữ liệu được chia ra làm 4 bank. Mỗi bank có dung lượng 128 byte, bao gồm các thanh ghi có chức năng đặc biệt SFG Special 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 ví dụ như thanhghi STATUS 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ệuPIC16F877A như sau:Hình 2.4 Sơ đồ bộ nhớ dữ liệu PIC16F877A2.4.2.1 THANH GHI CHỨC NĂNG ĐẶC BIỆT SFR Đây là các thanh ghi được sử dụng bởi CPU hoặc được dùng để thiết lập và điều khiển cáckhối chức năng được tích hợp bên trong vi điều khiển. Có thể phân thanh ghi SFR làm hai lọai: thanh ghi SFR liên quan đến các chức năng bên trong CPU và thanh ghi SRF dùng đểthiết lập và điều khiển các khối chức năng bên ngoài ví dụ như ADC, PWM, …. Phần này sẽ đề cập đến các thanh ghi liên quan đến các chức năng bên trong. Các thanh ghi dùng để thiếtlập và điều khiển các khối chức năng sẽ được nhắc đến khi ta đề cập đến các khối chức năng đó. Chi tiết về các thanh ghi SFR sẽ được liệt kê cụ thể trong bảng phụ lục 2.Thanh ghi STATUS 03h, 83h, 103h, 183h:thanh ghi chứa kết quả thực hiện phéptoá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 0Bh, 8Bh,10Bh, 18Bh:thanh ghi cho phép đọc và ghi, chứa cácbit điều khiển và các bit cờ hiệu khi timer0 bò tràn, ngắt ngoại vi RB0INT và ngắt interrput- on-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ứcnăng ngoại vi.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ăngCCP2, 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ắtnà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.2.4.2.2 THANH GHI MỤC ĐÍCH CHUNG GPR
Các thanh ghi này có thể được truy xuất trực tiếp hoặc gián tiếp thông qua thanh ghi FSG File Select Register. Đây là các thanh ghi dữ liệu thông thường, người sử dụng có thểtùy theo mục đích chương trình mà có thể dùng các thanh ghi này để chứa các biến số, hằng số, kết quả hoặc các tham số phục vụ cho chương trình.2.4.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 ralà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ệnhPOP 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.2.5 CÁC CỔNG XUẤT NHẬP CỦA PIC16F877A
Cổng xuất nhập IO 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 IO pin, tùy theo cá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ượng chân trong mỗicổng có thể khác nhau. Bên cạnh đó, do vi điều khiển được tích hợp sẵ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ất nhập thông thường, một số chânxuấ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ức năng của từng chân xuất nhập trong mỗi cổng hoàntoà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. Cấu trúc và chức năng của từng cổng xuất nhập sẽ được đề cập cụ thểtrong phần sau. 2.5.1 PORTAPORTA RPA bao gồm 6 IO pin. Đây là các chân “hai chiều” bidirectional pin, nghóa là có thể xuất và nhập được. Chức năng IO này được điều khiển bởi thanh ghi TRISAđòa chỉ 85h. Muốn xác lập chức năng của một chân trong PORTA là input, ta “set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốn xác lập chức năngcủa một chân trong PORTA là output, ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA. Thao tác này hoàn toàn tương tự đối với các PORT và các thanh ghi điềukhiển tương ứng TRIS đối với PORTA là TRISA, đối với PORTB là TRISB, đối với PORTC là TRISC, đối với PORTD là TRISD vàđối với PORTE là TRISE. Bên cạnh đó PORTA cònlà ngõ ra của bộ ADC, bộ so sánh, ngõ vào analog ngõ vào xung clock của Timer0 và ngõ vào của bộ giao tiếp MSSP Master Synchronous Serial Port. Đặc tính này sẽ được trình bàycụ thể trong phần sau.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. 2.5.2 PORTBPORTB RPB gồm 8 pin IO. Thanh ghi điều khiển xuất nhập tương ứng là TRISB. Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình nạp chương trình chovi điều khiển với các chế độ nạp khác nhau. PORTB còn liên quan đến ngắt ngoại vi và bộ Timer0. PORTB còn được tích hợp chức năng điện trở kéo lên được điều khiển bởi chươngtrình.Cấu trúc bên trong và chức năng cụ thể của từng chân trong PORTB sẽ được trình bày cụ thể trong Phụ lục 1.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.Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2. 2.5.3 PORTCPORTC RPC gồm 8 pin IO. Thanh ghi điều khiển xuất nhập tương ứng là TRISC. Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh, bộ Timer1, bộ PWM vàcác chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART. Cấu trúc bên trong và chức năng cụ thể của từng chân trong PORTC sẽ được trình bàycụ thể trong Phụ lục 1. 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 PORTCTRISC đòa chỉ 87h : điều khiển xuất nhập.Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2. 2.5.4 PORTDPORTD RPD gồm 8 chân IO, thanh ghi điều khiển xuất nhập tương ứng là TRISD. PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP Parallel Slave Port.Cấu trúc bên trong và chức năng cụ thể của từng chân trong PORTD sẽ được trình bày cụ thể trong Phụ lục 1.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 TRISE : điều khiển xuất nhập PORTE và chuẩn giao tiếp PSP.Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2.2.5.5 PORTE
PORTE RPE gồm 3 chân IO. Thanh ghi điều khiển xuất nhập tương ứng là TRISE. Các chân của PORTE có ngõ vào analog. Bên cạnh đó PORTE còn là các chân điều khiểncủa chuẩn giao tiếp PSP. Cấu trúc bên trong và chức năng cụ thể của từng chân trong PORTE sẽ được trình bàycụ thể trong Phụ lục 1. 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.Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2. 2.6 TIMER 0Đây là một trong ba bộ đếm 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ố prescaler 8 bit. Cấu trúc của Timer0 chophé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 Timer0 bò tràn. Bit TMR0IE INTCON5 là bit điều khiển của Timer0.TMR0IE=1 cho phép ngắt Timer0 tác động, TMR0IF= 0 không cho phép ngắt Timer0 tác động. Sơ đồ khối của Timer0 như sau:Hình 2.5 Sơ đồ khối của Timer0.Muốn Timer0 hoạt động ở chế độ Timer ta clear bit TOSC OPTION_REG5, khi đó giá trò thanh ghi TMR0 sẽ tăng theo từng chu kì xung đồng hồ tần số vào Timer0 bằng ¼tần số oscillator. Khi giá trò thanh ghi TMR0 từ FFh trở về 00h, ngắt Timer0 sẽ xuất hiện. Thanh ghi TMR0 cho phép ghi và xóa được giúp ta ấn đònh thời điểm ngắt Timer0 xuất hiệnmột cách linh động.Muốn Timer0 hoạt động ở chế độ counter ta set bit TOSC OPTION_REG5. Khi đó xung tác động lên bộ đếm được lấy từ chân RA4TOCK1. Bit TOSE OPTION_REG4cho phép lựa chọn cạnh tác động vào bột đếm. Cạnh tác động sẽ là cạnh lên nếu TOSE=0 và cạnh tác động sẽ là cạnh xuống nếu TOSE=1.Khi thanh ghi TMR0 bò tràn, bit TMR0IF INTCON2 sẽ được set. Đây chính là cờ ngắt của Timer0. Cờ ngắt này phải được xóa bằng chương trình trước khi bộ đếm bắt đầuthực hiện lại quá trình đếm. Ngắt Timer0 không thể “đánh thức” vi điều khiển từ chế độ sleep.Bộ chia tần số prescaler được chia sẻ giữa Timer0 và WDT Watchdog Timer. Điều đó có nghóa là nếu prescaler được sử dụng cho Timer0 thì WDT sẽ không có được hỗ trợ củaprescaler và ngược lại. Prescaler được điều khiển bởi thanh ghi OPTION_REG. Bit PSA OPTION_REG3 xác đònh đối tượng tác động của prescaler. Các bit PS2:PS0OPTION_REG2:0 xác đònh tỉ số chia tần số của prescaler. Xem lại thanh ghi OPTION_REG để xác đònh lại một cách chi tiết về các bit điều khiển trên.Các lệnh tác động lên giá trò thanh ghi TMR0 sẽ xóa chế độ hoạt động của prescaler. Khi đối tượng tác động là Timer0, tác động lên giá trò thanh ghi TMR0 sẽ xóa prescalernhưng không làm thay đổi đối tượng tác động của prescaler. Khi đối tượng tác động là WDT, lệnh CLRWDT sẽ xóa prescaler, đồng thời prescaler sẽ ngưng tác vụ hỗ trợ cho WDT.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. Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2.2.7 TIMER1
Xem ThêmTài liệu liên quan
- Báo cáo Vi điều khiển.pdf
- 173
- 2,299
- 17
Tài liệu bạn tìm kiếm đã sẵn sàng tải về
(1.29 MB) - Báo cáo Vi điều khiển.pdf-173 (trang) Tải bản đầy đủ ngay ×Từ khóa » Sơ đồ Chân Pic 16f877a
-
Giới Thiệu Vi điều Khiển PIC 16F877A - Điện Tử Việt
-
Giới Thiệu Về PIC 16F877A - ĐIỆN TỬ TƯƠNG LAI
-
Giới Thiệu Vi điều Khiển PIC16F877A - Blog Mecsu
-
Giới Thiệu Về PIC 16F877A
-
Giáo Trình Vi điều Khiển PIC16F877A Và CCS - Điện Tử Hello
-
CÁC DẠNG SƠ ĐỒ CHÂN SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN ... - 123doc
-
PIC16F877A I/P DIP40
-
Vi Điều Khiển Pic16F877A Là Gì, Giới Thiệu Về Pic 16F877A
-
Pic16F877A, Vi điều Khiển Đọc Mã Phím TTP229 Hiển Thị LCD1602
-
[PDF] ĐỒ ÁN ĐIỆN TỬ CÔNG SUẤT - PDFCOFFEE.COM
-
Cau Truc Phan Cung Pic16 F8xx - SlideShare