You are on page 1of 4

ETM 380 - Prctica Nro.

3
INTRODUCCIN A LA PROGRAMACIN EN LENGUAJE ASSEMBLER
Ejercicios Resueltos
1. Programa que lea un nmero de 6 bytes por el puerto A y muestra el nmero
complementado por el puerto B.
Diagrama del circuito

Programa
list p=16f877a
include "p16f877.inc"

aux equ h'20'
bsf STATUS,RP0 ;Ir a banco 1
bcf STATUS,RP1

movlw b'00000110' ;Conf PORTA como digital
movwf ADCON1

movlw b'00111111' ;PORTA como entrada
movwf TRISA
clrf TRISB ;PORTB como salida

bcf STATUS,RP0 ;Ir a banco 0
bcf STATUS,RP1
ciclo movf PORTA,W
movwf aux
comf aux,W
movwf PORTB
goto ciclo
end

O
F
F
O
N
12345678
1
6
1
5
1
4
1
3
1
2
1
1
1
09
DSW1
DIPSW_8
R1
330
R2
330
R3
330
R4
330
R5
330
R6
330
RA0/AN0
2
RA1/AN1
3
RA2/AN2/VREF-/CVREF
4
RA4/T0CKI/C1OUT
6
RA5/AN4/SS/C2OUT
7
RE0/AN5/RD
8
RE1/AN6/WR
9
RE2/AN7/CS
10
OSC1/CLKIN
13
OSC2/CLKOUT
14
RC1/T1OSI/CCP2
16
RC2/CCP1
17
RC3/SCK/SCL
18
RD0/PSP0
19
RD1/PSP1
20
RB7/PGD
40
RB6/PGC
39
RB5
38
RB4
37
RB3/PGM
36
RB2
35
RB1
34
RB0/INT
33
RD7/PSP7
30
RD6/PSP6
29
RD5/PSP5
28
RD4/PSP4
27
RD3/PSP3
22
RD2/PSP2
21
RC7/RX/DT
26
RC6/TX/CK
25
RC5/SDO
24
RC4/SDI/SDA
23
RA3/AN3/VREF+
5
RC0/T1OSO/T1CKI
15
MCLR/Vpp/THV
1
U1
PIC16F877A
D1
LED-GREEN
R9
330
R10
330
R11
330
R12
330
R13
330
R7
330
2. Programa que implementa un contador ascendente/descendente
Diagrama del circuito

Configuracin del display de 7 segmentos


Programa
LIST P=16F877A
R1
330
R2
330
R3
330
R4
330
R5
330
R6
330
R7
330
R8
10k
VCC
RA0/AN0
2
RA1/AN1
3
RA2/AN2/VREF-/CVREF
4
RA4/T0CKI/C1OUT
6
RA5/AN4/SS/C2OUT
7
RE0/AN5/RD
8
RE1/AN6/WR
9
RE2/AN7/CS
10
OSC1/CLKIN
13
OSC2/CLKOUT
14
RC1/T1OSI/CCP2
16
RC2/CCP1
17
RC3/SCK/SCL
18
RD0/PSP0
19
RD1/PSP1
20
RB7/PGD
40
RB6/PGC
39
RB5
38
RB4
37
RB3/PGM
36
RB2
35
RB1
34
RB0/INT
33
RD7/PSP7
30
RD6/PSP6
29
RD5/PSP5
28
RD4/PSP4
27
RD3/PSP3
22
RD2/PSP2
21
RC7/RX/DT
26
RC6/TX/CK
25
RC5/SDO
24
RC4/SDI/SDA
23
RA3/AN3/VREF+
5
RC0/T1OSO/T1CKI
15
MCLR/Vpp/THV
1
U1
PIC16F877A
INCLUDE "P16F877A.INC"

M equ .255 ;M=255, N=195 retardo de 150ms
N equ .195
CONT equ 0x0C
CONT2 equ 0x0D
NUM equ 0x0E

bsf STATUS,RP0
clrf TRISB
movlw b'00000110'
movwf ADCON1
movlw b'00000001'
movwf TRISA
bcf STATUS,RP0

inicio btfss PORTA,0
goto desc

asc movlw 0x3F
movwf PORTB
call retardo
movlw 0x06
movwf PORTB
call retardo
movlw 0x5B
movwf PORTB
call retardo
movlw 0x4F
movwf PORTB
call retardo
movlw 0x66
movwf PORTB
call retardo
movlw 0x6D
movwf PORTB
call retardo
movlw 0x7C
movwf PORTB
call retardo
movlw 0x07
movwf PORTB
call retardo
movlw 0x7F
movwf PORTB
call retardo
movlw 0x67
movwf PORTB
call retardo
goto inicio
desc movlw 0x67
movwf PORTB
call retardo
movlw 0x7F
movwf PORTB
call retardo
movlw 0x07
movwf PORTB
call retardo
movlw 0x7C
movwf PORTB
call retardo
movlw 0x6D
movwf PORTB
call retardo
movlw 0x66
movwf PORTB
call retardo
movlw 0x4F
movwf PORTB
call retardo
movlw 0x5B
movwf PORTB
call retardo
movlw 0x06
movwf PORTB
call retardo
movlw 0x3F
movwf PORTB
call retardo
goto inicio

retardo movlw M ;rutina de retardo
movwf CONT2
ciclo2 movlw N
movwf CONT
ciclo decfsz CONT,F
goto ciclo
decfsz CONT2,F
goto ciclo2
return
END

You might also like