GIỚI THIỆU PIC16F628

Được chuẩn bị bởi: Bộ vi điều khiển Esin POLAT
PIC16F628
PIC16F628
Phần này sẽ cung cấp thông tin về vi điều khiển PIC16F628. PIC16F628 lấy tên viết tắt của thuật ngữ tiếng Anh " Bộ điều khiển giao diện ngoại vi ". Bản dịch tiếng Thổ Nhĩ Kỳ là "Giao diện giám sát đơn vị môi trường". RISC (Reduced Instrucitio Set Computer) kiến trúc được sản xuất sử dụng một phương pháp gọi là tên được sử dụng để lập trình một PIC16F628 là khá nhỏ và dễ dàng để lệnh. Kế hoạch phương pháp thiết kế Ý tưởng cơ bản của kiến trúc RISC là dễ sử dụng và ít lệnh hơn. Hình 2.15 cho thấy khung nhìn bên ngoài của PIC16F628.

SO SÁNH PIC16F628 VÀ PIC16F84
• Trong khi PIC16F84 có thể hoạt động ở tốc độ tối đa 10 MHz, PIC16F628 có thể hoạt động ở tốc độ tối đa 20 MHz. Điều này cho phép PIC16F628 thực hiện các thao tác nhanh gấp hai lần. Điều này cung cấp một lợi thế đặc biệt là trong các ứng dụng với tải quá trình cao [4].
• Bộ nhớ chương trình của PIC16F84 là 1k trong khi bộ nhớ chương trình của PIC16F628 là 2k. Trong các ứng dụng nâng cao, các mã chương trình dài hơn có thể yêu cầu nhiều không gian bộ nhớ hơn. Với bộ nhớ chương trình 2k, PIC16F628 có lợi thế hơn. Ngoài ra, bộ nhớ RAM của PIC16F628 và bộ nhớ dữ liệu EEPROM lớn hơn gấp đôi so với PICI6F84.
• Với bộ dao động tích hợp 37 kHz / 4 MHz với PIC16F628, cần phải có bộ dao động ngoài để vận hành PIC16F84. Do đó, có thể sử dụng thêm 2 chốt I / O. MCLR cũng có thể được sử dụng như một thiết bị đầu vào, tùy thuộc vào yêu cầu.
• pıc16f84't chỉ một timer 8-bit (TIMER) khi hai 8-bit PIC16F628 và có một 16-bit timer.
PIC16F84, 13 đầu vào / đầu ra thiết bị đầu cuối 16 khi nhà ga PIC16F628 đầu vào / đầu ra có. PIC16F628 có thể được sử dụng thay cho PIC16F84 trong các ứng dụng đòi hỏi nhiều I / O hơn.
• PIC16F628 pıc16f84't không chứa trong các mô-đun tín hiệu tương tự và module PWM cho phép giao tiếp nối tiếp USART qua phần cứng / SCI (Universal Synchronous / Asynchronous Receiver / Transmitter) mô-đun tiện lợi.
• PIC16F628 có thể được tìm thấy dễ dàng trên thị trường và giá cả thấp hơn so với PIC16F84 (PIC16F84 vào năm 2004, trong khi giá bán Mỹ $ 4,38 $ 1,61 PIC16F628 'd). Các PIC16F84 là rất gần với P1C16F877, trong đó có một 33 I / 0 tip.
SO SÁNH PIC16F628 VÀ PIC16F877
• PIC 16F877 có 33 đầu vào / đầu ra và PIC 16F628 có 16 đầu vào / đầu ra.
• Cả PIC16F877 và PIC16F628 hoạt động ở mức tối đa 20 MHz.
• Bộ nhớ chương trình của PIC16F877 là 8k trong khi PIC16F628 là 2k. Với bộ nhớ chương trình 8k, PIC16F877 có lợi thế hơn. Ngoài ra, PIC16F877 có 368 byte RAM và 224 byte của PIC16F628.
• Bộ nhớ dữ liệu EEPROM của PIC16F877 là 256 byte trong khi PIC16F628 là 128 byte.
• PIC16F877 và PIC16F628 có hai bộ đếm thời gian 8 bit và 16 bit.
• Cả hai đều có mô-đun PWM, mô-đun so sánh analog và phần cứng cho phép các mô-đun cho giao tiếp nối tiếp.
• PIC16F877 có đầu vào tương tự và PIC16F628 có đầu vào tương tự.
• Giá trị thị trường của PIC16F877 đắt hơn PIC16F628.
Đặc điểm của PIC16F628
PIC16F628 là một vi điều khiển 8 bit từ gia đình PIC16CXX với bộ nhớ chương trình flash, được xây dựng trên kiến trúc Harvard dựa trên kiến trúc RISC giống như các piclors khác. Do kiến trúc của PIC16F628, bộ nhớ chương trình và dữ liệu là các đơn vị vật lý riêng biệt và được truy cập bởi các đường dẫn dữ liệu khác nhau. Bảng 2.12 cho thấy các đặc điểm chung của PIC16F628.
Tần số đồng hồ | Tần số làm việc cao nhất | 20 MHz |
ký ức | Bộ nhớ chương trình Flash | 2 k |
Bộ nhớ RAM | 224 byte | |
Bộ nhớ EEPOM | 128 byte | |
Đơn vị môi trường | Mô-đun hẹn giờ | TMR0, TMR1, TMR2 |
So sánh tương tự | 2 | |
Capture \ Compare \ PWM Module | 1 | |
Giao tiếp nối tiếp | USART | |
Các tính năng khác | Nguồn cắt | 10 |
Đầu vào \ Số đầu ra | 16 | |
Phạm vi điện áp hoạt động | 3-5.5V | |
Phát hiện ra ngoài màu nâu | có | |
Định dạng gói | 18-pin DIP, SOIC 20 pin SSOP |
16f628 tính năng, 16 f 628 tính năng
Hình 2.16 cho thấy hình dạng chân mở của PIC16F628


Hình 2.17 cho thấy sơ đồ khối của cấu trúc bên trong của PIC16F628. PIC16F628 mỗi lệnh (mã hoạt động - opcode) 14-bit chiều dài của dữ liệu được xử lý (toán hạng) và chiều dài 8-bit.
LỢI ÍCH CỦA KIẾN TRÚC RISC CHO PIC16F628
• Chỉ kiểm soát 35 lệnh
• Tốc độ hoạt động: DC - 20 MHz trong thời gian
• DC - 200 ns như giai đoạn lệnh
• 14 - bit chiều dài lệnh
• 8-bit dữ liệu đường dẫn dài
• 15 thanh ghi chức năng đặc biệt phần cứng của
• 8 mức độ phần cứng sâu stack
• Phương pháp trực tiếp - gián tiếp và địa chỉ tương đối
• Bộ nhớ flash với khả năng ghi và ghi chương trình 1000 lần
• Tốc độ hoạt động: DC - 20 MHz trong thời gian
• DC - 200 ns như giai đoạn lệnh
• 14 - bit chiều dài lệnh
• 8-bit dữ liệu đường dẫn dài
• 15 thanh ghi chức năng đặc biệt phần cứng của
• 8 mức độ phần cứng sâu stack
• Phương pháp trực tiếp - gián tiếp và địa chỉ tương đối
• Bộ nhớ flash với khả năng ghi và ghi chương trình 1000 lần
Cổng PIC16F628
Quan điểm tổng thể của các chân cho trường hợp DIP (Dual Inline Package) của PIC16F628 được thể hiện trong Hình 3.2. Như bạn có thể thấy, PIC16F628 có hai cổng 8 cổng, cổng A và cổng B. Mỗi cổng của cổng B có thể được đặt làm đầu vào / đầu ra riêng biệt, nhưng đầu kia của cổng A có thể được đặt riêng lẻ làm đầu vào / đầu ra ngoại trừ RA5 / end. Mẹo này chỉ có thể được chỉnh sửa làm đầu vào. Như với các PIC khác, một số mẹo có nhiều tính năng khả dụng để sử dụng hiệu quả ít chân hơn. Vì vậy, nhiều tính năng có thể được sử dụng mà không cần sử dụng thêm mẹo [5]
PIC16F628 Porta
Porta dài 8 bit. Bảng 2.13 trình bày các giải thích về các đầu của cảng A.
Bảng 2.13. Giải thích về mẹo porta
Bảng 2.13. Giải thích về mẹo porta
Tên mẹo | Mẹo không | I \ O loại | tuyên bố |
RA0 / AN0 | 17 | I \ O | Đầu vào so sánh I / O chân và đầu vào analog hai hướng |
RA1 / AN1 | 18 | I \ O | Đầu vào so sánh I / O chân và đầu vào analog hai hướng |
RA2 / AN2 / VREF | 1 | I \ O | Đầu vào so sánh chân I / O và đầu vào tương tự và đầu ra VREF |
RA3 / AN3 / CMP1 | 2 | I \ O | Đầu vào so sánh đầu vào và đầu vào so sánh I / O và đầu ra analog tương tự |
RA4 / TOCK các / CMP2 | 3 | I \ O | Hai chiều I / O terminal, TMR0 tín hiệu đồng hồ đầu vào, đầu ra và so sánh analog |
RA5 / / THV![]() | 4 | II | Đầu vào pin và thiết lập lại đầu vào |
RA6 / osc2 / CLKOUT | 17 | I \ O | Hai chiều I / O tip và đầu ra dao động tinh thể |
R A7 / OSC1 / clkin | 18 | I \ O | Hai chiều I / O terminal, đầu vào và pha lê bên ngoài dao động nguồn đầu vào đồng hồ |
Tất cả các đầu của cảng Trigger Schmitt (ST) có cấu trúc. TTL (Transistor Transistor Logic) ở hai đầu của cấu trúc từ '0' 1 và '1' 0 chuyển đổi sang cùng một đoạn văn trong bóng tối (hoặc khi một giá trị duy nhất), tại đầu của cấu trúc ST từ '0' 1 và vùng chuyển đổi từ '1' sang '0' rộng hơn. Sự khác biệt này được thể hiện trong Hình 2.18.

Hình 2.18 Sự khác biệt giữa cấu trúc đầu cuối Schmitt Trigger và TTL: a) Trình kích hoạt Schmitt b) TTL
0 "khi PIC16F628 đi dưới 1V (Ve1) của cấu trúc ST trong" 5V cung cấp điện áp ", và" 1 "khi nó vượt quá 4V (Ve2). Trong cấu trúc TTL, giá trị là "0" dưới 0.8V (Ve3) và "1" trên 2V (Ve4). Kết quả là, quá trình chuyển đổi từ "0" sang "1" ở các đầu của cấu trúc ST là dần dần. RA4 phải được kết nối với điện áp cấp nguồn kéo bên ngoài vì tính năng thoát nước mở khi muốn sử dụng nó làm chốt đầu ra. RA4 cũng có thể được sử dụng làm đầu vào tín hiệu đồng hồ (TOCKI-Timer 0 ClocK In) cho TMR0 (Timer 0 - Timer 0). Khi TMR0 thường chạy đồng hồ được PIC sử dụng, nó có thể được vận hành theo tín hiệu đồng hồ khác nhau được nhập từ đầu này với mã chương trình nếu muốn. Không có khả năng đầu ra của RA5, nhưng tất cả các bên ngoài có thể được sử dụng như các đầu vào / đầu ra riêng biệt.
Cổng PIC16F628 B
Cổng B dài 8 bit. Bảng 2.14 trình bày các giải thích về các đầu của cảng B.
Tên mẹo | Mẹo không | I \ O loại | tuyên bố |
RB0 / INT | 6 | I \ O | Pin I / O hai chiều và đầu vào ngắt bên ngoài |
RB1 / RX / DT | 7 | I \ O | Pin I / O hai chiều, chốt USART và pin đầu vào / đầu ra dữ liệu đồng bộ |
RB2 / TX / CK | 8 | I \ O | Hai cách I / O, bộ phát USART và đầu vào / xung xung nhịp đồng bộ |
RB3 / CCP1 | 9 | I \ O | Pin I / O hai hướng, so sánh chốt đầu vào / đầu ra của mô-đun PWM phù hợp |
RB4 / PGM | 10 | I \ O | Pin I / O hai chiều, đầu vào lập trình điện áp thấp |
B5 | 11 | I \ O | Mẹo I / O hai hướng |
RB6 / T1OSO / T1CK1 | 12 | I \ O | Pin I / O hai chiều, đầu ra dao động TIMER1 và đầu vào xung TIMER1 giờ |
RB7 / T1O của | 13 | I \ O | Pin I / O hai chiều và đầu vào dao động TIMER1 |
Khi tất cả các cổng của cổng B được sử dụng làm đầu vào / đầu ra mục đích chung, nó nằm trong cấu trúc TTL. Khi thiết bị đầu cuối bên ngoài của RB5 được sử dụng cho các chức năng mục đích đặc biệt (truyền thông nối tiếp, lập trình điện áp thấp, vv), ST ở trong cấu hình. Nếu không có tính năng này, kéo điện trở đến điện áp cung cấp được kết nối với đầu tương ứng tương ứng với cùng một thao tác. Điện trở kéo lên ở đầu cuối có điều kiện được tự động loại bỏ bởi PIC như một đầu ra. Hình 2.19 cho thấy một ví dụ về việc sử dụng điện trở kéo lên.

