Professional Documents
Culture Documents
short numero[ 10] = {0X5F, 0X41, 0X9D, 0XD5, 0XC3, 0XD6, 0XDE, 0X45, 0XDF, 0XD7};
short unidades=0;
short intervalo =0;
void main() {
ANSEL=0;
ANSELH=0;
TRISA.F4=0;
TRISA.F2=0;
TRISA.F6=0;
TRISC.F0=0;
PORTA.F2=1;
PORTA.F4=1;
PORTA.F6=1;
PORTC.F0=1;
TRISD=0;
PORTD=0;
while(1){
//PORTC.F0=0;
PORTD=numero [unidades]; //ENVIA UNIDADES
PORTA.F6=0;
Delay_ms (200);
PORTA.F6=1;
PORTA.F4=1;
intervalo++;
if(intervalo>1) {
ZAVALA BECERRIL JUAN CARLOS (RECURSAMIENTO)
intervalo=0;
unidades++; //INCREMENTA UNIDADES
if(unidades>9)
{
unidades=0; //REINICIO DE DECENAS
}
}
}
}
Conclusiones: Esta fue nuestra primera practica con displays donde pudimos observar
como es que se puede formar por medio de los segmentos el contador de la manera en la
que querramos que funcionen los displays .
Practica 1
Objetivo: El alumno programara un contador de 0 a 99 en un display y 7 segmentos
Realizar un contador de 0-99
Breve descripción de la práctica:
En esta practica podremos observar un contador mas complejo de 0 a 99 en el display de la
tabla poniendo lo aprendido en clases anteriores.
Desarrollo de la practica:
short numero[10]={0x5F,0x41,0x9D,0xD5,0xC3,0xD6,0xDE,0x45,0xDF,0xD7};
short unidades=0, decenas=0, centenas=0;
short intervalo=0;
void main() {
ANSEL=ANSELH=0;
TRISA.F4=TRISA.F2=TRISA.F6=0;
PORTA.F4=PORTA.F2=PORTA.F6=1;
TRISD=0;
PORTD=0;
unidades=decenas=centenas=0;
while(1){
PORTA.F4=1;
PORTD=numero[unidades];
PORTA.F6=0;
Delay_ms(3);
PORTA.F6=1;
PORTD=numero[decenas];
PORTA.F2=0;
Delay_ms(3);
PORTA.F2=1;
PORTD=numero[centenas];
PORTA.F4=0;
Delay_ms(3);
if(intervalo++>50){
intervalo=0;
unidades++;
if(unidades>9){
unidades=0;
decenas++;
}
ZAVALA BECERRIL JUAN CARLOS (RECURSAMIENTO)
if(decenas>9){
decenas=0;
centenas++;
}
if(centenas>9){
centenas=0;
intervalo=0;
}
}
}
}
Conclusiones:
Con la siguiente practica pudimos observamos que podemos programar diferentes conteos
en un display, poniendo lo aprendido en clase y experimentando con los códigos, como va
de unidades, decenas y centenas.
Desarrollo:
Se deberá configurar el push buttom al puerto b0 para que se pueda mandarel contador al
puerto D de los display. Para que se pueda llevar esto acabo se tienen que activar las
resistencias pull up y así no tener problemas con el contador o el push buttom
void main() {
ANSEL=0;
ANSELH=0;
TRISA.F2=0;
TRISA.F4=0;
TRISA.F6=0;
TRISA.F0=0;
PORTA.F2=1;
PORTA.F4=1;
PORTA.F6=1;
PORTC.F0=1;
PORTB.F0=1;
PORTD=0;
TRISD=0;
PORTD=display[x];
while (1){
{
PORTA.F6=1;
PORTD=display[x];
PORTA.F6=0;
x++;
control=1;
PORTA.F6=0;
if(x==7)
x=1;
}
if(PORTB.F0==0 &&control==1)
Delay_ms(15);
//PORTD=0x05F;
control=1;
}
}
OPTION_REG.NOT_RBPU: Sirve para que las resistencias inactivas del Puerto B se activen
Conclusión: En esta practica pudimos observar otra aplicación de los contadores y los
display , simulando un dado electrónico además pudimos observar las funciones de las
resistencias pull up algo que nos ayuda a entender mejor sobre los display.
ZAVALA BECERRIL JUAN CARLOS (RECURSAMIENTO)
sbit LCD_RS at RC5_bit; //Son para configurar los datos de la LCD y habilitarlos
sbit LCD_EN at RD1_bit;
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;
void main(void) {
ANSEL=0;
ANSELH=0;
C1ON_bit=0;
C2ON_bit=0; //DESABILITA COMPARADORES
TRISC.F0=0;
TRISA.F4=0;
TRISA.F2=0;
TRISA.F6=0;
PORTC.F0=1;
PORTA.F4=1;
PORTA.F2=1;
ZAVALA BECERRIL JUAN CARLOS (RECURSAMIENTO)
PORTA.F6=1;
{
Lcd_Init(); //INICIO DE LCD
Lcd_Chr_Cp ('H');
Lcd_Chr_Cp ('O');
Lcd_Chr_Cp ('L');
Lcd_Chr_Cp ('A');
//ESTAS FUNCIONES IMPRIMEN LETRA A LETRA HOLA
while(1) //BUCLE INFINITO
{
}
}
}
Lcd_Chr_Cp: Sirve para dar impresión de un solo carácter
Lcd_Init(): Sirve para dar inicio al LCD
Conclusión: Esta practica nos ayudo mucho a comprender mejor el uso del LCD en nuestra
tabla además de que es bastante interesante el poder entender el como es que podemos
desplazar palabras en el LCD por medio de la programación.
ZAVALA BECERRIL JUAN CARLOS (RECURSAMIENTO)
Objetivo: El alumno tendrá que posicionar las palabras o caracteres en el LCD y acomodarlos
en el renglón en el que nos guste.
Desarrollo:En esta practica pondremos a prueba lo aprendido solo que se le harán unas
modificaciones por medio de nuevas conexiones que nos ayudaran a colocar las palabras
en otro renglón lo que nos ayudara a tener un mejor manejo del LCD.
//Conexiones del Modulo LCD
void main () {
ANSEL=0;
ANSELH=0;
C1ON_bit=0;
C2ON_bit=0; //DESABILITA COMPARADORES
TRISC.F0=0;
TRISA.F4=0;
TRISA.F2=0;
TRISA.F6=0;
PORTC.F0=1;
PORTA.F4=1;
PORTA.F2=1;
PORTA.F6=1;
{
Lcd_Init(); //INICIO DE LCD
ZAVALA BECERRIL JUAN CARLOS (RECURSAMIENTO)
Lcd_Chr_Cp ('H');
Lcd_Chr_Cp ('O');
Lcd_Chr_Cp ('L');
Lcd_Chr_Cp ('A');
Lcd_Chr(1,6,'1'); //IMPRIME EL CARÁRTER 1, EN LA FILA 1, COLUMNA 6
Lcd_Chr(2,7,'2'); //IMPRIME EL CARÁRTER 2, EN LA FILA 2, COLUMNA 7
//ESTAS FUNCIONES IMPRIMEN LETRA A LETRA HOLA
while(1) //BUCLE INFINITO
{
}
}
}
Lcd_Chr( 0, 0 ´0´);: Sirve para mandar las palabras o caracteres en lugares específicos del
LCD, ya sean filas columnas o espacios
Conclusión: Esta práctica nos ayudo a tener un mejor manejo y entendimiento del LCD ya
que solo tuvimos que agregar nuevas conexiones que nos ayudaron a poder observar de
una manera física el uso de ellas al poder notar como es que podíamos cambiar las palabras
o caracteres en el renglón que quisiéramos lo que nos sirvió de mucho.
ZAVALA BECERRIL JUAN CARLOS (RECURSAMIENTO)
void main () {
ANSEL=0;
ANSELH=0;
C1ON_bit=0;
C2ON_bit=0; //DESABILITA COMPARADORES
TRISC.F0=0;
TRISA.F4=0;
TRISA.F2=0;
TRISA.F6=0;
PORTC.F0=1;
PORTA.F4=1;
PORTA.F2=1;
PORTA.F6=1;
{
Conclusión: Esta practica nos ayuda y facilita la manera de utilizar y poder colocar palabras
en el LCD disminuyendo el trabajo y haciendo que los errores al programarlo también
puedan ser menores.
ZAVALA BECERRIL JUAN CARLOS (RECURSAMIENTO)
17.PRIMER MARCIANO
Objetivo: El alumno creara por meido del display y unas nuevas constante una figura en este caso
se creara un marciano para poder observar las constantes aplicadas.
Desarrollo:
void main(void){
ANSEL = 0; // Configure AN pins as digital I/O
ANSELH = 0;
C1ON_bit = 0; // DESACTIVA LOS COMPARADORES
C2ON_bit = 0;
TRISC.F0=0;
TRISC.F4=0;
TRISC.F2=0;
TRISC.F6=0;
PORTC.F0=1;
PORTA.F4=1;
ZAVALA BECERRIL JUAN CARLOS (RECURSAMIENTO)
PORTA.F2=1;
PORTA.F6=1;
Lcd_Init();
CustomChar(1,1);
while(1)
{
}
}
Conclusiones: Gracias a esta practica pudimos observar otra función en el LCD ya que no solo se
pueden colocar números y palabras si no también figuras además que es entretenido el poder
saber mas acerca del LCD.
ZAVALA BECERRIL JUAN CARLOS (RECURSAMIENTO)
Objetivo: El alumno pondrá en practica lo aprendido acerca del display ya que ahora llevara acabo
3 figuras mas dentro del mismo programa en base a lo aprendido.
Desarrollo:
void main(void){
ANSEL = 0; // Configure AN pins as digital I/O
ANSELH = 0;
C1ON_bit = 0; // DESACTIVA LOS COMPARADORES
C2ON_bit = 0;
TRISC.F0=0;
TRISC.F4=0;
TRISC.F2=0;
TRISC.F6=0;
PORTC.F0=1;
PORTA.F4=1;
PORTA.F2=1;
PORTA.F6=1;
Lcd_Init();
Lcd_RAM_car(64, Marciano1);
Lcd_RAM_car(72, Character);
Lcd_RAM_car(80, Marciano2);
Lcd_RAM_car(88, Nave);
LCD_Chr(1,1,0);
LCD_Chr(1,2,1);
LCD_Chr(1,3,2);
LCD_Chr(1,4,3);
while(1)
{
}
}