Essays.club - Ensayos gratis, notas de cursos, notas de libros, tareas, monografías y trabajos de investigación
Buscar

Práctica 5 Frecuencia Respiratoria Ingeniería biomédica

Enviado por   •  6 de Octubre de 2018  •  642 Palabras (3 Páginas)  •  395 Visitas

Página 1 de 3

...

#define BUSFREQ 275 /* para obtener 1 mS con 1.1 Mhz */

#define fintabla 0x096

#define ELCD_xor (5) // ref

#define E_LCD (5) /* Enable P3.5 */

#define RS_LCD (4) /* RS P3.4 */

const unsigned char t[]={0x03,0x03,0x02,0x02,0x0C,0x00,0x0C,0x00,0x01,0x00,0x06,fintabla};

// const asigna la variable tipo arreglo en un segmento de flash

extern unsigned char bandera;

unsigned char band_exhopr;

void Wait1ms(void){

unsigned int i;

i = BUSFREQ ; /* DCO=1.1mHZ / 4 ciclos / 275 = 1Khz = 1mSeg */

do (i--); /* 4 ciclos de maquina efectivos en ensamblador */

while (i != 0);

}

void WaitNms(int n){

/* This function waits for N ms. */

do {n--;

Wait1ms(); } /* 4 ciclos de maquina efectivos en ensamblador */

while (n != 0);

}

void Toggle(void){

/* This function toggles the E line (LCD). */

P4OUT ^=(1/* (xor.b #0x20)=0 */

WaitNms(2);

P4OUT ^=(1/* (xor.b #0x20)=1 */

}

void MergePTO(unsigned char dato){

static unsigned char respt4;

dato &=0x0F;

respt4 =P4OUT & 0xF0;

P4OUT = respt4 | dato;

Toggle();

}

void LCD_Init(void)

{

/* Inicialización LCD */

unsigned char position=0;

P4OUT &=~(1/* RS =0 escribe comando */

WaitNms(15);

while (t[position]!=fintabla)

{

MergePTO(t[position]); /* Función de asignar dato al nibble menos significativo del PTC */

Wait1ms();

position++;

}

WaitNms(15);

}

void Imprime_cadena(char *str){

/* Funcion de impresion de cadena en forma de String */

char *strptr;

strptr = str;

P4OUT |=(1/* RS = 1 ESCRIBIR DATO */

while ((*strptr) != '\0'){

MergePTO((*strptr) >> 4); /* Escritura parte alta ASCII */

MergePTO(*strptr); /* Escritura parte baja ASCII */

Wait1ms();

strptr++;

}

}

void Imprime_numero(int numero){

unsigned int unidades;

unsigned int decenas;

//unsigned int centenas;

//unsigned int miles;

unidades = (numero%10); //unidades = (numero%10);

decenas = (numero%100)/10; // decenas = (numero%60/10);

//centenas = (numero/100); //centenas = (numero%600/60);

//miles = (numero/600); //miles = (numero/600);

P4OUT |= (1/* RS = 1 ESCRIBIR DATO */

//MergePTO(0x03); /*Decenas DDRAM */

//MergePTO(miles);

//MergePTO(0x03); /*Unidades DDRAM */

//MergePTO(centenas);

//MergePTO(0x03); /*Unidades DDRAM */

//MergePTO(0x0A);

MergePTO(0x03); /*Decenas DDRAM */

MergePTO(decenas);

MergePTO(0x03); /*Unidades DDRAM */

MergePTO(unidades);

}

void Comando_LCD(unsigned char var_comando){

P4OUT &=~(1/* RS = 0 ESCRIBIR comando */

MergePTO((var_comando) >> 4); /* desplaza a la derecha 4 envia parte alta a la baja */

MergePTO(var_comando); /* envía parte baja */

Wait1ms();

}

LCD.h

void Wait1ms(void);

void WaitNms(int n);

void Toggle(void);

void MergePTO(unsigned char dato);

void LCD_Init(void);

void Imprime_cadena(char *str);

void Imprime_numero(int numero);

void Comando_LCD(unsigned char var_comando);

...

Descargar como  txt (6.1 Kb)   pdf (58.8 Kb)   docx (18.1 Kb)  
Leer 2 páginas más »
Disponible sólo en Essays.club