View Single Post
Old 04-06-2009, 02:31 PM   #3
minhhai_bk3i
Nhập môn đệ tử
 
Tham gia ngày: Oct 2008
Bài gửi: 2
:
Đây là code và mạch của nhóm chúng em, anh xem qua và giúp chúng em nhé! cảm ơn anh nhiều:
Code:
#include<16f877a.h>
#include<def_877a.h>
#device * =16 adc=10;
#use delay(clock=20000000)
#FUSES NOWDT,HS,NOPUT,NOPROTECT,NOWRT,NODEBUG, BROWNOUT, LVP, NOCPD

#include <lcd_lib_4bit.c>
#use rs232(baud=115200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9)

int tram,chuc,donvi,temp,nguong,i;

void convert_bcd(int8 temp)
{
   tram  = temp / 100 + 0x30;
   temp  = temp % 100;  
   chuc  = temp / 10 + 0x30;
   donvi = temp % 10 + 0x30;
}
void bao_dong()
{
int8 i;
for(i=0;i<200;i++)
{
RE0=0;
delay_us(100);
RE0=1;
delay_us(100);
}
}

void LCD(int8 temp)
{ 
   convert_bcd(temp);
   lcd_putchar(tram);
   lcd_putchar(chuc);
   lcd_putchar(donvi);
}
//-------------------------------------------------------------------
void main()
{
int32 value;
int8 temp;

trisB = 0x00;
trisC = 0x00;
trisD = 0x00;
trisE = 0x00; 
trisA = 0xff;
portC = 0xff;
portD = 0x00;
nguong=20;
lcd_init();
printf(lcd_putchar,"DO AN THIET BI DO");
delay_ms(3000);
lcd_putcmd(0xC0);
printf(lcd_putchar,"KHOI TAO NGUONG(20)");
delay_ms(3000);
enable_interrupts (INT_EXT);
ext_int_edge(L_TO_H);
enable_interrupts (GLOBAL);

setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(AN0);
delay_us(10);
value=read_adc();
value=(value)/10.24;
temp=value;
convert_bcd(temp);
delay_ms(1000);
lcd_putcmd(0xC0);
printf(lcd_putchar,"moi thu da san sang");

delay_ms(3000);

i=0;
while(1)
{
i++;
value =read_adc();
value=(value)/10.240;
temp=value;
if (i==200) 
{ 
convert_bcd(temp);
i=0;
}

if( value > nguong)
bao_dong();
lcd_putcmd(0xC0);
printf(lcd_putchar,"nongdo=");
lcd_putchar(tram);
lcd_putchar(chuc);
lcd_putchar(donvi);
printf(lcd_putchar,"ptram LEL");

}
}

thay đổi nội dung bởi: namqn, 04-06-2009 lúc 03:50 PM. Lý do: định dạng code
minhhai_bk3i vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn