Sıcaklık set ve sıcaklık göstergesi Termosifon alışması ccs compiler. Basit encoder mantığı devre ve kodları.
#include<16f877a.h>
#device adc=10
#fuses hs
#use delay(clock=4m)
unsigned long int bilgi;
float voltaj;
const int a[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
int i,onlar,birler,z;
void main()
{
setup_adc(adc_clock_div_32);
setup_adc_ports(AN0);
set_tris_a(0x01);
set_tris_b(0b0000000);
set_tris_c(0b0000000);
output_a(0x0f);
output_c(0x00);
output_b(0x00);
while(true)
{
z = read_eeprom(1);
if(input(pin_a1)==1)
{
z++;
birler=z%10;
onlar=z/10;
write_eeprom(1,z);
output_b(a[onlar]);
output_c(a[birler]);
if(z == 99)
{
z=99;
}
}
if(input(pin_a2)==0)
{
z--;
birler=z%10;
onlar=z/10;
write_eeprom(1,z);
output_b(a[onlar]);
output_c(a[birler]);
if(z==0)
{
z=0;
}
}
delay_ms(500);
if(!input(pin_a1) && input(pin_a2))
{
set_adc_channel(0);
delay_us(20);
bilgi=read_adc();
voltaj=(0.0048875*bilgi)*100;
i=voltaj;
birler=i%10;
onlar=i/10;
output_b(a[onlar]);
output_c(a[birler]);
delay_ms(200);
}
if(z <= i)
{
output_high(pin_d0);
}
else
{
output_low(pin_d0);
}
}
}
Hiç yorum yok:
Yorum Gönder
Her yorum bilgidir. Araştırmaya devam...