Professional Documents
Culture Documents
Ni dung:
MCH O NHIT IU KHIN NG C HIN TH LCD .......................................................... 2
I. KHI NIM C BN V MCH O NHIT IU KHIN NG C. ................................ 2
1.1. Khi nim mch o nhit . ......................................................................................................... 2
1.2. M hnh iu khin ng c. ......................................................................................................... 2
1.3. Hin th LCD.................................................................................................................................. 2
II. NGUYN L HOT NG PIC16F877A. ....................................................................................... 2
2.1. Chc nng ADC trong PIC16F877A. ............................................................................................ 2
2.2. Ci t ch ADC. ...................................................................................................................... 3
III. NGUYN L HOT NG CA IC LM35. .................................................................................. 6
IV. KHI HIN TH LCD. ...................................................................................................................... 7
4.1. Cch ni dy trong LCD ................................................................................................................ 7
4.2. Cc hm c bn trong LCD ........................................................................................................... 7
V. CC CH IU KHIN NG C. .......................................................................................... 8
5.1. Ch chn mode hin th .......................................................................................................... 10
5.2. Ch gim mc iu chnh ngng nhit bt/tt ng c. .................................................. 10
5.3. Ch tng mc iu chnh ngng nhit bt/tt ng c..................................................... 11
5.4. Ch bt - tt ng c. .............................................................................................................. 11
VI. CC KHI CHC NNG KHC. ................................................................................................. 12
6.1. Tn s hot ng .......................................................................................................................... 12
6.2. Ngun cung cp cho PIC ............................................................................................................. 12
VII. CODE NP CHO PIC16F877A ..................................................................................................... 13
VIII. S MCH THIT K. ........................................................................................................... 18
IX. S MCH IN. ........................................................................................................................... 19
X. SN PHM THC T. .................................................................................................................... 19
Page 1
iu khin ng c quay hay ngng quay th cng ging nh cng tc in, bt th quay
v tt th ngng. Quan trng l bt khi no v tt khi no v phi c thc hin mt cch t
ng. Ging nh khi nhit trong phng mc 26oC th qut t bt v khi nhit trong
phng xung thp hn 22oC th qut t ng tt. lm c iu ny th chng ta phi c mt
thit b o nhit , v khi nhit hin ti ln hn hay nh hn mc in p ngng ci t
th ng c (qut) s c iu khin theo ch nh sn. Chng sau chng ta s tm hiu
su hn v nguyn l iu khin cung nh cc ch khc nhau dng iu khin ng c.
1.3. Hin th LCD.
Page 2
Ci t ch ADC:
Setup_adc(mode):
C php:
Setup_adc (mode);
Setup_adc2(mode);
Thng s:
Mode - ch tn hiu tng t sang tn hiu s. S la chn hp l thay i ph thuc vo
thit b. Xem nhng thit b c tp tin .h cho tt c s la chn. Mt vi s la chn tiu biu bao
gm:
ADC_OFF
ADC_CLOCK_INTERNAL
ADC_CLOCK_DIV_32
- Tr v: Khng c nh ngha.
- Chc nng: nh hnh th chuyn t tn hiu tng t sang tn hiu s.
- Tin li: Ch c trong nhng thit b c b chuyn i tn hiu tng t sang tn hiu s.
- Yu cu: Nhng hng s c nh ngha trong tp tin .h ca thit b.
Page 3
V d: setup_adc_ports( ALL_ANALOG );
setup_adc (ADC_CLOCK_INTERNAL );
set_adc_channel( 0 );
value = read_adc();
setup_adc( ADC_OFF );
Setup_adc_ports(value):
Thit lp nhng chn ADC c sn chuyn t tn hiu tng t sang tn hiu s.
C php:
Setup_adc_ports (value)
Thng s:
Value - Mt hng s c nh ngha trong tp tin .h ca thit b.
- Tr v: Khng c nh ngha.
- Chc nng: Ci t nhng chn ADC l tn hiu tng t, tn hiu s hoc mt s kt hp v
in p tham chiu s dng khi tnh tan gi tr ADC.
S kt hp cc chn tn hiu tng t c cho php thay i ph thuc vo con chip v
c nh ngha bng cch s dng tng bit OR ghp nhng chn c chn cng vi
nhau. Kim tra thit b bao gm tp tin cc chn v in p tham chiu c sp t trong
danh sch han chnh. Hng s ALL_ANALOG v NO_ANALOG l hp l cho tt c con chip.
Mt vi v d khc nh ngha chn l: ANALOG_RA3_REF - Kch hot tt c cc chn tn
hiu tng t v chn RA3 l in p tham chiu.
RA0_RA1_RA3_ANALOG - Ch c chn RA0, RA1, RA3 l tn hiu tng t
- Tin li: Chc nng ny c sn trong cc thit b vi phn cng Analog/Digital
- Yu cu: Nhng hng s c nh ngha trong tp tin .h ca thit b
V d:
//Tt c cc chn analog
Setup_adc_ports( ALL_ANALOG );
Chn A0,A1,A3 l analog, v tt c cc chn cn li l digital. in p +5V c s dng nh
in p tham chiu.
Setup_adc_ports( RA0_RA1_RA3_ANALOG );
//Chn A0,A1 l analog,chn A3 c s dng cho in p tham chiu v tt c cc chn cn li
l digital
Setup_adc_ports( A0_RA1_ANALOGRA3_REF );
Set_adc_channel(channel):
Ch r nhng knh dung s dng cho vic gi Analog/Digital.
C php: set_adc_channel (chan)
Thng s: Chn l s knh c chn.S chn bt u ti 0 v c t nhn trong datasheet
AN0,AN1.
- Tr v: Khng c nh ngha.
Page 4
Page 5
read_adc(ADC_START_ONLY);
sleep();
value=read_adc(ADC_READ_ONLY);
ADC_done():Tr v 1 nu b chuyn i han thnh vic chuyn i ca n
- Tin x l c lin quan:
#DEVICE ADC=xx : nh hnh th read_adc ri tr v knh thc. V d, s dng 1 con PIC vi
10 bit A/D bn c th s dng 8 hoc 10 cho xx- 8 s tr v bye c trng s cao nht, 10 s tr v
tan b gi tr c A/D 10 bit
Cc ngt c lin quan:
INT_AD: Ngt xy ra khi qu trnh chuyn i hon tt
INT_ADOF: Ngt xy ra khi qu trnh chuyn i trong thi gian ch
Cc tp tin c lin quan:
Khng c,tt c chc nng c ci t sn
Cc thng s getenv() c lin quan:
ADC_CHANNELS : S knh Analog/Digital
ADC_RESOLUTION : S lng bit tr v bi lnh read_adc.
Hnh 1:
Hnh 2
o lng nhit th c th dng nhiu loi cm bin nhit khc, mi loi c mt u
im ring ph hp vi tng nhu cu ring. y ti l o nhit mi trng bnh thng
nn s dng LM35 l ti u nht v: y l loi cm bin c chnh xc cao, tm hot ng
tuyn tnh t 0-128 C, tiu tn cng sut thp..
Page 6
Cch ni dy:
// nh ngha chc nng cc chn.
// D0 Enable
// D1 RS (Reset)
// D2 RW (Rewrite)
// D4 D4
// D5 D5
// D6 D6
// D7 D7
// LCD chn D0-D3 khng c s dng.
4.2. Cc hm c bn trong LCD
#include <def_877a.h>
#device *=16 ADC=10
#include <lcd.h>
Page 7
#use delay(clock=20000000)
void hiennhietdo() // Ham hien thi nhiet do do duoc tu LM35
{
int8 t,chuc,donvi;
setcursor(0,0);
wrtchar("- DO NHIET DO -"); // Hien thi dong tren
t = ct;
chuc = t/10 + 48; // Tach so hang chuc va hang don vi
donvi = t%10 + 48;
setcursor(0,1);
wrtchar("NHIET DO: "); // Hien thi so do nhiet do len LCD
wrtchar(chuc);
wrtchar(donvi);
wrtchar("*C");
delay_ms(50);
}
V. CC CH IU KHIN NG C.
- Cc ch iu khin.
Code chn ch iu khin ng vi 4 nt
bm.
Phm 1: Chn ch - mode.
Phm 2: Chnh tng ngng nhit .
Phm 3: Chnh gim ngng nhit .
Phm 4: Ch bt tt ng c.
Page 8
}
else
{
if(INPUT(PIN_C1)==0) // Neu phim 2 duoc an (phim giam)
{
delay_ms(150);
// Chong rung phim (cho phim duoc an trong 1 luc)
if(INPUT(PIN_C1)==0)
{
if(mode==1)
{ if(tmin>0) tmin--; anphim=1; }
// Giam nguong tuy theo mode, "tmin" >0
th gim 1
if(mode==2)
{ if(tmax>tmin+1) tmax--; anphim=1; } // de "tmax" khng nh hn "tmin" +1
}
}
else
{
if(INPUT(PIN_C2)==0) // Neu phim 3 duoc an (phim tang)
{
delay_ms(150);
// Cho phim duoc an trong 1 luc
if(INPUT(PIN_C2)==0)
{
if(mode==1)
{
if(tmin<tmax-1) tmin++; anphim=1; // Tang nguong tuy theo mode.
Tmin khong the >tmax-1
}
if(mode==2)
{
if(tmax<90) tmax++; anphim=1; // tmax khong lon hon 90do.
}
}
}
else
if(INPUT(PIN_C3)==0) // Neu phim 4 duoc an (phim bat/tat)
{
delay_ms(150);
Page 9
10
Page 10
11
Page 11
12
Thng thng khi cn cung cp ngun cho mch, ngi ta thng dng cc b n p. Cc b
n p ny c chc nng cung cp mt ngun in n nh, tc l gi tr in p cung cp n nh.
Vic c thm cc b n p ny gip mch hot ng hiu qu hn, trnh vic dng cung cp qu
ln lm hng linh kin, IC trong mch.
Page 12
13
Page 13
14
anphim=1;
}
else
{
if(INPUT(PIN_C1)==0) // Neu phim 2 duoc an (phim giam)
{
delay_ms(150);
// Chong rung phim (cho phim duoc an trong 1 luc)
if(INPUT(PIN_C1)==0)
{
if(mode==1)
{ if(tmin>0) tmin--; anphim=1; }
// Giam nguong tuy theo mode, "tmin" >0 th gim
1
if(mode==2)
{ if(tmax>tmin+1) tmax--; anphim=1; } // de "tmax" khng nh hn "tmin" +1
}
}
else
{
if(INPUT(PIN_C2)==0) // Neu phim 3 duoc an (phim tang)
{
delay_ms(150);
// Cho phim duoc an trong 1 luc
if(INPUT(PIN_C2)==0)
{
if(mode==1)
{
if(tmin<tmax-1) tmin++; anphim=1; // Tang nguong tuy theo mode. Tmin
khong the >tmax-1
}
if(mode==2)
{
if(tmax<90) tmax++; anphim=1; // tmax khong lon hon 90do.
}
}
}
else
if(INPUT(PIN_C3)==0) // Neu phim 4 duoc an (phim bat/tat)
{
Page 14
15
delay_ms(150);
while(INPUT(PIN_C3)==0); // Cho den khi nut duoc tha ra
if (ct>=tmin&&ct<=tmax) // Neu nhiet do nam trong khoang giua 2 nguong
{
// thi nut 4 co chuc nang bat/tat quat
bat=~bat;
if(bat==1) OUTPUT_BIT(PIN_D0,1);
if(bat==0) OUTPUT_BIT(PIN_D0,0);
anphim=1;
}
}
}
}
}
void check()
// Ham kiem tra nguong (tat quat neu nhiet do duoi tmin
{
// va bat quat neu nhiet do tren tmax)
if (ct<tmin) { OUTPUT_BIT(PIN_D0,0); bat=0; }
if (ct>tmax) { OUTPUT_BIT(PIN_D0,1); bat=1; }
}
void hiennhietdo() // Ham hien thi nhiet do do duoc tu LM35
{
int8 t,chuc,donvi;
setcursor(0,0);
wrtchar("- DO NHIET DO -"); // Hien thi dong tren
t = ct;
chuc = t/10 + 48; // Tach so hang chuc va hang don vi
donvi = t%10 + 48;
setcursor(0,1);
wrtchar("NHIET DO: "); // Hien thi so do nhiet do len LCD
wrtchar(chuc);
wrtchar(donvi);
wrtchar("*C");
delay_ms(50);
}
void settmin() // Ham cai dat nguong nhiet do min
{
int8 t,chuc,donvi;
Page 15
16
setcursor(0,0);
wrtchar("- HEN TAT QUAT -");
t = tmin;
// Tach hang chuc va don vi cua tmin va hien thi ra LCD
chuc = t/10 + 48;
donvi = t%10 + 48;
setcursor(0,1);
wrtchar("NEU DUOI: ");
wrtchar(chuc);
wrtchar(donvi);
wrtchar("*C");
delay_ms(50);
}
void settmax() // Ham cai dat nguong nhiet do max (tuong tu ham setmin)
{
int8 t,chuc,donvi;
setcursor(0,0);
wrtchar("- HEN BAT QUAT -");
t = tmax;
chuc = t/10 + 48;
donvi = t%10 + 48;
setcursor(0,1);
wrtchar("NEU TREN: ");
wrtchar(chuc);
wrtchar(donvi);
wrtchar("*C");
delay_ms(50);
}
void selectmode() // Ham lua chon mode hien thi
{
switch (mode)
{
case 0: hiennhietdo(); break;
case 1: settmin(); break;
Page 16
17
Page 17
18
SET_TIMER1(3035); // Gia tri khoi tao cho timer1 ( dem den 65535
// voi clock 20Mhz chia 8 => mot ngat tuong ung voi 0.1s )
ENABLE_INTERRUPTS(INT_TIMER1); // Cho phep ngat timer1
ENABLE_INTERRUPTS(GLOBAL); // Cho phep ngat toan cuc
ct = READ_ADC(); // Doc gia tri nhiet do dau tien
ct = ct*0.49;
while(1) // Vong lap vo han
{
selectmode();
do
{
if(docnhietdo==1) // Neu nhiet do duoc doc thi hien thi ra LCD neu dang
{
// o mode hien thi va tien hanh kiem tra nguong
if(mode==0) { hiennhietdo(); }
check(); // Kiem tra nguong
}
readkb();
}
while(anphim==0); // Lien tuc lap lai viec kiem tra xem nhiet do
}
// co duoc doc hay ko va kiem tra phim bam
}
Page 18
19
X. SN PHM THC T.
Page 19