THÔNG TIN VỀ THỔ NHĨ KỲ PIC16F877

THÔNG TIN VỀ THỔ NHĨ KỲ PIC16F877


Thông tin chi tiết về các chương trình mẫu và biểu đồ luồng PIC16F877
Kiến trúc
PIC 16F87X và 16F8X đầu tiên của tất cả các thừa hưởng các đặc tính của gia đình PIC 16CXX. Kiến trúc Harvard được sử dụng trong PIC 16CXX. Trong kiến ​​trúc Von Neuman, truy cập vào bộ nhớ chương trình và bộ nhớ dữ liệu được thực hiện khác nhau trong kiến ​​trúc này, trong khi dữ liệu và bộ nhớ chương trình có thể được truy cập theo cùng một cách. Databus rộng 8 bit. Đồng thời, khi bộ nhớ dữ liệu được truy cập theo cách này rộng 8 bit, bộ nhớ chương trình được truy cập bằng đường dẫn chương trình hoặc một đường dẫn địa chỉ rộng 14 bit khác (bus chương trình / bus địa chỉ).
Các mã lệnh (opcode) cho PIC 16F87X và PIC 16F84 cho điều này là 14 bit. Mỗi địa chỉ của bộ nhớ chương trình 14 bit tương ứng với một mã lệnh (Mã lệnh / Lời chỉ dẫn). Mỗi lệnh do đó được truy cập trong một chu trình và được nạp vào thanh ghi lệnh. Bộ ghi lệnh là một thanh ghi được CPU sử dụng, và tất cả các lệnh trừ các lệnh nhánh được thực hiện trên cùng một chu kỳ. Trong khi đó, bộ đếm chương trình, PC (Bộ đếm chương trình) là số tăng. Các lệnh phân nhánh hoặc chuyển hướng được thực hiện trong hai chu kỳ liên tiếp và PC của chương trình được tăng lên hai.
PIC16F877-center-to I-đơn vị
Một trong những tiểu đơn vị quan trọng nhất của đơn vị xử lý trung tâm (CPU) là đơn vị logic số học được gọi là ALU (Đơn vị logic số học). Nhiệm vụ của ALU là thực hiện các phép toán số học hoặc logic trên dữ liệu được gửi đến nó. Một trong ALU có hai đầu vào chính, W (Working Register) là tên được đặt cho thanh ghi. Hai dữ liệu (các toán tử) đến ALU có thể được chọn và gỡ bỏ. Nó có thể thực hiện các phép toán logic khác nhau (như, và, hoặc, xor).
PIC16F877-alu-matic-hoạt động
Sổ đăng ký được sử dụng phổ biến nhất trong bộ vi xử lý là "đăng ký làm việc". Điều này được gọi là W cho ngắn. W thực hiện hai hàm cùng nhau trong các phép toán số học và logic. Trước khi hoạt động, nó chứa một trong các toán hạng. Sau khi quá trình lưu trữ các kết quả xử lý, PIC 16F8X và 16F87x loạt các vi điều khiển, trên phần cuối của lệnh 1 hoặc số 0 (d), kết quả của W hoặc được báo cáo với bộ vi xử lý để giữ máy ghi âm khác.
PIC 16F877 và 16F876 có kích thước bộ nhớ 8 Kwords. Bộ nhớ chương trình nằm trong chip. Bộ nhớ của PIC 16F84 có kích thước 1Kword. Các vi điều khiển vi xử lý PIC 16F84 và 16F87X có thể xử lý sổ đăng ký và bộ nhớ dữ liệu trực tiếp, gián tiếp và tương đối. PIC16F87X
Họ vi điều khiển mang các tính năng cơ bản sau đây. 
· Bộ hướng dẫn giảm CPU 
· Dựa trên RISC. 
· Có 35 lệnh để tìm hiểu và mỗi lệnh dài 14 bit. 
Hướng dẫn phân nhánh được áp dụng trong hai chu kỳ, trong khi các lệnh khác được thực hiện trong một chu kỳ. 
Tốc độ xử lý là DC20MHz ở 16F877. (Một lệnh tại 16F877 chạy ở tốc độ DC200ns.) 
· Data bus (databus) là 8 bit. 
· Có 32 thanh ghi chức năng đặc biệt được gọi là các thanh ghi chức năng đặc biệt (SFR), trên RAM tĩnh.
Tối đa 8 bộ nhớ flash Kword có thể được lập trình 1 triệu lần. 
· Tăng bộ nhớ dữ liệu (RAM) lên đến 368 byte 
· Bộ nhớ dữ liệu EEPROM tăng lên 256 byte. 
· Pin đầu ra tương thích với PIC 16C73B / 74B / 76 và 77. 
· Có thể cắt từ 14 nguồn. 
· Độ sâu ngăn xếp là 8. 
· Có thể thực hiện trực tiếp, gián tiếp và địa chỉ tương đối. 
· Poweron Reset · Powerup 
Timer 
· Khởi động Oscillator Timer 
· Watchdog Timer · On-board RC oscillator 
· Khả năng cung cấp mã an toàn với chương trình 
· In-line Debugger Mô-đun có thể được sử dụng để gỡ lỗi)
· Lập trình điện áp thấp 
· flash bộ nhớ chương trình ROM (EEPROM đặc trưng bộ nhớ chương trình) 
· Tiết kiệm năng lượng, ngủ Chế độ SLEEP 
· dao động tùy chọn tính năng 
· công suất thấp, tốc độ cao công nghệ EEPROM cmosflash đạt 
· thiết kế hoàn toàn tĩnh 
· 2 pita với tính năng lập trình 
· một mình 5V đầu vào, có thể lập trình nối tiếp trong mạch tính năng 
· bộ nhớ chương trình xử lý đọc / ghi khả năng truy cập 
· 2,0 V - 5,0 V khác nhau, từ phạm vi hoạt động rộng 
· 25 mA nguồn hiện 
gỡ lỗi · nội mạch với hai pin 
· nhiệt độ rộng khả năng làm việc trong phạm vi
· Có khả năng hoạt động ở công suất thấp trong khi các thuộc tính môi trường có thể được liệt kê như sau: 
· TMR0: 8-bit hẹn giờ, 8-bit önbölücül các 
· TMR1: Önbölücül, 16-bit hẹn giờ, chế độ ngủ, bộ đếm thời gian tinh thể bên ngoài từ sự kiểm soát có thể được tăng lên.
· TMR2: 8-bit hẹn giờ, cả önbölüc sonbölüc liên tục 
• Hai Capture / so sánh / PWM Module 
· 10-bit đa kênh A / D chuyển đổi 
· đồng bộ cổng nối tiếp (SSP), SPI (Master mode) và I2C (Master Slave ) với 
· Cảng Parallel Slave, chiều rộng 8-bit và RD ngoài, WR, CS điều khiển 
· USART / SCI, địa chỉ 9-bit nên bắt 
· Đặt lại BOR (Brown Out Reset) tính năng
Sự khác biệt từ các bộ vi điều khiển PIC 16F84 và PIC 16F87X được hiển thị trong bảng bên dưới.
PIC16F84-pic16f87x-vi điều khiển-gia đình-3
PIC16F84-pic16f87x-vi điều khiển-gia đình-4
PIC16F84-pic16f87x-vi điều khiển-gia đình-5
PIC16F84-pic16f87x-vi điều khiển-gia đình-6
I: Đầu vào O: Đầu ra I / O: Đầu vào /
TTL: TTL Input:
Không được sử dụng ST: Schimitt Trigger hoạt động như đầu vào.
1. Bộ đệm này chạy như đầu vào Kích hoạt Schimitt khi nó được thiết lập như là cắt bên ngoài. 
2. Bộ đệm này chạy dưới dạng đầu vào Kích hoạt Schimitt trong chế độ lập trình nối tiếp. 
3. Bộ đệm này hoạt động như đầu vào Trigger Schimitt trong chế độ dao động RC và mạch CMOS.
chức năng CPU cụ thể (bit cấu hình)
trong định nghĩa cấu hình của cấu hình của mỗi từ chip (14 bit word) của các bit trong (013. 
bit) làm thế nào để sử dụng có thể được lựa chọn cho chương trình. Nếu bạn không thực hiện bất kỳ thay đổi nào đối với các bit cấu hình, nó phụ thuộc vào các điều kiện trước được chỉ định bởi nhà sản xuất.
Các bit cấu hình của PIC 16F877 được liệt kê dưới đây với các chức năng của chúng.
· Power-on reset (POR) 
· powerup timer (PWRT A) 
· Dao động khởi động timer 
· BOR (Brown Out Reset) 
· làm việc trên một tần số cụ thể với một mạch RC dao động trong chip giám sát WDT (Watch Dog Timer) đơn vị 
· Dụng cụ cầm tay 
· an ninh bảo vệ Mã 
· vị trí id 
· ngủ trong tình huống mà mong muốn để giảm tiêu thụ điện năng (ngủ) chế độ 
· tùy chọn dao động tùy chọn: các / XT / HS / LS RC 
· Circuit nội lập trình nối tiếp (được lập trình trong series với hai-pin) 
· lập trình với điện áp thấp mạch nội bộ 
· Circuit inline lỗi Trình gỡ lỗi
Dưới PIC 16F877 và PIC 16F84, từ cấu hình chương trình tại địa chỉ 2007H trong bộ nhớ, mở rộng và giá trị bit được tiết lộ.
bộ nhớ chương trình 2007h
Bit 134: CP: Mã bảo vệ chút 
1 = không có luật bảo vệ 
0 = Tất cả các chương trình có sự bảo vệ mã trên bộ nhớ 
chút 3: PWRT tới: powerup timer chút 
1 = powerup timer hoạt động 
0 = powerup giờ thụ động 
Bit 2: WDT để: Watchdog timer (Xem chó timer) bit 
1 = cơ quan giám sát hoạt động timer 
0 = giờ watchdog thụ động 
chút 10: 
FOSC0FOSC1: 
dao động lựa chọn bit 
11 = RC dao động đã được chọn 
10 = HS dao động đã được chọn 
01 = dao động XT đã được chọn 
00 = LP dao động được chọn
Giải thích từ cấu hình của họ PIC 16F87X:
Hoàn thành vào năm 1312 
và 54: 
CP1, cp0: Flash bộ nhớ chương trình bảo vệ bit mã 
11 = không có bảo vệ Mã 
10 = 1F00h - 1fffh liên mã bảo vệ khu 
01 = 1D00h - 1fffh liên mã bảo vệ khu 
00 = 0000h - 1fffh liên mã vùng bảo vệ 
Bit 11: DEBUG: Chế độ tìm kiếm lỗi trong mạch 
1 = Tìm kiếm lỗi trong mạch bị tắt 
0 = Tìm kiếm lỗi trong mạch hoạt động 
Bit 10: Trường không được áp dụng, đọc là 1. 
Bit 9: WRT: Ghi vào bộ nhớ chương trình Flash 
1 = Có thể ghi vào bộ nhớ chương trình mà không cần bảo vệ mã bằng điều khiển EECON. 
0 = Chương trình không được bảo vệ không thể ghi vào bộ nhớ bằng điều khiển EECON. 
Bit 8: CPD: bit bảo vệ bộ nhớ dữ liệu EE 
1 = Không bảo vệ mã 
0 = Mã được bảo vệ
Bit 7: LVP: Ngắt kết nối lập trình nối tiếp trong dòng 
1 = Pin RB3 / PGM là chức năng PGM, có thể được lập trình với điện áp thấp. 
0 = RB3 kỹ thuật số I / O được xác định, điện áp cao 
phải được áp dụng cho lập trình MCLR 
Nếu bit 6: Boden: với điện áp và vượt quá giới hạn trên, có thể khởi động lại chương trình 
(Brown ra Đặt lại Enable) cắn 
1 = BOR khởi động lại hoạt động (ON) 
0 = BOR khởi động lại hoạt động (OFF) 
cắn 3: PWRT A: Powerup 
timer chút 
1 = Powerup 
timer active 
0 = Powerup 
timer không hoạt động 
Bit2: WDTE: Watch dog timer bit 
1 = Guard dog timer đang hoạt động 
0 = Guard dog dog timer là thụ động
Bit 10: 
FOSC1FOSC0: 
dao động lựa chọn bit 
11 = RC dao động đã được chọn 
10 = dao động HS đã được chọn 
01 = XT dao động đã được chọn 
00 = LP dao động được chọn
TIMING VÀ COMMAND
PERIOD Tín hiệu đồng hồ từ chốt OSC1 tới bộ vi điều khiển 16F87X và 16F84 được chia thành bốn trong chip. Đây được gọi là chu kỳ Q1, Q2, Q3, Q4. Bộ đếm chương trình tăng mỗi chu kỳ Q1. Chỉ dẫn Q4 được ghi ngay lập tức vào thanh ghi chỉ dẫn (Hướng dẫn đăng ký). Việc giải mã và thực thi mã lệnh diễn ra từ Q1 tới Q4.
Các bước xử lý lệnh: Lệnh được xử lý trong chu trình lệnh đầu tiên được đưa đến thanh ghi lệnh trong bộ nhớ chương trình. Vào cuối của chu kỳ lệnh này, bộ đếm chương trình được tăng lên và bộ đếm chương trình sẽ hiển thị lệnh được xử lý sau trong bộ nhớ.
Trong chu trình lệnh thứ hai, lệnh được chuyển tới thanh ghi lệnh trong chu kỳ trước được giải mã. Do đó, hoạt động được thực hiện bởi lệnh được xác định (Q1). Dữ liệu được xử lý được lấy từ bộ nhớ (Q2), lệnh được thực thi (Q3) và kết quả được ghi vào địa chỉ được yêu cầu (Q4). Điều này hoàn thành việc xử lý lệnh. Nếu hướng dẫn phân nhánh được sử dụng, hai chu trình lệnh được chuyển cho thao tác này. Bởi vì trong chu trình lệnh đầu tiên, lệnh nhánh được lấy từ bộ nhớ chương trình giống như bất kỳ lệnh nào khác. Trong khi đó, lệnh trước đó đang được thực hiện.
Trong chu kỳ lệnh thứ hai, lệnh nhánh sẽ được xử lý và khi lệnh tiếp theo được chuyển tới chu trình, chương trình sẽ hiển thị một lệnh khác, không phải lệnh ngay lập tức sau lệnh nhánh. Nhưng vi điều khiển hiểu cách lệnh này sẽ kết thúc vào cuối chu kỳ lệnh thứ hai. Nếu phân nhánh xảy ra, giá trị này trong thanh ghi không được sử dụng và lệnh phải được phản ứng lại. Do đó, PIC16F87X và 16F84 mất một chu kỳ lệnh và các lệnh lệch hoặc nhánh - trong trường hợp lệch lệnh - diễn ra trong chu trình lệnh.
Quản lý bộ nhớ
PIC Các gia đình 16F87X và 16F84 có ba khối bộ nhớ. Đây là bộ nhớ chương trình (bộ nhớ chương trình), bộ nhớ dữ liệu (bộ nhớ dữ liệu) và bộ nhớ dữ liệu EEPROM. Mỗi khối có đường dẫn dữ liệu riêng (kiến trúc Harvard). Do đó, trong cùng một chu trình dao động, mỗi khối có thể được truy cập.
PROGRAMMING MEMORY 
CAPACITY Tại 16F877, các dung lượng bộ nhớ này được lưu trữ theo thứ tự? Địa chỉ 0000h07FFh, 
0800h0FFFh, 
1800h1FFFh. Địa chỉ vector đặt lại là 0000h và địa chỉ vector ngắt là 
0004h.
pic16f877-9.png
DATA LOGGING MANAGEMENT Bộ
nhớ dữ liệu được chia thành các trang được gọi là các ngân hàng. Mỗi người trong số họ có một lĩnh vực đăng ký chức năng đặc biệt (SFR) và sau đó là một lĩnh vực đăng ký mục đích chung (GPR). Thanh ghi giao dịch đặc biệt kiểm soát hoạt động của vi điều khiển và có các bit ngoại lệ để tìm hiểu kết quả của một giao dịch.
Ví dụ, bit 5 và 6 của thanh ghi STATUS có nhãn RP0, RP1? Khi các bit chọn ngân hàng, bộ nhớ này được sử dụng để chọn các phần. Mỗi ngân hàng được mở rộng đến địa chỉ 07Fh (128 byte).
Một số máy ghi giao dịch đặc biệt được đặt trên một ngân hàng, nhiều hơn trên ngân hàng. Phương pháp này nhằm tăng tốc độ truy cập và hình ảnh của các đầu ghi được sử dụng nhiều nhất được nhân đôi trên các băng ghế khác. Vì vậy, truy cập vào máy ghi âm này thường được loại bỏ khỏi sự cần thiết phải thay đổi ngân hàng thường xuyên và làm cho lập trình dễ dàng hơn.
Ngoài ra còn có một khu vực bộ nhớ EEPROM trong vỏ bọc để sử dụng như bộ nhớ dữ liệu. Bộ nhớ này không thể được giải quyết trực tiếp như bộ nhớ dữ liệu khác. Bộ nhớ dữ liệu EEPROM được truy cập gián tiếp. Tổng cộng là 92 byte.
Đặt lại vectơ: Khi nguồn được sử dụng (Poweron), nó phải được khởi động lại bằng mạch điện tử bên trong hoặc bên ngoài bộ vi điều khiển. Mạch này được đặt bên trong vỏ bọc với tên thiết lập lại poweron. Bộ vi xử lý khởi động tải bộ đếm chương trình của riêng nó với một số đặc biệt. Số đó là địa chỉ vector đặt lại cho bộ vi xử lý đó.
Vector ngắt: Khi bộ vi xử lý đang thực hiện chương trình trong bộ nhớ chương trình, nó cũng có thể thực hiện các quy trình cần được thực hiện ngay lập tức, điều này không rõ ràng. Bộ vi xử lý phải được kích thích bên ngoài hoặc bên trong để thực hiện các tác vụ này, không rõ và khi nào chúng sẽ xảy ra. Một số đơn vị vi điều khiển đến bị ảnh hưởng.
Một số đặc biệt được nạp vào bộ đếm chương trình, là một trong những đơn vị này. Số này là 
địa chỉ của vector ngắt của bộ vi điều khiển đó Các đơn vị khác, bị ảnh hưởng bởi cảnh báo trên đường cắt, ngăn xếp. Khi một chương trình con được sử dụng trong chương trình, ngăn xếp chứa địa chỉ mà từ đó chương trình con sẽ được chuyển đổi thành khối chương trình thực tế. Cắt được coi như một chương trình con. Sau khi cắt, địa chỉ được chuyển đổi được đặt trên ngăn xếp từ máy tính.
Sau đó, các lệnh của thủ tục ngắt được xử lý. Retfie, là lệnh thoát mà không bị gián đoạn, hoạt động như trả về từ lệnh thoát chương trình con. Với lệnh Retfie, địa chỉ được chuyển đổi trong chương trình được lấy ra từ ngăn xếp và 
được khôi phục vào PC Vì vậy, sau khi bị gián đoạn, chương trình sẽ trở về vị trí mà nó bị bỏ trong khối và tiếp tục xử lý các lệnh còn lại. Lên đến tám chương trình con có thể được sử dụng trong nội bộ. bao gồm cắt các phần 

