PROYECTO AULA
lunes, 7 de diciembre de 2015
Presentación de nuestro proyecto.
El día lunes 7 de Diciembre se llevo a acabo la presentación de nuestro proyecto en el área de Sistemas Digitales donde se realizo la revisión de nuestros profesores y la observación de nuestro compañeros.
miércoles, 25 de noviembre de 2015
Ensamblado del proyecto
Por ultimo adaptamos los limit switch en las casillas del tablero y soldamos alambre para que alcanzara a nuestro circuito y conectarlo a la protoboard con todo el sistema de desarrollo, afinamos los últimos detalles y lo probamos para ver si todo estaba correctamente y si funcionaba tal y como queríamos.
miércoles, 4 de noviembre de 2015
Armado de nuestro circuito.
Para saber como íbamos hacer nuestro circuito, nos guiamos en una practica de nuestro profesor de Arquitectura de Microprocesadores y Microcontroladores, Jesus Alberto Vargas Olivares, la cual consistía en programar nuestro PIC 16F877A para que mandara un mensaje, así que la tomamos como idea principal pero la mejoramos ya que le agregamos push button para que dependiendo del push button que se presionara mandara el mensaje correspondiente y se mantuviera en los displays por cierto tiempo, ademas nos apoyamos de nuestra placa de desarrollo donde va el PIC 16F877A y sus salidas correspondientes (Puerto A, B, C y D).
Circuito:
Codigo del PIC 16F877A:
; INSTITUTO POLITECNICO NACIONAL.
;CECYT 9 JUAN DE DIOS BATIZ.
PRACTICA PROYECTO AULA
;TABLERO ELECTRONICO
;EQUIPO: 4 GRUPO:
5IM3.
;INTEGRANTES:
;1.- FRAGOSO PALACIOS DAVID
;2.- GARCIA ROJAS TREVIÑO OSCAR
;3.- RUIZ BAUTISTA LUIS DAVID
;4.- VAZQUEZ NAVARRETE SERGIO IVAN
;-------------------------------------------------------------------------------------------------
list p=16f877a;
#include
"C:\Program Files (x86)\Microchip\MPASM Suite\P16F877A.inc";
__CONFIG
_CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _XT_OSC &
_WRT_OFF & _LVP_OFF & _CPD_OFF;
;---------------------------------------------------------------------------------------------------
;Definicion de valiables del programa en RAM.
var_ent equ 0x20;
var_respaldo equ 0x21;
var_disp1 equ 0x24;
var_disp2 equ 0x25;
var_disp3 equ 0x26;
var_disp4 equ 0x27;
var_disp5 equ 0x28;
var_disp6 equ 0x29;
var_disp7 equ 0x2A;
var_disp8 equ 0x2B;
Contador1 equ 0x2C;
Contador2 equ 0x2D;
Contador3 equ 0x2E;
;--------------------------------------------------------------------------------------------------------------
;Definicion de los BITS de cada una de las variables.
bit_ent0 equ .0;
bit_ent1 equ .1;
bit_ent2 equ .2;
bit_ent3 equ .3;
bit_ent4 equ .4;
bit_ent5 equ .5;
bit_ent6 equ .6;
bit_ent7 equ .7;
;--------------------------------------------------------------------------------------------------------------
;Definicion de las constantes a utilizar.
M equ .200
N equ .100
L equ .10
;Definicion de caracteres en siete segmentos.
Car_0 equ
0x3F;
Car_1 equ
0x06;
Car_2 equ
0x5B;
Car_3 equ
0x4F;
Car_4 equ
0x66;
Car_5 equ
0x6D;
Car_6 equ
0x7D;
Car_7 equ
0x47;
Car_8 equ
0x7F;
Car_9 equ
0x6F;
Car_A equ
0x77;
Car_B equ
0x7C;
Car_C equ
0x39;
Car_D equ
0x5E;
Car_E equ
0x79;
Car_F equ
0x71;
Car_G equ 0x7D;
Car_I equ 0x06;
Car_N equ 0x54;
Car_O equ 0x3F;
Car_R equ 0x50;
Car_S equ 0x6D;
Car_P equ 0x73;
Car_T equ 0x78;
Car_. equ
0x80;
Car_null equ
0x00;
Car_H equ 0x76;
;-------------------------------------------------------------------------------------------------------------------
;Definicion de puertos. I/O.
;Puerto A.
P_Ganaste equ .0;
P_Perdiste equ .1;
PB_CON_NUM equ .2;
Sin_UsoRA3 equ .3;
Sin_UsoRA4 equ .4;
Sin_UsoRA5 equ .5;
progA equ
B'111111';definicion de la configuracion de los bits del puerto A.
;Puerto B.
Dsw_B0 equ .0;
Dsw_B1 equ .1;
Dsw_B2 equ .2;
Dsw_B3 equ .3;
Dsw_B4 equ .4;
Dsw_B5 equ .5;
Dsw_B6 equ .6;
Dsw_B7 equ .7;
progB equ
B'11111111';definicion de la configuracion de los bits del puerto B.
;Puerto C.
Seg_a equ .0;
Seg_b equ .1;
Seg_c equ .2;
Seg_d equ .3;
Seg_e equ .4;
Seg_f equ .5;
Seg_g equ .6;
Seg_dp equ .7;
progC equ
B'00000000';definicion de la configuracion de los bits del puerto C.
;Puerto D.
Disp_1 equ .0;
Disp_2 equ .1;
Disp_3 equ .2;
Disp_4 equ .3;
Disp_5 equ .4;
Disp_6 equ .5;
Disp_7 equ .6;
Disp_8 equ .7;
progD equ
B'00000000';definicion de la configuracion de los bits del puerto D.
;Puerto E.
Sin_UsoRE0 equ .0;
Sin_UsoRE1 equ .1;
Sin_UsoRE2 equ .2;
progE equ
B'111';definicion de la configuracion de los bits del puerto E.
;---------------------------------------------------------------------------------------------------------------
;================
;==Vector
Reset==
;================
org
0000h;
vec_reset clrf pclath;
goto
prog_prin;
;---------------------------------------------------------------------------------------------------------------
;===============================
;==Subrutina
de interrupciones==
;===============================
org
0004h;
nop;
vec_int
retfie;
;---------------------------------------------------------------------------------------------------------------
;=====================================
;==Subrutina
de ini. de reg. del PIC==
;=====================================
prog_ini bsf
status,RP0;
movlw
0x81;
movwf
option_reg ^0x80;
movlw
progA;
movwf
trisA ^0x80;
movlw
progB;
movwf
trisB ^0x80;
movlw
progC;
movwf
trisC ^0x80;
movlw
progD;
movwf
trisD ^0x80;
movlw
progE
movwf
trisE ^0x80;
movlw 0x06;
movwf adcon1 ^0x80;
bcf
status,RP0; ponte en el banco 0 de RAM.
clrf
portd; ini.
clrf
portc;
return;
;---------------------------------------------------------------------------------------------------------------
;======================
;==Programa
principal==
;======================
prog_prin call
prog_ini;
repite
clrf
portd; ini.
clrf
portc;
btfss
porta,P_Ganaste;
call
muestra_ganaste;
btfss
porta,P_Perdiste;
call
muestra_perdiste;
goto repite;
;---------------------------------------------------------------------------------------------------------------
muestra_ganaste
movlw
L;
movwf
Contador3;
Loop3 movlw
M;
movwf
Contador2;
Loop2 movlw
N;
movwf
Contador1;
Loop1
movlw
Car_G ; Mueve el
contenido de la variable del display 8 al registro w.
movwf
portc ;
Mueve el contenido del registro w al puerto C bsf
portd, Disp_8 ;
Da el bit para cargar el dato al Display 8 del puerto D.
bsf
portd,Disp_8;
bcf portd,Disp_8 ; Borra el bit.
movlw Car_A;
movwf portc;
bsf portd,Disp_7;
bcf portd,Disp_7;
movlw Car_N;
movwf portc;
bsf portd,Disp_6;
bcf portd,Disp_6;
movlw Car_A;
movwf portc;
bsf portd, Disp_5;
bcf portd,Disp_5;
movlw Car_S;
movwf portc;
bsf portd, Disp_4;
bcf portd,Disp_4;
movlw Car_T;
movwf portc;
bsf portd, Disp_3;
bcf portd,Disp_3;
movlw Car_E;
movwf portc;
bsf portd, Disp_2;
bcf portd,Disp_2;
movlw Car_Null;
movwf portc;
bsf portd,Disp_1;
bcf portd,Disp_1;
decfsz
Contador1,f;
goto
Loop1;
decfsz
Contador2,f;
goto
Loop2;
decfsz
Contador3,f;
goto
Loop3;
return;
muestra_perdiste
movlw
L;
movwf
Contador3;
Loop3a movlw
M;
movwf
Contador2;
Loop2a movlw
N;
movwf
Contador1;
Loop1a
movlw
Car_P; ; Mueve el
contenido de la variable del display 8 al registro w.
movwf
portc ;
Mueve el contenido del registro w al puerto C bsf portd, Disp_8 ; Da el bit para
cargar el dato al Display 8 del puerto D.
bsf
portd,Disp_8;
bcf portd,Disp_8 ; Borra el bit.
movlw
Car_E;
movwf
portc;
bsf
portd,Disp_7;
bcf
portd,Disp_7;
movlw
Car_R;
movwf
portc;
bsf
portd,Disp_6;
bcf
portd,Disp_6;
movlw
Car_D;
movwf
portc;
bsf
portd, Disp_5;
bcf
portd,Disp_5;
movlw
Car_I;
movwf
portc;
bsf
portd, Disp_4;
bcf
portd,Disp_4;
movlw
Car_S;
movwf
portc;
bsf
portd, Disp_3;
bcf
portd,Disp_3;
movlw
Car_T;
movwf
portc;
bsf
portd, Disp_2;
bcf
portd,Disp_2;
movlw
Car_E;
movwf
portc;
bsf
portd,Disp_1;
bcf
portd,Disp_1;
decfsz
Contador1,f;
goto
Loop1a;
decfsz
Contador2,f;
goto Loop2a;
decfsz
Contador3,f;
goto
Loop3a;
return;
;------------------------------------------------------------------------
goto
repite;
;---------------------------------------------------------------------------------------------------------------
end
Armado de circuito.
Suscribirse a:
Comentarios (Atom)








