|
CICLO FORMATIVO D.P.E. Autor: Jorge Luis Alba Ramas Profesor de apoyo: Juan Muñoz
|
||||
|---|---|---|---|---|
|
|
|
|||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
|
|
||
|
|
|
|
|
|
|
|
||||
|
|
||||
|
|
||||
|
|
|
|||
|
INTRODUCCIÓN |
|
|
MUESTREO DE NUMEROS
El proyecto consiste en como nuestro ya conocido Pic16F84 realiza una muestra de números aleatorios mostrándolos durante un tiempo determinado en ocho displays de Cátodo Común. En este proyecto deberemos utilizar el Pic de tal forma que al realizar el programa en el entorno ensamblador no tengamos que realizar ninguna pulsación en los pulsadores, de tal forma que en la placa a realizar no introduzcamos ningún pulsador. El procedimiento que seguiría seria: El Pic16f84 envía la información en forma de numero, el cual se ve reflejado en los displays correspondientes, dependiendo del numero a mostrar, dicho numero deberá permanecer mostrado durante un tiempo determinado o durante el retardo que al Pic se le haya determinado. El numero desaparecerá dejando apagados los displays y esperando la aparición del siguiente numero, el cual funcionara del mismo modo, es decir, aparecerá el numero aguantara el tiempo determinado y desaparecerá, y así sucesivamente para todos los demás números que tengan que aparecer del mismo modo.
|
|
PIC16F84A
|
|
|
|
|
|
|
|
|
CANTIDAD |
TIPO |
DENOMINACION |
Precio Unitario PTS |
|
1 |
26 Pines |
Conector Bus |
150 |
|
1 |
SN74LS373 |
Integrado |
100 |
|
1 |
SN74LS42 |
Integrado |
250 |
|
8 |
BC549B |
Transistor |
25 |
|
8 |
BC559B |
Transistor |
25 |
|
8 |
SC52-11HWA |
Display de Cátodo Común |
230 |
|
1 |
PIC16F84 |
Integrado |
500 |
|
2 |
18 Pines |
Zocalo |
36 |
|
1 |
16 Pines |
Zocalo |
35 |
TOTAL PROYECTO
|
|
|
|
Este es el esquematico realizado para mi proyecto:
Esta seria la placa o board que tendria mi proyecto:
|
|
|
|
|
|
Este seria mi programa en lenguaje ensamblador. (El programa no funciona de forma correcta pues contiene ciertos fallos).
; Fichero : 8Disp.asm ; Autor : Jorge Luis Alba ; Fecha: Diciembre 2001. ; Version: 0.0 ; Sistema RAD-MICROS. ; Placa Microcontroladora: micro-p1684. ; Placa de Aplicaciones: apli-mostrador. ; Placa de programaci¢n: Programador Universal Superpro II/P.(XELTEK) ; Bus: bus-26. ; Codigo para: PIC16C84A y PIC16F84 ; Clock: 4MHz , XT. -> Ciclo = 1 uS. ; Reset: Power On Reset. ; Watch dog: Inhabilitado. ; Proteccion de codigo: Inhabilitado. ; Ficheros requeridos: H16f84a.inc ; Funcion :Muestra numeros en displays de 7 segmentos ;############################################################################# LIST p=PIC16F84A ;Directiva para definir micro #include <H16f84a.inc> ;Fichero standar de cabezera
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
;############################# DEFINICIONES ##################################### w_temp EQU 0x0C ;Variable para guardar W status_temp EQU 0x0D ; Variable para guardar STATUS con0 EQU 0x0E ;Variable de temporizacion con1 EQU 0x0F ; Variable de temporizacion con2 EQU 0x10 ;Variable de temporizacion uno_d EQU 0x11 ;display 1 dos_d EQU 0x12 ;display 2 tres_d EQU 0x13 ;display 3 cuatro_d EQU 0x14 ;display 4 cinco_d EQU 0x15 ;display 5 seis_d EQU 0x16 ;display 6 siete_d EQU 0x17 ;display 7 ocho_d EQU 0x18 ;display 8
;################### Comienzo de programa ###################################### ORG 0x00 ;Vector de Reset GOTO inicio ;Programa Principal ;####################### Tratamiento de interrupciones ############################### ORG 0x04 ;Vector de interrupcion MOVWF w_temp ;Guarda W MOVF STATUS,W MOVWF status_temp ;Guarda STATUS
BCF INTCON,GIE DECFSZ con0,F ;salta si tiempo =1 seg MOVLW 0x3D ;Variable para temporizar MOVWF con0 ;con0 x divisor x TMR0 = 1 segundo BCF INTCON,T0IF BSF INTCON,GIE
;Tratamos el primer display INCF uno_d,F MOVF uno_d,W SUBLW 0x0A ;10 (uno_d) --> W BTFSS STATUS,Z ; Si Z=1=> (uno_d)=10 MOVLW 0X00 MOVWF uno_d ;0 --> uno_d
;Tratamos el segundo display INCF dos_d,F MOVF dos_d,W SUBLW 0x0A BTFSS STATUS,Z MOVLW 0X00 MOVWF dos_d
;Tratamos el tercer display INCF tres_d,F MOVF tres_d,W MOVLW 0x0A BTFSS STATUS,Z MOVLW 0X00 MOVWF tres_d
;Tratamos el cuarto display INCF cuatro_d,F MOVF cuatro_d,W MOVLW 0x0A BTFSS STATUS,Z MOVLW 0X00 MOVWF cuatro_d
;Tratamos el quinto display INCF cinco_d,F MOVF cinco_d,W MOVLW 0x0A BTFSS STATUS,Z MOVLW 0X00 MOVWF cinco_d
;Tratamos el sexto display INCF seis_d,F MOVF seis_d,W MOVLW 0x0A BTFSS STATUS,Z MOVLW 0X00 MOVWF seis_d
;Tratamos el septimo display INCF siete_d,F MOVF siete_d,W MOVLW 0x0A BTFSS STATUS,Z MOVLW 0X00 MOVWF siete_d
;Tratamos el octavo display INCF ocho_d,F MOVF ocho_d,W MOVLW 0x0A BTFSS STATUS,Z MOVLW 0X00 MOVWF ocho_d
;####################### PROGRAMA PRINCIPAL ################################ inicio BSF STATUS,RP0 ;banco 1 MOVWF TRISB ;Configuracion PORTB CLRF TRISA BCF STATUS,RP0 ;banco 0 CLRF INTCON MOVLW 0x3F ;Variable para temporizar CLRF uno_d ;uno_d=0 CLRF dos_d ; dos_d=0 CLRF tres_d ;tres_d=0 CLRF cuatro_d ;cuatro_d=0 CLRF cinco_d ;cinco_d=0 CLRF seis_d ;seis_d=0 CLRF siete_d ;siete_d=0 CLRF ocho_d ;ocho_d=0 MOVLW B'10100000' ;Habilitamos interrupciones T0IE MOVWF INTCON
bucle CALL display GOTO bucle
######################################################################### ;Rutina: display ;Funcion: Muestra informacion en displays 7 segmentos ;Entrada: uno _ d, dos _ d, tres _ d, cuatro _ d, cinco _ d, seis _ d, siete _ d, ocho _ d ;Salida: nada ;Variables utilizadas: nada ;##########################################################################
display MOVF uno_d,W ; Visualizo display 1 MOVWF PORTA BSF PORTB,0 CALL delay BCF PORTB,0
MOVF dos_d,W ;Visualizo display 2 MOVWF PORTA BSF PORTB,1 CALL delay BCF PORTB,1
MOVF tres_d,W ;Visualizo display 3 MOVWF PORTA BSF PORTB,2 CALL delay BCF PORTB,2
MOVF cuatro_d,W ;Visualizo display 4 MOVWF PORTA BSF PORTB,3 CALL delay BCF PORTB,3
MOVF cinco_d,W ;Visualizo display 5 MOVWF PORTA BSF PORTB,4 CALL delay BCF PORTB,4
MOVF seis_d,W ;Visualizo display 6 MOVWF PORTA BSF PORTB,5 CALL delay BCF PORTB,5
MOVF siete_d,W ;Visualizo display 7 MOVWF PORTA BSF PORTB,6 CALL delay BCF PORTB,6
MOVF ocho_d,W ;Visualizo display 8 MOVWF PORTA BSF PORTB,7 CALL delay BCF PORTB,7
RETURN ;########################################################################### ;Rutina: delay ;Funcion: Produce un retardo ;Entrada: nada ;Salida: nada ;Variables utilizadas: con1, con2 ;########################################################################## delay CLRF con1 MOVLW 0x05 MOVWF con2
loop DECFSZ con1,F GOTO loop DECFSZ con2,F GOTO loop RETURN
;########################### FIN DE PROGRAMA #####################
END ;Fin de Programa
|
|
|
|
|
|
|
|
Para realizar el proyecto he consultado las siguientes fuentes de datos: Principalmente he seguido un fichero patron realizado por el profesor para la toma de referencia de como debia ser la forma de este proyecto. Tambien utilice las distintas paginas de internet, como: -Google: Utilizado como buscador en toda la cuestion grafica, como gifs, y demas imagenes. Otros programas de interes: Eagle, programa para la realizacion de Esquematicos, con este programa he realizado el esquematico y la board que se pueden ver en mi proyecto. Entorno ASM, utilizado en la realizacion del programa. Libros de consulta: ->Curso de microcontroladores Pic, utilizado como modelo en la realizacion de programa en ensamblador. ->PIC 16F8X, libro informativo acerca de todo lo relativo al funcionamiento del PIC16F84A ->Manuales de Lenguaje Ensamblador.
|
|
|
Este proyecto ha sido realizado por el alumno del Segundo curso del Modulo de Grado Superior de Desarrollo de Productos Electronicos, para la clase de Desarrollo de Proyectos de Productos Electronicos JORGE LUIS ALBA RAMAS.
|
|
|
|
|
|
|