Hình 2.19 Cổng B 'a) sử dụng điện trở bên ngoài b) nút kết nối sử dụng điện trở kéo lên bên trong
Thông thường, tip thấy điện áp cung cấp ('1') nhìn thấy điện thế đất ('0') khi mông được nhấn. Do đó, có thể hiểu rằng nút không được nhấn. Như trong Hình 2.10, việc sử dụng điện trở kéo lên bên trong cho phép hoạt động tương tự mà không yêu cầu một điện trở bên ngoài. Khi PIC được cấp nguồn (trạng thái đặt lại nguồn) các điện trở kéo lên không hoạt động.
Số 0 (RB0 / INT) của cổng B cũng có thể được sử dụng làm đầu vào ngắt. Trong trường hợp thay đổi trong câu tại các số cổng 4-5-6-7 của cổng B, PIC có thể được chuyển từ chế độ ngủ sang hoạt động bình thường. Trạng thái ngủ là một chế độ hoạt động cho mức tiêu thụ năng lượng thấp (ít hơn 1 / 3V đối với điện áp cung cấp 3V) trong đó PIC không phải hoạt động liên tục
CÁC TÍNH NĂNG PHẦN CỨNG KHÁC CỦA PIC16F628
Điện áp cung cấp
Điện áp nguồn của PIC16F628 có thể được chọn từ 3-5.5V. Đối với các hệ thống yêu cầu hoạt động điện áp thấp hơn, PIC16LF628 có thể được sử dụng, hoạt động ở dải điện áp từ 2-5.5V. Việc cung cấp PIC16F628 được cung cấp từ các thiết bị đầu cuối VDD và VSS. 14 số DIP kết thúc vào vdd'n cấu trúc + cung cấp, và VSS 4 từ cuối phải được kết nối với mặt đất.
điện áp cung cấp pic cung cấp nguồn điện áp khi nó mở ra, biến động trong việc cung cấp điện áp và các yếu tố mạch cao nhập và thoát khỏi switch để ngăn chặn sự thay đổi đột ngột và không mong muốn trong đường dây điện áp giữa các thiết bị đầu cuối VDD VSS phải được kết nối với một tụ điện. Điều này ngăn cản không mong muốn đặt lại PIC. Hình 2.20 cho thấy sơ đồ kết nối cung cấp của PIC16F628.

