
Programa ensamblador a Proteus
Publicado por Rodrigo (1 intervención) el 17/12/2020 22:20:38
muestro el funcionamiento del codigo en Proteus y pero no llego a comprenderlo por completo para explicarlo
[/code]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
;Ensamblar y simular el siguiente programa para su presentación con PROTEUS.
;SEGUNDO.ASM Programa que lee el n£mero binario introducido mediante 3
;interruptores conectados a la puerta PA (RA0,RA1,RA2), luego suma 2 unidades
;a ese valor y visualiza el resultado mediante 4 diodos led conectados a la
;puerta PB (RB0, RB1,RB2,RB3).
;----------------------------------------------------------------------------
LIST P=16C84 ;Comando que indica el PIC usado
RADIX HEX ;Los valores se representar n en hexadecimal
;----------------------------------------------------------------------------
PUERTAA EQU 0X05 ;La etiqueta "PUERTAA" queda identificada con
;la direcci¢n 0x05, que si corresponde con el
;banco 0 es el valor de PUERTAA y si es del
;banco 1 con el de TRISA.
PUERTAB EQU 0X06 ;Equivalencia de la etiqueta PUERTAB
ESTADO EQU 0X03 ;Estado corresponde con el valor 0x03.
W EQU 0 ;Identifica W con el valor 0.
;----------------------------------------------------------------------------
ORG 0 ;Comando que indica al Ensamblador la
;direcci¢n de la memeoria donde se
;situar la instruci¢n siguiente
;----------------------------------------------------------------------------
bsf ESTADO,5 ;Pone a 1 el bit 5 de ESTADO para direccionar
;la pagina 1 de la memoria de datos.
movlw 0xff ;W <-- FF(Hex)
movwf PUERTAA ;W --> TRISA
movlw 0x00 ;W <-- 0
movwf PUERTAB ;W --> TRISB (Las l¡neas de PB salidas)
bcf ESTADO,5 ;Pone a 0 el bit 5 de ESTADO pasando a
;acceder al banco 0.
inicio movf PUERTAA,W ;W <-- PUERTAA. Se introduce el valor binario
;de los interruptores.
addlw 2 ;W <-- W + 2
movwf PUERTAB ;W --> PUERTAB. El valor de W sale por las
;l¡neas de PB a los led.
goto inicio ;Salta a la instrucci¢n precedida por la
;etiqueta de inicio.
END
Valora esta pregunta


0