Do Va Dieu Khien Nhiet Do

61
Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh TRƯỜNG CAO ĐẲNG KĨ THUẬT CAO THẮNG KHOA: ĐIỆN TỬ _ TIN HỌC LỚP: CĐĐT06 Lun vă n GVHD: NGUYỄN TRỌNG KHANH SVTH: LÝ NGUYN H

Transcript of Do Va Dieu Khien Nhiet Do

Page 1: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 1

TRƯỜNG CAO ĐẲNG KĨ THUẬT CAO THẮNG KHOA: ĐIỆN TỬ _ TIN HỌC

LỚP: CĐĐT06

Luận vă n

GVHD: NGUYỄN TRỌNG KHANH

SVTH: LÝ NGUYN H

Page 2: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 2

LỜI CẢM ƠN

Trước tiên em xin chân thành cảm ơn toàn thể thầy cô trường Cao Đẳng Kỷ

Thuật Cao Thắng , những người đ tạo điều kiện cho em có cơ hội nghiên cứu và tìm

hiểu su rộng về lĩnh vực điện tử, đặc biệt là thầy Nguyễn Trọng Khanh đ tận tình hướng

dẫn và giúp đỡ chng em trong thời gian thực hiện đề tài. Đồng thời chng em cũng gửi lời

cảm ơn tới gia đình v bạn b đ gip đỡ em trong thời gian qua. Có được sự giúp đỡ nhiệt

tình đó cộng với sự cố gắng của bản thân nên em đ hồn thnh được đề tài đng thời hạn.

Với sự hiểu biết cịn hạn chế v thời gian thực hiện đề tài không nhiều nên đề tài không

tránh khỏi những sai sót. Rất cảm ơn sự hướng dẫn và góp ý của quý thầy cơ v bạn b cho

đề tài được hoàn chỉnh hơn.

Em xin chân thành cảm ơn!

Sinh vin thực hiện

Lý Nguyn H

Page 3: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 3

NHẬN XÉT CỦA GIÁO VIÊN µ

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

Tp Hồ Chí Minh, ngy… thng… năm 2009 Gio vin hướng dẫn Ký tn Thầy Gio Nguyễn Trọng Khanh

Page 4: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 4

NHẬN XT CỦA GIO VIN PHẢN BIỆN µ

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

.............................................................................................................................................................................

Tp HCM, ngy… thng… năm 2009 Gio vin phản biện

Page 5: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 5

Page 6: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 6

I. GIỚI THIỆU VỀ VI ĐIỀU KHIỂN PIC 16F877A

1.1. Giới thiệu chung

1.1.1 Tổng quan về họ Vi điều khiển PIC

PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip Technology. Dịng PIC đầu tiên là PIC1650 được phát triển bởi Microelectronics Division thuộc General_Instrument. PIC bắt nguồn từ chữ viết tắt của “Programmable Intelligent Computer” (Máy tính khả trình thơng minh) l một sản phẩm của hng General Instruments đặt cho dịng sản phẩm đầu tiên của họ là PIC1650. Lúc này, PIC 1650 được dùng để giao tiếp với các thiết bị ngoại vi cho máy chủ 16 bit CP1600, vì vậy, người ta cũng gọi PIC với tên “Peripheral Interface Controller” (Bộ điều khiển giao tiếp ngoại vi). CP1600 là một CPU tốt, nhưng lại kém về các hoạt động xuất nhập, và vì vậy PIC 8-bit được phát triển vào khoảng năm 1975 để hỗ trợ hoạt động xuất nhập cho CP1600. PIC sử dụng microcode đơn giản đặt trong ROM, và mặc dù, cụm từ RISC chưa được sử dụng thời bấy giờ, nhưng PIC thực sự là một vi điều khiển với kiến trúc RISC, chạy một lệnh một chu kỳ máy (4 chu kỳ của bộ dao động). Năm 1985 General Instruments bán bộ phận vi điện tử của họ, và chủ sở hữu mới hủy bỏ hầu hết các dự án – lúc đó quá lỗi thời. Tuy nhiên, PIC được bổ sung EPROM để tạo thành 1 bộ điều khiển vào ra khả trình. Ngy nay rất nhiều dịng PIC được xuất xưởng với hàng loạt các module ngoại vi tích hợp sẵn (như USART, PWM, ADC…), với bộ nhớ chương trình từ 512 Word đến 32K Word.

1.1.2. Một số đặc tính của Vi điều khiển PIC

Hiện nay cĩ kh nhiều dịng PIC v cĩ rất nhiều khc biệt về phần cứng, nhưng chúng ta có thể điểm qua một vài nét như sau :

• 8/16 bit CPU, xây dựng theo kiến truc Harvard có sửa đổi

• Flash và ROM có thể tuỳ chọn từ 256 byte đến 256 Kbyte

• Các cổng Xuất/ Nhập (I/ O ports) (mức logic thường từ 0V đến 5.5V, ứng với logic 0 và logic 1)

• 8/16 bit Timer

• Các chuẩn giao tiếp nối tiếp đồng bộ/ khung đồng bộ USART

• Bộ chuyển đổi ADC Analog-to-digital converters, 10/12 bit

• Bộ so sánh điện áp (Voltage Comparator)

• Cc module Capture/ Compare/ PWM

• LCD

• MSSP Peripheral dựng cho cc giao tiếp I2 C, SPI, I2 S

• Bộ nhớ nội EPROM – cĩ thể ghi/ xố lớn tới 1 triệu lần

• Module Điều khiển động cơ, đọc encoder

• Hỗ trợ giao tiếp USB

Page 7: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 7

• Hỗ trợ giao tiếp CAN

• Hỗ trợ giao tiếp LIN

• Hỗ trợ giao tiếp IrDA • Một số dịng cĩ tích hợp bộ RF (PIC16f639, v rfPIC)

• KEELOQ mờ hố v giải mờ

• DSP những tính năng xử lý tín hiệu số (dsPIC)

Đặc điểm thực thi tốc độ cao của RISC CPU của họ vi diều khiển PIC16F87XA :

• Chỉ gồm 35 lệnh đơn.

• Tất cả các lệnh là 1chu kỳ ngoại trừ chương trình con l 2 chu kỳ.

• Tốc độ hoạt động :

*DC- 20MHz ng vo xung clock.

*DC- 200ns chu kỳ lệnh.

• Độ rộng của bộ nhớ chương trình Flash l 8K x 14word, của bộ nhớ dữ liệu (RAM) l 368 x 8bytes, của bộ nhớ dữ liệu l EPROM (RAM) l 256 x 8bytes.

1.1.3. Những đặc tính ngoại vi

- Timer0 : 8- bit định thời/ đếm với 8- bit prescaler

- Timer1 : 16- bit định thời/ đếm với prescaler, có thể được tăng lên trong suốt chế độ Sleep qua thạch anh/ xung clock bn ngồi.

- Timer2 : 8- bit định thời/đếm với 8- bit, prescaler và postscaler

- Hai module Capture, Compare, PWM

* Capture có độ rộng 16 bit, độ phân giải 12.5ns

* Compare có độ rộng 16 bit, độ phân giải 200ns

* Độ phân giải lớn nhất của PWM là 10bit.

- Cĩ 13 ng I/O cĩ thể điều khiển trực tiếp

- Dịng vo v dịng ra lớn :

* 25mA dịng vo cho mỗi chn

* 20mA dịng ra cho mỗi chn

1.1.4. Đặc điểm về tương tự

- 10 bit, với 8 kênh của bộ chuyển đổi tương tự sang số (A/D).

- Brown – out Reset (BOR).

- Module so sánh về tương tự.

* Hai bộ so sánh tương tự.

* Module điện áp chuẩn VREF có thể lập trình trn PIC.

- Cĩ thể lập trình ng ra vo đến từ những ng vo của PIC v trn điện áp bên trong.

- Những ng ra của bộ so snh cĩ thể sử dụng cho bn ngồi.

1.1.5. Các đặc điểm đặc biệt :

- Có thể ghi/ xoá 100.000 lần với kiểu bộ nhớ chương trình Enhanced Flash.

Page 8: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 8

- 1.000.000 ghi/ xố với kiểu bộ nhớ EPROM.

- EPROM có thể lưu trữ dữ liệu hơn 40 năm.

- Cĩ thể tự lập trình lại dưới sự điều khiển của phần mềm. - Mạch lập trình nối tiếp qua 2 chn.

- Nguồn đơn 5V cấp cho mạch lập trình nối tiếp.

