SlideShare a Scribd company logo
1 of 34
Trang 1
https://lop2.net/
LỜI MỞ ĐẦU
Nhiệt độ là tín hiệu vật lý mà ta thường xuyên gặp trong đời sống sinh hoạt
hằng ngày cũng như trong kĩ thuật và công nghiêp. Việc đo đạc nhằm xác định
chính xác giá trị của nhiệt độ theo các thang đo từ lâu đã trở thành một vấn đề
mà cả những nhà khoa học hàng đầu thế giới cũng như những người dân thuộc
nhiều lĩnh vực đều quan tâm; chính vì lẽ đó những phương xác đo đạc ngày một
nhiều hơn và chính xác hơn. Hiện nay, việc sử dụng cảm biến nhiệt độ trong
khối ngành công nghiệp và cả dân dụng ngày càng phỏ biến và mang lại hiệu
quả cao.
Đồ án “Thiết kế hệ thống đo nhiệt độ” này nhóm em sử dụng cảm biến LM35
với mục đích nhằm nghiên cứu về các phương pháp đo nhiệt độ và thực hiện
thiết kế một thiết bị đo và hiển thị nhiệt độ tự động, chính xác.
Đồ án gồm:
Chương 1: Nguyên lý hoạt động của hệ thống vi điều khiển
1.1 Xây dựng mục tiêu và sơ đồ khối của vi điều khiển Pic
1.2 Nguyên lý hoạt động của hệ thống
Chương 2: Tính chọn linh kiện sử dụng trong hệ thống
2.1 giới thiệu các linh kiện được sử dụng trong mạch
2.2 tính toán inh kiện trong hệ thống
Chương 3: Mô phỏng hệ thống
3.1 thiết kế mạch nguyên lý
3.2 chạy mô phỏng bằng phần mềm ứng dụng Proteus
Chương 4: Chế tạo mạch thực tế
4.1 thiết kế mạch in
4.2 Lắp đặt thiết bị và hoàn thiện mạch
4.2 chạy mạch và đánh giá kết quả
Nhóm em xin chân thành cảm ơn thầy Lê Tiến Dũng đã dành thời gian hướng
dẫn trong suốt quá trình thực hiện đề tài này.
Vì là sinh viên nên những kết quả nghiên cứu được trong đồ án không tránh
khỏi những sai sót, nhóm em mong nhận được sự góp ý của thầy cô giáo để có
thể hoàn thiện kiến thức của mình.
Trang 2
https://lop2.net/
CHƯƠNG I
NGUYÊN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG ĐO NHIỆT ĐỘ
1.1 Mục tiêu và sơ đồ khối của hệ thống đo nhiệt độ dùng Pic
1.1.1 Một số loại cảm biến đô nhiệt độ
A. Nhiệt điện trở kim loại
Đối với nhiệt điện trở kim loại thì viêc chế tạo nó thích hợp hơn cả là sử
dụng các kim loại nguyên chất như : plantin, đồng, niken. Để tăng độ
nhạy cảm nên sử dụng các kim loại có hệ số nhiệt điện trở càng lớn càng
tốt. Tuy nhiên tùy thuộc vào khoảng nhiệt độ cần kiểm tra mà ta có thể sử
dụng nhiệt điện trở loại này hay loại khác. Cụ thể nhiệt điện trở chế tạo từ
dây dẫn bằng đồng làm việc trong khoảng nhiệt độ -500
C ÷ 1500
C. Nhiệt
điện trở từ dây dẫn plantin làm việc trong khoảng nhiệt độ -1900
C ÷
6500
C.
Cấu trúc của nhiệt điện trở kim loại bao gồm: dây dẫn mảnh kép đôi quấn
trên khung cách điện tạo thành phần tử nhạy cảm, nó được đặt trong chiếc
vỏ đặc biệt có các cực đưa ra. Giá trị của nhiệt điện trở từ 100
C÷ 1000
C.
Ưu điểm:
+ Việc sử dụng nhiệt điện trở kim loại để đo nhiệt độ cao rất tin cậy,
đảm bảo độ chính xác đến 0.010
C và sai số không quá 0,5% đến
1%.
+ Vật liệu chế tạo tương đối đơn giản.
Nhược điểm:
+ Kích thước của nhiệt điện trở kim loại lớn nên hạn chế việc sử
dụng nó để đo nhiệt độ ở nơi hẹp.
+ Do là kim loại nên sau 1 thời gian chúng sẽ dễ bị oxy hóa, gây ảnh
hưởng đến độ nhạy của chúng.
B. Nhiệt điện trở bán dẫn
Nhiệt điện trở được chế tạo từ vật liệu bán dẫn, chúng được sử dụng trong
hệ thống tự động kiểm tra và điều khiển. Nhiệt điện trở bán dẫn được chế
tạo từ hợp kim của đồng – măng gan hoặc coban. Loại này hoàn toàn trái
ngược với nhiệt điện trở kim loại, khi nhiệt độ tăng thì điện trở của chúng
lại giảm khoảng nhiệt độ đo của chúng thường dao động trong khoảng từ
-600
C ÷ 1800
C.
Ưu điểm:
+ độ chính xác khá cao
+ kích thước nhỏ nhẹ, giúp nó làm việc ở những nơi chật hẹp
Trang 3
https://lop2.net/
Nhược điểm:
+ chế tạo phức tạp
1.1.2 Một số phương pháp đo nhiệt độ
A. Đo nhiệt độ bằng phương pháp cặp nhiệt điện
Bộ cảm biến cặp nhiệt ngẫu là 1 mạch có 2 dây dẫn. chỗ nối giữa 2 dây
dẫn này được hàn với nhau. Chiều của dòng điện phụ thuộc vào nhiệt
độ tương ứng của mỗi hàn. Nếu để hở một đầu thì giữa 2 cực xuất hiện
1 suất điện động nhiệt. như vậy bằng cách đo sdd ta có thể tìm được
nhiệt độ của đối tượng đó.
B. Đo nhiệt độ bằng hỏa kế quang học
Nguyên lý làm việc của hỏa kế quang học là dựa trên các hiện tượng
bức xa của các vật thể ở nhiệt độ cao, chúng dựa trên ánh sáng, bức xạ
nhiệt của vật phát ra mà tính được nhiệt độ của vật.
C. Đo nhiệt độ bằng IC
Các IC này làm việc bằng cách tìm mỗi quan hệ giữa đại lượng nhiệt độ
đầu vào và đại lượng ( điện áp, dòng điện) đầu ra. Các cảm biến này tạo
ra các giá trị điện áp hay dòng điện tỷ lệ tuyến tính với nhiệt độ đầu
vào,vì vậy đo tín hiệu điện đầu ra sẽ biết được nhiệt độ đầu vào. Nó có
ưu điểm là vận hành đơn giản, tuy nhiên phạm vi đo nhiệt độ giới hạn
từ -500
C ÷ 1500
C.
đặc tính của một số loại ic thông dụng
• AD 590
+ ngõ ra là dòng điện
+ độ nhạy 1A/10
K
+ nguồn cung cấp 4-30V
+ phạm vi sử dụng -550
C ÷ 1500
C
• Họ LM35, LM135, LM235, LM335
+ ngõ ra là điện áp
+ độ nhạy 10mV/0
C
+ nguồn cung cấp 5-30V
+ phạm vi sư dụng:
-LM335: -100
C ÷ 1250
C
-LM235: - 400
C ÷ 1400
C
-LM135: - 550
C ÷ 2000
C
-LM35: - 550
C ÷ 1500
C
1.1.3 Mục tiêu và sơ đồ khối của mạch đo nhiệt độ dùng Pic
A. Mục tiêu
Trang 4
https://lop2.net/
Ngày nay việc sử dụng các thiết bị điện tử phục vụ đời sống hằng ngày
rất phổ biến. Trong đó ta có thế kể đến các thiết bị cảm ứng và hiển thị
các thông số môi trường phục vụ nhiều mục đích khác nhau nhằm tạo
sự tiện lợi trong sinh hoạt hằng ngày. Bắt nguồn từ mục đích đó, nhóm
em đã thiết kế một mạch cảm ứng nhiệt độ và hiển thị ra LCD sử dụng
vi điều khiển pic 16F877A và cảm biến nhiệt độ LM35.
Mục tiêu của mạch giúp chúng ta biết được :
- Chức năng ADC của PIC ứng trong mạch
- Cách sử dụng LCD, giao tiếp giữa LCD và PIC
- Cách sử dụng cảm biến
- Tới việc đầy đủ các công cụ để làm mạch ( viết code, mô phỏng
bằng proteus, vẽ layout, test mạch thử v…v..)
- Làm ra mạch thực tế.
B. Sơ đồ khối của hệ thống đo nhiệt độ dùng Pic 16F877A
+ Khối 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. Nhiệm vụ
của khối này là nhận trực tiếp đại lượng vật lý (nhiệt độ) đặc trưng cho đối
tượng cần đo biến đổi đại lương vật lý này sang đại lương vật lý khác (điện áp)
để thuận tiện cho việc tính toán.
Cảm biến
siêu âm
Hiển thị LCD
Nguồn Nuôi
Nút Bấm
LED Báo
PIC 16F877A Rơ le
Trang 5
https://lop2.net/
+ Khối chuyển đổi ADC: Có nhiệm vụ nhận tín hiệu điện từ khối LM35
sau đó chuyển thành tín hiệu số, để từ đó mã hóa ra LCD.
+ Khối LCD: có chức năng hiển thị nhiệt độ của đối tượng cần đo sau khi
nó nhận tín hiệu từ khổi giải mã LCD.
+ Nút Bấm: có chức năng cho hệ thống hoạt động và dừng để xem nhiệt độ
tạm thời
1.2 Nguyên lý hoạt động của hệ thống đo nhiệt độ
Khi cho cảm biến vào vật cần đo nhiệt độ, đầu ra của cảm biến LM35 cho
ta 1 điện áp tuyến tính với nhiệt độ đầu vào, tín hiệu điện này được đươc
vào trong PIC16F877A, trong PIC có bộ chuyển đổi ADC nó sẽ thực hiện
viêc chuyển tín hiệu tương tự (điện áp) sang tín hiệu số, rồi từ đó qua bộ
giải mã led LCD sẽ giải mã tín hiệu số thành tín hiệu điện đưa ra cho
LCD hiển thị.
Trang 6
https://lop2.net/
CHƯƠNG 2
TÍNH CHỌN LINH KIỆN TRONG HỆ THỐNG
2.1 Giới thiệu các linh kiện trong hệ thống
2.1.1 Giới thiệu Pic 16F877A
A.sơ đồ chân Pic 16F877A
PIC là viết tắt của “Programable Intelligent Computer” có thể tạm dịch là máy
tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho vi điều
khiển đầu tiên của họ là PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi
cho vi điều khiển CP1600. Vi điều khiển này sau đó được nghiên cứu phát triển
thêm và từ đó hình thành nên dòng vi điều khiển PIC ngày nay.
Pic 16F877A là dòng Pic phổ biến nhất hiện nay (đủ mạnh về tính năng, có 40
chân, bộ nhớ đủ cho hấu hết các ứng dụng thông thường) cấu trúc tổng quát của
Pic16F877A:
- 8K plash Rom
- 368 byte Ram
- 256 byte EEPROM
- 5 port (A, B, C, D, E) vào ra với tín hiệu độc lập.
- 2 bộ định thời 8 bit (timer0 và timer 2)
- 1 bộ định thời 16 bit (timer 1) có thể hoạt động trong chế độ tiết kiệm
năng lượng (Sleep Mode) với xung clock bên ngoài
- 2 bộ CCP (Capture/Compare/PWM)
- 1 bộ biến đổi AD 10 bit với 8 ngõ vào
- 2 bộ so sánh tương tự (Compartor)
- 1 bộ định thời giám sát (Watchdog Timer)
- 1 cổng song song 8 bit với các tín hiệu điều khiển
- 1 cổng nối tiếp
- 15 nguồn ngắt
- Nạp chương trình bằng cổng nối tiếp ICSP (In-Circuit Serial
Programming)
- Được chế tạo bằng công nghệ CMOS
- 35 tập lệnh có độ dài 14bit
- Tầng số hoạt động tối đa 20MHz
- Để Pic hoạt động ta cần cấp nguồn cho Pic, ngoài ra có thể thêm vào
bộ dao động thạch anh, và nút reset.
Trang 7
https://lop2.net/
B.Sơ đồ chân của pic 16F877A
C.Tổ chức bộ nhớ vi điều khiển
Đây là vi điều khiển họ PIC16Fxxx với tập lệnh gồm 35 lệnh với độ dài
14bit. Mỗi lệnh đều được thực hiện trong 1 chù kỳ xung clock, tốc độ
hoạt động tối đa cho phép là 20MHz vời 1 chu kỳ lệnh là 200ns. Bộ nhớ
Trang 8
https://lop2.net/
chương trình 8Kx 14 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.
D.Các đặc tính ngoại vi của các khối chức năng
- Timer0: Bộ đếm 8 bit với bộ chia tầng 8 bit.
- Timer1: Bộ đếm 16 bit với bộ chia tầng,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.
- Timer 2:Bộ đếm 8 bit với bộ chia tầng 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
E.Các đặc tính Analog
- 8 kênh chuyển đổi ADC 10 bit.
- 2 bộ so sánh.
F. Các cổng nhập/xuất của Pic 16F877A
Cổng xuất nhập 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 sự tương tác đó,
chức năng của vi điều khiển được thể hiện rõ ràng.
Vi điều khiển PIC 16F877A có 5 cổng xuất nhập PORTA, PORTB, PORTC,
PORTD và PORTE.
+ PORT A (RPA) bao gồm 6 I/O đây là các chân 2 chiều có thể xuất và
nhập, chức năng xuất nhập được điều khiển bởi thanh ghi TRISA (địa chỉ
85h). Muốn xác lập 1 chân trong thanh ghi TRISA là input ta “set” bit
tương ứng trong thanh ghi TRISA và mún có 1 chân output ta “clear”bit
tương ứng trong thanh ghi. Thao tác này hoàn toàn tương tự với PORT và
các thanh ghi điều khiển tương ứng.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 Timer0 và
ngõ vào của bộ giao tiếp MSSP.Các thanh ghi TRISA bao gồm:
+ PORTA (địa chỉ 05h): chứa giá trị các chân I/O trong PORTA
Trang 9
https://lop2.net/
+ 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 ADC.
+ PORTB (RPB) bao gồm 8 chân I/O, thanh ghi điều khiển xuất nhập
tương ứng là TRISB. Bên cạnh đó có 1 số chân của PORTB dùng để 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à 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ác thanh
ghi PORTB bao gồm:
+ PORTB (địa chỉ 06h,106h): chứa giá trị các chân 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 toàn bộ
Timer0.
+ PORTC (RPC) gồm 8 chân 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, Timer1, bộ PWM, và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP,
USART. Các thanh ghi điều khiển:
+ PORTC (địa chỉ 07h):chứa giá trị các chân trong PORTC.
+ TRISC (địa chỉ 87h):điều khiển xuất nhập.
+ 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.
Các thanh ghi:
+ Thanh ghi PORTD (địa chỉ 08h): chứa giá trị các chân trong PORTD
+ TRISD (địa chỉ 88h) điều khiển xuất nhập
+ PORTE (RPE) gồm 3 chân I/0,thanh ghi điều khiển xuất nhập tương ứng
là TRISE. Các chân 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ác thanh ghi:
+ PORT (địa chi 09h) chứa giá trị các chân trong PORTE.
+ TRISE (địa chỉ 89h) điều khiển xuất nhập và xác lập các thông số cho
chuẩn PSP.
+ ADCON1 thanh ghi điều khiển khối ADC.
+ Timer1 là bộ định thời 16 bit, giá trị của 2 timer 1 sẽ lưu vào 2 thanh ghi
(TMR1h và TML1R), cờ ngắt timer 1 là bit TMR 1IF, bit điều khiển của
Timer1 là TMR1IE. Tương tự như Timer0,Timer1 cũng có 2 chế độ hoạt
động: chế độ định thời (timer) với xung kích là xung clock của oscillator(
tầng số bằng ¼ tầng 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. Các thanh
ghi liên quan đến timer1 bao gồm:
+ INTCON(0BH, 8BH, 10BH, 18Bh) cho phép ngắt hoạt động( GIE và
PEIE)
+ IR1( địa chỉ 0CH) chứa cờ ngắt timer1(TMR1IF)
+ PIE1( địa chỉ 8CH) cho phép ngắt timer1(TMR1IE)
Trang 10
https://lop2.net/
+ 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
G.Bộ chuyển đổi ADC (Analog to Digital Converter) là bộ chuyển đổi tín
hiệu giữa 2 dạng tương tự và số. PIC16F877A có 8 ngõ vào analog gồm
RA4, RA3, RA2, RA1, RA0, RE2, RE1, 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 2 chân RA2 và RA3. Kết quả chuyển đổi từ
tín hiệu tương tự sang tín hiệu số 10 bit số tương ứng và lưu trên 2 thanh
ghi ADRESH:ADRESL. Khi không sử dụng bộ chuyển đổi ADC, các
thanh ghi này có thể sử dụng như các thanh ghi thông thường khác. Cần
chú ý là có 2 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 ADFM và được minh họa cụ thể trong hình sau:
2.1.2 Khối cảm biến
Để đo lường nhiệt độ có thể sử dụng nhiều loại cảm biến khác nhau, mỗi loại có
ưu điểm riêng phù hợp với từng yêu cầu riêng. Đối với đề tài này chỉ đo nhiệt
độ môi trường bình thường nên sử dụng LM35 là tối ưu nhất vì: đây là loại cảm
biến có độ chính xác cao tầm hoạt động tuyến tính từ 00
C – 1280
C, tổn hao công
suất thấp.
Cảm biến nhiệt LM35 có vai trò đo nhiệt độ môi trường sau đó truyền tín hiệu
đo được cho Pic dưới dạng điện áp, nhiệt độ tăng hay giảm 10
C thì LM35 cũng
tăng hay giảm 10mv theo 10
C.
Trang 11
https://lop2.net/
LM35 có 3 chân,2 chân cấp nguồn (chân 1:cấp nguồn từ 4V – 20V, chân 3 nối
GND) 1 chân xuất điện áp ra tùy theo nhiệt độ (chân 2).
Các đặc tính kỹ thuật khác:
+ LM35 có dãi nhiệt từ -550
C đến 1500
C, độ chính xác 1.50
C, đầu ra
10mv/10
C.
+ Dòng LM35 là dòng mạch tích hợp cảm biến chính xác nhiệt độ, có điện
áp ra tỷ lệ thuận với nhiệt độ, do đó có lợi thế hơn so với cảm biến nhiệt
độ tuyến tính hiệu chuẩn như (0
K) chẳng hạn nhưng dùng không phải trừ
đi 1 lượng lớn hằng số điện áp từ đầu ra để phân chia thang nhiệt độ
thuận tiện hơn.
+ LM35 không cần hiệu chỉnh hay chỉnh sửa để đưa về nhiệt độ chính xác
như 1/40
C nhiệt độ ở trong phòng và 3/40
C ở trong khoảng -550
C đến
1500
C. Sai số thấp vì được vi mạch điều chỉnh.
+ Trở kháng đầu ra của LM35 thấp, đầu ra tuyến tính và hiệu chỉnh chuẩn
xác giúp đọc và kiểm soát mạch dễ dàng.
+ Nó được sử dụng với nguồn 1 chiều, chỉ sử dụng 60µA từ nguồn nên
nhiệt độ vi mạch tăng rất ít, thấp hơn 0,10
C trong không khí.
2.1.3 Khối hiển thị LCD
LCD (Liquid Crystal
Display) còn gọi là màn hình
tinh thể lỏng là loại thiết bị
hiển thị cấu tạo bởi các tế
bào (các điểm ảnh) chứa
tinh thể lỏng có khả năng
thay đổi tính phân cực của
ánh sáng và do đó thay đổi
cường độ ánh sáng truyền
qua khi kết hợp với các kính lọc phân cực. Chúng có ưu điểm là phẳng, cho
hình ảnh sáng, chân thật và tiết kiệm điện. Ngày nay thiết bị hiển thị LCD được
sử dụng trong rất nhiều các ứng dụng của VĐK. LCD có rất nhiều ưu điểm so
với các dạng hiển thị khác: Nó có khả năng hiển thị kí tự đa dạng, trực quan
(chữ, số và kí tự đồ họa) dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức
giao tiếp khác nhau, tốn rất ít tài nguyên hệ thống và giá thành rẻ . . .
A. Tổng quan về LCD
Hình dạnh và kích thước. Có rất nhiều loại LCD với nhiều hình dáng và
kích thước khác nhau, trên hình là loại LCD thông dụng.
Trang 12
https://lop2.net/
Khi sản xuất LCD, nhà sản xuất đã tích hợp chíp điều khiển 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 :
Trang 13
https://lop2.net/
B. Bảng chức năng các chân
Trang 14
https://lop2.net/
- Một số chú ý :
+ Chân 15 và chân 16: ghi là A và K. Nó là anot và katot của một con led
dùng để sáng LCD trong bóng tối, chúng ta có thể không nối, nếu sử
dụng nối chân 15 với trở 220 or 330 ôm lên VCC, chân 16 nối đất.
+ Các lệnh của LCD có thể chia thành 4 nhóm như sau: các lệnh về kiểu
hiển thị. VD: Kiểu hiển thị (1 hàng / 2 hàng), chiều dài dữ liệu (8bit/4 bit)
Chỉ định địa chỉ RAM nội. Nhóm lệnh truyền dữ liệu trong RAM nội.
+ Địa chỉ của RAM (AC) sẽ tự động tăng (giảm) 1 đơn vị, mỗi khi có
lệnh ghi vào RAM (điều này giúp chương trình gọn hơn).
+ Với mỗi lệnh LCD cần một khoảng thời gian để hoàn tất, thời gian này
có thể khá lâu đối với tốc độ của MPU, nên ta cần kiểm tra cờ BF hoặc
đợi.
+ Tuy trong sơ đồ khối của LCD có nhiều khối khác nhau, nhưng khi lập
trình điều khiển LCD ta chỉ có thể tác động trực tiếp được vào 2 thanh ghi
DR và IR thông qua các chân DBx, và ta phải thiết lập chân RS, R/W phù
hợp để chuyển qua lại giữ 2 thanh ghi này.
2.2 Tính toán linh kiện trong hệ thống
2.2.1 LM35
Dựa vào những đặc điểm của LM35 đã nêu trên ta tính toán nhiệt độ đầu
ra của LM35.
việc đo nhiệt độ dùng LM35 ta tính bằng cách.
LM35 → ADC → VI ĐIỀU KHIỂN͢͢͢͢
Như vậy ta có
U = t*K
trong đó :
U là điện áp đầu ra
t là nhiệt độ môi trường cần đo
K là hệ số nhiệt độ của LM35 10mV/0
C.
Giả sử điện áp Vcc cấp cho LM35 là 5V, dùng ADC 10 bit vậy bước thay
đổi của LM35 là 5/1024, giá trị ADC đo được t = giá trị ADC/2048.
Sai số của LM35 :
+ Tại 0° C thì hiệu điện áp của lm35 là 10mV
+ Tại 150° C thì hiệu điện áp của lm35 là 1500mV
2.2.2. Máy biến áp :
Ta chọn máy biến áp có các thông số hoạt động sau :
- Thông số điện áp : 220V/12V, để thuận tiện ta chọn loại máy biến
áp có chia thành nhiều dải điện áp khác nhau như “ 5v,9v,12v…”
- Dòng điện cho phép ở cuộn thứ cấp 12V là 2.5A
Trang 15
https://lop2.net/
2.2.3. Tính chọn cầu diod.
Ở đây vì công suất của mạch nhỏ nên ta chọn loại cầu diod cỡ 2-3A. Ta
chọn Diode cầu 2A.
2.2.4 Tính chọn thạch anh.
Để tốc độ xử lý của PIC 16F877A được nhanh nhất,ta chon thạch anh
loại 20MHz.
Chức năng :
Thạch anh dùng để tạo ra khối dao động, và tần số dao động được ghi
trên lưng thạch anh.Trong điện tử đa phần để tạo tần số đươc ổn định vì
tần số của thạch anh tạo ra ít bị ảnh hưởng bởi nhiệt độ hơn là các mạch
dao động RC. Trong vi điều khiển bắt buộc phải có thạch anh, vì khi xét
chi tiết thì vi điều khiển có CPU, timer,… CPU bao gồm các mạch logic
và mạch logic muốn hoạt động cũng cần có xung clock, còn timer thì
cũng cần phải có xung để đếm. Tùy loại vi điều khiển mà bao nhiêu xung
clock thì ứng với 1 chu kì máy, và với mỗi xung clock thi vi điều khiển sẽ
đi làm 1 công việc nhỏ ứng với lệnh đang thực thi
2.2.5 Led đơn.
Định nghĩa : LED, viết tắt của Light-Emitting-Diode có nghĩa là “đi-ốt
phát sáng”, là một nguồn sáng phát sáng khi có dòng điện tác động
lên nó. Được biết tới từ những năm đầu của thế kỷ 20, công nghệ LED
ngày càng phát triển, từ những diode phát sáng đầu tiên với ánh sáng yếu
và đơn sắc đến những nguồn phát sáng đa sắc, công suất lớn hay phát ra
các tia hồng ngoại hoặc tử ngoại
ta chọn 3 đèn led : xanh, đỏ và vàng để báo ở 3 mức nhiệt độ
thấp, trung bình, cao.
Trang 16
https://lop2.net/
2.2.6 Tính chọn điện trở.
Chọn điện trở cho led báo nguồn và led báo trạng thái:
Ta có : dòng qua led là 15mV,điện
áp rơi trên led là 2V.
giá trị R =220
Chọn R=220 . Điện trở trong
mạch reset, chon R=10K
2.2.8 LM7805:
Giới thiệu :
- Với những mạch điện không đòi hỏi độ ổn định của điện áp quá cao, sử
dụng IC ổn áp thường được người thiết kế sử dụng vì mạch điện khá đơn
giản. Các loại ổn áp thường được sử dụng là IC 78xx, 79xx, với xx là
điện áp cần ổn áp. Ví dụ 7805 ổn áp 5V, 7808 ổn áp 8V, 7812 ổn áp 12V
hay ổn áp điện áp âm có 7905 ổn áp điện áp -5V, 7912 ổn áp -12V.
Họ 78xx là họ cho ổn định điện áp đầu ra là dương. Còn xx là giá trị điện
áp đầu ra như 5V, 6V...
- Họ 79xx là họ ổn định điện áp đầu ra là âm. Còn xx là điện áp đầu ra như:
-5V, -6V
Sự kết hợp của hai con này sẽ tạo ra được bộ nguồn đối xứng.
Về mặt nguyên lý nó hoạt động tương đối giống nhau. Bây giờ ta xét từng
IC 78xx, 79xx
Hình 2.24
Trang 17
https://lop2.net/
2.2.9 Cổng Header.
Định nghĩa : Dùng để kết nối đầu ra của máy biến áp với mạch n
guồn và cung cấp nguồn cho vi điều khiển,LCD.
Hình 2.21 Header
Hình 2.20 LM7805
Trang 18
https://lop2.net/
CHƯƠNG 3
MÔ
PHỎN
G HỆ
THỐN
G
3.1
THIẾT
KẾ
MẠCH
NGUYÊ
N LÝ
3.1.1 Sơ
đồ thuật
toán
Call hien thi led
Trang 19
https://lop2.net/
-thuật toán ngắt
Trang 20
https://lop2.net/
-cài đặt LCD
Trang 21
https://lop2.net/
3.1.2 chương trình
Trang 22
https://lop2.net/
#INCLUDE P16F877A.INC
__CONFIG _HS_OSC & _WDT_OFF&_LVP_OFF
#define LCD_D4PORTB, 0
#define LCD_D5 PORTB, 1 ; 4 data lines
#define LCD_D6 PORTB, 2
#define LCD_D7 PORTB, 3
#define LCD_RS PORTD, 4 ; 0 = nhan lenh tu vdk, 1 = nhan ki
tu tu vdk de hien thi
#define LCD_E PORTD, 6 ; 1 to send data
;khai bao bien
cblock 0x20
vong1,vong2, thap, cao, a, hc, hangchuc, so, dv, counta,countb,count1,dem,
LCD_tam, D0,D1,D2,LCDTmp, n1, n2,led,led1
endc
;chi dan bien dich
org 0x00
goto main
org 0x04
movwf n1
swapf status,w
movwf n2
;chuyen sang bank mot de lay so lieu thanh ghi adresl roi gan cho thanh ghi thap
bsf status,5
movf adresl,w
;chuyen ve bank khong
bcf status,5
movwf thap
movf adresh,w
movwf cao
;khoi tao ban dau so bang 0
Trang 23
https://lop2.net/
clrf so
;kiem tra bit dau tien cau thanh ghi cao
btfss cao,0
goto $+3
movlw d'64'
movwf so
;vao chuong trinh chia bit tim nhiet do yeu cau
call timdegree
;goi call chia so de ta tim duoc hang chuc(hc) va hang don vi(dv)
call chiaso
movf hc,w
movwf hangchuc
;day la chuong trinh con chia so
timdegree
movlw d'4'
subwf thap,f
btfsc status,c
goto $+2
goto $+3
incf so,f
goto $-5
return
;ket qua cua phep tinh uoc dua vao so
chiaso
clrf dv
clrf hc
movlw d'10'
subwf so,f
btfsc status,c
Trang 24
https://lop2.net/
goto $+2
goto $+3
incf hc,f
goto $-5
movlw d'10'
addwf so,w
movwf dv
return
bcf pir1,adif
swapf n2,w
movwf status
swapf n1,w
retfie
; chuong trinh chinh
main
;chuyen sang bank1
bsf status,5
movlw b'00000100'
movwf option_reg
clrf trisd
clrf trisb
bsf pie1,adie
;cai dat thanh ghi adcon1
movlw b'10000001'
movwf adcon1
bcf status,5
bsf intcon,gie
bsf intcon,peie
Trang 25
https://lop2.net/
bcf pir1,adif
clrf portd
;da chuyen sang bank0
;cai dat adcon0
movlw b'10000001'
movwf adcon0
;bat dau ghi du lieu
batdau
call lcdinit ; khoi tao lcd
start
bsf adcon0,2
; hien thi lcd
hienthi
movlw 0x01
call LCDADD_line1
movlw 'D'
call LCDSEND
movlw 'O'
call LCDSEND
movlw ' '
call LCDSEND
movlw 'A'
call LCDSEND
movlw 'N'
call LCDSEND
Trang 26
https://lop2.net/
movlw ' '
call LCDSEND
movlw 'V'
call LCDSEND
movlw 'D'
call LCDSEND
movlw 'K'
call LCDSEND
movlw 0x02
call LCDADD_line2 ; nhay den dia chia 0x05
movlw 'n'
call LCDSEND
movlw 'h'
call LCDSEND
movlw 'i'
call LCDSEND
movlw 'e'
call LCDSEND
movlw 't'
call LCDSEND
movlw ' '
call LCDSEND
movlw 'd'
call LCDSEND
movlw 'o'
call LCDSEND
movlw ':'
call LCDSEND
Trang 27
https://lop2.net/
movlw ' '
call LCDSEND
movf hangchuc,w
addlw d'48'
call LCDSEND ; viet ki tu "a"
movf dv,w
addlw d'48'
call LCDSEND
movlw d'223'
call LCDSEND
movlw 'C'
call LCDSEND
GOTO start
; khoi tao chuc nang lcd
lcdinit
bsf STATUS, 5 ;Bank 1
bcf LCD_RS
bcf LCD_E
bcf LCD_D4
bcf LCD_D5
bcf LCD_D6
bcf LCD_D7
bcf STATUS, RP0 ;Bank 0
call delay_1ms
bcf LCD_RS ; Set command mode
Trang 28
https://lop2.net/
bcf LCD_E
bsf LCD_D4
bsf LCD_D5
bcf LCD_D6
bcf LCD_D7
call PULSE
call delay_1ms
call PULSE
call DELAY_40us
call DELAY_40us
call PULSE
; gui lenh de chon che do 4 bit dau tien
bcf LCD_D4
call PULSE
; Function set
; Format: xxxDNFxx D: 1= 8-bit, 0= 4-bit (use 4-bit!)
movlw b'00101000' ; N: 1= 2 lines, 0= 1 line
call LCDSEND ; F: 1= 5x10 font, 0= 5x8 font
; Display control
; Format: xxxxxDCB D: Display on(1)/0ff(0)
movlw b'00001100' ; C: Cursor on(1)/0ff(0)
call LCDSEND ; B: Blink on(1)/0ff(0)
; Entry mode set
; Format: xxxxxxIS I: 1= Increment counter, 0= Decrement
counter
Trang 29
https://lop2.net/
movlw b'00000110' ; S: 1= "Accompanies display shift"
call LCDSEND
; Cursor or display shift
; Format: xxxxSRxx S: 1= Display shift, 0= Cursor move
movlw b'00010000' ; R: 1= Shift right, 0= Shift left
call LCDSEND
movlw b'00000001' ; Clear screen
call LCDSEND
bsf LCD_RS ; Set data mode
RETURN
;*************************************************************
; Moves "cursor"
;*************************************************************
LCDADD_line1
bcf LCD_RS ; Command mode
iorlw 0x80 ; Goto DDRAM adress
call LCDSEND
bsf LCD_RS ; Data mode
call delay_1ms ; Takes a couple of ms
RETURN
LCDADD_line2
bcf LCD_RS ; Command mode
iorlw 0xC0 ; Goto DDRAM adress
call LCDSEND
Trang 30
https://lop2.net/
bsf LCD_RS ; Data mode
call delay_1ms ; Takes a couple of ms
RETURN
;*************************************************************
; Sends contens of W to display
;*************************************************************
LCDSEND ; Sends character in W to lcd. Does not alter RS line!
movwf LCDTmp
bcf LCD_D4
bcf LCD_D5
bcf LCD_D6
bcf LCD_D7
btfsc LCDTmp, 7
bsf LCD_D7
btfsc LCDTmp, 6
bsf LCD_D6
btfsc LCDTmp, 5
bsf LCD_D5
btfsc LCDTmp, 4
bsf LCD_D4
call PULSE
bcf LCD_D4
bcf LCD_D5
bcf LCD_D6
bcf LCD_D7
Trang 31
https://lop2.net/
btfsc LCDTmp, 3
bsf LCD_D7
btfsc LCDTmp, 2
bsf LCD_D6
btfsc LCDTmp, 1
bsf LCD_D5
btfsc LCDTmp, 0
bsf LCD_D4
call PULSE
return
;*************************************************************
; Pulse enable line
;*************************************************************
PULSE ; Pulse Enable.
bsf LCD_E
nop ; Increase the delay here if you get
nop ; problems with high clock speed
nop ; Probably not needed since
nop ; 1 instruction @10MHz = 400ns
bcf LCD_E
call delay_1ms
call delay_1ms
return
;*************************************************************
Trang 32
https://lop2.net/
; Clears display
;*************************************************************
LCDCLR ; clears the entire display
bcf LCD_RS ; Set command mode
movlw b'00000001' ; Clear screen
call LCDSEND
bsf LCD_RS ; Set data mode
return
;*************************************************************
; 1ms delay.
; Modify this to match your processor speed.
; http://www.piclist.org/techref/piclist/codegen/delay.htm
;*************************************************************
delay_1ms
movlw d'100'
movwf tmr0
bcf intcon,tmr0if
btfss intcon,tmr0if
goto $-1
return
;*************************************************************
; 40us delay.
; Modify this to match your processor speed.
; http://www.piclist.org/techref/piclist/codegen/delay.htm
;*************************************************************
DELAY_40us ;Thoi gian 1 CK lenh=0,2us
movlw d'250'
Trang 33
https://lop2.net/
movwf tmr0
bcf intcon,tmr0if
btfss intcon,tmr0if
goto $-1
RETURN
End
3.2 chạy mô phỏng bằng phần mềm proteus
Trang 34
https://lop2.net/
Chương 4

More Related Content

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Đồ án Thiết kế hệ thống đo nhiệt độ sử dụng cảm biến LM35

  • 1. Trang 1 https://lop2.net/ LỜI MỞ ĐẦU Nhiệt độ là tín hiệu vật lý mà ta thường xuyên gặp trong đời sống sinh hoạt hằng ngày cũng như trong kĩ thuật và công nghiêp. Việc đo đạc nhằm xác định chính xác giá trị của nhiệt độ theo các thang đo từ lâu đã trở thành một vấn đề mà cả những nhà khoa học hàng đầu thế giới cũng như những người dân thuộc nhiều lĩnh vực đều quan tâm; chính vì lẽ đó những phương xác đo đạc ngày một nhiều hơn và chính xác hơn. Hiện nay, việc sử dụng cảm biến nhiệt độ trong khối ngành công nghiệp và cả dân dụng ngày càng phỏ biến và mang lại hiệu quả cao. Đồ án “Thiết kế hệ thống đo nhiệt độ” này nhóm em sử dụng cảm biến LM35 với mục đích nhằm nghiên cứu về các phương pháp đo nhiệt độ và thực hiện thiết kế một thiết bị đo và hiển thị nhiệt độ tự động, chính xác. Đồ án gồm: Chương 1: Nguyên lý hoạt động của hệ thống vi điều khiển 1.1 Xây dựng mục tiêu và sơ đồ khối của vi điều khiển Pic 1.2 Nguyên lý hoạt động của hệ thống Chương 2: Tính chọn linh kiện sử dụng trong hệ thống 2.1 giới thiệu các linh kiện được sử dụng trong mạch 2.2 tính toán inh kiện trong hệ thống Chương 3: Mô phỏng hệ thống 3.1 thiết kế mạch nguyên lý 3.2 chạy mô phỏng bằng phần mềm ứng dụng Proteus Chương 4: Chế tạo mạch thực tế 4.1 thiết kế mạch in 4.2 Lắp đặt thiết bị và hoàn thiện mạch 4.2 chạy mạch và đánh giá kết quả Nhóm em xin chân thành cảm ơn thầy Lê Tiến Dũng đã dành thời gian hướng dẫn trong suốt quá trình thực hiện đề tài này. Vì là sinh viên nên những kết quả nghiên cứu được trong đồ án không tránh khỏi những sai sót, nhóm em mong nhận được sự góp ý của thầy cô giáo để có thể hoàn thiện kiến thức của mình.
  • 2. Trang 2 https://lop2.net/ CHƯƠNG I NGUYÊN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG ĐO NHIỆT ĐỘ 1.1 Mục tiêu và sơ đồ khối của hệ thống đo nhiệt độ dùng Pic 1.1.1 Một số loại cảm biến đô nhiệt độ A. Nhiệt điện trở kim loại Đối với nhiệt điện trở kim loại thì viêc chế tạo nó thích hợp hơn cả là sử dụng các kim loại nguyên chất như : plantin, đồng, niken. Để tăng độ nhạy cảm nên sử dụng các kim loại có hệ số nhiệt điện trở càng lớn càng tốt. Tuy nhiên tùy thuộc vào khoảng nhiệt độ cần kiểm tra mà ta có thể sử dụng nhiệt điện trở loại này hay loại khác. Cụ thể nhiệt điện trở chế tạo từ dây dẫn bằng đồng làm việc trong khoảng nhiệt độ -500 C ÷ 1500 C. Nhiệt điện trở từ dây dẫn plantin làm việc trong khoảng nhiệt độ -1900 C ÷ 6500 C. Cấu trúc của nhiệt điện trở kim loại bao gồm: dây dẫn mảnh kép đôi quấn trên khung cách điện tạo thành phần tử nhạy cảm, nó được đặt trong chiếc vỏ đặc biệt có các cực đưa ra. Giá trị của nhiệt điện trở từ 100 C÷ 1000 C. Ưu điểm: + Việc sử dụng nhiệt điện trở kim loại để đo nhiệt độ cao rất tin cậy, đảm bảo độ chính xác đến 0.010 C và sai số không quá 0,5% đến 1%. + Vật liệu chế tạo tương đối đơn giản. Nhược điểm: + Kích thước của nhiệt điện trở kim loại lớn nên hạn chế việc sử dụng nó để đo nhiệt độ ở nơi hẹp. + Do là kim loại nên sau 1 thời gian chúng sẽ dễ bị oxy hóa, gây ảnh hưởng đến độ nhạy của chúng. B. Nhiệt điện trở bán dẫn Nhiệt điện trở được chế tạo từ vật liệu bán dẫn, chúng được sử dụng trong hệ thống tự động kiểm tra và điều khiển. Nhiệt điện trở bán dẫn được chế tạo từ hợp kim của đồng – măng gan hoặc coban. Loại này hoàn toàn trái ngược với nhiệt điện trở kim loại, khi nhiệt độ tăng thì điện trở của chúng lại giảm khoảng nhiệt độ đo của chúng thường dao động trong khoảng từ -600 C ÷ 1800 C. Ưu điểm: + độ chính xác khá cao + kích thước nhỏ nhẹ, giúp nó làm việc ở những nơi chật hẹp
  • 3. Trang 3 https://lop2.net/ Nhược điểm: + chế tạo phức tạp 1.1.2 Một số phương pháp đo nhiệt độ A. Đo nhiệt độ bằng phương pháp cặp nhiệt điện Bộ cảm biến cặp nhiệt ngẫu là 1 mạch có 2 dây dẫn. chỗ nối giữa 2 dây dẫn này được hàn với nhau. Chiều của dòng điện phụ thuộc vào nhiệt độ tương ứng của mỗi hàn. Nếu để hở một đầu thì giữa 2 cực xuất hiện 1 suất điện động nhiệt. như vậy bằng cách đo sdd ta có thể tìm được nhiệt độ của đối tượng đó. B. Đo nhiệt độ bằng hỏa kế quang học Nguyên lý làm việc của hỏa kế quang học là dựa trên các hiện tượng bức xa của các vật thể ở nhiệt độ cao, chúng dựa trên ánh sáng, bức xạ nhiệt của vật phát ra mà tính được nhiệt độ của vật. C. Đo nhiệt độ bằng IC Các IC này làm việc bằng cách tìm mỗi quan hệ giữa đại lượng nhiệt độ đầu vào và đại lượng ( điện áp, dòng điện) đầu ra. Các cảm biến này tạo ra các giá trị điện áp hay dòng điện tỷ lệ tuyến tính với nhiệt độ đầu vào,vì vậy đo tín hiệu điện đầu ra sẽ biết được nhiệt độ đầu vào. Nó có ưu điểm là vận hành đơn giản, tuy nhiên phạm vi đo nhiệt độ giới hạn từ -500 C ÷ 1500 C. đặc tính của một số loại ic thông dụng • AD 590 + ngõ ra là dòng điện + độ nhạy 1A/10 K + nguồn cung cấp 4-30V + phạm vi sử dụng -550 C ÷ 1500 C • Họ LM35, LM135, LM235, LM335 + ngõ ra là điện áp + độ nhạy 10mV/0 C + nguồn cung cấp 5-30V + phạm vi sư dụng: -LM335: -100 C ÷ 1250 C -LM235: - 400 C ÷ 1400 C -LM135: - 550 C ÷ 2000 C -LM35: - 550 C ÷ 1500 C 1.1.3 Mục tiêu và sơ đồ khối của mạch đo nhiệt độ dùng Pic A. Mục tiêu
  • 4. Trang 4 https://lop2.net/ Ngày nay việc sử dụng các thiết bị điện tử phục vụ đời sống hằng ngày rất phổ biến. Trong đó ta có thế kể đến các thiết bị cảm ứng và hiển thị các thông số môi trường phục vụ nhiều mục đích khác nhau nhằm tạo sự tiện lợi trong sinh hoạt hằng ngày. Bắt nguồn từ mục đích đó, nhóm em đã thiết kế một mạch cảm ứng nhiệt độ và hiển thị ra LCD sử dụng vi điều khiển pic 16F877A và cảm biến nhiệt độ LM35. Mục tiêu của mạch giúp chúng ta biết được : - Chức năng ADC của PIC ứng trong mạch - Cách sử dụng LCD, giao tiếp giữa LCD và PIC - Cách sử dụng cảm biến - Tới việc đầy đủ các công cụ để làm mạch ( viết code, mô phỏng bằng proteus, vẽ layout, test mạch thử v…v..) - Làm ra mạch thực tế. B. Sơ đồ khối của hệ thống đo nhiệt độ dùng Pic 16F877A + Khối 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. Nhiệm vụ của khối này là nhận trực tiếp đại lượng vật lý (nhiệt độ) đặc trưng cho đối tượng cần đo biến đổi đại lương vật lý này sang đại lương vật lý khác (điện áp) để thuận tiện cho việc tính toán. Cảm biến siêu âm Hiển thị LCD Nguồn Nuôi Nút Bấm LED Báo PIC 16F877A Rơ le
  • 5. Trang 5 https://lop2.net/ + Khối chuyển đổi ADC: Có nhiệm vụ nhận tín hiệu điện từ khối LM35 sau đó chuyển thành tín hiệu số, để từ đó mã hóa ra LCD. + Khối LCD: có chức năng hiển thị nhiệt độ của đối tượng cần đo sau khi nó nhận tín hiệu từ khổi giải mã LCD. + Nút Bấm: có chức năng cho hệ thống hoạt động và dừng để xem nhiệt độ tạm thời 1.2 Nguyên lý hoạt động của hệ thống đo nhiệt độ Khi cho cảm biến vào vật cần đo nhiệt độ, đầu ra của cảm biến LM35 cho ta 1 điện áp tuyến tính với nhiệt độ đầu vào, tín hiệu điện này được đươc vào trong PIC16F877A, trong PIC có bộ chuyển đổi ADC nó sẽ thực hiện viêc chuyển tín hiệu tương tự (điện áp) sang tín hiệu số, rồi từ đó qua bộ giải mã led LCD sẽ giải mã tín hiệu số thành tín hiệu điện đưa ra cho LCD hiển thị.
  • 6. Trang 6 https://lop2.net/ CHƯƠNG 2 TÍNH CHỌN LINH KIỆN TRONG HỆ THỐNG 2.1 Giới thiệu các linh kiện trong hệ thống 2.1.1 Giới thiệu Pic 16F877A A.sơ đồ chân Pic 16F877A PIC là viết tắt của “Programable Intelligent Computer” có thể tạm dịch là máy tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho vi điều khiển đầu tiên của họ là PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi cho vi điều khiển CP1600. Vi điều khiển này sau đó được nghiên cứu phát triển thêm và từ đó hình thành nên dòng vi điều khiển PIC ngày nay. Pic 16F877A là dòng Pic phổ biến nhất hiện nay (đủ mạnh về tính năng, có 40 chân, bộ nhớ đủ cho hấu hết các ứng dụng thông thường) cấu trúc tổng quát của Pic16F877A: - 8K plash Rom - 368 byte Ram - 256 byte EEPROM - 5 port (A, B, C, D, E) vào ra với tín hiệu độc lập. - 2 bộ định thời 8 bit (timer0 và timer 2) - 1 bộ định thời 16 bit (timer 1) có thể hoạt động trong chế độ tiết kiệm năng lượng (Sleep Mode) với xung clock bên ngoài - 2 bộ CCP (Capture/Compare/PWM) - 1 bộ biến đổi AD 10 bit với 8 ngõ vào - 2 bộ so sánh tương tự (Compartor) - 1 bộ định thời giám sát (Watchdog Timer) - 1 cổng song song 8 bit với các tín hiệu điều khiển - 1 cổng nối tiếp - 15 nguồn ngắt - Nạp chương trình bằng cổng nối tiếp ICSP (In-Circuit Serial Programming) - Được chế tạo bằng công nghệ CMOS - 35 tập lệnh có độ dài 14bit - Tầng số hoạt động tối đa 20MHz - Để Pic hoạt động ta cần cấp nguồn cho Pic, ngoài ra có thể thêm vào bộ dao động thạch anh, và nút reset.
  • 7. Trang 7 https://lop2.net/ B.Sơ đồ chân của pic 16F877A C.Tổ chức bộ nhớ vi điều khiển Đây là vi điều khiển họ PIC16Fxxx với tập lệnh gồm 35 lệnh với độ dài 14bit. Mỗi lệnh đều được thực hiện trong 1 chù kỳ xung clock, tốc độ hoạt động tối đa cho phép là 20MHz vời 1 chu kỳ lệnh là 200ns. Bộ nhớ
  • 8. Trang 8 https://lop2.net/ chương trình 8Kx 14 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. D.Các đặc tính ngoại vi của các khối chức năng - Timer0: Bộ đếm 8 bit với bộ chia tầng 8 bit. - Timer1: Bộ đếm 16 bit với bộ chia tầng,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. - Timer 2:Bộ đếm 8 bit với bộ chia tầng 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 E.Các đặc tính Analog - 8 kênh chuyển đổi ADC 10 bit. - 2 bộ so sánh. F. Các cổng nhập/xuất của Pic 16F877A Cổng xuất nhập 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 sự tương tác đó, chức năng của vi điều khiển được thể hiện rõ ràng. Vi điều khiển PIC 16F877A có 5 cổng xuất nhập PORTA, PORTB, PORTC, PORTD và PORTE. + PORT A (RPA) bao gồm 6 I/O đây là các chân 2 chiều có thể xuất và nhập, chức năng xuất nhập được điều khiển bởi thanh ghi TRISA (địa chỉ 85h). Muốn xác lập 1 chân trong thanh ghi TRISA là input ta “set” bit tương ứng trong thanh ghi TRISA và mún có 1 chân output ta “clear”bit tương ứng trong thanh ghi. Thao tác này hoàn toàn tương tự với PORT và các thanh ghi điều khiển tương ứng.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 Timer0 và ngõ vào của bộ giao tiếp MSSP.Các thanh ghi TRISA bao gồm: + PORTA (địa chỉ 05h): chứa giá trị các chân I/O trong PORTA
  • 9. Trang 9 https://lop2.net/ + 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 ADC. + PORTB (RPB) bao gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương ứng là TRISB. Bên cạnh đó có 1 số chân của PORTB dùng để 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à 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ác thanh ghi PORTB bao gồm: + PORTB (địa chỉ 06h,106h): chứa giá trị các chân 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 toàn bộ Timer0. + PORTC (RPC) gồm 8 chân 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, Timer1, bộ PWM, và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART. Các thanh ghi điều khiển: + PORTC (địa chỉ 07h):chứa giá trị các chân trong PORTC. + TRISC (địa chỉ 87h):điều khiển xuất nhập. + 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. Các thanh ghi: + Thanh ghi PORTD (địa chỉ 08h): chứa giá trị các chân trong PORTD + TRISD (địa chỉ 88h) điều khiển xuất nhập + PORTE (RPE) gồm 3 chân I/0,thanh ghi điều khiển xuất nhập tương ứng là TRISE. Các chân 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ác thanh ghi: + PORT (địa chi 09h) chứa giá trị các chân trong PORTE. + TRISE (địa chỉ 89h) điều khiển xuất nhập và xác lập các thông số cho chuẩn PSP. + ADCON1 thanh ghi điều khiển khối ADC. + Timer1 là bộ định thời 16 bit, giá trị của 2 timer 1 sẽ lưu vào 2 thanh ghi (TMR1h và TML1R), cờ ngắt timer 1 là bit TMR 1IF, bit điều khiển của Timer1 là TMR1IE. Tương tự như Timer0,Timer1 cũng có 2 chế độ hoạt động: chế độ định thời (timer) với xung kích là xung clock của oscillator( tầng số bằng ¼ tầng 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. Các thanh ghi liên quan đến timer1 bao gồm: + INTCON(0BH, 8BH, 10BH, 18Bh) cho phép ngắt hoạt động( GIE và PEIE) + IR1( địa chỉ 0CH) chứa cờ ngắt timer1(TMR1IF) + PIE1( địa chỉ 8CH) cho phép ngắt timer1(TMR1IE)
  • 10. Trang 10 https://lop2.net/ + 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 G.Bộ chuyển đổi ADC (Analog to Digital Converter) là bộ chuyển đổi tín hiệu giữa 2 dạng tương tự và số. PIC16F877A có 8 ngõ vào analog gồm RA4, RA3, RA2, RA1, RA0, RE2, RE1, 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 2 chân RA2 và RA3. Kết quả chuyển đổi từ tín hiệu tương tự sang tín hiệu số 10 bit số tương ứng và lưu trên 2 thanh ghi ADRESH:ADRESL. Khi không sử dụng bộ chuyển đổi ADC, các thanh ghi này có thể sử dụng như các thanh ghi thông thường khác. Cần chú ý là có 2 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 ADFM và được minh họa cụ thể trong hình sau: 2.1.2 Khối cảm biến Để đo lường nhiệt độ có thể sử dụng nhiều loại cảm biến khác nhau, mỗi loại có ưu điểm riêng phù hợp với từng yêu cầu riêng. Đối với đề tài này chỉ đo nhiệt độ môi trường bình thường nên sử dụng LM35 là tối ưu nhất vì: đây là loại cảm biến có độ chính xác cao tầm hoạt động tuyến tính từ 00 C – 1280 C, tổn hao công suất thấp. Cảm biến nhiệt LM35 có vai trò đo nhiệt độ môi trường sau đó truyền tín hiệu đo được cho Pic dưới dạng điện áp, nhiệt độ tăng hay giảm 10 C thì LM35 cũng tăng hay giảm 10mv theo 10 C.
  • 11. Trang 11 https://lop2.net/ LM35 có 3 chân,2 chân cấp nguồn (chân 1:cấp nguồn từ 4V – 20V, chân 3 nối GND) 1 chân xuất điện áp ra tùy theo nhiệt độ (chân 2). Các đặc tính kỹ thuật khác: + LM35 có dãi nhiệt từ -550 C đến 1500 C, độ chính xác 1.50 C, đầu ra 10mv/10 C. + Dòng LM35 là dòng mạch tích hợp cảm biến chính xác nhiệt độ, có điện áp ra tỷ lệ thuận với nhiệt độ, do đó có lợi thế hơn so với cảm biến nhiệt độ tuyến tính hiệu chuẩn như (0 K) chẳng hạn nhưng dùng không phải trừ đi 1 lượng lớn hằng số điện áp từ đầu ra để phân chia thang nhiệt độ thuận tiện hơn. + LM35 không cần hiệu chỉnh hay chỉnh sửa để đưa về nhiệt độ chính xác như 1/40 C nhiệt độ ở trong phòng và 3/40 C ở trong khoảng -550 C đến 1500 C. Sai số thấp vì được vi mạch điều chỉnh. + Trở kháng đầu ra của LM35 thấp, đầu ra tuyến tính và hiệu chỉnh chuẩn xác giúp đọc và kiểm soát mạch dễ dàng. + Nó được sử dụng với nguồn 1 chiều, chỉ sử dụng 60µA từ nguồn nên nhiệt độ vi mạch tăng rất ít, thấp hơn 0,10 C trong không khí. 2.1.3 Khối hiển thị LCD LCD (Liquid Crystal Display) còn gọi là màn hình tinh thể lỏng là loại thiết bị hiển thị cấu tạo bởi các tế bào (các điểm ảnh) chứa tinh thể lỏng có khả năng thay đổi tính phân cực của ánh sáng và do đó thay đổi cường độ ánh sáng truyền qua khi kết hợp với các kính lọc phân cực. Chúng có ưu điểm là phẳng, cho hình ảnh sáng, chân thật và tiết kiệm điện. Ngày nay thiết bị hiển thị LCD được sử dụng trong rất nhiều các ứng dụng của VĐK. LCD có rất nhiều ưu điểm so với các dạng hiển thị khác: Nó có khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa) dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn rất ít tài nguyên hệ thống và giá thành rẻ . . . A. Tổng quan về LCD Hình dạnh và kích thước. Có rất nhiều loại LCD với nhiều hình dáng và kích thước khác nhau, trên hình là loại LCD thông dụng.
  • 12. Trang 12 https://lop2.net/ Khi sản xuất LCD, nhà sản xuất đã tích hợp chíp điều khiển 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 :
  • 13. Trang 13 https://lop2.net/ B. Bảng chức năng các chân
  • 14. Trang 14 https://lop2.net/ - Một số chú ý : + Chân 15 và chân 16: ghi là A và K. Nó là anot và katot của một con led dùng để sáng LCD trong bóng tối, chúng ta có thể không nối, nếu sử dụng nối chân 15 với trở 220 or 330 ôm lên VCC, chân 16 nối đất. + Các lệnh của LCD có thể chia thành 4 nhóm như sau: các lệnh về kiểu hiển thị. VD: Kiểu hiển thị (1 hàng / 2 hàng), chiều dài dữ liệu (8bit/4 bit) Chỉ định địa chỉ RAM nội. Nhóm lệnh truyền dữ liệu trong RAM nội. + Địa chỉ của RAM (AC) sẽ tự động tăng (giảm) 1 đơn vị, mỗi khi có lệnh ghi vào RAM (điều này giúp chương trình gọn hơn). + Với mỗi lệnh LCD cần một khoảng thời gian để hoàn tất, thời gian này có thể khá lâu đối với tốc độ của MPU, nên ta cần kiểm tra cờ BF hoặc đợi. + Tuy trong sơ đồ khối của LCD có nhiều khối khác nhau, nhưng khi lập trình điều khiển LCD ta chỉ có thể tác động trực tiếp được vào 2 thanh ghi DR và IR thông qua các chân DBx, và ta phải thiết lập chân RS, R/W phù hợp để chuyển qua lại giữ 2 thanh ghi này. 2.2 Tính toán linh kiện trong hệ thống 2.2.1 LM35 Dựa vào những đặc điểm của LM35 đã nêu trên ta tính toán nhiệt độ đầu ra của LM35. việc đo nhiệt độ dùng LM35 ta tính bằng cách. LM35 → ADC → VI ĐIỀU KHIỂN͢͢͢͢ Như vậy ta có U = t*K trong đó : U là điện áp đầu ra t là nhiệt độ môi trường cần đo K là hệ số nhiệt độ của LM35 10mV/0 C. Giả sử điện áp Vcc cấp cho LM35 là 5V, dùng ADC 10 bit vậy bước thay đổi của LM35 là 5/1024, giá trị ADC đo được t = giá trị ADC/2048. Sai số của LM35 : + Tại 0° C thì hiệu điện áp của lm35 là 10mV + Tại 150° C thì hiệu điện áp của lm35 là 1500mV 2.2.2. Máy biến áp : Ta chọn máy biến áp có các thông số hoạt động sau : - Thông số điện áp : 220V/12V, để thuận tiện ta chọn loại máy biến áp có chia thành nhiều dải điện áp khác nhau như “ 5v,9v,12v…” - Dòng điện cho phép ở cuộn thứ cấp 12V là 2.5A
  • 15. Trang 15 https://lop2.net/ 2.2.3. Tính chọn cầu diod. Ở đây vì công suất của mạch nhỏ nên ta chọn loại cầu diod cỡ 2-3A. Ta chọn Diode cầu 2A. 2.2.4 Tính chọn thạch anh. Để tốc độ xử lý của PIC 16F877A được nhanh nhất,ta chon thạch anh loại 20MHz. Chức năng : Thạch anh dùng để tạo ra khối dao động, và tần số dao động được ghi trên lưng thạch anh.Trong điện tử đa phần để tạo tần số đươc ổn định vì tần số của thạch anh tạo ra ít bị ảnh hưởng bởi nhiệt độ hơn là các mạch dao động RC. Trong vi điều khiển bắt buộc phải có thạch anh, vì khi xét chi tiết thì vi điều khiển có CPU, timer,… CPU bao gồm các mạch logic và mạch logic muốn hoạt động cũng cần có xung clock, còn timer thì cũng cần phải có xung để đếm. Tùy loại vi điều khiển mà bao nhiêu xung clock thì ứng với 1 chu kì máy, và với mỗi xung clock thi vi điều khiển sẽ đi làm 1 công việc nhỏ ứng với lệnh đang thực thi 2.2.5 Led đơn. Định nghĩa : LED, viết tắt của Light-Emitting-Diode có nghĩa là “đi-ốt phát sáng”, là một nguồn sáng phát sáng khi có dòng điện tác động lên nó. Được biết tới từ những năm đầu của thế kỷ 20, công nghệ LED ngày càng phát triển, từ những diode phát sáng đầu tiên với ánh sáng yếu và đơn sắc đến những nguồn phát sáng đa sắc, công suất lớn hay phát ra các tia hồng ngoại hoặc tử ngoại ta chọn 3 đèn led : xanh, đỏ và vàng để báo ở 3 mức nhiệt độ thấp, trung bình, cao.
  • 16. Trang 16 https://lop2.net/ 2.2.6 Tính chọn điện trở. Chọn điện trở cho led báo nguồn và led báo trạng thái: Ta có : dòng qua led là 15mV,điện áp rơi trên led là 2V. giá trị R =220 Chọn R=220 . Điện trở trong mạch reset, chon R=10K 2.2.8 LM7805: Giới thiệu : - Với những mạch điện không đòi hỏi độ ổn định của điện áp quá cao, sử dụng IC ổn áp thường được người thiết kế sử dụng vì mạch điện khá đơn giản. Các loại ổn áp thường được sử dụng là IC 78xx, 79xx, với xx là điện áp cần ổn áp. Ví dụ 7805 ổn áp 5V, 7808 ổn áp 8V, 7812 ổn áp 12V hay ổn áp điện áp âm có 7905 ổn áp điện áp -5V, 7912 ổn áp -12V. Họ 78xx là họ cho ổn định điện áp đầu ra là dương. Còn xx là giá trị điện áp đầu ra như 5V, 6V... - Họ 79xx là họ ổn định điện áp đầu ra là âm. Còn xx là điện áp đầu ra như: -5V, -6V Sự kết hợp của hai con này sẽ tạo ra được bộ nguồn đối xứng. Về mặt nguyên lý nó hoạt động tương đối giống nhau. Bây giờ ta xét từng IC 78xx, 79xx Hình 2.24
  • 17. Trang 17 https://lop2.net/ 2.2.9 Cổng Header. Định nghĩa : Dùng để kết nối đầu ra của máy biến áp với mạch n guồn và cung cấp nguồn cho vi điều khiển,LCD. Hình 2.21 Header Hình 2.20 LM7805
  • 18. Trang 18 https://lop2.net/ CHƯƠNG 3 MÔ PHỎN G HỆ THỐN G 3.1 THIẾT KẾ MẠCH NGUYÊ N LÝ 3.1.1 Sơ đồ thuật toán Call hien thi led
  • 22. Trang 22 https://lop2.net/ #INCLUDE P16F877A.INC __CONFIG _HS_OSC & _WDT_OFF&_LVP_OFF #define LCD_D4PORTB, 0 #define LCD_D5 PORTB, 1 ; 4 data lines #define LCD_D6 PORTB, 2 #define LCD_D7 PORTB, 3 #define LCD_RS PORTD, 4 ; 0 = nhan lenh tu vdk, 1 = nhan ki tu tu vdk de hien thi #define LCD_E PORTD, 6 ; 1 to send data ;khai bao bien cblock 0x20 vong1,vong2, thap, cao, a, hc, hangchuc, so, dv, counta,countb,count1,dem, LCD_tam, D0,D1,D2,LCDTmp, n1, n2,led,led1 endc ;chi dan bien dich org 0x00 goto main org 0x04 movwf n1 swapf status,w movwf n2 ;chuyen sang bank mot de lay so lieu thanh ghi adresl roi gan cho thanh ghi thap bsf status,5 movf adresl,w ;chuyen ve bank khong bcf status,5 movwf thap movf adresh,w movwf cao ;khoi tao ban dau so bang 0
  • 23. Trang 23 https://lop2.net/ clrf so ;kiem tra bit dau tien cau thanh ghi cao btfss cao,0 goto $+3 movlw d'64' movwf so ;vao chuong trinh chia bit tim nhiet do yeu cau call timdegree ;goi call chia so de ta tim duoc hang chuc(hc) va hang don vi(dv) call chiaso movf hc,w movwf hangchuc ;day la chuong trinh con chia so timdegree movlw d'4' subwf thap,f btfsc status,c goto $+2 goto $+3 incf so,f goto $-5 return ;ket qua cua phep tinh uoc dua vao so chiaso clrf dv clrf hc movlw d'10' subwf so,f btfsc status,c
  • 24. Trang 24 https://lop2.net/ goto $+2 goto $+3 incf hc,f goto $-5 movlw d'10' addwf so,w movwf dv return bcf pir1,adif swapf n2,w movwf status swapf n1,w retfie ; chuong trinh chinh main ;chuyen sang bank1 bsf status,5 movlw b'00000100' movwf option_reg clrf trisd clrf trisb bsf pie1,adie ;cai dat thanh ghi adcon1 movlw b'10000001' movwf adcon1 bcf status,5 bsf intcon,gie bsf intcon,peie
  • 25. Trang 25 https://lop2.net/ bcf pir1,adif clrf portd ;da chuyen sang bank0 ;cai dat adcon0 movlw b'10000001' movwf adcon0 ;bat dau ghi du lieu batdau call lcdinit ; khoi tao lcd start bsf adcon0,2 ; hien thi lcd hienthi movlw 0x01 call LCDADD_line1 movlw 'D' call LCDSEND movlw 'O' call LCDSEND movlw ' ' call LCDSEND movlw 'A' call LCDSEND movlw 'N' call LCDSEND
  • 26. Trang 26 https://lop2.net/ movlw ' ' call LCDSEND movlw 'V' call LCDSEND movlw 'D' call LCDSEND movlw 'K' call LCDSEND movlw 0x02 call LCDADD_line2 ; nhay den dia chia 0x05 movlw 'n' call LCDSEND movlw 'h' call LCDSEND movlw 'i' call LCDSEND movlw 'e' call LCDSEND movlw 't' call LCDSEND movlw ' ' call LCDSEND movlw 'd' call LCDSEND movlw 'o' call LCDSEND movlw ':' call LCDSEND
  • 27. Trang 27 https://lop2.net/ movlw ' ' call LCDSEND movf hangchuc,w addlw d'48' call LCDSEND ; viet ki tu "a" movf dv,w addlw d'48' call LCDSEND movlw d'223' call LCDSEND movlw 'C' call LCDSEND GOTO start ; khoi tao chuc nang lcd lcdinit bsf STATUS, 5 ;Bank 1 bcf LCD_RS bcf LCD_E bcf LCD_D4 bcf LCD_D5 bcf LCD_D6 bcf LCD_D7 bcf STATUS, RP0 ;Bank 0 call delay_1ms bcf LCD_RS ; Set command mode
  • 28. Trang 28 https://lop2.net/ bcf LCD_E bsf LCD_D4 bsf LCD_D5 bcf LCD_D6 bcf LCD_D7 call PULSE call delay_1ms call PULSE call DELAY_40us call DELAY_40us call PULSE ; gui lenh de chon che do 4 bit dau tien bcf LCD_D4 call PULSE ; Function set ; Format: xxxDNFxx D: 1= 8-bit, 0= 4-bit (use 4-bit!) movlw b'00101000' ; N: 1= 2 lines, 0= 1 line call LCDSEND ; F: 1= 5x10 font, 0= 5x8 font ; Display control ; Format: xxxxxDCB D: Display on(1)/0ff(0) movlw b'00001100' ; C: Cursor on(1)/0ff(0) call LCDSEND ; B: Blink on(1)/0ff(0) ; Entry mode set ; Format: xxxxxxIS I: 1= Increment counter, 0= Decrement counter
  • 29. Trang 29 https://lop2.net/ movlw b'00000110' ; S: 1= "Accompanies display shift" call LCDSEND ; Cursor or display shift ; Format: xxxxSRxx S: 1= Display shift, 0= Cursor move movlw b'00010000' ; R: 1= Shift right, 0= Shift left call LCDSEND movlw b'00000001' ; Clear screen call LCDSEND bsf LCD_RS ; Set data mode RETURN ;************************************************************* ; Moves "cursor" ;************************************************************* LCDADD_line1 bcf LCD_RS ; Command mode iorlw 0x80 ; Goto DDRAM adress call LCDSEND bsf LCD_RS ; Data mode call delay_1ms ; Takes a couple of ms RETURN LCDADD_line2 bcf LCD_RS ; Command mode iorlw 0xC0 ; Goto DDRAM adress call LCDSEND
  • 30. Trang 30 https://lop2.net/ bsf LCD_RS ; Data mode call delay_1ms ; Takes a couple of ms RETURN ;************************************************************* ; Sends contens of W to display ;************************************************************* LCDSEND ; Sends character in W to lcd. Does not alter RS line! movwf LCDTmp bcf LCD_D4 bcf LCD_D5 bcf LCD_D6 bcf LCD_D7 btfsc LCDTmp, 7 bsf LCD_D7 btfsc LCDTmp, 6 bsf LCD_D6 btfsc LCDTmp, 5 bsf LCD_D5 btfsc LCDTmp, 4 bsf LCD_D4 call PULSE bcf LCD_D4 bcf LCD_D5 bcf LCD_D6 bcf LCD_D7
  • 31. Trang 31 https://lop2.net/ btfsc LCDTmp, 3 bsf LCD_D7 btfsc LCDTmp, 2 bsf LCD_D6 btfsc LCDTmp, 1 bsf LCD_D5 btfsc LCDTmp, 0 bsf LCD_D4 call PULSE return ;************************************************************* ; Pulse enable line ;************************************************************* PULSE ; Pulse Enable. bsf LCD_E nop ; Increase the delay here if you get nop ; problems with high clock speed nop ; Probably not needed since nop ; 1 instruction @10MHz = 400ns bcf LCD_E call delay_1ms call delay_1ms return ;*************************************************************
  • 32. Trang 32 https://lop2.net/ ; Clears display ;************************************************************* LCDCLR ; clears the entire display bcf LCD_RS ; Set command mode movlw b'00000001' ; Clear screen call LCDSEND bsf LCD_RS ; Set data mode return ;************************************************************* ; 1ms delay. ; Modify this to match your processor speed. ; http://www.piclist.org/techref/piclist/codegen/delay.htm ;************************************************************* delay_1ms movlw d'100' movwf tmr0 bcf intcon,tmr0if btfss intcon,tmr0if goto $-1 return ;************************************************************* ; 40us delay. ; Modify this to match your processor speed. ; http://www.piclist.org/techref/piclist/codegen/delay.htm ;************************************************************* DELAY_40us ;Thoi gian 1 CK lenh=0,2us movlw d'250'
  • 33. Trang 33 https://lop2.net/ movwf tmr0 bcf intcon,tmr0if btfss intcon,tmr0if goto $-1 RETURN End 3.2 chạy mô phỏng bằng phần mềm proteus