PIC16F628 OSCILLATOR TIMERS
Đồng hồ tín hiệu cần thiết để thực hiện các hoạt động PIC16F628 có thể thu được với một số mạch khác nhau. Thời gian thực thi mã chương trình của vi điều khiển phụ thuộc vào tín hiệu đồng hồ. Một bộ vi xử lý hoạt động ở tốc độ đánh dấu đồng hồ cao sẽ xử lý nhiều lệnh hơn một bộ vi xử lý với tốc độ đánh dấu đồng hồ chậm trong cùng một thời điểm. Một bộ xử lý chạy ở 3 GHz chạy các lệnh nhanh gấp 3 lần so với cùng một bộ xử lý chạy ở 1 GHz [5].
PIC16F628 có thể hoạt động tốt ở các dấu đồng hồ lên đến 20 MHz. Dấu giờ có thể thu được theo nhiều cách khác nhau;
• LP (Low Power Crystal): công suất thấp pha lê
• XT (Crystal / cộng hưởng): Pha lê / cộng hưởng
• RS (High Speed pha lê / cộng hưởng): tốc độ cao tinh / cộng hưởng
• ER (External điện trở) điện trở bên ngoài (2 định dạng nghiên cứu)
• INTRC (Internal Điện trở / Tụ): Internal RC (định dạng 2 nghiên cứu)
• EC (External Clock iN): Clock External Input
• LP, XT hoặc RS-type dao động được kết nối với các thiết bị đầu cuối OSC và osc2. PIC16F628 kết nối dao động mạch thuộc loại này được thể hiện trong hình 2.21.
• XT (Crystal / cộng hưởng): Pha lê / cộng hưởng
• RS (High Speed pha lê / cộng hưởng): tốc độ cao tinh / cộng hưởng
• ER (External điện trở) điện trở bên ngoài (2 định dạng nghiên cứu)
• INTRC (Internal Điện trở / Tụ): Internal RC (định dạng 2 nghiên cứu)
• EC (External Clock iN): Clock External Input
• LP, XT hoặc RS-type dao động được kết nối với các thiết bị đầu cuối OSC và osc2. PIC16F628 kết nối dao động mạch thuộc loại này được thể hiện trong hình 2.21.

Hình 2.21 Kết nối các bộ dao động LP, XT và HS với PIC16F628
Điện trở RS có thể được yêu cầu cho một số loại tinh thể. Vì tinh thể thường được sử dụng làm bộ dao động, nên các giá trị của các tụ điện C1 và C2 được lựa chọn theo tần số tinh thể được sử dụng trong Bảng 3.4.
Bảng 2.15 Các giá trị tụ điện cho bộ dao động tinh thể
Phong cách làm việc | tần số | C1 | C2 |
LP | 32 kHz | 68-100 pF | 68-100 pF |
200 kHz | 15-30 pF | 15-30 pF | |
XT | 100 kHz | 68-150 pF | 150-200 pF |
2 MHz | 15-30 pF | 15-30 pF | |
4 MHz | 15-30 pF | 15-30 pF | |
HS | 8 MHz | 15-30 pF | 15-30 pF |
10 MHz | 15-30 pF | 15-30 pF | |
20 MHz | 15-30 pF | 15-30 pF |
Giá trị tụ điện lớn hơn cho phép bộ dao động hoạt động thường xuyên, nhưng kéo dài thời gian khởi động của PIC sau khi cấp điện.
Đối với các ứng dụng mà thời gian không quan trọng, có thể sử dụng bộ dao động ER. Trong chế độ hoạt động này, tần số hoạt động của bộ dao động nội bộ được thiết lập với một điện trở duy nhất được kết nối giữa chốt OSC1 và Vss. Bảng 3.5 cho thấy tần số hoạt động của PIC16F628 theo giá trị điện trở được nối với chân này.
Nếu một bộ dao động ER được sử dụng, OSC2 không sử dụng có thể được sử dụng như một khối đầu vào / đầu ra bình thường. Mẹo này cũng có thể được sử dụng để tạo ra tín hiệu đồng hồ tại ¼ của tần số dao động để sử dụng trong hoạt động đồng bộ đồng bộ với các thiết bị bên ngoài khác.
Không cần kết nối bất kỳ phần tử mạch nào với thiết bị đầu cuối OSC1 và OSC2 khi sử dụng bộ dao động RC bên trong (INTRC). Những dây dẫn này có thể được sử dụng như đầu vào / đầu ra jack cắm. Thế tùy ý sử dụng như các loại ER dao động osc2 kết thúc nghiên cứu 4 MHz hoạt động nội RC-type hoặc tần số hoạt động 37 kHz có thể được chọn. Các giá trị này hợp lệ ở điện áp hoạt động 5V và nhiệt độ môi trường 25 ° C.
Bảng 2.16. Xác định tần số hoạt động ở dạng dao động ER
điện trở | tần số |
0 | 10,4 MHz |
1 K | 10 MHz |
10 K | 7,4 MHz |
20 K | 5,3 MHz |
47 K | 3 MHz |
100 K | 1,6 MHz |
220 K | 800 kHz |
470 K | 300 kHz |
1 triệu | 200 kHz |
Đặt lại phần cứng
Có hai cách để thiết lập lại phần cứng PIC16F628. Đầu tiên là thiết lập lại chính PIC khi nguồn cung cấp được bật và chạy các mã chương trình bằng cách đi tới vector đặt lại. Thứ hai là thiết lập lại phần cứng. MCLR kết thúc 'thành' 0 '. Mạch có thể được sử dụng cho nhiệm vụ này được thể hiện trong Hình 2.22.

Hình 2.22 Đặt lại PIC bằng cách sử dụng MCLR
Thông thường, MCLR, phát hiện mức "1", trở thành '0' khi nhấn nút. Trong trường hợp này, PIC một lần nữa đi đến các vector thiết lập lại và bắt đầu chạy các mã chương trình. MCLR có thể được sử dụng làm đầu vào thay vì đặt lại phần cứng nếu muốn. Trong trường hợp này, PIC không thể được đặt lại bên ngoài trừ khi điện áp nguồn bị gián đoạn.
Cấu trúc bộ nhớ của PIC16F628
PICI6F628 có bộ nhớ chương trình kích thước 2k. Mỗi mắt trong bộ nhớ này dài 14 bit. Chiều dài của những con mắt và dữ liệu trong nó không trực tiếp liên quan đến lập trình viên. Hình 3.9 cho thấy bản đồ bộ nhớ chương trình của PIC 16F628. Như bạn thấy, chương trình bộ nhớ giữa 0-7FFh là 2k dài.
Vì khu vực RAM của PIC16F628 được chia thành 4 ngân hàng, có các thanh ghi đa năng và các thanh ghi chức năng đặc biệt trong 4 vùng RAM này. 32 byte đầu tiên của mỗi vùng RAM được sử dụng bởi các thanh ghi mục đích đặc biệt. Một khu vực 224 byte được dành riêng cho cache mục đích chung. Những thanh ghi này giữ các biến được sử dụng khi viết chương trình. Hình 2.23 cho thấy bản đồ vùng RAM của PIC16F628.

