Está en la página 1de 12

PROGRAMA C

Desarrollar un programa que muestre la cuenta de 0 a 999 en 3 displays multiplexados, cátodo


común

CODIGO:

#include<16F887.H>

#fuses PROTECT,NOMCLR,INTRC_IO,NOLVP,NOWDT,PUT

#use delay(clock=8000000)

#use STANDARD_IO(a) //puerto a como entrada/salida

#use STANDARD_IO(b) // '' b como ''

#byte OPTION_REG=getenv("SFR:OPTION_REG")

#bit RBPU=OPTION_REG.7

int i = 0, j = 0, k = 0, l = 0;
int A[]={252,96,218,242,102,182,190,224,254,230};

void main(void){

RBPU = 0;

while(1){

for(i = 0; i <= 9; i++){

for(j = 0; j <= 9; j++){

for(k = 0; k <= 9; k++){

for(l = 0; l <= 200; l++){

output_A(0xf7); //selector de display

output_B(0xfc); //l

delay_ms(1);

output_A(0xfb); //selector de display

output_B(A[i]); //2

delay_ms(1);

output_A(0xfd); //selector de display

output_B(A[j]); //3

delay_ms(1);

output_A(0xfe); //selector de display

output_B(A[k]); //4

delay_ms(1);

}
}

}
Programa B

Desarrollar un programa permita observar el nombre y primer apellido, de manera


alternada, en cuatro displays cátodo común, es decir, “nombre” completo, se apaga,
“apellido” completo, se apaga y se repite el proceso.

CODIGO:

#include<16F887.H>

#fuses PROTECT,NOMCLR,INTRC_IO,NOLVP,NOWDT,PUT

#use delay(clock=8000000)

#use STANDARD_IO(a) //puerto a como entrada/salida

#use STANDARD_IO(b) // '' b como ''

#byte OPTION_REG=getenv("SFR:OPTION_REG")

#bit RBPU=OPTION_REG.7
int i = 0;

void main(void){

RBPU = 0;

while(1){

for(i = 0; i <= 200; i++){

output_A(0xf7); //selector de display

output_B(0xEE); //A

delay_ms(1);

output_A(0xfb); //selector de display

output_B(0xBE); //G

delay_ms(1);

output_A(0xfd); //selector de display

output_B(0x7C); //U

delay_ms(1);
output_A(0xfe); //selector de display

output_B(0xB6); //S

delay_ms(1);

for(i = 0; i <= 200; i++){

output_A(0xf7); //selector de display

output_B(0x9C); //C

delay_ms(1);

output_A(0xfb); //selector de display

output_B(0xEE); //A

delay_ms(1);

output_A(0xfd); //selector de display

output_B(0x9E); //M

delay_ms(1);

output_A(0xfe); //selector de display

output_B(0xEE); //A

delay_ms(1);

for(i = 0; i <= 200; i++){


output_A(0xf7); //selector de display

output_B(0x9C); //C

delay_ms(1);

output_A(0xfb); //selector de display

output_B(0x6E); //H

delay_ms(1);

output_A(0xfd); //selector de display

output_B(0xFC); //0

delay_ms(1);

output_A(0xfe); //selector de display

output_B(0x01); //.

delay_ms(1);

}
PROGRAMA A

Desarrollar un programa que permita observar un LED corriendo hacia la derecha y hacia la
izquierda

CODIGO:

#include<16F887.H>

#fuses PROTECT,NOMCLR,INTRC_IO,NOLVP,NOWDT,PUT

#use delay(clock=8000000)

#use STANDARD_IO(b) //puerto b como entrada/salida

#byte OPTION_REG=getenv("SFR:OPTION_REG")

#bit RBPU=OPTION_REG.7

int i = 0;
int j = 0;

int A[]={1,2,4,8,16,32,64,128};

void main(void){

RBPU = 0;

while(1){

for(i = 0; i <= 7; i++){

output_B(A[i]); //sacar por puerto B

delay_ms(300);

for(j = 7; j >= 0; j--){

output_B(A[j]); //sacar por puerto B

delay_ms(300);

También podría gustarte