Vous êtes sur la page 1sur 10

ESCUELA SUPERIOR POLITCNICA DEL

LITORAL
FIEC
Laboratorio de Microcontroladores
Prctica
Nombre de la Prctica
Alumno/a
Nombre del estudiante
Paralelo: # (Acadmico)
Grupo: # (Segn el puesto de trabajo)
Fecha de presentacin:
Da mes ao
2011 2 TRMINO

NOTA IMPORTANTE: En la escritura de su reporte utilice la fuente


ARIAL 12

1.- Enunciado del proyecto


// Se describe en forma general lo que hace el programa sin
describir el cdigo.
Este programa muestra el nombre del estudiante en una LCD y un men en una
terminal virtual, adems pide que en la LCD que muestren los goles marcados y
quien gan. Si se desea comenzar de nuevo el programa se debe presionar el
botn de reset, esto lo lleva al men inicial.
Adems se realiza comunicacin va serial del micro al computador una vez que
se empieza el programa.

2.- Diagrama de Bloques


// Se muestra grficamente las entradas y salidas del proyecto
de tal forma que sea entendible para todos como funciona el
proyecto.

3.- Diagrama de Flujo funcional del Programa principal y de las


subrutinas
Programa Principal:
//Se explica el flujo del programa principal mediante bloques de
accin y bloques de pregunta para as indicar como est
funcionando el programa.
INICIO

CLICK
TECLADO

CUENTA
Y DESPLAZA EN LA LCD
LA POSICION EN LA QUE
SE MUESTRAN LOS
NUMEROS

1
0

PRESS
DIV(/)

MUESTRA CUANTOS
DIGITOS HAN SIDO
INGRESADOS Y LOS
MUESTRA EN LA LCD Y
VIRTUAL TERMINAL

REST

Subrutinas:
//Se describen las subrutinas llamadas por el programa principal
como rutinas de retardo, conteo o rutinas creadas por el mismo
programador.
INICIO
SUBRUTINA

SI MARCA 3
PUNTOS

INCREMENTA EN 3 EL
EQUIPO 1 O 2

1
0

SI MARCA 2
PUNTOS

INCREMENTA EN 2 EL
EQUIPO 1 O 2

REST

4.- Descripcin del algoritmo o estrategia utilizada.


//Se describe detalladamente la forma en que se ha desarrollado
el programa y que se encuentra reflejada en el diagrama de
flujo.
1. Se inicializan la LCD el teclado y la comunicacin USART con una
velocidad de 9600 baudios, esto es importante para poder usar las
funciones de las libreras disponibles..
2. Preguntamos si quiere iniciar el proceso del tablero electrnico
presionando la tecla on, luego se va a la subrutina llamada bsquet...
3. Ejecuta la funcin bsquet incrementado unas variables de tipo contador,
pero este incremento depender del puntaje de tiro que puede ser 3, 2, 1,
esto se lo hace preguntando en el teclado los valores de 4, 5,6 para equipo
1 y 7, 8,9 para el equipo 2.
En todos los programas descritos previamente se utilizar un reloj de 4MHz.

5.- Listado del programa fuente en lenguaje ensamblador con


comentarios en las lneas
de cdigo
que
considere fundamentales
//Se coloca el cdigo del programa funcional.
unsigned short kp=0,i,cnt2=0,cnt=0,sel=0,ini=0; char
txt[8];
char txt2[8];
// Keypad module connections
char keypadPort at PORTD; // End
Keypad module connections
// LCD module connections
sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit; sbit
LCD_D5 at RB1_bit; sbit
LCD_D6 at RB2_bit; sbit
LCD_D7 at RB3_bit;
sbit LCD_RS_Direction at TRISB4_bit; sbit
LCD_EN_Direction at TRISB5_bit; sbit
LCD_D4_Direction at TRISB0_bit; sbit
LCD_D5_Direction at TRISB1_bit; sbit
LCD_D6_Direction at TRISB2_bit; sbit
LCD_D7_Direction at TRISB3_bit;
// End LCD module connections
void Move_Delay() {
// Function used for text moving
Delay_ms(200);
// You can change the moving speed here
}

void basquet(unsigned short kp){


if (kp == 52){
cnt=cnt+3;
}
if (kp == 53){
cnt=cnt+2;
}
if (kp == 54){
cnt=cnt+1;
}
Lcd_Out(1, 4, "Equi1");
if (cnt == 255) {
cnt =
0;
}
WordToStr(cnt, txt);
Lcd_Out(2, 1, txt);

if (kp == 55) {
cnt2=cnt2+3;
}

// Pressed key differs from previous

if (kp == 56) {
cnt2=cnt2+2;
}

// Pressed key differs from previous

if (kp == 57) {
// Pressed key differs from previous
cnt2=cnt2+1;
}
Lcd_Out(1, 9, "Equi2");
if (cnt2 == 255) {
// If counter varialble overflow
cnt2 = 0;
}
WordToStr(cnt2, txt2);
// Transform counter value to string
Lcd_Out(2, 6, txt2);
// Display counter value on Lcd
}