- Watchdog Timer (WDT) với bộ dao động RC tích hợp sẵn trên Chip cho hoạt động đáng tin cậy.

- Cĩ thể lập trình mờ bảo vệ.

- Tiết kiệm năng lượng với chế độ Sleep.

- Cĩ thể lựa chọn bộ dao động.

- Mạch dở sai (ICD : In- Circuit Debug) qua 2 chn

1.1.6. Cơng nghệ CMOS

Năng lượng thấp, tốc độ cao Flash/ công nghệ EPROM

Việc thiết kế hồn tồn tĩnh

Khoảng điện áp hoạt động từ 2V đến 5.5V

Tiêu tốn năng lượng thấp.

1.2. Giới thiệu về PIC16F8XX v PIC16F877A

PIC16F8X là nhóm PIC trong họ PIC16XX của họ Vi điều khiển 8-bit, tiêu hao năng lượng thấp, đáp ứng nhanh, chế tạo theo công nghệ CMOS, chống tĩnh điện tuyệt đối. Nhóm bao gồm các thiết bị sau:

• PIC16F83 • PIC16CR83 • PIC16F84 • PIC16CR84

- Tất cả các PIC16/17 đều có cấu trúc RISC. PIC16CXX các đặc tính nổi bậc, 8 mức ngăn xếp Stack, nhiều nguồn ngắt tích hợp bên trong lẫn ngoài. Có cấu trúc Havard với các bus dữ liệu và bus thực thi chương trình ring biệt nhau cho php độ dài 1 lệnh là 14-bit và bus dữ liệu 8-bit cách biệt nhau. Tất cả các lệnh đều mất 1 chu kỳ lệnh ngoại trừ các lệnh rẽ nhánh chương trình mất 2 chu kỳ lệnh. Chỉ cĩ 35 lệnh v 1 lượng lớn các thanh ghi cho phép đáp ứng cao trong ứng dụng.

- Họ PIC16F8X có nhiều tính năng đặc biệt lm giảm thiểu cc thiết bị ngoại vi, vì vậy kinh tế cao, cĩ hệ thống nổi bật đáng tin cậy và sự tiêu thụ năng lượng thấp. Ở đây có 4 sự lựa chọn bộ dao dộng và chỉ có 1 chân kết nối bộ dao động RC nên có giải pháp tiết kiệm cao. Chế độ SLEEP tiết kiệm nguồn và có thể được đánh thức bởi các nguồn reset. Và cịn nhiều phần khc đó được giới thiệu bên trên sẽ được nói r ở cc phần kế tiếp.

- PIC16F877A có 40/44 chân với sự phân chia cấu trúc như sau :

+ Cĩ 5 port xuất/nhập

+ Có 8 kênh chuyển đổi A/D 10-bit

+ Có bộ nhớ gấp đôi so với PIC16F873A và PIC16F874A2.2.1. Tổ chức thanh ghi

Page 9: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 9

Bảng 1.1: Tóm tắt đặc điểm của PIC16F877A

Tần số hoạt động DC-20MHz

Reset v Delay POR, BOR (PWRT, OST)

Bộ nhớ chương trình Flash (14-bit word)

8K

Bộ nhớ dữ liệu (byte) 368

Bộ nhớ dữ liệu EEPROM (byte) 256

Cc ngắt 15

Cc Port xuất/nhập Port A, B, C, D, E

Timer 3

Module Capture/Compare/PWM 2

Giao tiếp nối tiếp MSSP, USART

Giao tiếp song song PSP

Module A/D 10-bit 8 knh ng vo

Bộ so sánh tương tự 2

Tập lệnh 35 lệnh

Số chn 40 chn PDIP 44 chn PLCC 44 chn TQFP 44 chn QFN

1.3. Sơ đồ chân ,cấu trúc và chức năng PIC 16F877A loại 40 chân PDIP

Hình 1.1: Sơ đồ chân Pic 16F877A loại 40 chân PDIP

• Chức năng các chân :

* Chn OSC1/CLKI (13) : ng vo dao động thạch anh hoặc xung clock bn ngồi.

- OSC1 : ng vo dao động thạch anh hoặc xung clock bên ngoài. Ng vo Schmit trigger khi được cấu tạo ở chế độ RC ; một cách khác của CMOS.

Page 10: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 10

- CLKI : ng vo nguồn xung bn ngồi. Luơn được kết hợp với chức năng OSC1.

* Chn OSC2/CLKO (13) : ng vo dao động thạch anh hoặc xung clock - OSC2 : Ng ra dao động thạch anh. Kết nối đến thạch anh hoặc bộ cộng hưởng.

- CLKO : ở chế độ RC, ng ra của OSC2, bằng tần số của OSC1 v chỉ ra tốc độ của chu kỳ lệnh.

* Chn /VPP (1) :

- MCLR : Hoạt động Reset ở mức thấp

- VPP : ng vo p lập trình

* Chn RA0/AN0 (2) :

- RA0 : xuất/nhập số

- AN0 : ng vo tương tự 0

* Chn RA1/NA1 (3) :

- RA1 : xuất/nhập số

- AN1 : ng vo tương tự 1

* Chn RA2/NA2/VREF-/CVREF (4) :

- RA2 : xuất/nhập số

- AN2 : ng vo tương tự 2

- VREF -: ng vào điện áp chuẩn (thấp) của bộ A/D

- CVREF: điện áp tham chiếu VREF ng ra bộ so sỏnh

* Chn RA3/NA3/VREF+ (5) :

- RA3 : xuất/nhập số

- AN3 : ng vo tương tự 3

- VREF+ : ng vo điện áp chuẩn (cao) của bộ A/D

* Chn RA4/TOCKI/C1OUT (6) :

- RA4 : xuất/nhập số - mở khi được cấu tạo như ng ra

- TOCKI : ng vo xung clock bn ngồi cho Timer 0

- C1 OUT : Ng ra bộ so snh 1

* Chn RA5/AN4/ /C2OUT (7) :

- RA5 : xuất/nhập số

- AN4 : ng vo tương tự 4

- SS : ng vo chọn lựa SPI phụ

- C2 OUT : ng ra bộ so snh 2

* RB0/INT (33) :

- RB0 : xuất/nhập số

Page 11: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 11

- INT : ngắt ngồi

* RB1 (34) : xuất/nhập số * RB2 (35) : xuất/nhập số

* RB3/PGC :

- RB3 : xuất/nhập số

- Chn cho php lập trình điện áp thấp ICPS

* RB4 (37), RB5 (38) : xuất/nhập số

* RB6/PGC (39) :

- RB6 : xuất/nhập số

- PGC : mạch dũ sai v xung clock lập trỡnh ICSP

* RB7/PGD (40) :

- RB7 : xuất/nhập số

- PGD : mạch dữ sai v dữ liệu lập trình ICSP

* Chn RC0/T1 OCO/T1CKI (15) :

- RC0 : xuất/nhập số

- T1 OCO : ng vo bộ dao động Timer 1

- T1 CKI : ng vo xung clock bn ngồi Timer 1

* Chn RC1/T1 OSI/CCP2 (16) :

- RC1 : xuất/nhập số

- T1 OSI : ng vo bộ dao động Timer 1

- CCP2 : ng vo Capture 2, ng ra compare 2, ng ra PWM2

* Chn RC2/CCP1 (17) :

- RC2 : xuất/nhập số

- CCP1 : ng vo Capture 1, ng ra compare 1, ng ra PWM1

* Chn RC3/SCK/SCL (18):

- RC3 : xuất/nhập số

- SCK : ng vo xung clock nối tiếp đồng bộ/ng ra của chế độ SPI

- SCL : ng vo xung clock nối tiếp đồng bộ/ ng ra của chế độ I2C

* Chn RC4/SDI/SDA (23) :

- RC4 : xuất/nhập số

- SDI : dữ liệu vo SPI

- SDA : xuất/nhập dữ liệu vo I2C

* Chn RC5/SDO (24) :

- RC5 : xuất/nhập số

- SDO : dữ liệu ra SPI

Page 12: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 12

* Chn RC6/TX/CK (25) :

- RC6 : xuất/nhập số - TX : truyền bất đồng bộ USART

- CK : xung đồng bộ USART

* Chn RC7/RX/DT (26) :

- RC7 : xuất/nhập số

- RX : nhận bất đồng USART

- DT : dữ liệu đồng bộ USART

* Chn RD0/PSP0 (19) :

- RD0 : xuất/nhập số

