Chương 1: VI ĐIỀU KHIỂN CHUẨN CÔNG NGHIỆP PIC16F84A. CẤU TRÚC PHẦN CỨNG. Tổng quan - PIC16F84A có kiến trúc RISC. - PIC16F84A chỉ có 35 lệnh nên dễ học và dễ nhớ.
- Hầu hết các lệnh chỉ thực thi trong một chu kỳ lệnh (chỉ có một số lệnh phải cần hai chu kỳ ñể thực thi). - Tốc ñộ hoạt ñộng của PIC16F84A: Nguồn xung nhịp hoạt ñộng lên ñến 20Mhz, tại giá trị xung nhịp này thì thời gian thực thi lệnh mất khoảng 200ns. - Bộ nhớ chương trình của PIC16F84A là 1024word (14bit). - Bộ nhớ dữ liệu RAM của PIC16F84A là 64byte (8bit).
- Bộ nhớ dữ liệu EEPROM của PIC16F84A là 64byte (8bit), có thể ghi/xóa lên ñến 1013 lần. - Tất cả các byte dữ liệu ñều có ñộ dài 8bit. - PIC16F84A có bộ nhớ chương trình dạng Flash, có thể ghi/xóa lên ñến 10. - PIC16F84A có bộ Wacthdog time hoạt ñộng với một nguồn dao ñộng RC ñộc lập ñược tích hợp bên trong PIC.
- PIC16F84A có hỗ trợ chế ñộ Sleep nhằm tiết kiệm năng lượng khi ngừng hoạt ñộng trong thời gian dài. - Ta có thể chọn nhiều kiểu dao ñộng (OSC) cho PIC16F84A. Học viên: Nguyễn Anh Tú. 6 Viện Đại học Mở Hà Nội.
Khoa Đào tạo sau ñại học. Đề tài: Vi ñiều khiển chuẩn công nghiệp PIC16F84A và các chương trình ứng dụng.1: Sơ ñồ chân của PIC16F84A. - PIC16F84A có tất cả 13 ñường nhập/xuất (13 chân I/O) song công và có thể hoạt ñộng ñộc lập nhau; - Mỗi chân nhập/xuất của PIC16F84A có thể ñiều khiển trực tiếp các LED với dòng ñiện lớn, trong ñó: Dòng vào khoảng 25mA (Max) trên mỗi chân. Dòng ra khoảng 25mA (Max) trên mỗi chân.
- PIC16F84A có một bộ Time gọi là TIME0 8bit, kèm theo một bộ chia cho phép chúng ta lập trình ñược. - Các chân của Port A: PORTA có 5 chân, kí hiệu là RA0, RA1, RA2, RA3, RA4. Ngõ vào (Input) tất cả các chân của PORTA có mức tích cực theo chuẩn TTL và ngõ xuất (Output) ñược ñiều khiển bởi các FET – CMOS. Khi làm việc với PORTA ta cần ñặc biệt chú ý ñến chân RA4 vì chân RA4 có cấu trúc ñặc biệt.
Là cổng ra ñược thiết kế duy nhất một FET kênh N và một mạch Schmitt Trigger làm bộ ñệm cho Học viên: Nguyễn Anh Tú. 7 Viện Đại học Mở Hà Nội. Khoa Đào tạo sau ñại học. Đề tài: Vi ñiều khiển chuẩn công nghiệp PIC16F84A và các chương trình ứng dụng.
Có thể hiểu một cách khái quát là chân RA4 có cực máng hở khi xuất dữ liệu, do ñó khi giao tiếp với RA4 cần phải mắc thêm một ñiện trở nối với dương nguồn. Ngoài ra chân RA4 còn có chức năng nhận nguồn từ bên ngoài cho bộ TIMER ở chế ñộ COUNTER. - Các chân của PortB: PORTB có tất cả 8 chân, từ RB0 (chân 6) ñến RB7 (chân13) hoạt ñộng cả hai chế ñộ là nhập và xuất dữ liệu. Các chân RB0, RB1, RB2, RB3 không dùng các FET – CMOS cho mạch ñiện ngõ ra như ở PORTA, thay vào ñó nó dùng các cổng logic.
Trong chế ñộ nhập dữ liệu (input) PORTB có một mạch ñiều khiển ñiện trở nối với dương nguồn gọi là PULL – UP, giá trị ñiện trở này rất lớn (khoảng 47KΩ) nên còn gọi là WEAK PULL UP RESISTAL (việc ñiều khiển PULL - UP sẽ ñược tiến hành thông qua việc tác ñộng trên thanh ghi OPTION_REG). Vì các chân của PORTB có nhiều chức năng khác nhau do vậy ñể dễ nhớ chúng ta chia nó làm 3 thành phần như sau: Chân RB0 có hai chức năng là: Nhập – xuất dữ liệu. Nó ñược kết nối với mạch ñiện bên trong PIC16F84A thông qua bộ ñệm SCHMITT TRIGGER nên chân này ñược ký hiệu là RB0/INT. Các chân RB1, RB2, RB3: Làm nhiện vụ nhập – xuất dữ liệu.
Các chân RB4, RB5, RB6, RB7 :Ngoài chức năng nhập – xuất dữ liệu, chúng còn là các chân nhận dạng tín hiệu ngõ vào (khi tín hiệu trên các chân này thay ñổi lập tức sẽ phát sinh ra một ngắt). Để sử dụng ñược chức năng này chúng ta cần lập trình trên thanh ghi INTCON. Chân 4 của PIC16F84A là chân Reset, trên hình vẽ ký hiệu là MCLR. Chân Reset có nhiệm vụ bắt vi ñiều khiển khởi ñộng lại chương trình từ ñầu khi chân này ñược tác ñộng một mức tích cực là mức thấp.
Khi có mức thấp tác ñộng vào chân này thì ngay lập tức mọi công việc hiện tại của PIC sẽ kết thúc và Học viên: Nguyễn Anh Tú. 8 Viện Đại học Mở Hà Nội. Khoa Đào tạo sau ñại học. Đề tài: Vi ñiều khiển chuẩn công nghiệp PIC16F84A và các chương trình ứng dụng.
------------------------------------------------------------------------------------------------------------- tiến hành hoạt ñộng lại từ ñầu (quá trình này xảy ra tương tự như khi thao tác bật nguồn. Khi bật nguồn, ñiện áp dương VDD cấp cho PIC ñạt khoảng từ 1.7v là thời ñiểm PIC nhận dạng và một tín hiệu Reset ñược thi hành, ta gọi ñó là POWER ON RESET). Tín hiệu Reset ñược PIC nhận dạng thông qua sự thay ñổi ñiện áp VDD rơi trên chân 4 (MCLR). Để làm ñược việc này bên trong PIC có mạch nhận dạng Power on Reset (POR), tuy nhiên yêu cầu ñặt ra là sự thay ñổi ñiện áp VDD phải nhanh hơn khoảng 50ms.
Nếu ñiện áp VDD thay ñổi chậm hơn 50ms thì khi ñó cần có mạch Reset bên ngoài ñược thiết kế như hình dưới ñây: VDD 1N4148 R2 D 10KΩ R1 4 MCLR 100Ω ÷ 470Ω 0.2: Sơ ñồ mạch reset của PIC16F84A. Nguyên lý hoạt ñộng của mạch ñiện trên ñược mô tả như sau: Khi lần ñầu tiên ñiện áp ñược cấp, tụ C sẽ ñược nạp ñiện thông qua R2. Như vậy ta có mạch ñiện trễ (Delay) R2 - C, ñiện áp rơi trên chân 4 sẽ tạo lên tín hiệu Reset cho PIC. Nói cách khác, ñiện áp chân 4 sẽ ñược giữ ở mức thấp trong khoảng thời gian lâu hơn, thời gian ñó nhằm mục ñích ñể cho nguồn cung cấp ñạt ñược sự ổn ñịnh.
Bởi khi khởi ñộng một hệ thống là thời ñiểm hệ thống tiêu thụ một dòng ñiện khá lớn, khi ñó ñiện áp sẽ bị mất ổn ñịnh nên trong khoảng thời gian này chúng ta cần giữ cho ñiện áp chân 4 của PIC ở mức thấp lâu hơn. Đây chính là lý do cần phải sử dụng mạch Reset trên. Diode D có tác dụng bảo vệ chân 4 khi ngắt nguồn, khi ñó D làm nhiệm vụ tạo ra ñường dẫn ñể tụ C phóng ñiện. Học viên: Nguyễn Anh Tú.
9 Viện Đại học Mở Hà Nội. Khoa Đào tạo sau ñại học. Đề tài: Vi ñiều khiển chuẩn công nghiệp PIC16F84A và các chương trình ứng dụng. ------------------------------------------------------------------------------------------------------------- - Các chân OSC1 và OSC2.
Chân 15 và Chân 16 là các chân xung nhịp, trong ñó: Chân 15: OSC2/CLKOUT. Chân 16: OSC1/CLKIN. Vi ñiều khiển PIC thực thi chương trình ở một tốc ñộ nhất ñịnh, tốc ñộ này ñược xác ñịnh thông qua tần số của bộ dao ñộng. Bộ tạo dao ñộng của PIC có thể là một mạch dao ñộng RC hay bộ dao ñộng dùng tinh thể thạch anh.
Bộ dao ñộng sẽ hoạt ñộng ngay sau khi cấp nguồn cho PIC. PIC16F84A có thể hoạt ñộng với 4 kiểu dao ñộng khác nhau là: LP : Low Power Crytal (Thạch anh nguồn thấp). XT : Crytal/Resonator (Thạch anh/Bộ cộng hưởng). HS : Hight Speed Crytal/Resonator (Thạch anh tốc ñộ cao/Bộ cộng hưởng).
RC : Resistor/Capacitor (Điện trở/tụ ñiện). Việc cho PIC hoạt ñộng với kiểu dao ñộng nào là tùy thuộc vào chúng ta thông qua 2 bit FOSC1 và FOSC2 trong Word Config của bộ nhớ chương trình. Việc này cũng có thể ñược làm trong lúc nạp file chương trình cho PIC. Thông thường ta chọn kiểu dao ñộng cho PIC là kiểu XT (Dùng thạch anh 4MHz) và loại RC.
- Các chân cấp nguồn. Chân 5 là chân nối Mass, trên hình vẽ ký hiệu là VSS. Chân 14 là chân nhận nguồn ñiện áp dương, trên hình vẽ kí hiệu là VDD. PIC16F84A hoạt ñộng với dải ñiện áp thấp (từ 2v ñến 5v), tiêu thụ dòng rất nhỏ (khoảng dưới 2mA với ñiện áp 5v).
Có thể nói PIC16F84 khá tiết kiệm năng lượng, thích hợp ứng dụng trong công nghiệp. Phân bố bộ nhớ trên PIC 16F84A. Phân bố bộ nhớ ROM và RAM: PIC16F84A có kiến trúc Harvard nên có hai khối bộ nhớ ñược truy xuất bởi 2 BUS riêng biệt nhau, ñó là: Bộ nhớ dữ liệu. Học viên: Nguyễn Anh Tú.
10 Viện Đại học Mở Hà Nội. Khoa Đào tạo sau ñại học. Đề tài: Vi ñiều khiển chuẩn công nghiệp PIC16F84A và các chương trình ứng dụng. ------------------------------------------------------------------------------------------------------------- Bộ nhớ chương trình.
Trong ñó, bộ nhớ EEPROM và các thanh ghi có chức năng ñặc biệt thuộc về bộ nhớ dữ liệu. Bộ nhớ FLASH ROM thuộc về bộ nhớ chương trình. Sơ ñồ mô tả các khối bộ nhớ ñược mô tả như sau: Hình 1.3: Sơ ñồ khối bộ nhớ của PIC16F84A. Bộ nhớ chương trình của PIC.
Bộ nhớ chương trình của PIC16F84A ñược chế tạo bằng công nghệ FLASH do ñó mà nó cho phép chúng ta Ghi – Xóa ñược với khoảng 10. Bộ nhớ chương trình của PIC16F84A có dung lượng 1024 ô nhớ, mỗi ô nhớ có ñộ dài 14bit thường gọi là 1 từ (1Word), vì vậy PIC16F84A có dung lượng bộ nhớ chương trình là 1024Word. Học viên: Nguyễn Anh Tú. 11 Viện Đại học Mở Hà Nội.
Khoa Đào tạo sau ñại học. Đề tài: Vi ñiều khiển chuẩn công nghiệp PIC16F84A và các chương trình ứng dụng. ------------------------------------------------------------------------------------------------------------- Sơ ñồ bộ nhớ chương trình của PIC16F84A ñược mô tả như sau: Hình 1.4: Sơ ñồ khối bộ nhớ chương trình của PIC16F84A. Bộ nhớ dữ liệu của PIC: Bộ nhớ dữ liệu của PIC16F84A ñược chia làm 2 loại, ñó là: Bộ nhớ EEPROM (có 64Byte).
Học viên: Nguyễn Anh Tú. 12 Viện Đại học Mở Hà Nội. Khoa Đào tạo sau ñại học. Đề tài: Vi ñiều khiển chuẩn công nghiệp PIC16F84A và các chương trình ứng dụng.
------------------------------------------------------------------------------------------------------------- Bộ nhớ RAM (có 68Byte). Bộ nhớ EEPROM (Electrically Erasable Programmable ROM): Đây là bộ nhớ cho phép xóa bằng ñiện nên gần như công việc xóa ñược tiến hành tức thời không giống như bộ nhớ ROM phải cần một khoảng thời gian ñể có thể xóa hết nội dung trong PIC. Đặc ñiểm khác biệt giữa bộ nhớ EEPROM và Flash là bộ nhớ EEPROM cho phép chúng ta Ghi – Xóa trên từng Byte dữ liệu, trong khi ñó bộ nhớ Flash (mặc dù chúng vẫn là loại EEPROM, ñể tránh nhầm lẫn ta gọi ñó là Flash EEPROM) khi xóa thì buộc phải xóa hết toàn bộ. Ngoài ra, bộ nhớ EEPROM cho phép Ghi – Xóa khoảng 10.000 lần còn bộ nhớ Flash EEPROM chỉ cho phép Ghi – Xóa 10.
Chú ý: Bộ nhớ EEPROM không có ñịa chỉ trực tiếp, ñịa chỉ của nó ñược truy xuất gián tiếp thông qua các thanh ghi EEADR và EEDATA.