void main() {
ANSEL = 0;
ANSELH = 0;

// Configure AN pins as digital I/O

UART1_Init(9600);
// Initialize USART module
UART1_Write_Text("\n\rPrograma Marcador Electronico:\n\r\n\rBasquet");
Keypad_Init();
Lcd_Init();

// Initialize Keypad
// Initialize Lcd

Lcd_Cmd(_LCD_CLEAR);
// Clear display
Lcd_Cmd(_LCD_CURSOR_OFF);
// Cursor off
Lcd_Out(1, 1, "ANA JIMENEZ G3 P6 2011");
Lcd_Out(2, 1, " PRESS ON"); for(i=0; i<15;
i++) {
Lcd_Cmd(_LCD_SHIFT_RIGHT);
Move_Delay();
}
for(i=0; i<15; i++) {
Lcd_Cmd(_LCD_SHIFT_LEFT);
Move_Delay();
}

do {
kp = 0;

// Reset key code variable

// Wait for key to be pressed and released


do
//kp = Keypad_Key_Press();
// Store key code in kp variable
kp = Keypad_Key_Click();
// Store key code in kp variable while
(!kp);
Lcd_Cmd(_LCD_CLEAR);
// Clear display
Lcd_Cmd(_LCD_CURSOR_OFF);

// Prepare value for output, transform key to it's ASCII value


switch (kp) {
//case 10: kp = 42; break; // '*' // Uncomment this block for keypad4x3
//case 11: kp = 48; break; // '0'
//case 12: kp = 35; break; // '#'
//default: kp += 48;
case 1: kp = 55; break; // 7
// Uncomment this block for keypad4x4
case 2: kp = 56; break; // 8
case 3: kp = 57; break; // 9
case 4: kp
= 65; break; // A
case 5: kp = 52; break; // 4
case 6: kp = 53; break;
// 5
case 7: kp = 54; break; // 6
case 8: kp = 66; break; // B
case
9: kp = 49; break; // 1
case 10: kp = 50; break; // 2
case 11: kp = 51;
break; // 3
case 12: kp = 67; break; // C
case 13: kp = 42; break; // *
case 14: kp = 48; break; // 0
case 15: kp = 35; break; // #
case 16: kp = 68; break; // D
}
if(kp==42){
ini=1;
}
if(ini==1)
basquet(kp);
} while (kp!=35);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Cmd(_LCD_CURSOR_OFF);
if(cnt>cnt2){
Lcd_Out(2, 1, "Gano J1");
}
if(cnt2>cnt){
Lcd_Out(2, 1, "Gano J2");
}
if(cnt2==cnt){
Lcd_Out(2, 1, "EMPATE");
}
}

// Clear display

6.- Copia impresa del circuito armado en PROTEUS para la


simulacin en el momento de su ejecucin
//Se debe mostrar cmo est funcionando el proyecto en forma
dinmica tal como se muestra la figura y colocar su nombre y el
de su compaero de trabajo en la captura de Proteus.

7.- Conclusiones
//Se debe de tener como mnimo 5 lneas completas por cada
conclusin, sin errores ortogrficos ya que esto trae una
penalidad en su informe. Se debe hablar sobre los puntos u
objetivos logrados durante la prctica.

Se logr aprender de forma clara cada una de las sentencias que se usan en
lenguaje C y sus diferentes formas de uso, lo cual me permiti realizar el
proyecto de forma secuencial y entendible para cualquiera de mis
compaeros en este curso, sin importar las veces que se usen estas

funciones lo importante es saber si solucionan el problema que se nos


presenta en cada lnea de programacin.

Se hizo uso de las libreras de LCD, UART y teclado para la realizacin de


este proyecto ya que se deban cumplir varias funciones al mismo tiempo, por
un lado se preguntaba por la botonera y por otro se iba o diriga a una funcin
que permita sostener el marcador de bsquet. Con esto se aprendi a
combinar funciones para un mejor entendimiento del proceso de
programacin con microcontroladores.

Se puede concluir como punto final que cuando se usa este tipo de programas
con lenguaje C se debe de tener cuidado de seguir un orden bien
estructurado. En el presente trabajo se orden la ejecucin de funciones en
tal forma que el funcionamiento se lo pueda ir probando por partes. Cuando
se usan varias funciones estas deben de ejecutarse y luego tener valores de
retorno al programa principal.

8.- Recomendaciones
//Se debe de tener como mnimo 3 lneas completas por cada
conclusin, no errores ortogrficos ya que esto trae una
penalidad en su informe. Se debe hablar de los problemas que
se tuvo durante la prctica.

Se recomienda no confiar en un totalmente en los resultados que se obtienen


con el simulador de PROTEUS, hay que tener siempre en cuenta que una
cosa es simulacin y otra muy diferente es la vida real en la que aparecen
muchas sorpresas.

No es recomendable corregir el programa sin tener una ltima copia del


mismo ya que un cambio podra provocar problemas e impedir la compilacin
y ahogarse en un vaso con agua. El orden es el mejo aliado para evitarse
problemas futuros.

Reducir el nmero de lneas es bueno para un mejor uso en la memoria del


PIC y evitar el desperdicio de la misma, adems se evita redundancias que
podran confundir a otro programador que quiera comprender el informe del
proyecto.

9.- Anexos
//En esta seccin colocaremos el anexo que va adjunto a la prctica
correspondiente para proceder a resolver los cuestionamientos que se
hacen de la misma, adems en caso de existir tarea, aqu tambin van las
tareas de investigacin enviadas por el profesor durante la clase.

ANEXO DE RESPUESTAS A PRACTICA #1

INTEGRANTE 1: ______________________________

INTEGRANTE 2: ______________________________

PARALELO: _____

GRUPO: _____

Indique la funcin que desempean cada uno de los


siguientes conos:

Run .-

Halt.-

Animate.-

Tareas:
1) Investigar el funcionamiento del timer 0 y timer 1.
2) Cul es el ciclo de trabajo de la instruccin goto.

Vous aimerez peut-être aussi