- PSP0 : dữ liệu port nhnh song song

* Chn RD1/PSP1 (20) :

- RD1 : xuất/nhập số

- PSP1 : dữ liệu port nhnh song song

* Các chân RD2/PSP2 (21), RD3/PSP3 (22), RD4/PSP (27), RD5/PSP5 (28), RD6/PSP6 (29), RD7/PSP7 (30) tương tự chân 19,20.

* Chn RE0/ /AN6 (8) :

- RE0 : xuất nhập số

- RD : điều khiển việc đọc ở port nhánh song song

- AN5 : ng vo tương tự 5

* Chn RE1/ /AN6 (9) :

- RE1 : xuất/nhập số

- WR : điều khiển việc ghi ở port nhánh song song

- AN6 : ng vo tương tự 6

* Chn RE2/ /AN7 (10) :

- RE2 : xuất/nhập số

- CS : Chip lựa chọn sự điều khiển ở port nhánh song song

- AN7 : ng vo tương tự 7 * Chn VDD(11,32), v VSS(12,31) : l cc chn nguồn của PIC.

• Cấu trc bn trong pic 16f877a:

Page 13: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 13

Page 14: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 14

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 I/O là 5 với 33

pin I/O.

Các đặc tính ngoại vi bao gồmcác khối chức năng sau:

Page 15: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 15

Ø 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ào

xung 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ộ Capture/so 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.

3 SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN PIC16F877A

Page 16: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 16

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 (Program

memory) và bộ nhớ dữ liệu (Data Memory).

5 BỘ NHỚ CHƯƠNG TRÌNH