Nếu chúng tôi không bao gồm các vết cắt, chúng tôi sẽ làm cho ngăn xếp tràn. Không có máy ghi cờ để cảnh báo chúng tôi khi xảy ra tràn ngăn xếp.
pic16f877-10.png
Chức năng của máy ghi âm: 
INDF (Đăng ký tệp gián tiếp): Máy ghi địa chỉ gián tiếp. Trong các hoạt động truy cập được thực hiện liên tục, GPR - 
Tăng tốc sử dụng thanh ghi mục đích chung (vùng RAM tĩnh) và giảm chương trình được ghi.
TMR0 (Timer): Bộ hẹn giờ được bao gồm trong bộ vi điều khiển và 
đầu ghi điều khiển phần chạy dưới dạng bộ đếm PCL (Bộ đếm chương trình Low Byte): lệnh tiếp theo được thực hiện giữ địa chỉ trong bộ nhớ chương trình.
STATUS: Bộ xử lý số học (ALU) trong bộ vi điều khiển giữ một số thông tin về kết quả hoạt động trong thanh ghi trạng thái. Các bit chọn ngân hàng cũng có trên máy ghi này.
FSR (File Select Register): Được sử dụng kết hợp với INDF trong việc giải quyết gián tiếp. Địa chỉ RAM của vi điều khiển được lưu trữ trong địa chỉ RAM. Trong trường hợp này, bất kỳ dữ liệu nào được ghi vào INDF thực sự được ghi trong RAM trong FSR địa chỉ.
PORTA - PORTE: Các cổng được sử dụng để cho phép vi điều khiển nhận thông tin từ thế giới bên ngoài và chuyển dữ liệu đến các mạch bên ngoài nó. PIC16F877 có năm cổng. Cổng A rộng 6 bit. Các cổng B, C và D rộng 8 bit và cổng E rộng 3 bit.
TRISA - TRISE: Các đầu ghi xác định hướng của các cổng (cho dù đầu vào hoặc đầu ra dữ liệu chip từ chip). Nếu dữ liệu được gửi ra khỏi bộ vi điều khiển từ bất kỳ chân nào của các cổng, cùng một bit được đánh số của đầu ghi hướng cổng tương ứng được thực hiện b'0 '. Nếu dữ liệu được nhập vào bộ vi điều khiển từ chốt đó, cùng một bit được đánh số của máy ghi hướng của cổng đó lại được đặt thành b'1 '. Máy ghi TRIS cho bản tóm tắt được thực hiện b'0 'cho đầu ra pini và b'1' cho đầu vào.
EEDATA và EEADR: Chúng được sử dụng để truy cập bộ nhớ dữ liệu EEPROM trong bộ vi điều khiển. Kết quả là, dữ liệu trong máy ghi EEDATA được đọc từ bộ nhớ dữ liệu EEPROM và được đưa đến máy ghi EEDATA với số địa chỉ trong máy ghi EEADR. PCLATCH: Chương trình được sử dụng cho byte thứ tự cao của bộ đếm, tức là 5 bit hàng đầu.
INTCON: Được sử dụng để xử lý ngắt. GPR (mục đích chung đăng ký): Địa chỉ của máy ghi mục đích chung được đưa ra trong biểu đồ trên. Lập trình viên có thể sử dụng các địa chỉ này cho các biến của riêng chúng, như mong muốn. Các địa chỉ này có thể được gọi trong chương trình nếu muốn, như trong ví dụ dưới đây.
SEC_1 EQU h'20 '; h'20 trong khu vực GPR' địa chỉ được đặt tên SEC_1 
SEC_2 EQU h'21 '; h'21 trong khu vực GPR' địa chỉ được đặt tên SEC_2. 
Đăng ký STA TUS (Trình ghi trạng thái)
Đầu ghi STATUS giữ các bit của đơn vị số học và logic (ALU), kết quả của phép toán số học, các trường hợp kiểm tra của đơn vị xử lý trung tâm (CPU) và ngân hàng của bộ nhớ dữ liệu. Giống như bất kỳ máy ghi âm, nó có thể là một mục tiêu trên một lệnh STATUS. nghĩa là nội dung có thể được đọc, thay đổi. Tuy nhiên, các tên TO và PD chỉ có thể đọc được và không thể thay đổi được.
Nếu nội dung của máy ghi này bị xóa bởi lệnh CLRF STATUS, chỉ ba bit trên cùng là 0. Ở cuối lệnh này, giá trị của STATUS là 000u u1uu. Đây u là: Không thể thay đổi.
Bit 7: IRP: bit lựa chọn của ngân hàng ghi (được sử dụng trong địa chỉ gián tiếp)
0 = Ngân hàng 0,1 (00hFFh)
1 = Ngân hàng 2,3 (100h1FFh)
Bit 65:
RP1: RP0: bit lựa chọn của ngân hàng ghi (được sử dụng trong địa chỉ trực tiếp)
00 = Ngân hàng 0
01 = Bank1
10 = Ngân hàng 2
11 = Ngân hàng 3
Mỗi ngân hàng là 128 byte.
Bit 4: TO: Thời gian chờ
(hết thời gian chờ)
1 = 1 thông qua lệnh CLRWDT hoặc từ SLEEP để cấp nguồn cho trạng thái.
0 = WDT 0 nếu hoạt động hết giờ đã được thực hiện.
Bit 3: PD: Powerdown end
1 = 1 với lệnh CLRWDT hoặc 1 có bật nguồn.
0 = 0 khi lệnh SLEEP được thực hiện.
Bit 2: Z: Không bit
1 = bit này là 1 nếu kết quả phép toán số học hoặc logic là 0.
0 = bit này là 0 nếu kết quả số học hoặc logic không bằng 0.
Bit 1: DC: Kết thúc số thực hiện / Mượn. (Đối với các lệnh ADDWF, ADDLW.)
1 = 8 Nếu mức ưu tiên thấp gấp bốn lần của bit kết thúc, bit này trở thành logic.
0 = 8 Nếu mức ưu tiên thấp gấp bốn lần của bit không vượt qua, bit này trở thành 0.
Bit 0: C: bit Carry / Borrow (đối với hướng dẫn ADDWF và ADDLW)
1 = Nếu bit nhạy cảm nhất kết thúc, bit này là 1.
0 = Nếu bit nhạy nhất không được thiết lập, bit này là 0.
Lưu ý: Phân cực ngược được sử dụng cho các hoạt động vay (đảo ngược nếu kết quả là 0, bit cảnh báo là 1, 0 là 0). Hiệu ứng này sẽ được giải thích trong phép trừ (SUB) và phép quay (RLF, RRF).
Tùy chọn Đăng ký
Tùy chọn Đăng ký là một máy ghi có thể đọc và ghi được. Nó chứa các bit cho phép sử dụng các bit cấu hình của các bộ đếm thời gian TMR0 / WDT, các bit điều khiển ngắt cho ngắt ngoài, các bit điều khiển ngắt hẹn giờ TMR0 và các điện trở pullup cho PORTB.
Bit 7: RBPU: PORTB, bit điện trở pullup
1 = PORTB kéo kháng là thụ động
0 = Điện trở kéo PORTB hoạt động
Bit 6: INTEDG: Cắt cạnh được lựa chọn cạnh cắt
1 = RB0 ​​/ INT pin gián đoạn tăng cạnh lựa chọn bit
0 = bit lựa chọn cạnh cắt cạnh viền RB0 / INT
Bit 5: TOCS: bit lựa chọn nguồn đồng hồ TMR0
1 = lấy nguồn xung nhịp từ chân RA4 / TOCK1
0 = Chu kỳ lệnh nội bộ được sử dụng làm nguồn xung nhịp
Bit 4: TOSF: bit lựa chọn cạnh nguồn xung nhịp TMR0 (nếu TOCS = 1)
1 = một tăng cho mỗi cạnh giảm từ pin RA4 / TOCK1
0 = một tăng cho mỗi cạnh tăng từ pin RA4 / TOCK1
Bit 3: PSA: bit mở đầu
1 = Dành riêng cho WDT cascade
0 = Cache dành riêng cho TMR0
Bit 2, 1, 0: PS2, PS1, PS0: bit chọn tốc độ truy cập
pic16f877-13.png
INTCON Register
Máy ghi INTCON là máy ghi có thể đọc và ghi được. Bao gồm các bit cảnh báo tràn bộ ghi TMR0 / WDT, thay đổi cổng RB và các bit điều khiển ngắt gián đoạn (RB0 / INT), các bit điều khiển ngắt TMR0.
pic16f877-14.png
Bit 7: GIE: Tất cả các ngắt đều hợp lệ (Global Interrupt Enable) bit
1 = Bật ngắt quãng không được che giấu
0 = Nâng cắt
Bit 6: PEIE: Cắt cạnh hiện tại
1 = Kích hoạt cắt ngoại vi
0 = Xóa chu vi
Bit 5: TOIE: TMR0 tràn bộ đếm ngắt dòng đồng hồ
1 = Bật TMR0 ngắt
0 = Nâng cắt
Bit 4: INTE: bit ngắt ngoài RB0 / INT
1 = Bật cắt bên ngoài từ chân RB0 / INT
0 = Nâng cắt
Bit 3: RBIE: RB Port thay đổi bit ngắt
1 = Bật thay đổi cổng RB
0 = Nâng cắt
Bit 2: TOIF: bit cờ cảnh báo tràn TMR0
1 = TMR0 bị ngập (được làm sạch từ bên trong chương trình sau khi di chuyển)
0 = TMR0 không mang theo
Bit 1: INTF: TMR0 / INT bên ngoài cờ cảnh báo ngắt bit
1 = ngắt TMR0 bên ngoài đã xảy ra (xóa khỏi chương trình)
0 = TMR0 không gián đoạn bên ngoài
Bit 0: RBIF: RB Port thay đổi bit cờ cảnh báo ngắt
1 = Ít nhất một RB <7: 4=""> thay đổi trạng thái của pin (Đã kiểm tra trong chương trình)
0 = Không có RB <7: 4=""> trạng thái pin chưa thay đổi
Đăng ký PI E1 (Bộ ghi ngắt môi trường)
Máy ghi PIE1 là máy ghi có các bit liên quan đến các vết cắt ngoại vi. Bit PIE1 (INTCON <6>) cũng phải được thiết lập để nó là một thiết bị ngoại vi.
pic16f877-15.png
Bit 7: PSPIE: Ngắt kết nối đọc / ghi cổng song song Slave
1 = Kích hoạt ngắt R / W PSP
0 = Nâng cắt
Bit 6: ADIE: Bit kích hoạt cho bộ chuyển đổi A / D bị gián đoạn
1 = Kích hoạt chuyển đổi A / D gián đoạn
0 = Nâng cắt
Bit 5: RCIE: Bit kích hoạt của USART bị gián đoạn
1 = Kích hoạt USART nhận ngắt
0 = Nâng cắt
Bit 4: TXIE: USART truyền bit cho phép truyền
1 = Kích hoạt ngắt gửi USART
0 = Nâng cắt
Bit3: SSPIE: Ngắt bit cổng nối tiếp đồng bộ
1 = Kích hoạt ngắt SSP
0 = Nâng cắt
Bit2: CCP1IE: Kết thúc CCP1 gián đoạn
1 = Kích hoạt ngắt CCP1
0 = Nâng cắt
Bit 1: TMR2IE: TMR2 PR2 thích ứng cho phép cắt bit
1 = Kích hoạt tính năng thích ứng TMR2 PR2 gián đoạn
0 = Không gián đoạn
Bit 0: TMR1IE: Kích hoạt ngắt kết thúc TMR1
1 = Kích hoạt ngắt tràn TMR1
0 = Nâng cắt
Đăng ký PI R1 (Bộ ghi ngắt môi trường)
Đầu ghi PIR1 là máy ghi có các bit cảnh báo cho các vết cắt ngoại biên.
pic16f877-16.png
Bit 7: PSPIFE: Cổng song song đọc / ghi ngắt kết thúc bit
1 = Sự gián đoạn PSP R / W xảy ra (được làm sạch trong phần mềm)
0 = Không đọc hoặc viết
Bit 6: ADIF: A / D chuyển đổi ngắt kết thúc bit
1 = A / D chuyển đổi xong
0 = Quay số chưa hoàn thành
Bit 5: RCIF: USART nhận bit cảnh báo
1 = Bộ đệm nhận USART trống
0 = Nhận bộ đệm đầy
Bit 4: TXIF: USART truyền phát kết thúc ngắt bit
1 = Bộ đệm gửi USART trống
0 = Gửi bộ đệm đầy
Bit3: SSPIF: Ngõ bit cảnh báo ngắt cổng nối tiếp đồng bộ
1 = SSP gián đoạn là đầy đủ (làm sạch trong phần mềm)
0 = Không ngắt SSP
Bit2: CCP1IF: bit cảnh báo ngắt của CCP1
1 = Máy ghi TMR1 đã chụp
0 = TMR1 không ghi lại máy ghi
Bit 1: TMR2IF: TMR2 PR2 tuân thủ cắt cảnh báo bit
1 = Cắt tuân thủ TMR2 PR2
0 = Không gián đoạn
Bit 0: TMR1IF: bit cảnh báo ngắt dòng TMR1
1 = Bộ đếm TMR1 đã bị cắt ngắn
0 = Không gián đoạn
Đăng ký PI E2 (Đột phá xe buýt CCP 2, SSP, E 2 P ROM - Bộ ghi ngắt môi trường)
Máy ghi PIE2 mang các bit ngắt của thiết bị ngoại vi CCP2 (Capture / Compare / PWM2), bit va chạm bus SSP (Synchronous Serial Port), và bit ngắt EEPROM ghi.
pic16f877-17.png
Bit 7, 5, 2, 1: Unimplemented: Bit không được sử dụng 0 được đọc
Bit 6: Reserved: Bit được dành riêng để sử dụng sau này. Đã làm sạch (đặt 0)
Bit 4: EEIE: EEPROM viết bit ngắt hoạt động
1 = Kích hoạt ngắt EEPROM
0 = không có ngắt EEPROM
Bit 3: BCLIE: Bus Va chạm ngắt cảnh báo bit
1 = Kích hoạt ngắt xung đột
0 = Không có va chạm bị cắt
Bit 0: CCP2IE: CCP2 cho phép ngắt bit
1 = Kích hoạt ngắt CCP2
0 = Không có CCP2 gián đoạn
Đăng ký PI R2 (Đột phá dữ liệu của CCP 2, SSP, E 2 P ROM - Bộ ghi ngắt môi trường)
Máy ghi PIE2 mang các bit ngắt của thiết bị ngoại vi CCP2, bit va chạm SSP và bit cảnh báo ngắt E 2 PROM.
pic16f877-18.png
Bit 7, 5, 2, 1: Unimplemented: Bit không được sử dụng 0 được đọc
Bit 6: Reserved: Bit được dành riêng để sử dụng sau này. Đã làm sạch (đặt 0)
Bit 4: EEIF: EEPROM ghi lỗi cảnh báo ngắt hoạt động
1 = Viết xong
0 = Thao tác ghi không thể hoàn thành hoặc không khởi động được
Bit 3: BCLIF: Bus Va chạm ngắt cảnh báo bit
1 = Va chạm trên SSP, chế độ Master I2C
0 = Không có va chạm
Bit 0: CCP2IF: bit cảnh báo ngắt của CCP2
Đối với chế độ Capture
1 = Capture máy ghi TMR1. Làm sạch trong phần mềm
0 = Máy ghi TMR1 không bị bắt
Đối với chế độ So sánh
1 = Máy ghi TMR1 được so sánh tương thích. Làm sạch trong phần mềm
0 = So sánh TMR1 không tương thích
P CON Đăng ký (Power Supply Control Recorder)
Máy ghi âm PCON được sử dụng trong các tình huống phần mềm và thiết lập lại. Đặt lại trạng thái? Với MCLR nằm ngoài phạm vi, điện áp quá mức hoặc hiện tại có thể được sử dụng trong BrownOut, Watch Dog Timer và cuối cùng là Power on reset. Bit BOR không xác định trên Power on reset. Sau khi đặt lại, b'1 'nên được thực hiện để bạn có thể tìm hiểu trạng thái BOR tiếp theo.
pic16f877-19.png
Bit 7-2: 
chưa thực hiện: Bit không được sử dụng 0 đọc 
Bit 1: POR: Power On Đặt lại Status chút 
1 = Per không tình trạng 
0 = P đầy đủ (phần mềm phải được thiết lập) 
cắn 0 BOR: xe buýt va chạm cảnh báo cắt chút 
1 = không có tình trạng BOR 
0 = điều kiện BOR tồn tại (phần mềm phải được thiết lập) 
P CL và P thanh ghi CLATH (ghi Dresden) 
bộ đếm chương trình (PC) được gọi là máy ghi địa chỉ 13-bit. Giá trị byte thấp này đến từ máy ghi PCL. Các bit trên là 5 bit giữa PC <12: 8="">, được lấy từ máy ghi PCLATH. PCL là một máy ghi có thể đọc và ghi được. Tuy nhiên, không thể đọc trực tiếp các bit trên (PCH). Có thể ghi trực tiếp hoặc có thể đọc được qua PCLath.
pic16f877-20.png
Lệnh gọi luôn ghi giá trị địa chỉ trong thanh ghi PCL lên đầu ngăn xếp. Các lệnh Return, Retfie và Retlw truyền nội dung của phần tử trên cùng của ngăn xếp tới PCL. Chúng ta cũng nên nhớ khi viết chương trình mà số ngân hàng có thể được chuyển từ máy ghi PCLath sang máy tính.
Nội dung của máy ghi PCLATH vẫn không đổi sau khi chương trình con được nhập vào, ngay cả khi lệnh trả về hoặc lệnh retfie đến. Lập trình viên phải cập nhật trình ghi PCLATH trước lệnh gọi hoặc lệnh goto. Vì PCH luôn được cập nhật qua máy ghi PCLATH (không phải ngược lại), nó phải được xác định trong đó ngân hàng chương trình con hoặc phần khởi hành được đặt, theo cách tương tự như ví dụ dưới đây.
ORG 0x500 
BCF PCLATH, 4; 4.bit logger PCLATH xóa 
các BSF PCLATH, 3; PCLATH các 3.bit đã được thiết lập, 1.bank đã được thông qua 
; (800hfffh dải địa chỉ) 
? CALL SUB1_P1 chương trình con được gọi trong 1.bank 



