Professional Documents
Culture Documents
Laboratorio Teclado Matricial
Laboratorio Teclado Matricial
Sistemas
Laboratori Embebidos MCT
o 3202
#include <18F4550.h>
#fuses hs,NOWDT
#use delay(clock=20M)
#byte TRISD=0xF95
#byte PORTD=0xF83
int fl0=1;
int fl1=1;
int fl2=1;
int fl3=1;
#int_RB
PortB_Interrupt()
PORTD= 0X06;
break;
PORTD= 0X5B;
break;
PORTD= 0X4F;
break;
PORTD= 0X77
break;
//Fila1
PORTD= 0X66;
break;
PORTD= 0X6D;
break;
PORTD= 0X7C;
break;
PORTD= 0X7F;
break;
//Fila2
PORTD= 0X07;
break;
PORTD= 0X7F;
break;
PORTD= 0X6F;
break;
{
PORTD= 0X39;
break;
//Fila3
PORTD= 0X06;
break;
PORTD= 0X5B;
break;
PORTD= 0X4F;
break;
PORTD= 0X77;
break;
}
void main(){
set_tris_b(0b11110000);
enable_interrupts(GLOBAL);
enable_interrupts(INT_RB);
ext_int_edge(L_TO_H);
TRISD=0;
PORTD=0;
while(true)
output_high(pin_B0);
fl0=1;
output_low(pin_B1);
fl1=0;
output_low(pin_B2);
fl2=0;
output_low(pin_B3);
fl3=0;
output_low(pin_B0);
fl0=0;
output_high(pin_B1);
fl1=1;
output_low(pin_B2);
fl2=0;
output_low(pin_B3);
fl3=0;
output_low(pin_B0);
fl0=0;
output_low(pin_B1);
fl1=0;
output_high(pin_B2);
fl2=1;
output_low(pin_B3);
fl3=0;
output_low(pin_B0);
fl0=0;
output_low(pin_B1);
fl1=0;
output_low(pin_B2);
fl2=0;
output_high(pin_B3);
fl3=1;
}
Código interrupción, laboratorio parte 2.
#INCLUDE <18F4550.h>
#fuses hs,nowdt,noput,noprotect,nolvp
#use fast_io(D)
int cont;
#INT_TIMER0
cont++;
if (cont==300){
output_toggle(PIN_D0);
cont=0;
}
set_timer0(3);
void main() {
set_tris_d(0x00);
setup_timer_0(RTCC_DIV_256|RTCC_INTERNAL|RTCC_8_bit);
set_timer0(3);
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
cont=0;
output_high(PIN_D0);
while(true){