Bộ 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 8*1024 = 8192 lệnh (vì một lệnh

sau 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 (PC<12:0>).

1. Khi vi điều khiển được reset,

bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h (Reset vector). Khi có ngắt xảy ra,

bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h (Interrupt vector).

Page 17: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 17

Bộ nhớ chương trình không bao gồm:

Bộ nhớ stack và không được địa chỉ hóa bởi bộ đếm chương trình. Bộ nhớ stack sẽ

được đề cập cụ thể trong phần sau.

6 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ới PIC16F877A 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ư

thanh ghi 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ệu

PIC16F877A như sau:

Page 18: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 18

6.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ác khố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 để

Page 19: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 19

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ết lậ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 đó.

Thanh ghi STATUS (03h, 83h, 103h, 183h):thanh ghi chứa kết quả thực hiện phép toá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ác

bit điều khiển và các bit cờ hiệu khi timer0 bị tràn, ngắt ngoại vi RB0/INT 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ức nă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ăng

CCP2, SSP bus, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM.

Page 20: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 20

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ắt

nà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.

6.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.

7 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 ra

là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ệnh POP

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.

8 CÁC CỔNG XUẤT NHẬP CỦA PIC16F877A

Page 21: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 21

Cổng xuất nhập (I/O 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 (I/O 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ỗi

cổ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ân

xuấ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àn

toà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.

8.1 PORTA

PORTA (RPA) bao gồm 6 I/O 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 I/O 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ăng

củ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ều

khiể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òn là 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ày cụ 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.

Page 22: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 22

Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2.

8.2 PORTB

PORTB (RPB) gồm 8 pin I/O. 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 cho

vi đ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ương

trì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.

Page 23: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 23

8.3 PORTC

PORTC (RPC) gồm 8 pin I/O. 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ày

cụ 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 PORTC

TRISC (đị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.

8.4 PORTD

PORTD (RPD) gồm 8 chân I/O, 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.

8.5 PORTE

PORTE (RPE) gồm 3 chân I/O. 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ển củ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ày cụ 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.

9 TIMER_0

Page 24: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 24

Đâ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

cho phé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 (INTCON<5>) 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.

Muốn Timer0 hoạt động ở chế độ Timer ta clear bit TOSC (OPTION_REG<5>), 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ện một

cách linh động.

Muốn Timer0 hoạt động ở chế độ counter ta set bit TOSC (OPTION_REG<5>). Khi

đó xung tác động lên bộ đếm được lấy từ chân RA4/TOCK1. Bit TOSE (OPTION_REG<4>)

cho 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 (INTCON<2>) 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 đầu thự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ủa prescaler và ngược lại. Prescaler được điều khiển bởi thanh ghi

OPTION_REG. Bit PSA (OPTION_REG<3>) xác định đối tượng tác động của prescaler.

Page 25: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 25

Các bit PS2:PS0 (OPTION_REG<2: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 prescaler như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.

10 TIMER_1

Timer1 là bộ định thời 16 bit, giá trị của Timer1 sẽ được lưu trong hai thanh

ghi (TMR1H:TMR1L). Cờ ngắt của Timer1 là bit TMR1IF (PIR1<0>). Bit điều khiển của

Timer1 sẽ là TMR1IE (PIE<0>). Tương tự như Timer0, Timer1 cũng có hai chế độ hoạt

động: chế độ định thời (timer) với xung kích là xung clock của oscillator (tần số của timer

bằng ¼ tần số của oscillator) và chế độ đếm (counter) với xung kích là xung phản ánh các sự

kiện cần đếm lấy từ bên ngoài thông qua chân RC0/T1OSO/T1CKI (cạnh tác động là cạnh

lên). Việc lựa chọn xung tác động (tương ứng với việc lựa chọn chế độ hoạt động là timer hay

counter) được điều khiển bởi bit TMR1CS (T1CON<1>). Sau đây là sơ đồ khối của Timer1:

Ngoài ra Timer1 còn có chức năng reset input bên trong được điều khiển bởi một

trong hai khối CCP (Capture/Compare/PWM). Khi bit T1OSCEN (T1CON<3>) được set,

Page 26: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 26

Timer1 sẽ lấy xung clock từ hai chân RC1/T1OSI/CCP2 và RC0/T1OSO/T1CKI làm xung

đếm. Timer1 sẽ bắt đầu đếm sau cạnh xuống đầu tiên của xung ngõ vào. Khi đó PORTC sẽ

bỏ qua sự tác động của hai bit TRISC<1:0> và PORTC<2:1> được gán giá trị 0. Khi clear bit

T1OSCEN Timer1 sẽ lấy xung đếm từ oscillator hoặc từ chân RC0/T1OSO/T1CKI. Timer1

có hai chế độ đếm là đồng bộ (Synchronous) và bất đồng bộ (Asynchronous). Chế độ đếm

được quyết định bởi bit điều khiển (T1CON<2>). Khi =1 xung đếm lấy từ bên ngoài sẽ

không được đồng bộ hóa với xung clock bên trong, Timer1 sẽ tiếp tục quá trình đếm khi vi

điều khiển đang ở chế độ sleep và ngắt do Timer1 tạo ra khi bị tràn có khả năng “đánh thức”

vi điều khiển. Ở chế độ đếm bất đồng bộ, Timer1 không thể được sử dụng để làm nguồn xung

clock cho khối CCP (Capture/Compare/Pulse width modulation). Khi =0 xung đếm vào

Timer1 sẽ được đồng bộ hóa với xung clock bên trong. Ở chế độ này Timer1 sẽ không hoạt

động khi vi điều khiển đang ở chế độ sleep.

Các thanh ghi liên quan đến Timer1 bao gồm:

INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE và PEIE).

PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer1 (TMR1IF).

PIE1( địa chỉ 8Ch): cho phép ngắt Timer1 (TMR1IE).

TMR1L (địa chỉ 0Eh): chứa giá trị 8 bit thấp của bộ đếm Timer1.

TMR1H (địa chỉ 0Eh): chứa giá trị 8 bit cao của bộ đếm Timer1.

T1CON (địa chỉ 10h): xác lập các thông số cho Timer1.

11.TIMER_2

Timer2 là bộ định thời 8 bit và được hỗ trợ bởi hai bộ chia tần số prescaler va

postscaler. Thanh ghi chứa giá trị đếm của Timer2 là TMR2. Bit cho phép ngắt Timer2 tác

Page 27: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 27

động là TMR2ON (T2CON<2>). Cờ ngắt của Timer2 là bit TMR2IF (PIR1<1>). Xung ngõ

vào (tần số bằng ¼ tần số oscillator) được đưa qua bộ chia tần số prescaler 4 bit (với các tỉ

số chia tần số là 1:1, 1:4 hoặc 1:16 và được điều khiển bởi các bit T2CKPS1:T2CKPS0

(T2CON<1:0>)).

Timer2 còn được hỗ trợ bởi thanh ghi PR2. Giá trị đếm trong thanh ghi

TMR2 sẽ tăng từ 00h đến giá trị chứa trong thanh ghi PR2, sau đó được reset về 00h. Kh I

reset thanh ghi PR2 được nhận giá trị mặc định FFh. Ngõ ra của Timer2 được đưa qua bộ

chia tần số postscaler với các mức chia từ 1:1 đến 1:16. Postscaler được điều khiển bởi 4 bit

T2OUTPS3:T2OUTPS0. Ngõ ra của postscaler đóng vai trò quyết định trong việc điều

khiển cờ ngắt.

Ngoài ra ngõ ra của Timer2 còn được kết nối với khối SSP, do đó Timer2 còn

đóng vai trò tạo ra xung clock đồng bộ cho khối giao tiếp SSP.

Các thanh ghi liên quan đến Timer2 bao gồm:

INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép toàn bộ các ngắt (GIE và PEIE).

PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer2 (TMR2IF).

PIE1 (địa chị 8Ch): chứa bit điều khiển Timer2 (TMR2IE).

TMR2 (địa chỉ 11h): chứa giá trị đếm của Timer2.

T2CON (địa chỉ 12h): xác lập các thông số cho Timer2. PR2 (địa chỉ 92h): thanh ghi hỗ

trợ cho Timer2.

Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2.

Ta có một vài nhận xét về Timer0, Timer1 và Timer2 như sau:

Timer0 và Timer2 là bộ đếm 8 bit (giá trị đếm tối đa là FFh), trong khi Timer1

là bộ đếm 16 bit (giá trị đếm tối đa là FFFFh). Timer0, Timer1 và Timer2 đều có hai chế độ

hoạt động là timer và counter. Xung clock có tần số bằng ¼ tần số của oscillator. Xung tác

động lên Timer0 được hỗ trợ bởi prescaler và có thể được thiết lập ở nhiều chế độ khác

nhau (tần số tác động, cạnh tác động) trong khi các thông số của xung tác động lên Timer1

là cố định. Timer2 được hỗ trợ bởi hai bộ chia tần số prescaler và postcaler độc lập, tuy

nhiên cạnh tác động vẫn được cố định là cạnh lên. Timer1 có quan hệ với khối CCP, trong

khi Timer2 được kết nối với khối SSP. Một vài so sánh sẽ giúp ta dễ dàng lựa chọn được

Timer thích hợp cho ứng dụng.

12 ADC

ADC (Analog to Digital Converter) là bộ chuyển đổi tín hiệu giữa hai dạng tương tự

và số. PIC16F877A có 8 ngõ vào analog (RA4:RA0 và RE2:RE0). Hiệu điện thế chuẩn

VREF có thể được lựa chọn là VDD, VSS hay hiệu điện thể chuẩn được xác lập trên hai chân

Page 28: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 28

RA2 và RA3. Kết quả chuyển đổi từ tín tiệu tương tự sang tín hiệu số là 10 bit số tương ứng

và được lưu trong hai thanh ghi ADRESH:ADRESL. Khi không sử dụng bộ chuyển đổi ADC,

các thanh ghi này có thể được sử dụng như các thanh ghi thông thường khác. Khi quá trình

chuyển đổi hoàn tất, kết quả sẽ được lưu vào hai thanh ghi ADRESH:ADRESL, bit

(ADCON0<2>) được xóa về 0 và cờ ngắt ADIF được set.

Qui trình chuyển đổi từ tương tự sang số bao gồm các bước sau:

1. Thiết lập các thông số cho bộ chuyển đổi ADC:

Chọn ngõ vào analog, chọn điện áp mẫu (dựa trên các thông số của thanh ghi ADCON1)

Chọnh kênh chuyển đổi AD (thanh ghi ADCON0).

Chọnh xung clock cho kênh chuyển đổi AD (thanh ghi ADCON0).

Cho phép bộ chuyển đổi AD hoạt động (thanh ghi ADCON0).

2. Thiết lập các cờ ngắt cho bộ AD

Clear bit ADIF.

Set bit ADIE.

Set bit PEIE.

Set bit GIE.

3. Đợi cho tới khi quá trình lấy mẫu hoàn tất.

4. Bắt đầu quá trình chuyển đổi (set bit ).

5. Đợi cho tới khi quá trình chuyển đổi hoàn tất bằng cách:

Kiểm tra bit . Nếu =0, quá trình chuyển đổi đã hoàn tất.

Kiểm tra cờ ngắt.

6. Đọc kết quả chuyển đổi và xóa cờ ngắt, set bit (nếu cần tiếp tục chuyển đổi).

7. Tiếp tục thực hiện các bước 1 & 2 cho quá trình chuyển đổi tiếp theo

Page 29: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 29

Cần chú ý là có hai cách lưu kết quả chuyển đổi AD, việc lựa chọn cách lưu

được điều khiển bởi bit ADFM và được minh họa cụ thể trong hình sau:

Các thanh ghi liên quan đến bộ chuyển đổi ADC bao gồm:

INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép các ngắt (các bit GIE, PEIE).

PIR1 (địa chỉ 0Ch): chứa cờ ngắt AD (bit ADIF).

PIE1 (địa chỉ 8Ch): chứa bit điều khiển AD (ADIE).

Page 30: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 30

ADRESH (địa chỉ 1Eh) và ADRESL (địa chỉ 9Eh): các thanh ghi chứa kết quả chuyển đổi

AD.

ADCON0 (địa chỉ 1Fh) và ADCON1 (địa chỉ 9Fh): xác lập các thông số cho bộ chuyển đổi

AD.

PORTA (địa chỉ 05h) và TRISA (địa chỉ 85h): liên quan đến các ngõ vào analog ở PORTA.

PORTE (địa chỉ 09h) và TRISE (địa chỉ 89h): liên quan đến các ngõ vào analog ở PORTE.

13 COMPARATOR

Bộ so sánh bao gồm hai bộ so so sánh tín hiệu analog và được đặt ở PORTA.

gõ vào bộ so sánh là các chân RA3:RA0, ngõ ra là hai chân RA4 và RA5. Thanh ghi điều

khiển bộ so sánh là CMCON. Các bit CM2:CM0 trong thanh ghi CMCON đóng vai trò chọn

lựa các chế độ hoạt động cho bộ Comparator (hình 2.10).

Cơ chế hoạt động của bộ Comparator như sau:

Tín hiệu analog ở chân

VIN + sẽ được só sánh với điện áp chuẩn

ở chân VIN- và tín hiệu ở ngõ ra bộ so

sánh sẽ thay đổi tương ứng như hình vẽ.

Khi điện áp ở chân VIN+ lớn hơn điện áp

ở chân VIN+ ngõ ra sẽ ở mức 1 và ngược

lại.

Dựa vào hình vẽ ta thấy

đáp ứng tại ngõ ra không phải là tức thời

so với thay đổi tại ngõ vào mà cần có một

khoảng thời gian nhất định để ngõ ra thay

đổi trạng thái (tối đa là 10us). Cần chú ý

đến khoảng thời gian đáp ứng này khi sử

dụng bộ so sánh.

Cực tính của các bộ so sánh có thể thay đổi dựa vào các giá trị đặt vào các bit

C2INV và C1INV (CMCON<4:5>).

Page 31: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 31

Các chế độ hoạt động của bộ comparator.

Các bit C2OUT và C1OUT (CMCON<7:6>) đóng vai trò ghi nhận sự thay đổi tín hiệu analog

so với điện áp đặt trước. Các bit này cần được xử lí thích hợp bằng chương trình để ghi nhận

sự thay đổi của tín hiệu ngõ vào. Cờ ngắt của bộ so sánh là bit CMIF (thanh ghi PIR1). Cờ

ngắt này phải được reset về 0. Bit điều khiển bộ so sánh là bit CMIE (Tranh ghi PIE).

Các thanh ghi liên quan đến bộ so sánh bao gồm:

CMCON (địa chỉ 9Ch) và CVRCON (địa chỉ 9Dh): xác lập các thông số cho bộ so sánh.

Thanh ghi INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): chứa các bit cho phép các ngắt

(GIE và PEIE).

Thanh ghi PIR2 (địa chỉ 0Dh): chứa cờ ngắt của bộ so sánh (CMIF).

Thanh ghi PIE2 (địa chỉ 8Dh): chứa bit cho phép bộ so sánh (CNIE).

Thanh ghi PORTA (địa chỉ 05h) và TRISA (địa chỉ 85h): các thanh ghi điều khiển PORTA.

Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2.

Page 32: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 32

14 BỘ TẠO ĐIỆN ÁP SO SÁNH

Bộ so sánh này chỉ hoạt động khi bộ Comparator đựơc định dạng hoạt động ở chế độ

‘110’. Khi đó các pin RA0/AN0 và RA1/AN1 (khi CIS = 0) hoặc pin RA3/AN3 và RA2/AN2

(khi CIS = 1) sẽ là ngõ vào analog của điện áp cần so sánh đưa vào ngõ VIN- của 2 bộ so

sánh C1 và C2 (xem chi tiết ở hình 2.10). Trong khi đó điện áp đưa vào ngõ VIN+ sẽ được

lấy từ một bộ tạo điện áp so sánh.

Sơ đồ khối của bộ tạo điện áp so sánh đựơc trình bày trong hình vẽ sau:

Bộ tạo điện áp so sánh này bao gồm một thang điện trở 16 mức đóng vai trò là

cầu phân áp chia nhỏ điện áp VDD thành nhiều mức khác nhau (16 mức). Mỗi mức có giá trị

điện áp khác nhau tùy thuộc vào bit điều khiển CVRR (CVRCON<5>). Nếu CVRR ở mức

logic 1, điện trở 8R sẽ không có tác dụng như một thành phần của cầu phân áp (BJT dẫn

mạnh và dòng điện không đi qua điện trở 8R), khi đó 1 mức điện áp có giá trị VDD/24.

Ngược lại khi CVRR ở mức logic 0, dòng điện sẽ qua điện trở 8R và1 mức điện áp có giá trị

VDD/32. Các mức điện áp này được đưa qua bộ MUX cho phép ta chọn được điện áp đưa ra

pin RA2/AN2/VREF-/CVREF để đưa vào ngõ VIN+ của bộ so sánh bằng cách đưa các giá trị

thích hợp vào các bit CVR3:CVR0.

Bộ tạo điện áp so sánh này có thể xem như một bộ chuyển đổi D/A đơn giản.

Giá trị điện áp cần so sánh ở ngõ vào Analog sẽ được so sánh với các mức điện áp do bộ tạo

Page 33: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 33

điện áp tạo ra cho tới khi hai điện áp này đạt được giá trị xấp xỉ bằng nhau. Khi đó kết quả

chuyển đổi xem như được chứa trong các bit CVR3:CVR0.

Các thanh ghi liên quan đến bộ tạo điện áp so sánh này bao gồm:

Thanh ghi CVRCON (địa chỉ 9Dh): thanh ghi trực tiếp điều khiển bộ so sánh điện áp.

Thanh ghi CMCON (địa chỉ 9Ch): thanh ghi điều khiển bộ Comparator.

II. CẶP NHIỆT ĐIỆN Điều đầu tiên trong điều khiển nhiệt độ là chúng ta phải có được một thiết bị (cảm

biến) cho phép đo được nhiệt độ hiện tại. Có rất nhiều loại khác nhau, phần trình by ở đây sẽ đề cập một số loại, đặc biệt chú trọng đến Thermocouple.

Page 34: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 34

2.1. Buổi ban đầu của thiết bị đo nhiệt độ :

Galileo được cho là người đầu tiên phát minh ra thiết bị đo nhiệt độ, vào khoảng năm 1592. Ông ta làm thí nghiệm như sau : trên một bồn hở chứa đầy cồn, ông cho treo một ống thủy tinh dài có cổ hẹp, đầu trên của nó có bầu hình cầu chứa đầy không khí. Khi gia tăng nhiệt, không khí trong bầu nở ra và sôi sùng sục trong cồn. Cịn khi lạnh thì khơng khí co lại v cồn dng ln trong lịng ống thủy tinh. Do đó, sự thay đổi của nhiệt trong bầu có thể biết được bằng cách quan sát vị trí của cồn trong lịng ống thủy tinh. Tuy nhiên, người ta chỉ biết sự thay đổi của nhiệt độ chứ không biết nó là bao nhiêu vì chưa có một tầm đo cho nhiệt độ.

Đầu những năm 1700, Gabriel Fahrenheit, nhà chế tạo thiết bị đo người Hà Lan, đ tạo ra một thiết bị đo chính xác và cho phép lặp lại nhiều lần. Đầu dưới của thiết bị được gán là 0 độ, đánh dấu vị trí nhiệt của nước đá trộn với muối (hay ammonium chloride) vì đây là nhiệt độ thấp nhất thời đó. Đầu trên của thiết bị được gán là 96 độ, đánh dấu nhiệt độ của máu người. Tại sao là 96 độ mà không phải là 100 độ?. Câu trả lời là bởi vì người ta chia tỷ lệ theo 12 phần như các tỷ lệ khác thời đó.

Khoảng năm 1742, Anders Celsius đề xuất ý kiến lấy điểm tan của nước đá gán 0 độ và điểm sôi của nước gán 100 độ, chia làm 100 phần.

Đầu những năm 1800, William Thomson (Lord Kelvin) phát triển một tầm đo phổ quát dựa trên hệ số gin nở của khí lý tưởng. Kelvin thiết lập khái niệm về độ 0 tuyệt đối và tầm đo này được chọn là tiêu chuẩn cho đo nhiệt hiện đại.

Sau đây là phương trình chuyển đổi của 4 loại tầm đo :

°C = 5/9(°F – 32) °F = 9/5°C + 32

°K = °C + 273,15 °R = °F + 459,67

Tầm đo Rankine (°R) đơn giản là tương đương của Fahrenheit theo tầm Kelvin, đặt tên theo W. J. M Rankine (người tiên phong trong lĩnh vực nhiệt động).

2.2. Cc loại cảm biến hiện tại :

Tùy theo lĩnh vực đo và điều kiện thực tế mà có thể chọn một trong bốn loại cảm biến : thermocouple, RTD, thermistor, và IC bán dẫn. Mỗi loại có ưu điểm và khuyết điểm riêng của nó.

2.2.1. Thermocouple

Ưu điểm

• L thnh phần tích cực, tự cung cấp cơng suất.

• Đơn giản.

• Rẻ tiền.

• Tầm thay đổi rộng.

• Tầm đo nhiệt rộng. Khuyết điểm

• Phi tuyến.

• Điện áp cung cấp thấp.

Page 35: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 35

• Địi hỏi điện áp tham chiếu.

• Kém ổn định nhất.

• Km nhạy nhất.

2.2.2. RTD (resistance temperature detector)

Ưu điểm

• Ổn định nhất.

• Chính xc nhất.

• Tuyến tính hơn thermocouple.

Khuyết điểm

• Mắc tiền.

• Cần phải cung cấp nguồn dịng.

• Lượng thay đổi ∆R nhỏ.

• Điện trở tuyệt đối thấp.

• Tự gia tăng nhiệt.

2.2.3. Thermistor

Ưu điểm

• Ng ra cĩ gi trị lớn.

• Nhanh.

• Đo hai dây.

Khuyết điểm

• Phi tuyến.

• Giới hạn tầm đo nhiệt.

• Dễ vỡ.

• Cần phải cung cấp nguồn dịng.

• Tự gia tăng nhiệt.

2.2.4. IC cảm biến

Ưu điểm

• Tuyến tính nhất.

• Ng ra cĩ gi trị cao nhất.

• Rẻ tiền.

Khuyết điểm

• Nhiệt độ đo dưới 200°C.

• Cần cung cấp nguồn cho cảm biến.

Page 36: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 36

2.3. THERMOCOUPLE

2.3.1. Hiệu ứng Seebeck

Năm 1821, Thomas Seebeck đ khm ph ra rằng nếu nối hai dy kim loại khc nhau ở hai đầu và gia nhiệt một đầu nối thì sẽ cĩ dịng điện chạy trong mạch đó.

Nếu mạch bị hở một đầu thì thì hiệu điện thế mạch hở (hiệu điện thế Seebeck) là

một hàm của nhiệt độ mối nối và thành phần cấu thành nên hai kim loại.

Khi nhiệt độ thay đổi một lượng nhỏ thì hiệu điện thế Seebeck cũng thay đổi tuyến tính theo :

∆eAB = α∆T với α l hệ số Seebeck

2.3.2. Cách đo hiệu điện thế

Không thể đo trực tiếp hiệu điện thế Seebeck bởi vì khi nối volt kế với thermocouple thì vơ tình chng ta lại tạo thm một mạch mới. Ví dụ như ta nối thermocouple loại T (đồng-constantan).

Khi đĩ ta cĩ mạch tương đương như sau :

Cái mà chúng ta muốn đo là hiệu điện thế v1 nhưng khi nối volt kế vo thermocouple thì chng ta lại tạo ra hai mối nối kim loại nữa : J2 v J3. Do J3 là mối nối của đồng với đồng nên không phát sinh ra hiệu điện thế, cịn J2 là mối nối giữa đồng với constantan nên tạo ra hiệu điện thế v2. Vì vậy kết quả đo được l hiệu của v1 v v2. Điều này nói lên rằng

Constantan Cu

v1 + - Cu Cu

+ - v

Volt kế

J3 J1

J2

Kim loại B

Kim loại A Kim loại A

Kim loại B Kim loại A eAB

+ -

Constantan

Cu v1 + - Cu J3 J1

J2

Cu - - +

+

v3

v2 Constantan

Cu v1 + - Cu J1

J2

- + v2

Page 37: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 37

chúng ta không thể biết nhiệt độ tại J1 nếu chúng ta không biết nhiệt độ tại J2, tức là để biết được nhiệt độ tại đầu đo thì chng ta cũng cần phải biết nhiệt độ môi trường nữa.

Một trong những cách để xác định nhiệt độ tại J2 l ta tạo ra một mối nối vật lý rồi nhng nĩ vo nước đá, tức là ép nhiệt độ của nó về 0°C v thiết lập tại J2 như là một mối nối tham chiếu.

Lúc này cả hai mối nối tại volt kế đều là đồng – đồng nên không xuất hiện hiệu điện thế Seebeck. Số đọc v trên volt kế là hiệu của v1 v v2 :

v = (v1 – v2) ≈ α (tJ1 – tJ2)

nếu ta dng ký hiệu TJ1 để chỉ nhiệt độ theo độ Celsius thì :

TJ1 (°C) + 273,15 = tJ1

do đó v trở thành :

v = v1 – v2 = α [(TJ1 + 273,15) – (TJ2 + 273,15)]

= α (TJ1 – TJ2) = α (TJ1 – 0)

⇒ v = αTJ1

Bằng cách thêm hiệu điện thế của mối nối tại 0°C, giá trị hiệu điện thế đọc được lúc này là so với mốc 0°C.

Phương pháp này rất chính xác nên điểm 0°C được xem như điểm tham chiếu chuẩn trong rất nhiều bảng tra giá trị điện áp ra của thermocouple.

Ví dụ xét trên là một trường hợp đặc biệt, khi mà một dây kim loại của thermocouple trùng với kim loại làm nên volt kế (đồng). Nhưng nếu ta dùng loại thermocouple khác không có đồng (như loại J : sắt – constantan) thì sao? Đơn giản là chng ta thm một dy kim loại bằng sắt nữa thì khi đó cả hai đầu volt kế đều là đồng – sắt nên hiệu điện thế sinh ra triệt tiêu lẫn nhau.

Nếu hai đầu nối của volt kế không cùng nhiệt độ thì hai hiệu điện thế sinh ra không triệt tiêu lẫn nhau, và do đó xuất hiện sai lệch. Trong các phép đo lường cần chính xác,

J1 Constantan

Cu v1 + - J1 T

J2 T = 0°C

+ - v Constantan Cu v1 + -

Cu Cu

+ - v Volt kế

Cu J2 + - v2 + - v2

J1 Constantan

Fe v1 + - Cu Cu

+ - v Volt kế

Fe J2 + - v2

J3

J4

Page 38: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 38

người ta gắn chúng trên một khối đẳng nhiệt. Khối này cách điện nhưng dẫn nhiệt rất tốt nên xem như J3 v J4 có cùng nhiệt độ (bằng bao nhiêu thì khơng quan trọng bởi vì hai hiệu điện thế sinh ra luôn đối nhau nên luôn triệt tiêu nhau không phụ thuộc giá trị của nhiệt độ).

2.3.3. Bù nhiệt của môi trường

Như trên đ phn tích, khi dng thermocouple thì gi trị hiệu điện thế thu được bị ảnh hưởng bởi hai loại nhiệt độ : nhiệt độ cần đo và nhiệt độ tham chiếu. Cch gn 0°C cho nhiệt độ tham chiếu thường chỉ làm trong thí nghiệm để rút ra các giá trị của thermocouple và đưa vào bảng tra. Thực tế sử dụng thì nhiệt độ tham chiếu thường là nhiệt độ của môi trường tại nơi mạch hoạt động nên không thể biết nhiệt độ này là bao nhiêu và do đó vấn đề bù trừ nhiệt độ được đặt ra để sao cho ta thu được hiệu điện thế chỉ phụ thuộc vào nhiệt độ cần đo mà thôi.

Bù trừ nhiệt độ không có nghĩa là ta ước lượng trước nhiệt độ môi trường rồi khi đọc giá trị hiệu điện thế thì trừ đi giá trị mà ta đ ước lượng. Cách làm này hoàn toàn không thu được kết quả gì bởi hai lý do :

• Nhiệt độ môi trường không phải là đại lượng cố định mà thay đổi theo thời gian theo một qui luật không biết trước.

• Nhiệt độ môi trường tại những nơi khác nhau cĩ gi trị khc nhau.

Bù nhiệt môi trường là một vấn đề thực tế và phải xét đến một cách nghiêm túc. Có nhiều cách khác nhau, về phần cứng lẫn phần mềm, nhưng nhìn chung đều phải có một thành phần cho phép xác định nhiệt độ môi trường rồi từ đó tạo ra một giá trị để bù lại giá trị tạo ra bởi thermocouple.

2.3.4. Cc loại thermocouple

Về nguyn tắc thì người ta hoàn toàn có thể tạo ra một thermocouple cho giá trị ra bất kỳ bởi vì cĩ rất nhiều tổ hợp của hai trong số cc kim loại v hợp kim hiện cĩ.

Tuy nhin để có một thermocouple dùng được cho đo lường thì người ta phải xét đến các vấn đề như : độ tuyến tính, tầm đo, độ nhạy, … và do đó chỉ có một số loại dùng trong thực tế như sau :

Loại J : kết hợp giữa sắt với constantan, trong đó sắt là cực dương và constantan l cực m. Hệ số Seebeck l 51µV/°C ở 20°C.

Loại T : kết hợp giữa đồng với constantan, trong đó đồng là cực dương và constantan là cực âm. Hệ số Seebeck là 40µV/°C ở 20°C.

Loại K : kết hợp giữa chromel với alumel, trong đó chromel là cực dương và alumel l cực m. Hệ số Seebeck l 40µV/°C ở 20°C.

Loại E : kết hợp giữa chromel với constantan, trong đó chromel là cực dương và constantan là cực âm. Hệ số Seebeck là 62µV/°C ở 20°C.

Loại S, R, B : dng hợp kim giữa platinum v rhodium, cĩ 3 loại : S) cực dương dùng dây 90% platinum và 10% rhodium, cực âm là dây thuần platinum. R) cực dương dùng dây 87% platinum và 13% rhodium, cực âm dùng dây thuần platinum. B) cực dương dùng dây 70%

Page 39: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 39

platinum v 30% rhodium, cực m dng dy 94% platinum v 6% rhodium. Hệ số Seebeck l 7µV/°C ở 20°C.

2.3.5. Một số nhiệt độ chuẩn

Sau khi đ thiết kế mạch xong thì người ta cần một số nhiệt độ chuẩn dùng cho cân chỉnh. Bảng sau đây đưa ra một số loại nhiệt độ chuẩn :

Loại Nhiệt độ Điểm sôi của oxygen -183,0 °C -297,3°F Điểm thăng hoa của CO2 - 78,5 °C -109,2°F Điểm đông đá 0 °C 32 °F Điểm tan của nước 0,01°C 32 °F Điểm sôi của nước 100,0 °C 212 °F Điểm tan của axit benzoic 122,4 °C 252,3°F Điểm sôi của naphthalene 218 °C 424,4°F Điểm đông đặc của thiếc 231,9 °C 449,4°F Điểm sôi của benzophenone 305,9 °C 582,6°F Điểm đông đặc của cadmium 321,1 °C 610 °F Điểm đông đặc của chì 327,5 °C 621,5°F Điểm đông đặc của kẽm 419,6 °C 787,2°F Điểm sôi của sulfur 444,7 °C 832,4°F Điểm đông đặc của antimony 630,7 °C 1167,3°F Điểm đông đặc của nhôm 660,4 °C 1220,7°F Điểm đông đặc của bạc 961,9 °C 1763,5°F Điểm đông đặc của vàng 1064,4 °C 1948 °F Điểm đông đặc của đồng 1084,5 °C 1984,1°F Điểm đông đặc của palladium 1554 °C 2829 °F Điểm đông đặc của platinum 1772 °C 3222 °F