ORG 0x900; Ngân hàng 1 (800hFFFh) 
SUB1_P1 

Chương trình con được đặt trong khoảng 800h đến FFFh. 
RETURN; Return sau 0.sayfa A (000h7ffh) trở về 
Điện Toán goto (tính goto) được hình thành bằng cách thêm PCL PC.
Stack Stack
là 8 phần tử. Các phần tử là 13 bit và chúng là một phần của phần cứng. Nó không được bao gồm trong dữ liệu hoặc khu vực chương trình. Con trỏ ngăn xếp có thể ghi và không thể đọc được. Lệnh hoạt động ngăn xếp là POP và PUSH. Trong mỗi thao tác PUSH, adrese ở trên cùng của ngăn xếp tải nội dung của PC. Đối với mỗi hoạt động POP, địa chỉ ở đầu ngăn xếp được khôi phục vào PC.
Ngăn xếp hoạt động với LIFO (Last In First Out) Cuối cùng trong kỹ thuật đầu tiên. 
Đăng ký DF và FSR (Trình ghi truy cập gián tiếp)
INDF không phải là máy ghi vật lý. Nó chứa địa chỉ RAM trên vi điều khiển. Mọi dữ liệu được ghi vào INDF được ghi vào RAM trong FSR địa chỉ. Dữ liệu đọc từ INDF cũng được đọc từ RAM trong FSR địa chỉ.
Đại học Süleyman Demirel

Post a Comment

[disqus] [facebook] [blogger]

MKRdezign

Biểu mẫu liên hệ

Name

Email *

Message *

Powered by Blogger.
Javascript DisablePlease Enable Javascript To See All Widget
Hỗ trợ trực tuyến