-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathP7.2) Modificación comunicación serial PC-Tarjeta V2 .c
88 lines (76 loc) · 2.52 KB
/
P7.2) Modificación comunicación serial PC-Tarjeta V2 .c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
//*----------------------------------------------------
// Universidad: Universidad Tecnica Nacional(UTN)
// Curso: Aplicaciones de Microcontroladores
// Desarrollado por: Daniela Méndez Porras y Keylor García Jirón
// Nombre del proyecto: Practicas_PIC_16F887A
// Fecha 06/12/2021
// Nombre del archivo: P7.2) Modificación comunicación serial PC-Tarjeta V2
// --------------------------------------------------*/
#include "local_libraries/global_config_params.h"
#include "local_libraries/uart.h"
#include "local_libraries/eeprom.h"
#include "local_libraries/lcd.h"
LCD lcd={&PORTD, 2, 3, 4, 5, 6, 7};
int counter, lectura, cuenta=0, cont;
char str_buff[10];
int serial(void){
while(1){ // Infinity loop
if(uart_data_ready()){
counter = uart_read();
} else{
//Nothing
}
break;
}//EOW
return 0;
}
void setup(void){
//Config puertos
TRISA= 0x06; //0b11111111; definir si va como entrada o salida
PORTA = 0x00; // inicializar el puerto
TRISB= 0x00; //como salida
PORTB = 0x00; // inicializar el puerto
TRISD= 0x00; //como salida
PORTD = 0x00; // inicializar el puerto
ADCON1bits.PCFG=0x07; //habilita entradas digitales
TRISC = 0x80; //RC6/RX como salida y RC7/TX como entrada
PORTC = 0x00;//se inicializa el puerto
uart_init(8929);//Uart inicializacion
lcd_init(&lcd);
lcd_clear(&lcd);
} //END SETUP
int main(void){
setup(); // Call function configuration
while(1){//se mantiene en la interrupcion de alta prioridad
uart_write_text(str_buff);//Enviar el valor del contador
uart_write_text(" ");//se separan por espacios
cuenta++;
itoa(str_buff, cuenta, 10);//conversion de int a string
if(cuenta>59){
cuenta=0;//se reinicia a 0
}
if(cuenta<10){
lcd_cursor(&lcd, 1,7);//se borran numeros que sobran en la lcd
lcd_print(&lcd, " ");
}
lcd_cursor(&lcd, 0,2);
lcd_print(&lcd, "Lectura UART");//se coloca el mensaje
lcd_cursor(&lcd, 1,6);//se envia el valor del contador
lcd_print(&lcd, str_buff);
lcd_cursor(&lcd, 1,8);
lcd_print(&lcd, "s");
__delay_ms(500);
serial();//se va a la subrutina de serial
if(counter==97){//0x62 o a
counter=0;
cont++;
}
if(cont==1){
PORTBbits.RB1=1;//enciende led
}
if(cont==2){
PORTBbits.RB1=0;//enciende led
cont=0;
}
}//end while
}//end main