Page 40: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 40

Page 41: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 41

I. CẤU TRC PHẦN CỨNG TỔNG QUT : Board mạch điều khiển được thiết kế nhằm mục đích đo và điều khiển cĩ thể chia ra

lm 6 khối như sau :

• Khối xử lý trung tm : dng vi điều khiển PIC 16F877A.

• Khối hiển thị : Dng LED 7 THANH cho php hiển thị nhiệt độ

• Khối cảm biến: dng cảm biến nhiệt l LM335

• Khối điều khiển:dùng rơ le

• Khối giao tiếp:dng bn phím HEX

• Khối nguồn : nguồn chính cung cấp điện áp +5V cho toàn mạch,và cung cấp điện áp 12v dung cho rơ le

Sơ đồ khối mô tả mạch :

Xử lý trung tm Cảm biến Nguồn

Hiển thị trạng thi Mạch điều khiển

Page 42: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 42

II. CẤU TRC CHI TIẾT

2.1. KHỐI NGUỒN Do mạch cần nguồn 5v dùng cho pic và 12v dùng cho rơ le nên mạch nguồn gồm ng vo 9v AC v 2 ng ra 5v , 12v DC.Dng 2 con IC LM7805 v LM7812

-+

D1

RS403L

2

1

3

4 C3104

