📄 ejem_12.asm
字号:
;
; EJEMPLO 12
; Autor: Mikel Etxebarria
; (c) Ingenier韆 de Microsistemas Programados S.L.
; www.microcontroladores.com
; Bilbao 2006
;
;El Display de 7 segmentos. Decodificador hex. BCD a 7 segmentos.
;
;Mediante los cuatro interruptores RA0-RA3 se introduce un valor hexadecimal de 4 bits
;que debe visualizarse sobre el display.
List p=16F876A ;Tipo de procesador
include "P16F876A.INC" ;Definiciones de registros internos
;Ajusta los valores de la palabra de configuraci髇 durante el ensamblaje:
;protecci髇 de c骴ig y datos=OFF, LVP=OFF, WDT=OFF y OSC=XT
__config _CP_OFF&_CPD_OFF&_LVP_OFF&_WDT_OFF&_XT_OSC
org 0x00 ;Vector de RESET
goto Inicio
org 0x05
;**********************************************************************************
;Tabla: Esta rutina convierte el c骴igo binario presente en los 4 bits de menos peso
;del reg. W en su equivalente a 7 segmentos. Para ello el valor de W se suma al valor actual
;del PC. Se obtiene un desplazamiento que apunta al elemento deseado de la tabla.El c骴igo 7
;segmentos retorna tambi閚 en el reg. W.
Tabla: addwf PCL,F ;Desplazamiento sobre la tabla
retlw b'00111111' ;D韌ito 0
retlw b'00000110' ;D韌ito 1
retlw b'01011011' ;D韌ito 2
retlw b'01001111' ;D韌ito 3
retlw b'01100110' ;D韌ito 4
retlw b'01101101' ;D韌ito 5
retlw b'01111101' ;D韌ito 6
retlw b'00000111' ;D韌ito 7
retlw b'01111111' ;D韌ito 8
retlw b'01100111' ;D韌ito 9
retlw b'01110111' ;D韌ito A
retlw b'01111100' ;D韌ito B
retlw b'00111001' ;D韌ito C
retlw b'01011110' ;D韌ito D
retlw b'01111001' ;D韌ito E
retlw b'01110001' ;D韌ito F
Inicio clrf PORTB ;Borra los latch de salida
bsf STATUS,RP0 ;Selecciona banco 1
clrf TRISB ;Puerta B se configura como salida
movlw 0x06
movwf ADCON1 ;Puerta A digital
movlw b'00111111'
movwf TRISA ;Puerta A se configura como entrada
bcf STATUS,RP0 ;Selecciona banco 0
Loop movf PORTA,W
andlw b'00001111' ;Lee el c骴igo de RA0-RA3
call Tabla ;Convierte a 7 segmentos
movwf PORTB ;Visualiza sobre el display
goto Loop
end ;Fin del programa fuente
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -