Procesador: Es
una dispositivo digital capaz de ejecutar una
|
serie de tareas por medio de una secuencia
de instrucciones
|

Intel 4004: Primer microprocesador (1971)
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Propósito General
|
Microprocesadores
|
Dedicados
|
Microcontroladores
|
DSP
ASIC
|
Diferencias entre up y MCU
|
Un microprocesador es un sistema
abierto con el que puede construirse una
|
computadora con las características
deseadas, acoplándole los periféricos y
|
Un microcontrolador es un sistema
cerrado que contiene una computadora
|
El lenguaje ensamblador (código
simbólico) es un tipo de lenguaje
|
de bajo nivel utilizado para escribir
programas de computadora, y
|
constituye la representación más directa
del código máquina específico
|
para cada arquitectura de computadoras legible por un programador
El lenguaje ensamblador es denominado de
bajo nivel debido a su
|
interacción con los recursos del
procesador del microcontrolador, por
|
lo que es necesario tener un conocimiento
detallado de los mismos.
|
Ventajas:
|
Velocidad
|
Eficiencia de tamaño (del código
ejecutable)
|
Flexibilidad
|
Desventajas:
|
Tiempo de programación
|
Programas fuente grandes
|
Peligro de afectar recursos
inesperadamente
|
Falta de portabilidad.
|
;1.3 Diseñe un programa que encienda y apague el puerto B
;cada intervalo de tiempo definido por el nibble bajo del
;puerto A, en milisegundos
LIST P=16F628A
#INCLUDE ¨P16F628A.INC¨
__CONFIG 0X3D18
CBLOCK 20
CUENTA
CUENTA
DATO
ENDC
ORG 0X00
GOTO INICIO
ORG 0X05
INICIO MOVLW 0X07
MOVWF CMCON
BCF STATUS,5
MOVLW 0XFF
MOVWF TRISA
CLRF TRISB
BSF STATUS,5
DENUEVO MOVF PORTA,W ;SEPARAMOS EL NIBLE BAJO
ANDLW 0X0F ;DEL PUERTO A
MOVWF DATO
TIEMPO CALL RETARDO
DECFSZ DATO,W ;DECREMENTAMOS DATO
GOTO TIEMPO
MOVLW 0XFF ;ENCENDEMOS PUERTO B
MOVWF PORTB
TIEMPO2 CALL RETARDO
DECFSZ DATO,W
GOTO TIEMPO2
CLRF PORTB ;BORRAMOS SALIDA
GOTO DENUEVO
RETARDO MOVLW .100 ;RETARDO FORMULA (4M+3MN+3)
MOVWF CUENTA2 ;(4*100+3*100*2*3)= 1003 MICRO SEG.
CICLO2 MOVLW .2 ;= APROXIMADO A 1 MILISEGUNDO
MOVWF CUENTA
CICLO DECFSZ CUENTA,F
GOTO CICLO
DECFSZ CUENTA2,F
GOTO CICLO2
RETURN
END
- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;1.5 Diseñe un programa que encienda la cantidad de pines del
;puerto B especificados por el nibble bajo del puerto A
LIST P=16F628A
INCLUDE ¨P16F628A.INC¨
__CONFIG 0X3D18
CBLOCK 20H
NUMERO
ENDC
ORG 0X00
GOTO INICIAR
ORG 0X05
INICIAR
MOVLW 0X07
MOVWF CMCON
BCF STATUS,5
MOVLW 0XFF
MOVWF TRISA
CLRF TRISB
BSF STATUS,5
DENUEVO MOVF PORTA,W ;SEPARAMOS EL NIBLE BAJO
ANDLW 0X0F ;DEL PUERTO A
CALL TABLA
GOTO SALIR
TABLA ADDWF PCL,F ;ADQUIRIMOS VALOR DE TABLA
RETLW 0XOO
RETLW 0X01
RETLW 0X03
RETLW 0X07
RETLW 0X0F
RETLW 0X1F
RETLW 0X3F
RETLW 0X7F
RETLW 0XFF
SALIR MOVWF PORTB ;SACAMOS EL VALOR DE TABLA
GOTO DENUEVO ;POR EL PUERTO B E INICIAMOS EL PROGRAMA
END
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;1.7 Diseñe un programa que muestre un contador ascendente o
;descendente en un display de 7 segmentos
;dependiendo de un bit del puerto A, si el bit es “0” el display
;de 7 segmentos contará descendente, si es “1”
;contará de manera ascendente. El conteo será cada 0.5 segundos.
LIST P=16F628A
INCLUDE ¨P16F628A.INC¨
__CONFIG 0X3D18
CBLOCK 20H
VARIABLE
CUENTA
CUENTA2
CUENTA3
ENDC
ORG 0X00
GOTO INICIAR
ORG 0X05
INICIAR
MOVLW 0X07
MOVWF CMCON
BCF STATUS,5
MOVLW 0XFF
MOVWF TRISA
CLRF TRISB
BSF STATUS,5
PRINCIPAL CLRF VARIABLE
BTFSS PORTA,1
GOTO PRINCIPAL
GOTO CONTAR
DECREMENTO CALL RETARDO
MOVLW 0X08 ;NUMERO = 8
SUBWF VARIABLE
BTFSC STATUS,Z
GOTO IGUALA8
INCF VARIABLE,F
MOVF VARIABLE,W
CALL TABLA
CALL DISPLAY7
BTFSC PORTA,1
GOTO DECREMENTO
GOTO INCREMENTO
TABLA ADDWF PCL,F ;ADQUIRIMOS VALOR DE TABLA
RETLW 0X3F ;0
RETLW 0X06 ;1
RETLW 0X5B ;2
RETLW 0X47 ;3
RETLW 0X66 ;4
RETLW 0X6D ;5
RETLW 0X7D ;6
RETLW 0X07 ;7
IGUALA8 CLRF NUMERO
GOTO DECREMENTO
DISPLAY7 MOVWF PORTB
GOTO DECREMENTO
INCREMENTO CALL RETARDO
MOVLW 0X08 ;NUMERO = 8
SUBWF VARIABLE
BTFSC STATUS,Z
GOTO IGUALA82
DECF VARIABLE,F
MOVF VARIABLE,W
CALL TABLA
CALL DISPLAY72
BTFSS PORTA,1
GOTO INCREMENTO
GOTO DECREMENTO
IGUALA82 CLRF NUMERO
GOTO INCREMENTO
DISPLAY72 MOVWF PORTB
GOTO INCREMENTO
RETARDO
MOVLW .9 ;RETARDO DE MEDIOSEGUNDO (4MP+3MNP+AP+3)
MOVWF CUENTA3 ;P(60404)+3 =5436663 MICROSEG =.5 SEGUNDOS
CICLO3 MOVLW .100 ;M
MOVWF CUENTA2
CICLO2 MOVLW .200 ;N
MOVWF CUENTA
CICLO DECFSZ CUENTA,F
GOTO CICLO
DECFSZ CUENTA2,F
GOTO CICLO2
DECFSZ CUENTA3,F
GOTO CICLO3
RETURN
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;1.8 Simule un dado electrónico, el puerto B despliega del 1 al 6
;mientras se mantenga presionado el pin RA4 el
;puerto desplegará continuamente de 1 al 6, al dejar de presionarse
;deberá mostrar el último valor visualizado
LIST P=16F628A
INCLUDE ¨P16F628A.INC¨
__CONFIG 0X3D18
CBLOCK 20H
NUMERO
ENDC
ORG 0X00
GOTO INICIAR
ORG 0X05
INICIAR
MOVLW 0X07
MOVWF CMCON
BCF STATUS,5
MOVLW 0XFF
MOVWF TRISA
CLRF TRISB
BSF STATUS,5
CLRF NUMERO
REPITE
BTFSS PORTA,4 ;CHECAMOS SI FUE PRESIONADO RA4
GOTO REPITE ;SI NO ES PRESIONADO REPITE
GOTO DADO
DADO
MOVLW 0X07 ;NUMERO = 7?
SUBWF NUMERO
BTFSC STATUS,Z
GOTO IGUALA7 ;NUMERO IGUAL A 7 SALE Y BORRA
DECF NUMERO,F ;SIGUE PROGRAMA Y DECREMENTA NUMERO
BTFSC PORTA,4 ;VEMOS SI SE SOLTO BOTON
GOTO DADO
GOTO SALIR
IGUALA7 CLRF NUMERO ;BORRA NUMERO
GOTO DADO
SALIR MOVF NUMERO,W ;VISUALISAMOS EL NUMERO
MOVWF PORTB
GOTO REPITE
END
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
; 1.9 Diseñe un programa que lea el puerto A y
; muestre los bits impares invertidos en el puerto B
LIST P=16F628A
INCLUDE ¨P16F628A.INC¨
__CONFIG 0X3D18
CBLOCK 20H
NUMERO
ENDC
ORG 0X00
GOTO INICIAR
ORG 0X05
INICIAR
MOVLW 0X07
MOVWF CMCON
BCF STATUS,5
MOVLW 0XFF
MOVWF TRISA
CLRF TRISB
BSF STATUS,5
PROGRAMA MOVF PORTA,W
XORLW 0XAA
MOVWF PORTB
GOTO PROGRAMA
END
0 comentarios:
Publicar un comentario