VCC 12V

C1

10uf /25V

C210uF/25V

J9ban phim

1

HI

R21K

J5

nguon 9v

12

C4104

U1 LM7805

1 3

2

IN OUT

GN

D

U2

LM7812C/TO3

1 3

2

IN OUT

GN

D

HI

C1

1000uf /25V

C1

1000uf /25V

D2

2.2. KHỐI HIỂN THỊ :

R2

330

J8

PORT B

12345678

led

1 2

R1330

led 7 doan

1 2 3 4 5

10

9 8 7 6

g fvc

c a b

e d vc

cc do

t

led 7 doan

1 2 3 4 5

10

9 8 7 6

g fvc

c a b

e d vc

cc do

t

Page 43: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 43

2.3. KHỐI VI XỬ LÝ TRUNG TM :

10k

a1015Q1

PORTD

12345678

HI

4k7

J11

NGUON 5V

12

HI

led

1 2

PORT B

12345678

U25

PIC16F877A

15161718

23242526

31

12 1

13

11

32

23

4567

3334353637383940

1920212227282930

89

10

14 RC0/T1SOI/TCLKRC1/T1OSO/CCP2RC2/CCP1RC3/SCK/SCL

RC4/SDI/SDARC5/SDORC6/TX/CKRC7/RX/DT

GND

GND MCLR/VPP

OSC1/CLK

VDD

VDD

RA0RA1

RA2RA3RA4/T0CLKRA5/SS

RB0/INTRB1RB2RB3RB4RB5RB6RB7

RD0/PSP0RD1/PSP1RD2/PSP2RD3/PSP3RD4/PSP4RD5/PSP5RD6/PSP6RD7/PSP7

RE0/RDRE1/WRRE2/CS

OSC2/CLKOUT

HI

33pF

CRYSTAL

HI

a1015

HI

33pF

4k7

Q2

2.4. KHỐI CẢM BIẾN

R7

10K

LM335/SO

12

3

HI

1k

Page 44: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 44

• IC LM335A là loại cảm biến nhiệt độ bán dẫn, có độ nhạy là 10mV/°K. p tạo ra do LM335A cảm biến được là :

V2 = K.Ta [°K] = K(273 + Ta) [°C] = K.273 + K.Ta = C + KTa (C = K.273)

với K = 10mV/°K; C = 2,73V ⇒ có thể triệt tiêu ảnh hưởng của Ta, nhưng lại tạo ra một mức điện áp là 2,73V ở 0°C nên cần phải có một khối để trừ 2,73V nhằm tạo điện áp đầu ra là 0V ở 0°C.

• Biến trở R12 chính là thành phần bù trừ điện áp 2,73V như đ nĩi ở trn.

• U10 (dùng OP07) đóng vai trị bộ cộng cĩ khuếch đại, điện áp ra cuối cùng là :

( )[ ] 115

2322

16

3

2417

216//2417

15

23221 V

R

RR

R

V

RR

VRRR

R

RRVout

+−

++

+

++=

( )[ ] −

−+

++

++

++=⇒

16

.

16

.

2417

.

241716//2417

15

23221

R

TS

R

TS

RR

TK

RR

CRRR

R

RRV ada

out

115

2322V

R

RR +−

Không bị ảnh hưởng của nhiệt độ môi trường :

893,3385,29

10

16

24170

16

.

2417

.===

+⇒=−

+ V

mV

S

K

R

RR

R

TS

RR

TK aa

µ

chọn R16 = 100Ω ⇒ R17 + R24 = 338,893KΩ ⇒ chọn R17 = 27KΩ v R24 l biến trở 10KΩ. Khi đó cần điều chỉnh R24 để triệt tiêu Ta.

Page 45: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 45

Triệt tiêu điện áp tĩnh (2,73V) :

( )[ ] 0115

2322

241716//2417

15

23221 =

+−

+

+

++ V

R

RR

RR

CRRR

R

RR

với (R17 + R24)//R16 = (338,893KΩ)//(100Ω) = 99,97Ω

947,3389

73,2

947,3389

73,21

15

2322:

115

2322

338893

73,297,99

15

23221

=

+

+=

++⇒

VR

RRhay

xVR

RRxx

R

RR

khi đó, điện áp ra là :

( )[ ]16

.16//2417

15

23221

R

TSRRR

R

RRV d

out +

++=

điện áp này được đưa trực tiếp vào ADC 12-bit (ICL7109) nên cần phải có một sự tương thích về độ phân giải :

ADC 12-bit cĩ 4096 mức.

Điện áp vào tối đa = 4,096V

⇒ 1LSB = 4,048V/4096 = 1mV

Điều khiển đến 409,6°C :

⇒ 1LSB = 409,6/4096 = 0,1°C

tức mỗi khi tăng 0,1°C thì điện áp ra tăng 1mV :

( )[ ]

893,33815

2322893,339

15

23221

893,339

893,338

16

16//)2417(:

116

.1,016//2417

15

23221

=+

⇒=+

+⇒

=+

=+

++

R

RR

R

RR

R

RRRdo

mVR

SRRR

R

RR

chọn R15 = 100Ω ⇒ chọn R22 = 27KΩ; R23 l biến trở 10KΩ. Chỉnh R23 cho độ phân giải.

Thay vo (1) :

mVVVx 81947,3389

73,2

947,3389

73,21893,338 =⇒=

V1 được tạo ra từ cầu chia điện áp R11 = 3MΩ v R12 l biến trở 10KΩ.

⇒ cần chỉnh R5 để V1 đạt 8mV

• Cc tụ C14, C15, C16 chọn gi trị 10µF để chống nhiễu.

(1)

Page 46: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 46

Lưu ý :

1. Các biến trở nên dùng loại biến trở tinh chỉnh (hay biến trở đo lường) có cấu tạo gồm nhiều vịng dy điện trở xoắn bên trong (chỉnh nhiều vịng mới hết gi trị), trnh dng biến trở thơng thường rất khó chỉnh và không ổn định (khi va chạm nhẹ bị thay đổi giá trị).

2. Các OPAMP dùng loại OP07 hoặc tương đương, có mức offset thấp để phù hợp với các đại lượng đo có giá trị nhỏ, các chân 1 và 8 dùng để chỉnh offset không dùng trong thiết kế này.

2.5.KHỐI MẠCH ĐIỀU KHIỂN

D4

DIODER9330

R10

1K2

J12NGUON12V

1 2

LS2

RELAY SPDT

35

412

J10

NGUON 220V

12

ISO1

OPTO ISOLATOR-A

12

43

J135V

1

Q4ATR_2_IS_N_A

31

2

MACH ROLE:

