Examen 26 Abril 2018, respuestas PDF

Title Examen 26 Abril 2018, respuestas
Course Microcontroladores Y Diseño Electrónico
Institution Universidad ECCI
Pages 24
File Size 89.3 KB
File Type PDF
Total Downloads 87
Total Views 140

Summary

Programacion de pantalla lcd con pic, sumador ,resta,multiplicacion,nand,or, decimal a binario,xor,division entre otras...


Description

//..................librerias...................................................................................... #include #include #include

//....................conf_fusibles................................................................................ #pragma config OSC = XT

// Oscillator Selection bits (XT oscillator)

#pragma config PWRT = ON

// Power-up Timer Enable bit (PWRT enabled)

#pragma config BOR = OFF

// Brown-out Reset Enable bit (Brown-out Reset disabled)

#pragma config WDT = OFF the SWDTEN bit))

// Watchdog Timer Enable bit (WDT disabled (control is placed on

#pragma config LVP = OFF

// Low Voltage ICSP Enable bit (Low Voltage ICSP disabled)

#define _XTAL_FREQ 4000000

//..............variables globales y prototipos de funcion.........................................................

unsigned int AA; unsigned char buffer[40]; unsigned int num=0; unsigned char A = 0, B = 0, C = 0, PB = 0;

void suma(void); void conf_puertos(void); void ini_LCD(void); void enable(void); void dato_LCD(unsigned char dato); void ins_LCD(unsigned char dato); void write(unsigned char tam);

void print_binarios(unsigned int n);

//..............codigo principal................................................................

void main(void) {

//.........................conf perifericos................................................. conf_puertos(); ini_LCD(); //inicializa la LCD

sprintf(buffer," PARCIAL 2 DE "); write(strlen(buffer));

ins_LCD(192);

sprintf(buffer,"

MICROS");

write(strlen(buffer));

__delay_ms(30); //.........................bucle.............................................................

while (1) { PB = PORTB; A = PB >> 4; B = PB & 0x0F; C = PORTC & 0x0F; switch (C) { case (0): ins_LCD(1);

LATD =A+B; sprintf(buffer," 0. SUMA: %d+%d=%d",A,B,LATD); write(strlen(buffer)); __delay_ms(500); break;

case (1): ins_LCD(1); LATD =A-B; sprintf(buffer," 1. RESTA: %d-%d=%d",A,B,LATD); write(strlen(buffer)); __delay_ms(500); break;

case (2): ins_LCD(1); LATD =A*B; sprintf(buffer,"3. MULTI: %d*%d=%d",A,B,LATD); write(strlen(buffer)); __delay_ms(500); break;

case (3): ins_LCD(1); LATD =A/B; sprintf(buffer,"4. DIVI: %d/%d=%d",A,B,LATD); write(strlen(buffer)); __delay_ms(500); break;

case (4): ins_LCD(1);

AA=A&B; LATD=AA; sprintf(buffer,"5. AND: %d&%d=%d",A,B,LATD); write(strlen(buffer)); ins_LCD(192); print_binarios(AA); __delay_ms(500); break;

case (5): ins_LCD(1); AA=A|B; LATD=AA; sprintf(buffer,"5. OR: %d|%d=%d",A,B,LATD); write(strlen(buffer)); ins_LCD(192); print_binarios(AA); __delay_ms(500); break;

case (6): ins_LCD(1); AA=(A^B); LATD=AA; sprintf(buffer,"6.XOR: %d^%d =%d",A,B,LATD);

write(strlen(buffer)); ins_LCD(192); print_binarios(AA); __delay_ms(500); break;

case (7): ins_LCD(1); AA=~(A&B)&0x0F; LATD =AA; sprintf(buffer,"7.NAND: %d&~%d=%d",A,B,LATD); write(strlen(buffer)); ins_LCD(192); print_binarios(AA); __delay_ms(500); break;

case (8): ins_LCD(1); AA=~(A|B)&0x0F; LATD =AA; sprintf(buffer,"7.NAND: %d|~%d=%d",A,B,LATD); write(strlen(buffer)); ins_LCD(192); print_binarios(AA); __delay_ms(500); break;

case (9):

ins_LCD(1); AA=~(A^B)&0x0F; LATD =AA; sprintf(buffer,"7.NAND: %d^~%d=%d",A,B,LATD); write(strlen(buffer)); ins_LCD(192); print_binarios(AA); __delay_ms(500); break;

case (10): ins_LCD(1); AA=(PB>>5|PB5|PB...


Similar Free PDFs