• Merhaba Ziyaretçi.
    "Hoşgeldin sonbahar "
    konulu resim yarışması başladı. İlgili konuya BURADAN ulaşabilirsiniz. Sizi de beğendiğiniz 2 resmi oylamanız için bekliyoruz...

PIC 16f877A ile ADC Örneği

merakettim

Homo Sapiens Sapiens
Özel üye
main.c
PHP:
#include <pic.h>
#include "cerezforumlcd.h"
#define bsf(var,bitno) ((var)|=1<<(bitno))
#define bcf(var,bitno) ((var) &= ~(1<<(bitno)))
void main(void)
{
int tut,bak;
char yazi[20];
TRISA=0xff;
TRISC=TRISB=00;
PORTC=PORTA=PORTB=0;

ADCON1=0xff;
bsf (PIE1,ADIE);
ADCON0=0b11000001;
bcf(PIR1,ADIF);
bsf(INTCON,PEIE);
ADCS1=3;


cerezforumlcdReset();
cerezforumlcdTemizle();
cerezforumlcdIkiSatirAktif();
cerezforumlcdDisplayOn();
cerezforumlcdCursor1ArtanModda();
for(;;)
{
bsf(INTCON,GIE);
bsf(ADCON0,2);

if(tut!=((ADRESH*256)+ADRESL)){
tut=(ADRESH*256)+ADRESL;
sprintf(yazi,"t=%d H=%d L=%d",tut,ADRESH,ADRESL);
cerezforumlcdTemizle();
cerezforumlcdPrintf(yazi);
}
}
}
cerezforumlcd.h
PHP:
#include <stdio.h>
#include <string.h>
void bekle (int ns){
unsigned int say;
for(say=0;say<ns;say++){
#asm
NOP
#endasm
}
}
cerezforumlcdTemizle(void){
bekle(0xb0);
PORTB=0x01;
RC2=0;
RC1=0;
RC0=1;
#asm
NOP
#endasm
RC0=0;
}
cerezforumlcdReset(void)
{
unsigned char cx;
for(cx=0;cx<3;cx++)
{
bekle(0xb0);
RC2=0;
RC1=0;
PORTB=0x30;
RC0=1;
#asm
NOP
#endasm
RC0=0;
}
}
cerezforumlcdIkiSatirAktif(void)
{
bekle(0xb0);
PORTB=0x38;
RC2=0;
RC1=0;
RC0=1;
#asm
NOP
#endasm
RC0=0;
}
void cerezforumlcdDisplayOn(void)
{
bekle(0xb0);
PORTB=0x0e;
RC2=0;
RC1=0;
RC0=1;
#asm
NOP
#endasm
RC0=0;
}
void cerezforumlcdCursor1ArtanModda(void)
{
bekle(0xb0);
PORTB=0b00000000;
RC2=0;
RC1=0;
RC0=1;
#asm
NOP
#endasm
RC0=0;
}
void cerezforumlcdPrintf(const char *yazi)
{
unsigned int say,len;
len=strlen(yazi);
for(say=0;say<len;say++)
{
bekle(0xb0);
RC2=1;
RC1=0;
PORTB=yazi[say];    
RC0=1;
#asm
NOP
#endasm
RC0=0;
}
}
 
Geri
Top