Bộ đóng ngắt dùng transistor: Để đóng ngắt các mạch điện tử, người ta dùng các khóa đếm điện tử. Các khóa này có 2 trạng thái phân biệt, trạng thái đóng (cịn gọi l trạng thi dẫn) khi điện trở giữa 2 cực của khóa rất nhỏ; và trạng thái ngắt (cịn gọi l trạng thi tắt) khi điện trở của khóa rất lớn, coi như hở eạch. Việc chuyển đổi khóa từ trạng thái này sang trạng thái khác là do tác động của tín hiệu điều khiển ng vo, đồng thời quá trình chuyển trạng thi được thực hiện với một vận tốc nhất định, gọi là tốc độ đóng mở của khóa. Để làm khóa điện tử ta có thể dùng transistor BJT hoặc FET, tùy theo điện áp phân cực mà transitor có thể làm việc ở trạng thái tắt hoặc dẫn (sử dụng ở chế độ khuếch đại hay bảo hịa). Thơng thường người ta sử dụng mạch khóa dùng transistor BJT mắc EC (cực phát chung), bởi vì nĩ địi hỏi cơng suất điều khiển thấp.

Page 47: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 47

Sơ đồ mạch tiêu biểu: Hình b Hình c

VF: điện áp mở. Ics: dịng I¬c bo hịa. VCES : điện áp bo hịa. Muốn cho transistor T1 nằm ở trạng thi ngắt thì điện áp UBE của chuyển tiếp JE

phải nhỏ hơn điện áp ngưỡng VF. VBE< VF Do đó phải thỏa mn điều kiện : VI +ICBO x R < VF (IBCO :Dịng rĩ ) .

Transistor T1 làm việc ở trạng thái dẫn khi VI tác động xung dương, lúc này tùy theo dịng ng vo IB m transistor dẫn cĩ thể lm việc ở vng khuếch đại hoặc vùng bo hịa.

Trong mạch khuếch đại: chuyển tiếp JE phân cực thuận, chuyển tiếp Jc phân cực nghịch. Dịng IB cĩ gi trị dương và thỏa mn cc hệ thức sau.

IC = IB + ICEO

IE = IB + IC

Điện áp cực thu VO = VCE = VCC -ICRC. (1)

Điện áp ng ra phụ thuộc vo tín hiệu điều khiển ở ng vo. Tuy nhin để tăng khả năng chống nhiễu của khóa chọn transistor làm việc ở vùng bo hịa (ví dụ như điểm B trên màn hình b). Trong vng ny VI lớn nn dịng IB v dịng IC cũng lớn.

Từ cơng thức(1) do IC lớn, suy ra:

VO = VCE rất nhỏ (điện áp bo hịa)

ViVCC

R

R1Q

VCC VCE

VCC/Rc B

Vces

Ics

VBE

IB

Page 48: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 48

V CES = 0,1V đến 0,2V

Điều này tương ứng với tình trạng cả 2 chuyển tiếp JE v JC đều phân cực thuận.

Do VCES rất nhỏ nên giá trị IC được xem như VCC và RC quyết định.

IC ? ICS = (VCC – VCES)/ RC

IC = VCC /RC

VCC =12v VI 5 5v VI = IBRB +VBE suy ra: IB = (VI -VBE )/RB

Trans bo hịa: IB ≥ ICmax /βsat ≈ IC sat /βsat vơí βsat =20 ÷ 25 ⇒ VCC/RB ≥ (VCC -VCesat )/(βsat × Rreley) ⇒ βsat × Rreley ≥ RB

Chọn β = 20 Rreley =400 Ω

⇒ RB =3,3 KΩ

2.6. KHỐI MẠCH GIAO TIẾP

3

PORT D

12345678

R5R

2

8

6

0

75

J3ban phim

1

enter

1

R4R

4

9

R6R

ViVCC

R1Q

T

RELAY

Page 49: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 49

...

III.LƯU ĐỒ GIẢI THUẬT CHƯƠNG TRÌNH

Page 50: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 50

Bắt đầu Đọc chương trình Lấy gi trị từ cảm biến Hiển thi nhiệt độ Qut bn phím

Kiểm tra phím enter

Hiển thị số phím

Cài nhiệt độ Đóng rơle

Page 51: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 51

IV.THƠNG SỐ CC LINH KIỆN SỬ DỤNG TRONG MẠCH

IV.1_TRANSISTOR C1815

Page 52: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 52

.

Page 53: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 53

IV.2

Page 54: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 54

IV.3_RELAY

Page 55: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 55

IV.4_LM335

LM335 là cảm biến đo nhiệt độ có độ chính xác cao, có thể điều chỉnh được. LM335 hoạt động là một diodezener hai cực, LM335 có một điện áp đánh thủng tỷ lệ tuyến tính với nhiệt độ 10mv/*k.với trở kháng động nhỏ hơn 1ohm, thiết bị hoạt động trong khoản 400microampe đến 5miliampe nhưng trong thực tế thì khơng thay đổi trong khoản đó. Giới hạn nhiệt độ mà LM335 có thể đo từ -40*C đến 100*C

Page 56: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 56

V.CHƯƠNG TRÌNH #include <16F877A.h> #device *=16 adc=10 #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=12000000) #use fast_io(b) #use fast_io(c) #use fast_io(d) #use fast_io(e) int8 chuc,donvi,x; int8 b=2; int8 i; int d=0,f=0,c=0; int8 const a[]=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; float value; void hienthi(); void doiso() donvi =x%10; chuc =x/10; void main() set_tris_b(0); set_tris_c(0); set_tris_d(0); set_tris_e(0); while(true) // Khoi tao che do cho bo ADC setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); set_adc_channel(0); delay_us(10); value= read_adc(); x = (value-558.6)/ 2.048; doiso(); if(x<=99&&x>=0) for(i=0;i<=80;i++) output_b(a[chuc]); output_c(0b00001000); delay_ms(1); output_c(0b11111111); delay_us(2); output_b(a[donvi]); output_c(0b00000100); delay_ms(1);

Page 57: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 57

output_c(0b11111111); delay_us(2); output_d(0b10111111); delay_ms(10); if(input(pin_D3)==0) if(b%2==0) d=8; b++; output_b(a[8]); output_c(0b00001000); delay_ms(1000); else b++; c=8; hienthi(); if(input(pin_D2)==0) if(b%2==0) d=9; b++; output_b(a[9]); output_c(0b00001000); delay_ms(1000); else b++; c=9; hienthi(); output_d(0b11011111); delay_ms(10); if(input(pin_D3)==0) if(b%2==0) d=4; b++; output_b(a[4]); output_c(0b00001000); delay_ms(1000); else

Page 58: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 58

c=4; b++; hienthi(); if(input(pin_D2)==0) if(b%2==0) d=5; b++; output_b(a[5]); output_c(0b00001000); delay_ms(1000); else c=5; b++; hienthi(); if(input(pin_D1)==0) if(b%2==0) d=6; b++; output_b(a[6]); output_c(0b00001000); delay_ms(1000); else c=6; b++; hienthi(); if(input(pin_D0)==0) if(b%2==0) d=7; b++; output_b(a[7]); output_c(0b00001000); delay_ms(1000); else

Page 59: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 59

c=7; b++; hienthi(); output_d(0b11101111); delay_ms(10); if(input(pin_D3)==0) if(b%2==0) d=0; b++; output_b(a[0]); output_c(0b00001000); delay_ms(1000); else c=0; b++; hienthi(); if(input(pin_D2)==0) if(b%2==0) d=1; b++; output_b(a[1]); output_c(0b00001000); delay_ms(1000); else c=1; b++; hienthi(); if(input(pin_D1)==0) if(b%2==0) d=2; b++; output_b(a[2]); output_c(0b00001000); delay_ms(1000);

Page 60: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 60

else c=2; b++; hienthi(); if(input(pin_D0)==0) if(b%2==0) d=3; b++; output_b(a[3]); output_c(0b00001000); delay_ms(1000); else b++; c=3; hienthi(); if(x>=f) output_e(111); else output_e(000); else output_b(0b10111111); output_c(0b00001000); delay_ms(500); output_b(0b10111111); output_c(0b00000100); delay_ms(500); void hienthi() int16 e; for(e=0;e<=100;e++)

Page 61: Do Va Dieu Khien Nhiet Do

Đồ án chuyên ngành GVHD : Nguyễn Trọng Khanh

Trang 61

output_b(a[d]); output_c(0b00001000); delay_ms(10); output_c(0b11111111); delay_us(2); output_b(a[c]); output_c(0b00000100); delay_ms(10); output_c(0b11111111); delay_us(2); output_d(0b10111111); delay_ms(10); if(input(pin_D1)==0) f=10*d+c;