|
Tài trợ cho PIC Vietnam |
PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
|
Ðiều Chỉnh | Xếp Bài |
09-06-2011, 11:05 PM | #1 |
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 |
Ðiều Chỉnh | |
Xếp Bài | |
|
|