Trong cuộc sống hiện nay có rất nhiều yếu tố ảnh hưởng đến quá trình sản xuất và con người.Trong đó nhiệt độ cũng là yếu tố được đề cập tới rất nhiều, vì thế mạch đo nhiệt độ ra đời là sự tất yếu.Với sự phát triển của công nghệ hiện nay việc sản xuất mạch đo nhiệt độ đơn giản mà độ chính xác cao là điều khá đơn giản.Hiện nay trên thị trường có rất nhiều cảm biến đo nhiệt độ như DS18B20,LM35... Đa số các cảm biến hiện nay đều có độ chính xác tương đối cao. Trong đồ án này em sử dụng cảm biến LM35.Mạch cảm biến Nhiệt độ: gồm IC cảm biến nhiệt độ LM35, thay đổi theo nhiệt độ môi trường, ngõ ra của mạch dưới dạng điện áp, tầm thay đổi 10mV ͦ C. Dùng cảm biến LM 35 đo nhiệt độ từ ngoài môi trường,chân Vout của LM35 được kết nối với ngõ vào Analog của PIC16F877A ,sử dụng chức năng ADC của PIC để biến đổi tín hiệu tương tự (dạng điện áp) sang tín hiệu số. Tín hiếu số này được gửi lên LCD để hiển thị nhiệt độ.Nhiệt độ đo được chia làm 3 khoảng : khoảng nhiệt độ cao,nhiệt độ tiêu chuẩn và nhiệt độ thấp. Khi nhiệt độ ở khoảng nào thì sẽ có đèn LED của khoảng nhiệt đó sáng.
Trang 1LỜI MỞ ĐẦU
Với sự tiến bộ không ngừng của khoa học kỹ thuật, đặc biệt là ngành điện tử đã ứng dụng rất nhiều trong công nghiệp Trong lĩnh vực điều khiển, từ khi công nghệ chế tạo loại vi mạch lập trình phát triển đã đem đến các kỹ thuật điều khiển hiện đại có nhiều ưu điểm so với việc sử dụng các mạch điều khiển được lắp ráp từ các linh kiện rời như kích thước mạch nhỏ, gọn, giá thành rẻ,
độ làm việc tin cậy và công suất tiêu thụ thấp
Ngày nay lĩnh vực điều khiển đã được ứng dụng rộng rãi trong các thiết
bị, sản phẩm phục vụ cho nhu cầu sinh hoạt hằng ngày của con người như máy giặt, đồng hồ điện tử, ti vi nhằm giúp cho đời sống ngày càng hiện đại và tiện lợi hơn
Đề tài ứng dụng vi điều khiển trong đời sống thực tế rất phong phú và đa dạng nhằm đáp ứng cho cuộc sống tiện nghi của con người.Với mục đích tìm hiểu và đáp ứng những yêu cầu trên em đã lựa chọn một đề tài có tính ứng
dụng trong thực tế, nhưng không quá xa lạ đối với mọi người, “Mạch đo nhiệt độ”
Đề tài được chia làm 2 chương lớn:
Chương 1: Cơ sở lý thuyết
Chương 2: Thực hiện đề tài
Em đã cố gắng vận dụng những kiến thức đã học ở trường cùng với sự tìm tòi học hỏi để có thể hoàn thành tốt đồ án này Mặc dù em đã rất cố gắng để hoàn thiện đề tài này nhưng vẫn không tránh khỏi sai sót, kính mong các Thầy cô thông cảm
Em xin chân thành cảm ơn
Trang 2GIỚI THIỆU ĐỀ TÀI
Trong cuộc sống hiện nay có rất nhiều yếu tố ảnh hưởng đến quá trình sản xuất và con người.Trong đó nhiệt độ cũng là yếu tố được đề cập tới rất nhiều, vì thế mạch đo nhiệt độ ra đời là sự tất yếu.Với sự phát triển của công nghệ hiện nay việc sản xuất mạch đo nhiệt độ đơn giản mà độ chính xác cao là điều khá đơn giản
Hiện nay trên thị trường có rất nhiều cảm biến đo nhiệt độ như DS18B20, LM35 Đa số các cảm biến hiện nay đều có độ chính xác tương đối cao Trong
đồ án này em sử dụng cảm biến LM35
Mạch cảm biến Nhiệt độ: gồm IC cảm biến nhiệt độ LM35, thay đổi theo nhiệt độ môi trường, ngõ ra của mạch dưới dạng điện áp, tầm thay đổi 10mV/ ͦ C Dùng cảm biến LM 35 đo nhiệt độ từ ngoài môi trường,chân Vout của LM35 được kết nối với ngõ vào Analog của PIC16F877A ,sử dụng chức năng ADC của PIC để biến đổi tín hiệu tương tự (dạng điện áp) sang tín hiệu số Tín hiếu số này được gửi lên LCD để hiển thị nhiệt độ.Nhiệt độ đo được chia làm 3 khoảng : khoảng nhiệt độ cao,nhiệt độ tiêu chuẩn và nhiệt độ thấp.Khi nhiệt độ ở khoảng nào thì sẽ có đèn LED của khoảng nhiệt đó sáng.
Trang 3DANH MỤC CÁC TỪ VIẾT TẮT
ADC Analog to Digital Converter
CGROM Character Generator ROM
DDRAM Display Data RAM
I2C Inter –Intergrated Circuit -Bus
ICSP In Circuit Serial Programming
IR Instructor Register
LCD Liquid Crystal Display
LED Light Emitting Diode
PIC Programable Intelligent Computer
PSP Parallel Slave Port
RS Register select
USART Universal Asynchronous Receiver – Transmitter
Trang 4MỤC LỤC
CHƯƠNG I: CƠ SỞ LÝ THUYẾT 1
I.GIỚI THIỆU VỀ PIC16F877A 1
1.Giới Thiệu 1
2.Sơ Đồ Khối Vi Điều khiển Pic 16f877a 1
3.Các Chân Của PIC16F877A 2
3.1 Các Chân Nguồn 3
3.2.Chân RESET 3
3.3.Mạch Dao Động 3
4 CÁC CỔNG XUẤT NHẬP CỦA PIC16F877A 3
4.1 PORT A 4
4.2 PORT B 5
4.3 PORT C 5
4.4 PORT D 6
4.5 PORT E 6
5.Chức Năng ADC Của PIC16F877A 7
II.Cảm Biến Nhiệt LM35 8
III.LCD TC1602A 10
1.Hình Dáng Và Kích Thước: 10
2.Chức Năng Của Các Chân 11
3.Sơ Đồ Khối Của HD44780 12
4.Thanh Ghi 13
5.Sử Dụng LCD TC1602A 15
IV.Họ IC 78xx và IC 7805 17
CHƯƠNG 2: THỰC HIỆN ĐỀ TÀI 18
I.Chuẩn Bị Dụng Cụ 18
II.Sơ Đồ Nguyên Lý Của Các Khối Trong Mạch 19
2.1.Khối Nguồn Ổn Áp 19
2.2.Khối Đầu Vào 19
2.3.Khối Vi Xử Lý và Khối LCD 16x2 20
III.Mạch Mô Phỏng Proteus 21
IV.Mạch in và mô phỏng 3D 21
PHỤ LỤC 24
Trang 5Đồ Án 1
CHƯƠNG I: CƠ SỞ LÝ THUYẾT
I.GIỚI THIỆU VỀ PIC16F877A
1.Giới Thiệu
Đây là vi điều khiển họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14bit.Mỗi
lệnh đều được thực thi trong 1 chu kì xung clock.Tốc độ hoạt động tối đa cho phép là
20MHz với một chu kì lệnh là 200ns.bộ nhớ chuong 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
Hình 1.1 hình dạng PIC 16f877a
Các đặc tính ngoại vi gồm các khối chức năng sau:
Timer0:bộ đếm 8bit với bộ chia tần số 8bit
Timer1: bộ đếm 16bit 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 8bit 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, 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 với các chân điều khiển RD,WR,CS ở bên ngoài
Các đặc tính Analog:
Có 8 kênh chuyển đổi ADC 10 bit
Hai bộ so sánh
Một vài đặc tính khác của vi điều khiển như:
Bộ nhớ flash có khả năng ghi xóa được 100.000 lần
Bộ nhớ EEPROM có khả năng ghi xóa được 1000.000 lần
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 thông qua 2 chân
Chế độ Sleep
Có thể hoạt động với nhiều oscillator khác nhau
2.Sơ Đồ Khối Vi Điều khiển Pic 16f877a
Trang 6Đồ Án 1
Hình 1.2 Sơ đồ khối vi điều khiển pic 16f877a
3.Các Chân Của PIC16F877A
Hình 1.3 Thứ tự các chân PIC16f877a
Trang 7Đồ Án 1
3.1.Các Chân Nguồn
Các chân nguồn của vdk được kí hiệu: chân cấp nguồn là VDD,chân nối mass là
Vss Trong hình vẽ ta có thể thấy các chân cấp nguồn như sau:
Chân 11,32 là chân cấp nguồn VDD (+5V)
Chân 12,31 là chân nối đât Vss (0V)
3.2.Chân RESET
Trên hình ta thấy chân số 1 (MCLR/Vpp) chính là chân reset của PIC,chân này có chức năng khởi đọng lại PIC khi chân này tích cực.Có một điểm khác biệt với họ 8051là chân reset của pic 16f877a tích cực ở mức thấp
Hình 1.4 nối chân reset
3.3.Mạch Dao Động
Trên hình 2 chân 13 (OSC1) và chân 14(OSC2) là 2 chân dao động.Tốc độ dao động
được xác định thông qua tần số dao động của bộ dao động
Cần phải cung cấp xung hoạt động cho vi điều khiển PIC16F877A và các vi điều
khiển nói chung, cho phép nhiều cách cung cấp xung hoạt động khác nhau Ở đây sẽ dùng thạch anh làm nguồn xung, và công việc của ta là gắn thạch anh vào hai chân 13 và 14 của vi điều khiển Tuy nhiên , các xung dao động do thạch anh tạo ra cũng không thực sự ổn định một cách tuyệt đối, và cách khắc phục là gắn thêm các tụ lọc vào thạch anh
Hình 1.5 nối bộ dao động của PIC
4 CÁC CỔNG XUẤT NHẬP CỦA PIC16F877A
-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
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
-Vi điều khiển ngoài những chức năng xuất nhập thông thường,một số chân I/O còn
có thêm chức năng khác để thể hiện sự tác động của các đặc tính ngoại vi đối với thế
giới bên ngoài
-Vi điều khiển PIC16F877a có 5 cổng I/O bao gồm : PORTA, PORTB, PORTC,
PORTD và PORTE
Trang 8Đồ Án 1
-Hướng truyền nhận được thiết lập bằng cách đưa giá trị thích hợp vào thanh ghi
TRISx
-Thanh ghi TRISx có chức năng định hướng các PORT tương ứng.(VD: TRISA
định hướng cho PORTA)
+Cho chân nào của PORT là chân nhập thì ta set chân đó =1
+Cho chân nào của PORT là chân xuất thì ta clear chân đó về 0
-Ngoài ra có thể thao tác trực tiếp trên thanh ghi,có thể làm cho tất cả các chân của
PORT tương ứng đều ở mức xuất hoặc nhập
VD: TrissB = 0x00; //chọn toàn bộ PORTB là cổng xuất
- PORT của vi điều khiển PIC16F877A cho phép truyền nhận dữ liệu theo hai
hướng, có nghĩa là được phép đọc và xuất dữ liệu ra port điều khiển
-Thanh ghi PORTx có chức năng qui định trạng thái logic của PORT tương ứng
- Dữ liệu nhập vào hay xuất ra PORT sẽ được chứa trong thanh ghi của PORT đó
-Ví dụ, giả sử như tất cả các chân của PORTB đều là chân xuất dữ liệu, khi đó muốn
đưa tất cả các chân của PORTB lên mức logic 1, ta chỉ việc đưa vào thanh ghi PORTB
giá trị ‘11111111’ Nếu tất cả các chân trong PORTB đều là chân nhập dữ liệu, muốn
biết được trạng thái mức logic của từng chân ta chỉ việc đọc giá trị của thanh ghi
PORTB
4.1 PORT A
-PORT A (RPA) bao gồm 6 I/O pin.Các chân này là chân 2 chiều (Bidirectional pin)
Chức năng I/O này được điều khiển bởi thanh ghi TRISA ( địa chỉ 85h)
PORT A 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
Hình 1.6 bảng chức năng của PORT A
Trang 9Đồ Án 1
4.2 PORT B
-PORT B (RPB) gồm 8 I/O pin Thanh ghi điều khiển xuất nhập tương ứng là TRISB
-PORT B còn được sử dụng trong quá trình nạp 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 PORT B còn liên quan đến ngắt ngoại
vi và bộ Timer0 PORT B 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
Hình 1.7 bảng chức năng của PORTB
4.3 PORT C
-PORT C (RPC) gồm 8 I/O pin Thanh ghi điều khiển xuất nhập tương ứng là TRISC
-PORT C chứa các chân chắc năng của :
Trang 10Đồ Án 1
*Chuẩn giao tiếp nối tiếp 12C, SPI, SSP, USART
4.4 PORT D
-PORT D (RPD) gồm 8 chân I/O Thanh ghi điều khiển xuất nhập tương ứng là TRISD
-PORT D là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel slave Port)
Hình 1.9 bảng chức năng của PORT D
4.5 PORT E
-PORT E (RPE) gồm 3 I/O pin Các chân này có ngõ vào analog Thanh ghi điều khiển
xuất nhập tương ứng là TRISE
-PORT E còn là các chân điều khiển của chuẩn giao tiếp
Hình 1.10 bảng chức năng của PORTE
Trang 11Đồ Án 1
5.Chức Năng ADC Của PIC16F877A
Chức năng ADC cho phép PIC nhận tín hiệu tương tự từ các chân có hỗ trợ ADC
và chuyển tín hiệu đó sang tín hiệu số để xử lý
Các chân có hỗ trợ ADC của PIC16F877A là : A0, A1, A2, A3 A5, E0, E1, E2
Một số lệnh căn bản khi dùng ADC:
Muốn dùng ADC, ta phải khai báo #DEVICE cho biết dùng ADC mấy bit, chẳng
hạn #device*=16 ADC=10 cho biết dùng ADC 10 bit
Setup_ADC(mode)
Mode là ADC_OFF : tắt chức năng ADC Mode là ADC_CLOCK_INTERNAL : thời gian lấy mẫu bằng xung clock Mode là ADC_CLOCK_DIV_2 : gian lấy mẫu bằng xung clock /2
Setup_ADC_ports(value) //Xác định chân lấy tín hiệu Analog và điện thế chuẩn
Value là ALL_ANALOGS : dùng tất cả các chân có hỗ trợ ADC Value là NO_ANALOG : không dùng ADC
Value la ANi : dùng chân ANi là chân ADC Set_ADC_channel(channel) //chọn chân để đọc giá trị analog bằng lệnh : read_adc()
Với PIC16F877A channel có 8 giá trị 0-7 tương ứng là các chân A0-E2 như
Trang 12Đồ Án 1
Hình 1.11 Ví dụ về chức năng của ADC
II.Cảm Biến Nhiệt LM35
Cảm biến LM35 là bộ cảm biến nhiệt mạch tích hợp chính xác cao mà điện áp đầu
ra của nó tỷ lệ tuyến tính với nhiệt độ theo thang độ Celsius(oC) Chúng cũng không
yêu cầu cân chỉnh ngoài vì vốn chúng đã được cân chỉnh
LM35 hoạt động được dựa trên nguyên lý phân cực của các chất bán dẫn bị ảnh
hưởng bởi nhiệt độ Nhiệt độ môi trường sẽ tác động trực tiếp lên các chất bán dẫn cấu
tạo nên, làm thay đổi mức độ phân cực của cảm biến
Nhiệt độ môi trường và mức độ phân cực của chất bán dẫn là tuyến tính Nhiệt độ
chuẩn có trong mạch
Nhiệt độ được xác định bằng cách đo hiệu điện thế ngõ ra của LM35 Sơ đồ chân
của LM35 như sau:
Hình 1.12 hình dáng và kí hiệu chân của LM35
Trang 13Đồ Án 1
Chân 1: Chân nguồn Vs
Chân 2: Đầu ra Vout
Chân 3: GND
Hình 1.13Cách nối dây cơ bản của LM35
Một số thông số chính của LM35:
+ Điện áp đầu vào từ 4V đến 30V
+ Độ phân giải điện áp đầu ra là 10mV/oC
+ Độ chính xác cao ở 25 C là 0.5 C
+ Trở kháng đầu ra thấp 0.1 cho 1mA tải
+Thích hợp với các mạch ứng dụng từ xa
-Dải nhiệt độ đo được của LM35 là từ -55 C - 150 C với các mức điện áp ra khác
nhau Xét một số mức điện áp sau :
+Nhiệt độ -55 C điện áp đầu ra -550mV
+Nhiệt độ 25 C điện áp đầu ra 250mV
+ Nhiệt độ 150 C điện áp đầu ra 1500mV
Tùy theo cách mắc của LM35 để ta đo các giải nhiệt độ phù hợp
Mô phỏng bằng Proteus:
+Nhiệt độ là 27C, điện áp xuất ra là V=0.27176 chứng tỏ sự tăng 10mV /C là khá
chính xác
Hình 1.14 mô phỏng độ chính xác của LM35
Trang 14Hình 1.15 Hình dáng của hai loại LCD thông dụng
Khi sản xuất LCD, nhà sản xuất đã tích hợp chíp điều khiển (HD44780) bên trong lớp
vỏ và chỉ đưa các chân giao tiếp cần thiết
Các chân này được đánh số thứ tự và đặt tên như hình 2 :
Hình 1.16 sô thứ tự các chân của LCD
Trang 15Đồ Án 1
2.Chức Năng Của Các Chân
VSS : Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của
mạch điều khiển
VDD : Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với VCC=5V
của mạch điều khiển
Vee : Chân này dùng để điều chỉnh độ tương phản của LCD
RS : Chân chọn thanh ghi (Register select) Nối chân RS với logic “0” (GND)
hoặc logic
“1” (VCC) để chọn thanh ghi
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi”
-write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD
R/W : Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic “0” để
LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc
E : Chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus DB0-DB7, các
lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên
trong nó khi phát hiện một xung (high-to-low transition) của tín hiệu chân E
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên
(lowto-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống
mức thấp
DB0-DB7: Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU Có 2
chế độ sử dụng 8 đường bus này :
+ Chế độ 8 bit : Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là
DB7
-Ở chế độ “đọc”, nghĩa là MPU sẽ đọc thông tin từ LCD thông qua các chân DBx
-Khi ở chế độ “ghi”, nghĩa là MPU xuất thông tin điều khiển cho LCD qua các chân
DBx Chân 15 và chân 16: ghi là A và K.Nó là Anot và Catot của LED nền nối chân
15 với lên VCC, chân 16 nối đất
Trang 16Đồ Án 1
3.Sơ Đồ Khối Của LCD
Hình 1.17 sơ đồ khối của LCD
Trang 17Đồ Án 1
4.Thanh Ghi
Chíp HD44780 có 2 thanh ghi 8 bit quan trọng : Thanh ghi lệnh IR và thanh ghi dữ
liệu DR
Thanh ghi IR:Để Điều khiển LCD, người ta phải ra lệnh thông qua tám đường bus
DB0-DB7.Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõ ràng.Người dùng chỉ việc
cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR.Nghĩa là,khi ta nạp vào thanh
ghi IR 1 chuỗi 8 bit,Chíp HD44780 sẽ tra bảng mã lệnh tại địa chỉ mà IR cung cấp và
thực hiện lệnh đó
VD : Lệnh “hiển thị màn hình” có địa chỉ lệnh là 00001100 (DB7…DB0)
Lệnh “hiển thị màn hình và con trỏ” có mã lệnh là 00001110
Thanh ghi DR :CGRAM Thanh ghi DR dùng để chứa dữ liệu 8 bit để ghi vào
vùng RAM hoặc CGRAM(ở chế độ ghi) hoặc dùng để chứa dữ liệu từ 2 vùng RAM
này gởi ra cho MPU (ở chế độ đọc) Nghĩa là,khi MPU ghi thông tin vào
DR,mạch nội bên trong chip sẽ tự động ghi thông tin này vào DDRAM
hoặc CGRAM.Hoặc khi thông tin về địa chỉ được ghi vào IR,dữ liệu ở địa
chỉ này trong vùng RAM nội của HD44780 sẽ được chuyển ra DR để truyền
cho MPU
Bằng cách điều khiển RS và R/W chúng ta có thể chuyển qua lại giữa 2
thanh ghi với MPU.Bảng sau đây tóm tắt laik các thiết lặp đối với hai chân RS
và R/Ư theo mục đích giao tiếp
Bảng 1 : Chức năng chân RS và R/W theo mục đích sử dụng
Vùng ROM chứa kí tự CGROM : Character Generator ROM,vùng ROM này
dùng để chứa các mẫu kí tự 5x8 hoặc 5x10 điểm ảnh /kí tự,và định địa chỉ bằng
8bit.Tuy nhiên,nó chỉ có 208 mẫu kí tự 5x8 và32 mẫu kí tự kiểu 5x10( tổng cộng
này