Nhập môn đệ tử
Tham gia ngày: Mar 2011
Bài gửi: 7
:
|
may a cho em hoi ve de tai cua em sai o cho nao
em viet doan code ma ko biet sai o cho nao ma no chay hok dung zay,khi nhiet do xuong 3 do thi den min chay,khi len 32 do thi den max chay,ma khi tra ve nhiet do tu 4 den 31 do ma sau ko tra lai den an toan chay zay,may a kiem tra va giup dum em.
#include <16f877a.h>
#fuses xt,nowdt,noprotect,nolvp
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#use fast_io(e)
#use fast_io(a)
#byte porta=0x05
#byte portb=0x06
#byte portc=0x07
#byte portd=0x08
#byte porte=0x09
#bit a0=porta.0
#bit rs=porte.0
#bit rw=porte.1
#bit e=porte.2
#bit C0=portc.0
#bit C1=portc.1
#bit C2=portc.2
#bit C3=portc.3
#bit C4=portc.4
#bit B0=PORTB.0
#BIT B1=PORTB.1
#BIT B2=PORTB.2
#bit B3=portb.3
#bit B4=portb.4
#bit B5=portb.5
#bit B6=portb.6
#bit B7=portb.7
int8 i,data,chuyen;
int8 tramdo,chucdo,donvido,max,min,KT;
int8 chucmax,dvmax,chucmin,dvmin,data1,chucdo1,dvdo1;
void lenh();
void khoitao();
void xuat();
void ctxuat();
void xuly();
void doc_adc();
void ctxuat2();
void ctxuat1();
void xlchuyen();
void doc_adc1();
void xlmax();
void xlmin();
void or();
VOID CTXUAT4();
VOID CTXUAT5();
void ctxuat3();
void lenh()
{
rs=0;
rw=0;
e=1;
e=0;
delay_ms(5);
}
void xuat()
{
e=1;
rs=1;
rw=0;
e=0;
delay_ms(5);
}
void khoitao()
{
portd=0x01;
lenh();
portd=0x0c;
lenh();
portd=0x80;
lenh();
portd=0x38;
lenh();
delay_ms(5);
}
void doc_adc1()
{
setup_ADC(ADC_clock_internal);
setup_adc_ports(ra0_ra1_ra3_analog);
set_adc_channel(1);
data1=(float)read_adc()*2.046;
ctxuat3();
delay_ms(800);
}
void doc_adc()
{
setup_ADC(ADC_clock_internal);
setup_adc_ports(an0);
set_adc_channel(0);
delay_us(1);
}
void main()
{
set_tris_d(0);
set_tris_e(0);
set_tris_b(0);
set_tris_a(0x01);
SET_TRIS_c(0b00000011);
ctxuat1();
delay_ms(5000);
portd=0x01;
lenh();
ctxuat2();
delay_ms(5000);
portd=0x01;
lenh();
ctxuat();
delay_ms(5000);
portd=0x01;
lenh();
KT=0;
CHUYEN=1;
MAX=32;
MIN=3;
IF(DATA<MIN)
{
B0=1;
}
IF(DATA>MAX)
{
B1=1;
}
while(true)
{
IF(DATA<MIN)
{
B0=1;
}
IF(DATA>MAX)
{
B1=1;
}
IF(KT==0)
{B2=1;
if(data<min)
{
B0=1;
KT=2;
CTXUAT4();
}
if(data>max)
{
B1=1;
KT=3;
CTXUAT5();
}
}
if(max==255)
{
max=0;
ctxuat1();
}
if(min==255)
{
min=0;
ctxuat2();
}
if(chuyen==1)
{
xuly();
delay_ms(5);
}
///////////////////////////////////////
portc=0x0b;
if(c0==0)
{
do{}
while(c0==0);
if(chuyen==0)
{
min++;
xlmin();
}
if(chuyen==2)
{
max++;
xlmax();
}
}
if(c1==0)
{
do{}
while(c1==0);
chuyen++;
xlchuyen();
}
delay_ms(5);
///////////////////////////////////////
portc=0x07;
if(c0==0)
{
do{}
while(c0==0);
if(chuyen==0)
{
min--;
xlmin();
}
if(chuyen==2)
{
max--;
xlmax();
}
}
if(c1==0)
{
do{}
while(c1==0);
KT=0;
CHUYEN=1;
}
if(max<=min)
{
b0=1;
b1=1;
or();
delay_ms(10000);
max=30;
min=1;
ctxuat();
}
}
}
void xuly()
{
doc_adc();
data=(float)read_adc()*2.046;
ctxuat();
delay_ms(800);
}
void xlchuyen()
{
if(chuyen<4)
{
portd=0x01;
lenh();
if(chuyen==1)
{
xuly();
}
if(chuyen==2)
{
ctxuat1();
}
if(chuyen==3)
{
ctxuat2();
chuyen=0;
delay_ms(5);
}
}
}
void xlmax()
{
ctxuat1();
}
void xlmin()
{
ctxuat2();
}
void ctxuat1()
{
khoitao();
char const ht1[]=" NHIET DO MAX ";
char const ht[]={'0','1','2','3','4','5','6','7','8','9',' '};
chucmax=(max%100)/10;
dvmax=(max%10);
for(i=0;i<17;i++)
{
portd=ht1[i];
xuat();
}
PORTD=0XC0;
LENH();
portd=0x14;
lenh();
portd=0x14;
lenh();
portd=0x14;
lenh();
portd=0x14;
lenh();
portd=0x14;
lenh();
portd=0x14;
lenh();
for(i=0;i<1;i++)
{
portd=ht[chucmax];
xuat();
portd=ht[dvmax];
xuat();
}
}
void ctxuat2()
{
khoitao();
char const ht1[]=" NHIET DO MIN ";
char const ht[]={'0','1','2','3','4','5','6','7','8','9',' '};
chucmin=(min%100)/10;
dvmin=(min%10);
for(i=0;i<17;i++)
{
portd=ht1[i];
xuat();
}
PORTD=0XC0;
LENH();
portd=0x14;
lenh();
portd=0x14;
lenh();
portd=0x14;
lenh();
portd=0x14;
lenh();
portd=0x14;
lenh();
portd=0x14;
lenh();
for(i=0;i<1;i++)
{
portd=ht[chucmin];
xuat();
portd=ht[dvmin];
xuat();
}
}
void ctxuat()
{
portd=0x80;
lenh();
char const ht1[]=" Max HienTai Min ";
char const ht[]={'0','1','2','3','4','5','6','7','8','9',' '};
tramdo=data/100;
chucdo=(data%100)/10;
donvido=(data%10);
chucmax=(max%100)/10;
dvmax=(max%10);
chucmin=(min%100)/10;
dvmin=(min%10);
FOR(I=0;I<21;I++)
{
PORTD=HT1[I];
XUAT();
}
PORTD=0XC0;
LENH();
for(i=0;i<1;i++)
{
portd=ht[chucmax];
xuat();
portd=ht[dvmax];
xuat();
}
PORTD=0X14;
LENH();
PORTD=0X14;
LENH();
PORTD=0X14;
LENH();
PORTD=0X14;
LENH();
PORTD=0X14;
LENH();
PORTD=0X14;
LENH();
PORTD=0X14;
LENH();
for(i=0;i<1;I++)
{
portd=ht[tramdo];
xuat();
portd=ht[chucdo];
xuat();
portd=ht[donvido];
xuat();
}
PORTD=0X14;
LENH();
PORTD=0X14;
LENH();
PORTD=0X14;
LENH();
PORTD=0X14;
LENH();
PORTD=0X14;
LENH();
PORTD=0X14;
LENH();
for(i=0;i<1;i++)
{
portd=ht[chucmin];
xuat();
portd=ht[dvmin];
xuat();
}
}
void or()
{
khoitao();
char const ht1[]=" LOI PHAN MAX / MIN ";
for(i=0;i<21;i++)
{
portd=ht1[i];
xuat();
}
DELAY_MS(5000);
}
void ctxuat3()
{
khoitao();
char const ht[]={'0','1','2','3','4','5','6','7','8','9',' '};
chucdo1=(data1%100)/10;
dvdo1=(data1%10);
for(i=0;i<1;i++)
{
portd=ht[chucdo1];
xuat();
portd=ht[dvdo1];
xuat();
}
}
void ctxuat4()
{
char const ht[]=" NHIET DO QUA THAP ";
CHAR CONST HT1[]=" LICK PHIM MENU ";
KHOITAO();
FOR(I=0;I<21;I++)
{
PORTD=HT[I];
XUAT();
}
PORTD=0XC0;
LENH();
FOR(I=0;I<21;I++)
{
PORTD=HT1[I];
XUAT();
}
DELAY_MS(30000);
}
void ctxuat5()
{
char const ht[]=" NHIET DO QUA CAO ";
CHAR CONST HT1[]=" LICK PHIM MENU ";
KHOITAO();
FOR(I=0;I<21;I++)
{
PORTD=HT[I];
XUAT();
}
PORTD=0XC0;
LENH();
FOR(I=0;I<21;I++)
{
PORTD=HT1[I];
XUAT();
}
DELAY_MS(30000);
}
may a giup dum em
day la mach ve bang protues
|