Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
#include <xc.h>
#include <stdio.h>
#include <string.h>
//....................conf_fusibles................................................................................
#pragma config BOR = OFF // Brown-out Reset Enable bit (Brown-out Reset disabled)
#pragma config WDT = OFF // Watchdog Timer Enable bit (WDT disabled (control is placed on
the SWDTEN bit))
#pragma config LVP = OFF // Low Voltage ICSP Enable bit (Low Voltage ICSP disabled)
void conf_puertos(void);
void ini_LCD(void);
void enable(void);
void conf_ADC(void);
//..............codigo principal................................................................
void main(void) {
//.........................conf perifericos.................................................
conf_puertos();
conf_puertos();
conf_ADC();
sprintf(buffer,"CONVERSOR AN/DIG");
write(strlen(buffer));
ins_LCD(192);
sprintf(buffer,"Universidad Ecci");
write(strlen(buffer));
for(num=0;num<10;num++){
__delay_ms(100);
//.........................bucle.............................................................
while (1) {
__delay_ms(1000);
ins_LCD(1);
write(strlen(buffer));
ins_LCD(192);
sprintf(buffer,"Gas:");
write(strlen(buffer));
x=conv_ADC(6);
LATD=x>>2;
LATC=x<<6;
__delay_ms(50);
x=conv_ADC(3);
LATD=x>>2;
LATC=x<<6;
//......................funciones............................................................
void conf_puertos(void) {
TRISE= 0x03;
LATE=0;
PORTE= 0;
//...................ini_LCD....................................
__delay_ms(20); // delay 20 ms
enable();
__delay_ms(5); // delay 5 ms
enable();
__delay_ms(1); // delay 1 ms
enable();
enable();
PORTD=0b00001000; // display off
enable();
enable();
enable();
enable();
//...................enable....................................
__delay_ms(1);
//...................dato....................................
PORTBbits.RB1=0; //R/W en 0
//...................instruccion..................................
PORTBbits.RB1=0; //R/W en 0
enable();
unsigned char i;
for(i=0;i<tam;i++){
dato_LCD(buffer[i]);
void conf_ADC(void){
ADCON0=0b00000001;
ADCON1=0;
if(canal>7){
return 0;
}else{
canal<<=3;
ADCON0&=0xC7;
ADCON0|=canal;
__delay_us(50);
GO=1;
while(GO==1){}
ADRESL>>=6;
temp=ADRESH;
temp<<=2;
temp|=ADRESL;
return temp;
sprintf(buffer,"Tem:",temp);
write(strlen(buffer));