Vumetre ccs compiler örnek uygulama çalışması.
#include <16f88.h>
#device ADC = 10
#fuses HS,NOWDT,NOPROTECT,NOPUT,NOLVP,BROWNOUT
#use delay(clock=20000000)
#use standard_io(A)
#use standard_io(B)
int leds[] = {PIN_A3,PIN_A4,PIN_B0,PIN_B1,PIN_B2,PIN_B3,PIN_B4,PIN_B5,PIN_B6,PIN_B7};
int k;
int32 map(int32 x, int32 eMin, int32 eMax, int32 sMin, int32 sMax);
void main()
{
setup_adc_ports(sAN0);
setup_adc(adc_clock_internal);
while(true)
{
set_adc_channel(0);
long valor_adc = read_adc();
int cikis = map(valor_adc, 0, 700, 0, 10);
if(cikis == 0)
{
for(k=0; k<=9; k++){
output_low(leds[k]);
}
}
else if(cikis == 1)
{
for(k=0; k<=0; k++){
output_high(leds[k]);
}
for(k=1; k<=9; k++){
output_low(leds[k]);
}
}
else if(cikis == 2)
{
for(k=0; k<=1; k++){
output_high(leds[k]);
}
for(k=2; k<=9; k++){
output_low(leds[k]);
}
}
else if(cikis == 3)
{
for(k=0; k<=2; k++){
output_high(leds[k]);
}
for(k=3; k<=9; k++){
output_low(leds[k]);
}
}
else if(cikis == 4)
{
for(k=0; k<=3; k++){
output_high(leds[k]);
}
for(k=4 ;k<=9; k++){
output_low(leds[k]);
}
}
else if(cikis == 5)
{
for(k=0; k<=4; k++){
output_high(leds[k]);
}
for(k=5; k<=9; k++){
output_low(leds[k]);
}
}
else if(cikis == 6)
{
for(k=0; k<=5; k++){
output_high(leds[k]);
}
for(k=6; k<=9; k++){
output_low(leds[k]);
}
}
else if(cikis == 7)
{
for(k=0; k<=6; k++){
output_high(leds[k]);
}
for(k=7; k<=9; k++){
output_low(leds[k]);
}
}
else if(cikis == 8)
{
for(k=0; k<=7; k++){
output_high(leds[k]);
}
for(k=8; k<=9; k++){
output_low(leds[k]);
}
}
else if(cikis == 9)
{
for(k=0; k<=8; k++){
output_high(leds[k]);
}
for(k=9; k<=9; k++){
output_low(leds[k]);
}
}
else if(cikis == 10)
{
for(k=0; k<=9; k++){
output_high(leds[k]);
}
}
}
}
int32 map(int32 x, int32 eMin, int32 eMax, int32 sMin, int32 sMax)
{
return(x -eMin)*(sMax-sMin)/(eMax-eMin)+sMin;
}
Hiç yorum yok:
Yorum Gönder
Her yorum bilgidir. Araştırmaya devam...