Hình 2.23 Cấu trúc bộ nhớ chương trình của PIC16F628
Nếu bạn muốn sử dụng các thanh ghi chuyên dụng, bạn phải chuyển sang vùng RAM tương ứng. Ví dụ, để truy cập vào thanh ghi mục đích đặc biệt của PORTA, nó hoàn toàn cần thiết để di chuyển đến vùng RAM thứ 0 (Ngân hàng 0). Một số thanh ghi chuyên dụng được đặt trong tất cả các vùng RAM và có thể được truy cập mà không thay đổi ngân hàng. Chuyển đổi giữa các vùng RAM được thực hiện bằng cách sử dụng thanh ghi STATUS. Công ty Microchip đặt tên cho thanh ghi 8 bit trong vùng RAM được đề cập ở trên như một thanh ghi tệp.
Các thao tác PIC thường được thực hiện thông qua thanh ghi dữ liệu và thanh ghi W (Thanh ghi hoạt động). Thanh ghi W là thanh ghi 8 bit và nhiều thao tác phải được thực hiện thông qua thanh ghi này. Hình dưới đây cho thấy bản đồ vùng RAM của PIC 16F628.

Kesmeler - Thông tin cơ bản
Khi một số trường hợp ngoại lệ xảy ra ngoài việc thực hiện thường xuyên bởi vi điều khiển, chúng phải từ bỏ các tác vụ thông thường và thực hiện các tác vụ liên quan đến trường hợp cụ thể này. Trong đó cho biết, thay vì liên tục kiểm tra nếu ngoại lệ xảy ra, tự động báo cáo với vi điều khiển nơi ngoại lệ xảy ra cắt ra và do đó tránh sự kiểm soát cần thiết. Các ngoại lệ được đề cập ở đây có thể là một nhiệm vụ ưu tiên, hoặc nó có thể là một nhiệm vụ hiếm hoi.
Ví dụ, giả sử bạn có một điều khiển nhiệt độ với PIC16F628. Khi nhiệt độ môi trường vượt quá một giá trị nhất định (điểm đặt), điều hòa không khí được bật. Điểm đặt được điều khiển bằng hai nút. Hệ thống đo nhiệt độ và mở và đóng điều hòa không khí theo điểm đã đặt. Vì quá trình thay đổi điểm thiết lập hiếm khi được thực hiện, điều này có thể được thực hiện bằng cách cắt.
Vì vậy, bạn không phải liên tục kiểm soát các nút này. Khi chỉ các nút được nhấn, giá trị của điểm đặt được thay đổi bằng chương trình dịch vụ cắt và hệ thống trở về chương trình chính và tiếp tục quá trình điều khiển nhiệt độ thông thường.
Công trình của PIC trong cắt
Sau đây là danh sách các tác vụ mà PIC l6F628 sẽ tự động thực hiện nếu một gián đoạn chương trình xảy ra trong khi bất kỳ mã chương trình nào đang chạy. Hình 2.25 cho thấy logic làm việc của các vết cắt.
1. Lệnh tiếp theo sau khi lệnh được thực thi trước khi ngắt được tự động hủy bỏ khỏi địa chỉ của bộ nhớ chương trình (ngăn xếp). Vì vậy, PIC sẽ biết nơi chương trình là khi nó được tắt mà không bị gián đoạn

Hình 2.25. Logic của công việc
2. Địa chỉ của vector ngắt PIC16F628, 0x0004, được lập trình và mã chương trình bắt đầu được thực thi. Vì vậy, nếu ngắt được sử dụng, mã chương trình cho chương trình chính không được ghi vào địa chỉ 0x0004.
3. 0x0004 địa chỉ trong "chương trình phục vụ ngắt (ngắt dịch vụ thường xuyên ISR)" lệnh được quy định như lợi nhuận RETF sau khi làm việc với cắt hay còn gọi là chương trình cắt. Trong trường hợp này, PIC tự động lấy địa chỉ từ ngăn xếp nơi nó sẽ trở lại trong chương trình chính và tải nó vào bộ đếm chương trình (PC).
4. Chương trình chính tiếp tục làm việc từ nơi nó rời đi.
Trong hình 3.12, người ta thấy rằng chương trình cắt dịch vụ được chạy trong trường hợp cắt. Trong hình 2.26.a, bộ nhớ chương trình của chương trình dịch vụ ngắt được viết bắt đầu từ địa chỉ 0x0004 Trong hình 2.26.b, có một trường hợp chương trình ngắt được viết bắt đầu từ nhãn này bằng cách phân nhánh đến địa chỉ khác từ địa chỉ 0x0004. Phương pháp này thường được sử dụng trong Hình 2.26.b. Hãy xem xét tình huống trong Hình 2.26.b một cách chi tiết. Giả sử rằng một ngắt xảy ra trong khi thực thi lệnh movlw h'FF 'tại địa chỉ 0x03. Trong trường hợp này, lệnh movlw đầu tiên được dự kiến sẽ hoàn thành công việc.
Trong hình 3.12, người ta thấy rằng chương trình cắt dịch vụ được chạy trong trường hợp cắt. Trong hình 2.26.a, bộ nhớ chương trình của chương trình dịch vụ ngắt được viết bắt đầu từ địa chỉ 0x0004 Trong hình 2.26.b, có một trường hợp chương trình ngắt được viết bắt đầu từ nhãn này bằng cách phân nhánh đến địa chỉ khác từ địa chỉ 0x0004. Phương pháp này thường được sử dụng trong Hình 2.26.b. Hãy xem xét tình huống trong Hình 2.26.b một cách chi tiết. Giả sử rằng một ngắt xảy ra trong khi thực thi lệnh movlw h'FF 'tại địa chỉ 0x03. Trong trường hợp này, lệnh movlw đầu tiên được dự kiến sẽ hoàn thành công việc.
Sau đó, lệnh PORTW movwf tại địa chỉ 0x035 không được thực hiện nhưng địa chỉ trả về 0x035 được trả về ngăn xếp. Điều này được thực hiện tự động bởi PIC. Sau đó nó sẽ tự động chuyển đến vector cắt 0x0004. Với lệnh ACIL goto trong vector ngắt, chương trình dưới nhãn ACIL được thực hiện. Bằng cách thực hiện lệnh retfie ở cuối chương trình này, nó được đảm bảo rằng chương trình tiếp tục hoạt động từ địa chỉ này bằng cách lấy địa chỉ trả về 0x035 từ ngăn xếp. PIC16F628 sử dụng các thanh ghi chuyên dụng INTCON, PIE1 và PIR1 để kiểm soát hoạt động cắt.

Hình 2.26. Hoạt động của chương trình dịch vụ trong trường hợp gián đoạn
Nguồn cắt của PIC16F628
Có 10 trạng thái khác nhau khiến PIC16F628 bị gián đoạn và được gọi là nguồn ngắt. Dưới đây là danh sách các nguồn ngắt cho PIC16F628.
• RB0 ngoài \ INT ngắt
• TMR0 tràn ngắt
• PORTB <4: 7=""> thay đổi cắt theo bit 4:>
• sánh ngắt
• USART TX ngắt
• USART RX ngắt
• ĐCSTQ ngắt
• TMR1 tràn ngắt
• TMR2 ngắt
• EEPROM gián đoạn
ở đây cắt so sánh, USART TX cắt, USART RX gián đoạn cắt ĐCSTQ, TMR1 tràn ngắt, TMR2 gián đoạn, EEPROM ngắt 'cắt ngoại vi' được gọi.
• TMR0 tràn ngắt
• PORTB <4: 7=""> thay đổi cắt theo bit 4:>
• sánh ngắt
• USART TX ngắt
• USART RX ngắt
• ĐCSTQ ngắt
• TMR1 tràn ngắt
• TMR2 ngắt
• EEPROM gián đoạn
ở đây cắt so sánh, USART TX cắt, USART RX gián đoạn cắt ĐCSTQ, TMR1 tràn ngắt, TMR2 gián đoạn, EEPROM ngắt 'cắt ngoại vi' được gọi.
Bộ hẹn giờ-Thông tin cơ bản về bộ hẹn giờ
Các vi điều khiển PIC có một đơn vị phần cứng (s) để sử dụng như một bộ đếm thời gian / bộ đếm. Các hoạt động được thực hiện với các bộ đếm thời gian / bộ đếm này cũng có thể được thực hiện một phần bằng phần mềm. Tuy nhiên, sự hiện diện của các đơn vị này trong phần cứng PIC mang lại sự tiện lợi lớn về mặt phần mềm.
Có 3 bộ đếm thời gian / bộ đếm khác nhau trên PIC16F628. Bây giờ chúng ta hãy kiểm tra chúng lần lượt.
Timer-0 (TIMER-0)
Có 3 bộ đếm thời gian / bộ đếm khác nhau trên PIC16F628. Bây giờ chúng ta hãy kiểm tra chúng lần lượt.
Timer-0 (TIMER-0)
Các tính năng của bộ đếm thời gian này, cũng được tìm thấy trên PIC16F84, được liệt kê dưới đây.
• Bộ đếm thời gian / bộ đếm 8 bit (có thể đếm từ 0 đến 255).
• Với cửa hàng mục đích đặc biệt TMR0, giá trị của bộ hẹn giờ này có thể được đọc hoặc ghi vào thanh ghi này.
• Thời gian đếm / đếm có thể được điều chỉnh bằng bộ chia trước 8 bit.
• Có thể hoạt động với chu kỳ lệnh nội bộ hoặc dấu đồng hồ bên ngoài.
• Khi giá trị của thanh ghi TMR0 đi từ 255 đến 0, nó tạo ra một ngắt.
• Có thể chọn cạnh cho tín hiệu đồng hồ bên ngoài (tín hiệu đồng hồ có thể được chọn trên cạnh giảm / tăng).
• Bộ đếm thời gian / bộ đếm 8 bit (có thể đếm từ 0 đến 255).
• Với cửa hàng mục đích đặc biệt TMR0, giá trị của bộ hẹn giờ này có thể được đọc hoặc ghi vào thanh ghi này.
• Thời gian đếm / đếm có thể được điều chỉnh bằng bộ chia trước 8 bit.
• Có thể hoạt động với chu kỳ lệnh nội bộ hoặc dấu đồng hồ bên ngoài.
• Khi giá trị của thanh ghi TMR0 đi từ 255 đến 0, nó tạo ra một ngắt.
• Có thể chọn cạnh cho tín hiệu đồng hồ bên ngoài (tín hiệu đồng hồ có thể được chọn trên cạnh giảm / tăng).
Khi timer-0 được đặt, nó bắt đầu hoạt động, do đó không có lệnh nào được sử dụng để đếm. Tùy thuộc vào giá trị đặt trước phân chia, giá trị này sẽ tự động tăng theo '1' sau một chu kỳ lệnh nhất định hoặc tùy thuộc vào tín hiệu đồng hồ bên ngoài (hoặc thời gian). Trong trường hợp gián đoạn hoặc các trường hợp đặc biệt khác, bộ hẹn giờ / bộ đếm này tiếp tục hoạt động. Thanh ghi OPTION được sử dụng cho các hoạt động điều khiển timer-0.
Timer-1 (TIMER-1) Các
tính năng của bộ hẹn giờ này, không có sẵn trên PIC16F84, được liệt kê dưới đây:
tính năng của bộ hẹn giờ này, không có sẵn trên PIC16F84, được liệt kê dưới đây:
• Bộ đếm thời gian / bộ đếm 16 bit. (Có thể đếm từ 0 đến 65535)
• Với thanh ghi mục đích đặc biệt 8-bit TMR1H và TMR1L, giá trị của bộ hẹn giờ này có thể được đọc hoặc ghi vào thanh ghi này. TMR1H chứa 8 bit và TMR1L có ý nghĩa rất cao chứa 8 bit có ý nghĩa thấp.
• Thời gian đếm / đếm có thể được điều chỉnh bằng bộ chia trước 3 bit.
• Trong trường hợp tràn, nó có thể sản xuất cắt. (Từ 65535 đến 0)
• Có thể sử dụng làm bộ đếm với đầu vào tín hiệu đồng hồ bên ngoài từ RB6 / T1OSO / T1CKI.
• Đặt lại có thể được tạo từ đơn vị CCP cho bộ hẹn giờ này.
• Có thể sử dụng bộ dao động ngoài cho bộ hẹn giờ này. Trong trường hợp này, bộ dao động phải được kết nối với các thiết bị đầu cuối RB7 \ T1 OSO \ T1CK1 với RB7 / T1OSI. Trong chế độ này, các bit này được đặt làm đầu vào bằng cách bỏ qua trạng thái của các bit TRIS <7: 6="">. 7:>TIMER-1 sử dụng thanh ghi chuyên dụng T1CON cho các hoạt động điều khiển.
• Với thanh ghi mục đích đặc biệt 8-bit TMR1H và TMR1L, giá trị của bộ hẹn giờ này có thể được đọc hoặc ghi vào thanh ghi này. TMR1H chứa 8 bit và TMR1L có ý nghĩa rất cao chứa 8 bit có ý nghĩa thấp.
• Thời gian đếm / đếm có thể được điều chỉnh bằng bộ chia trước 3 bit.
• Trong trường hợp tràn, nó có thể sản xuất cắt. (Từ 65535 đến 0)
• Có thể sử dụng làm bộ đếm với đầu vào tín hiệu đồng hồ bên ngoài từ RB6 / T1OSO / T1CKI.
• Đặt lại có thể được tạo từ đơn vị CCP cho bộ hẹn giờ này.
• Có thể sử dụng bộ dao động ngoài cho bộ hẹn giờ này. Trong trường hợp này, bộ dao động phải được kết nối với các thiết bị đầu cuối RB7 \ T1 OSO \ T1CK1 với RB7 / T1OSI. Trong chế độ này, các bit này được đặt làm đầu vào bằng cách bỏ qua trạng thái của các bit TRIS <7: 6="">. 7:>TIMER-1 sử dụng thanh ghi chuyên dụng T1CON cho các hoạt động điều khiển.
Timer-2 (TIMER-2)
Các tính năng của TMR2, một bộ đếm thời gian khác không có sẵn trong PIC16F84, được liệt kê dưới đây.
• Đây là bộ hẹn giờ 8 bit. Counter không phải là một tính năng
• Nó có một 4-bit pre-chia và chia cuối
• Hoạt động của PWM của chế độ đơn vị ĐCSTQ có thể được sử dụng cho các trường hợp thời gian bình thường, được sử dụng để xác định thời gian PWM
• TMR2 đăng ký có thể đọc và ghi. Đặt lại trạng thái được đặt lại.
• Hẹn giờ-2 đơn vị PR2 gọi là 8-bit thanh ghi trong kỳ TMR2 được tăng lên bởi giá trị 0 PR2 nó được thiết lập lại bằng không khi nó đạt đến giá trị này. Thanh ghi PR2 cũng có thể đọc và ghi được. Giá trị đầu tiên sau khi thiết lập lại của đăng ký này là 0xFF.
Thanh ghi chuyên dụng T2CON được sử dụng cho các hoạt động điều khiển timer-2.
• Đây là bộ hẹn giờ 8 bit. Counter không phải là một tính năng
• Nó có một 4-bit pre-chia và chia cuối
• Hoạt động của PWM của chế độ đơn vị ĐCSTQ có thể được sử dụng cho các trường hợp thời gian bình thường, được sử dụng để xác định thời gian PWM
• TMR2 đăng ký có thể đọc và ghi. Đặt lại trạng thái được đặt lại.
• Hẹn giờ-2 đơn vị PR2 gọi là 8-bit thanh ghi trong kỳ TMR2 được tăng lên bởi giá trị 0 PR2 nó được thiết lập lại bằng không khi nó đạt đến giá trị này. Thanh ghi PR2 cũng có thể đọc và ghi được. Giá trị đầu tiên sau khi thiết lập lại của đăng ký này là 0xFF.
Thanh ghi chuyên dụng T2CON được sử dụng cho các hoạt động điều khiển timer-2.
Watchdog Timer (WDT)
WDT là bộ đếm thời gian cung cấp điều khiển chương trình bằng cách đặt lại PIC nếu chương trình vượt quá thời gian cần thiết để chạy. WDT thực sự là người giám hộ của phần mềm. Lý do dựa trên khả năng của một người giám sát nhà máy để thiết lập một chiếc đồng hồ trong một khoảng thời gian nhất định. Nếu đồng hồ này không được đặt trong thời gian được chỉ định, đồng hồ sẽ báo thức hoặc dừng. Việc thiết lập đồng hồ ở đây cho thấy rằng người gác không ngủ và đi đến nơi có đồng hồ. Quá trình này cho thấy rằng nếu đồng hồ được cài đặt, chương trình chạy trơn tru, đồng hồ không được thiết lập và do đó báo thức được tạo ra. WDT đặt lại PIC ở khoảng 18 ms khi bộ chia cuối cùng được sử dụng 1: 1. Thời gian này thay đổi theo điện áp hoạt động, nhiệt độ môi trường xung quanh và PIC đến PIC. Bạn cũng có thể đặt giá trị chia cuối cùng tối đa là 2.
Chế độ ngủ
Chế độ ngủ được sử dụng để giảm thiểu mức tiêu thụ điện năng khi PIC16F628 không có bất kỳ công việc nào để thực hiện. Chế độ ngủ PIC bằng cách sử dụng lệnh ngủ. Khi lệnh này được thực hiện và chuyển sang chế độ ngủ (Tl), bộ chia kết thúc WDT và WDT được đặt lại và
bit trong thanh ghi STATUS được đặt thành "1" và
bit thành "0". Khi ở chế độ ngủ, vị trí của các đầu vào đầu vào / đầu ra trước khi lệnh ngủ được giữ lại. Các đầu cuối không sử dụng cho mức tiêu thụ điện năng thấp ở chế độ này phải được kéo để cung cấp điện áp hoặc xuống đất. PIC thoát chế độ ngủ khi:


• Khi xung đặt lại bên ngoài được áp dụng từ chốt MCLR
• Khi xảy ra tràn WDT
• Khi ngắt RB0 / INT, ngắt ngắt quãng RB <4: 7="">, hoặc khi một trong các ngắt ngoại vi4:>
• Khi xảy ra tràn WDT
• Khi ngắt RB0 / INT, ngắt ngắt quãng RB <4: 7="">, hoặc khi một trong các ngắt ngoại vi4:>
Các bộ so sánh và đơn vị điện áp tham chiếu
Đơn vị so sánh
Mặc dù PIC16F628 không có bộ chuyển đổi kỹ thuật số tương tự, nó có thể trực tiếp đánh giá tín hiệu tương tự với 2 bộ so sánh tương tự trong đó. Các bộ so sánh tương tự này được đặt ở đầu RA <0: 3="">.0:>
Bây giờ chúng ta hãy xem cách một công cụ so sánh hoạt động. Hình 2.27.a cho thấy một bộ so sánh tương tự trong PIC 16F628. Nếu thiết bị đầu cuối VIN + của thiết bị so sánh lớn hơn thiết bị đầu cuối VIN, đầu ra là điện áp nguồn VDD ("1") của PIC, trong khi đầu cuối VIN + nhỏ hơn thiết bị đầu cuối VIN. (VSS) Trong hình 2.27.b, VIN là tín hiệu hình sin trong khi VIN là tín hiệu biên độ không đổi (DC). Bằng cách này, nếu VIN + lớn hơn VIN-, nó được thấy rằng đầu ra so sánh là "1" và nếu nó nhỏ là "0".

Hình 2.27 (a) Phép so sánh tương tự, (b) hoạt động Các
thiết lập cần thiết cho việc sử dụng bộ so sánh tương tự được thực hiện với kho lưu trữ đặc biệt CMCON Các chế độ vận hành so sánh được thể hiện trong Hình 2.28 .
thiết lập cần thiết cho việc sử dụng bộ so sánh tương tự được thực hiện với kho lưu trữ đặc biệt CMCON Các chế độ vận hành so sánh được thể hiện trong Hình 2.28 .
Hình 2.28 Chế độ vận hành so sánh
Đơn vị điện áp tham chiếu
Đơn vị điện áp tham chiếu (VREF) tạo ra 16 mức điện áp khác nhau cho điện áp tham chiếu so sánh. Các chế độ hoạt động so sánh được hiển thị trong Hình 2.28 được sử dụng trong chế độ vận hành CM2: CM0 = 010. Sơ đồ mạch của đơn vị điện áp tham chiếu được thể hiện trong Hình 2.29. Thiết bị này được điều khiển bởi cửa hàng chuyên dụng VRCON [5].

Hình 2.29 Sơ đồ mạch điện áp tham chiếu
Đơn vị Capture \ Compare \ PWM
2.5.10.1 Capture \ Compare \ PWM (Capture \ Compare \ PWM-CCP) Đơn vị
Thiết bị này chứa một thanh ghi 16 bit, một thanh ghi so sánh 16 bit hoặc một thanh ghi 16 bit có thể hoạt động như một thanh ghi PWM. Chế độ chụp giữ giá trị của thanh ghi TMR1 16 bit khi có sự kiện trên đầu RB3 / CCP1. Tính năng này có thể được sử dụng trong các ứng dụng như tính tần số của một dấu hiệu được nhập từ đầu này. Chế độ so sánh so sánh giá trị trong thanh ghi CCPR với giá trị trong thanh ghi TMR1. Tính năng này có thể được sử dụng để tạo các vết cắt định kỳ tùy thuộc vào các giá trị trong thanh ghi CCPR1 và TMR1. Chế độ PWM (Điều chế độ rộng xung) được sử dụng để tạo xung định kỳ. Tính năng này có thể được sử dụng để điều khiển một mạch bên ngoài bằng cách thay đổi độ rộng của các chân được tạo ra.
Thiết bị này chứa một thanh ghi 16 bit, một thanh ghi so sánh 16 bit hoặc một thanh ghi 16 bit có thể hoạt động như một thanh ghi PWM. Chế độ chụp giữ giá trị của thanh ghi TMR1 16 bit khi có sự kiện trên đầu RB3 / CCP1. Tính năng này có thể được sử dụng trong các ứng dụng như tính tần số của một dấu hiệu được nhập từ đầu này. Chế độ so sánh so sánh giá trị trong thanh ghi CCPR với giá trị trong thanh ghi TMR1. Tính năng này có thể được sử dụng để tạo các vết cắt định kỳ tùy thuộc vào các giá trị trong thanh ghi CCPR1 và TMR1. Chế độ PWM (Điều chế độ rộng xung) được sử dụng để tạo xung định kỳ. Tính năng này có thể được sử dụng để điều khiển một mạch bên ngoài bằng cách thay đổi độ rộng của các chân được tạo ra.
CHẾ ĐỘ CHỤP PIC16F628
Khi tính năng chụp được sử dụng, giá trị của cửa hàng TMR1 được thả vào thanh ghi CCPR1H: CCPR1L khi một trong những sự kiện được xác định trước xảy ra. Những sự kiện này ở đầu RB3 / CCP1;
• Mỗi điểm đánh dấu cạnh
• Mỗi điểm đánh dấu cạnh tăng
• Mỗi 4. dấu cạnh tăng
• Mỗi 16. dấu cạnh tăng
• Mỗi điểm đánh dấu cạnh
• Mỗi điểm đánh dấu cạnh tăng
• Mỗi 4. dấu cạnh tăng
• Mỗi 16. dấu cạnh tăng
đi vào khi nó xảy ra. Những sự kiện này được chọn bằng cách sử dụng cửa hàng CCP1CON. Khi chụp được thực hiện, bit CCP1IF (2) của thanh ghi PIR1 trở thành "1". Bit này phải được đặt thành "0" thông qua mã chương trình để quá trình chụp được lặp lại. Nếu một hoạt động chụp khác được thực hiện mà không đọc nội dung của cửa hàng CCPR1, giá trị cũ sẽ bị mất khi giá trị mới được ghi vào kho CCPR1. Khi sử dụng tính năng chụp, RB3 / CCP1 phải được đặt làm đầu vào. Bit này được coi là đầu ra và việc ghi bắt đầu xảy ra khi thực hiện thao tác ghi cổng.

Hình 2.30 Sơ đồ khối của thiết bị chụp
Hình 2.30 cho thấy sơ đồ khối của đơn vị chụp. Timer1 phải được chạy trong chế độ đếm thời gian hoặc đồng bộ trong khi tính năng chụp của đơn vị CCP đang được sử dụng. Chụp ở chế độ đếm không đồng bộ có thể không hoạt động. Có thể tạo ngắt chụp không chính xác khi chế độ chụp được thay đổi.
Để ngăn chặn sự xuất hiện của cắt bị lỗi PIE1 cơ quan lưu chiểu của CCP1 (2) khi hoàn tất được thiết lập lại và chế độ chụp được thay đổi ccplıf các thanh ghi PIR1 (2) bit phải được đặt lại.
Có 4 cài đặt chia trước cho chế độ chụp. Các cài đặt này được thực hiện qua cửa hàng CCP1CON. Giá trị tiền khuếch đại được đặt lại khi đơn vị CCP bị tắt hoặc đơn vị CCP không ở chế độ chụp. Đó là, trong bất kỳ thiết lập lại, giá trị chia trước được đặt lại. Chuyển từ một giá trị chụp trước bộ chia này sang giá trị khác có thể tạo ra ngắt. Vì bộ đếm chia trước không được đặt lại, lần chụp sau thay đổi đầu tiên có thể là kết quả của một bộ chia trước không khác. Để giải quyết vấn đề này, đặc biệt là đơn vị CCP1CON nên được đóng lại, thì đơn vị ĐCSTQ phải được kích hoạt bằng cách tải giá trị phân chia trước mới.
Chế độ so sánh
Trong chế độ so sánh, giá trị trong thanh ghi CCPR 16 bit được so sánh với giá trị trong thanh ghi TMR1. RB3 \ CCP có thể được để ở trạng thái hiện tại, "0" hoặc "1" (trong chế độ hoạt động RB3 / CCP1 này phải được coi là đầu ra) trong trường hợp bình đẳng của các giá trị được so sánh. Điều này được thực hiện bằng cách sử dụng bit 3: 0 của thanh ghi CCP1CON. Nếu các giá trị so sánh bằng nhau, bit CCPlIF trong thanh ghi PIR1 cũng là "1".

Hình 2.31. Cấu trúc khối của đơn vị so sánh
Đặt lại thanh ghi CCP1CON buộc đầu ra so sánh RB3 / CCP1 để đặt lại. Timer1 phải được chạy trong chế độ đếm thời gian hoặc đồng bộ trong khi đơn vị CCP đang sử dụng tính năng so sánh. Hoạt động so sánh trong chế độ đếm không đồng bộ có thể không hoạt động.
PIC16F628 PWM MODU
Trong chế độ PWM, pin RB3 / CCP1 tạo ra tới 10 bit đầu ra PWM. Vì bit này được nhân với bộ dữ liệu PORTB (vì nó sử dụng cùng một thứ), đầu ra RB3 / CCP1 phải được thực hiện bằng cách đặt lại bit 3 của TRISB. Biểu diễn khối đơn giản hóa của chế độ PWM đơn vị CCP được hiển thị trong Hình 2.32.

Hình 2.32 Biểu diễn khối đơn giản hóa của
đơn vị PWM Chu kỳ nhiệm vụ xung và xung của tín hiệu được tạo ra bởi đơn vị PWM có thể được thay đổi. Hình 2.33 cho thấy khoảng thời gian và tốc độ xung của tín hiệu tại đầu ra PWM.
đơn vị PWM Chu kỳ nhiệm vụ xung và xung của tín hiệu được tạo ra bởi đơn vị PWM có thể được thay đổi. Hình 2.33 cho thấy khoảng thời gian và tốc độ xung của tín hiệu tại đầu ra PWM.

