#include <16F877A.h>
#include <DEFS_16F877A.h>
#device *=16 ADC=10
#include <stdlib.h>
#include <ctLCD.c>
#include <ds1307_16F877A.c>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NODEBUG
#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8)
//=========================functions use========================================
const unsigned char aray[5]={100,102,105,106,110};
int16 adc1,ad1,ad2;
//======================================functions use===========================
//********************* Ham main *************************
void main()
{
set_tris_B(0xf9);
set_tris_D(0);
set_tris_E(0);
set_tris_A(0xff);
lcd_init();
setup_ADC(ADC_CLOCK_INTERNAL);
set_ADC_channel(0);
delay_us(10);
While(true)
{
adc1=read_ADC(ADC_START_AND_READ);
delay_us(10);
ad1=adc1/100;
ad2=adc1%100;
lcd_gotoxy(1,2);
lcd_putc(ad1/10+0x30);
lcd_gotoxy(2,2);
lcd_putc(ad1%10+0x30);
lcd_gotoxy(3,2);
lcd_putc(ad2/10+0x30);
lcd_gotoxy(4,2);
lcd_putc(ad2%10+0x30);
if((adc1>=aray[0])&&(adc1<((aray[0]+aray[1])/2)))
{
lcd_gotoxy(1,1);
lcd_putc("A");
}
else if((adc1>=((aray[0]+aray[1])/2))&&(adc1<((aray[1]+aray[2])/2)))
{
lcd_gotoxy(1,1);
lcd_putc("B");
}
else if((adc1>=((aray[1]+aray[2])/2))&&(adc1<((aray[2]+aray[3])/2)))
{
lcd_gotoxy(1,1);
lcd_putc("C");
}
else if((adc1>=((aray[2]+aray[3])/2))&&(adc1<((aray[3]+aray[4])/2)))
{
lcd_gotoxy(1,1);
lcd_putc("D");
}
else if((adc1>=((aray[3]+aray[4])/2))&&(adc1<=aray[4]))
{
lcd_gotoxy(1,1);
lcd_putc("E");
}
else
{
lcd_gotoxy(1,1);
lcd_putc("?");
}
}
}
|