Calculadora con microcontrolador
//--------------------------------1. DIRECTIVAS --------------------------------
#INCLUDE//La referencia del microcontrolador
#USE DELAY (CLOCK=4000000) //Frecuencia en Hz del cristal con que trabajará el uC
#FUSES XT,NOPROTECT,NOWDT,NOBROWNOUT,PUT,NOLVP
//XT: Significa quetrabajará con XrisTal de cuarzo menor o igual a 4MHz.
//NOLVP: Principalmente para habilitar el pin B3 como I/O.
#DEFINE USE_PORTB_LCD TRUE
#DEFINE USE_PORTB_KBD
#INCLUDE
#INCLUDE
//Referirseal datasheet para ver el mapa de registros de memoria de cada puerto
#BYTE PORTA=5 //Dirección en la memoria RAM del puerto A
#BYTE PORTB=6 //Direccion en la memoria RAMdel puerto B
#BYTE PORTC=7 //Direccion en la memoria RAM del puerto C
//-----------------------------2. DEFINICION DE VARIABLES ----------------------
CHAR K;
INT UNI;
INT DEC;INT UNI2;
INT DEC2;
INT TOTAL;
INT NUMERO;
INT NUMERO2;
//-----------------------------3. FUNCIONES ------------------------------------
VOID KYBD()
{
K=KBD_GETC();WHILE(K=='\0') //PREGUNTAR QUE SIGNIFICA ESTO
{
K=KBD_GETC();
}
}
//---------------------------4. FUNCION PRINCIPAL-------------------------------
void main()
{
//Configuración de puertosy bits como entradas y salidas
PORT_B_PULLUPS(TRUE);
set_tris_c(0b00000000); //Los 8 bits del puerto C son salidas
KBD_INIT();
LCD_INIT();
LCD_PUTC("\f");
PORTC=0;UNI=0;
UNI2=0;
DEC=0;
DEC2=0;
NUMERO=0;
NUMERO2=0;
WHILE(TRUE)
{
INICIO:
LCD_PUTC("\f");
LCD_GOTOXY(16,1);
LCD_PUTC("0");
KYBD();IF((K!='#')&&(K!='*')) //PREGUNTAR SI EL SIMBOLO TIENE QUE ESTAR ENCERRADO EN '_' ('*')
{ //PRESIONAR PRIMER DIGITO DEL PRIMER NÚMERO
UNI=K;...
Regístrate para leer el documento completo.