Hình 2.33 Tín hiệu đầu ra PWM
Xác định thời gian PWM
thời gian PWM, PR2 được xác định bởi các giá trị được ghi vào thanh ghi mục đích đặc biệt và có thể được tính như sau:
Giai đoạn PWM = [(PR2) +1] x 4 x TOSCA x (TMR2 giá trị chia trước)
giá trị TMR2 bằng PR2, tmr2'n Trong gia tăng tiếp theo ba sự kiện sau xảy ra:
• TMR2 được đặt lại.
• RB3 / CCP1 thiết bị đầu cuối "1" được thực hiện (Tỷ lệ lấp đầy xung từ 0% trong khi nhà ga "1" được thực hiện).
• Tốc độ xung PWM được tải trên thanh ghi CCPR và CCPR1H.
Vì nó được nhìn thấy trong công thức trên TMR2 chia cuối cùng không được xem xét khi tính thời gian PWM. Bộ chia cuối cùng có thể được sử dụng để tạo ra một loại frekans khác nhau được cắt từ đầu ra PWM.
Giai đoạn PWM = [(PR2) +1] x 4 x TOSCA x (TMR2 giá trị chia trước)
giá trị TMR2 bằng PR2, tmr2'n Trong gia tăng tiếp theo ba sự kiện sau xảy ra:
• TMR2 được đặt lại.
• RB3 / CCP1 thiết bị đầu cuối "1" được thực hiện (Tỷ lệ lấp đầy xung từ 0% trong khi nhà ga "1" được thực hiện).
• Tốc độ xung PWM được tải trên thanh ghi CCPR và CCPR1H.
Vì nó được nhìn thấy trong công thức trên TMR2 chia cuối cùng không được xem xét khi tính thời gian PWM. Bộ chia cuối cùng có thể được sử dụng để tạo ra một loại frekans khác nhau được cắt từ đầu ra PWM.
Xác định tỷ lệ xung xung PWM
tỷ lệ PWM công suất, đăng ký CCPR1L và CCP1CO của <5: 4=""> quyết định bởi giá trị ghi vào tốc độ bit công suất có độ phân giải lên đến 10 bit. 5:>Phương trình sau đây được sử dụng để tính toán tỷ lệ PWM công suất:
PWM tỷ lệ lấp đầy = (CCPR1L: CCP1CO của <5: 4="">) x TOSCA x (TMR2 splitter trước) 5:>
CCPR1L và CCP1CO của <5: 4=""> có thể được viết bất cứ lúc nào, nhưng pr2v để TMR2 bằng giá trị này không được ghi trong thanh ghi CCPR1H. 5:>Tức là một khoảng thời gian xung PWM mới là Tỷ lệ lấp đầy hoàn toàn không trở thành hoạt động CCPR1H read-only PWM mode CCPR1H-bit thanh ghi bên trong và chủ thứ hai (chốt) được sử dụng để lưu trữ các Tỷ lệ lấp đầy của chu kỳ PWM trong một bộ đệm kép. Bộ đệm kép này được yêu cầu cho hoạt động PWM trơn tru.
Độ phân giải PWM tối đa cho một tần số PWM đã cho được tính như sau:
PWM tỷ lệ lấp đầy = (CCPR1L: CCP1CO của <5: 4="">) x TOSCA x (TMR2 splitter trước) 5:>
CCPR1L và CCP1CO của <5: 4=""> có thể được viết bất cứ lúc nào, nhưng pr2v để TMR2 bằng giá trị này không được ghi trong thanh ghi CCPR1H. 5:>Tức là một khoảng thời gian xung PWM mới là Tỷ lệ lấp đầy hoàn toàn không trở thành hoạt động CCPR1H read-only PWM mode CCPR1H-bit thanh ghi bên trong và chủ thứ hai (chốt) được sử dụng để lưu trữ các Tỷ lệ lấp đầy của chu kỳ PWM trong một bộ đệm kép. Bộ đệm kép này được yêu cầu cho hoạt động PWM trơn tru.
Độ phân giải PWM tối đa cho một tần số PWM đã cho được tính như sau:
Độ phân giải PWM =

Nếu tốc độ xung PWM lớn hơn thời gian PWM, cần biết rằng thiết bị đầu cuối RB3 \ CCP1 sẽ không được đặt lại.
Yêu cầu đối với hoạt động chế độ PWM
Để sử dụng đơn vị CCP ở chế độ PWM, các hoạt động sau phải được thực hiện:
1. Viết giá trị yêu cầu trong thanh ghi PR2 để đặt thời gian PWM.
2. Viết tỷ lệ lấp đầy PWM cho các thanh ghi CCPR1L và bit CCP1CON <5: 4="">. 5:>
3. Bit thứ ba của thanh ghi TRISB được đặt thành "0" và đầu ra RB3 / CCP1 được bật.
4. Đặt giá trị phân chia trước TMR2 và kích hoạt TMR2 bằng thanh ghi T2CON [5].
1. Viết giá trị yêu cầu trong thanh ghi PR2 để đặt thời gian PWM.
2. Viết tỷ lệ lấp đầy PWM cho các thanh ghi CCPR1L và bit CCP1CON <5: 4="">. 5:>
3. Bit thứ ba của thanh ghi TRISB được đặt thành "0" và đầu ra RB3 / CCP1 được bật.
4. Đặt giá trị phân chia trước TMR2 và kích hoạt TMR2 bằng thanh ghi T2CON [5].
Đơn vị USART
PIC16F628 có một đơn vị USART cho phép giao tiếp nối tiếp phần cứng. Đơn vị này còn được gọi là Giao tiếp Truyền thông Nối tiếp (SCI). Đơn vị USART có thể hoạt động ở chế độ không đồng bộ full-duplex hoặc chế độ đồng bộ bán song công. Với chế độ hoạt động không đồng bộ full-duplex các thiết bị ngoại vi như máy tính cá nhân; chế độ chạy đồng bộ bán hai chiều, ADC-DAC, EEPROM nối tiếp. USART đơn vị có thể được vận hành trên các phương thức thông tin liên lạc sau:
• Không đồng bộ (full duplex)
• Đồng bộ - Thạc sĩ (half duplex)
• Đồng bộ - Slave (half duplex)
• Không đồng bộ (full duplex)
• Đồng bộ - Thạc sĩ (half duplex)
• Đồng bộ - Slave (half duplex)
Bây giờ chúng ta hãy đề cập ngắn gọn những khái niệm được đề cập ở trên. Các kênh truyền dữ liệu nối tiếp được chia thành simplex, half duplex và full duplex, như trong Hình 3.20:
• Truyền dữ liệu một chiều: Có luồng dữ liệu một chiều trên kênh.
• Truyền dữ liệu bán song công: Cả hai bên có thể gửi và nhận dữ liệu qua cùng một kênh. Tuy nhiên, việc gửi và nhận cũng không thể được thực hiện từ cùng một phía.
• Truyền dữ liệu hai chiều đầy đủ: Có hai kênh khác nhau để nhận và gửi. Vì lý do này, cả việc nhập và xuất đều có thể được thực hiện cùng một lúc.
• Truyền dữ liệu một chiều: Có luồng dữ liệu một chiều trên kênh.
• Truyền dữ liệu bán song công: Cả hai bên có thể gửi và nhận dữ liệu qua cùng một kênh. Tuy nhiên, việc gửi và nhận cũng không thể được thực hiện từ cùng một phía.
• Truyền dữ liệu hai chiều đầy đủ: Có hai kênh khác nhau để nhận và gửi. Vì lý do này, cả việc nhập và xuất đều có thể được thực hiện cùng một lúc.
các dữ liệu gửi và nhận dữ liệu đầu của kênh truyền mô tả ở trên cần phải giao tiếp phù hợp với các quy tắc cụ thể. Do đó, các giao thức truyền dữ liệu đồng bộ và không đồng bộ có thể được sử dụng theo tính chất của dữ liệu truyền đi. Bây giờ chúng ta hãy xem xét các giao thức này:

Hình 2.34 Các kiểu kênh dữ liệu để truyền dữ liệu nối tiếp
• Giao thức truyền dữ liệu không đồng bộ: Giao thức này thường được sử dụng cho các hoạt động dựa trên ký tự. Đối với mỗi dữ liệu được gửi, thông tin xác định đầu và cuối của dữ liệu cũng được gửi. Cấu trúc gói dữ liệu được sử dụng trong truyền dữ liệu không đồng bộ được thể hiện trong Hình 2.35.

Hình 2.35 Cấu trúc gói dữ liệu trong truyền dữ liệu không đồng bộ
• Giao thức truyền dữ liệu đồng thời: Giao thức được sử dụng để gửi các khối dữ liệu (ví dụ: chuỗi ký tự). Vì dữ liệu được gửi trong giao thức này được coi là một khối, không cần gửi thông tin bắt đầu và kết thúc cho mỗi ký tự. Cùng với dữ liệu, một dấu hiệu đồng hồ cũng được gửi để đồng bộ hóa.
Post a Comment