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.