Você está na página 1de 2

ANEXO

;ESCRIBIR UN PROGRAMA EN ASSEMBLER DE AVR STUDIO QUE PERMITA SUMAR O RESTAR ( DE ACUERDO ;AL SWITCH DE SELECCIN) LOS DOS NMEROS QUE SE INGRESAN EN LOS DIP SWITCH Y MOSTRAR EL RESULTADO ;EN LOS DOS DISPLAY DE 7 SEGMENTOS EN HEXADECIMAL. LA DECODIFICACIN DE BINARIO A HEXADECIMAL SE ;REALIZAR POR SOFTWARE DENTRO DEL MICROCONTROLADOR. EL CARRY RESULTANTE DE LA OPERACIN DEBE SER ;ENVIADO DIRECTAMENTE AL LED. .ORG 0X00 .CSEG CLR R0 CLR R20 CLR R21 LDI R22,$80 ;CARGAMOS EL VALOR AL REGISTRO R22 LDI R18,$7F SER R19 OUT DDRA,R0 ;ENTRADAS MEDIANTE LOS REGISTROS DE LOS PRTICOS OUT DDRB,R0 OUT DDRC,R18 ;SALIDAS MEDIANTE LOS REGISTROS DE LOS PRTICOS OUT DDRD,R19 INGRESO: IN R16,PINA ;ENTRADAS MEDIANTE LOS REGISTROS DE LOS PRTICOS IN R17,PINB ;ENTRADAS MEDIANTE LOS REGISTROS DE LOS PRTICOS SBIC PINC,7 ;RESTA CON 1L Y SUMA CON 0L RJMP RESTA SUMA: ADD R16,R17 ;SUMAMOS EL REGISTRO R16 Y EL R17 DECOD: ADC R20,R20 MOV R19,R16 ANDI R19,$0F LDI ZL, LOW(TABLA<<1) ;UZAMOS EL PUNTERO Z PARA LA TABLA LDI ZH, HIGH(TABLA<<1) ADD R30,R19 CLR R0 ADC R31,R0 LPM R0,Z ;CARGA EL REGISTRO DESDE LA FLASH OUT PORTC,R0 ANDI R16,$F0 SWAP R16 LDI ZL, LOW(TABLA<<1) LDI ZH, HIGH(TABLA<<1) ADD R30,R16 CLR R1 ADC R31,R1 LPM R1,Z ;CARGA EL REGISTRO DESDE LA FLASH CPSE R20,R21 ADD R1,R22 OUT PORTD, R1 ;SALIDAS MEDIANTE LOS REGISTROS DE LOS PRTICOS RJMP INGRESO ;SALTO INCONDICIONADO RESTA: SUB R16,R17 BRBS 2,C2 RJMP DECOD C2: COM INC R16 R16 ;RESTA EL REGISTRO R16 DEL R17

RJMP DECOD TABLA:;LA TABLA CONVIERTE HEXADECIMAL DE 4 BITS A SU EQUIVALENTE EN 7 SEGMENTOS .DB 0B1000000,0B1111001 .DB 0B0100100,0B0110000 .DB 0B0011001,0B0010010 .DB 0B0000010,0B1111000 .DB 0B0000000,0B0010000 .DB 0B0001000,0B0000011 .DB 0B1000110,0B0100001 .DB 0B0000110,0B0001110

R8(1)

R16(1)

R8 R7 R5 R4 R3 R1 R2 R6
4k7 4k7 4k7 4k7 4k7 4k7 4k7 4k7

R16 R15 R14 R13 R12 R11 R9 R10


4k7 4k7 4k7 4k7 4k7 4k7 4k7 4k7

DSW1
16 15 14 13 12 11 10 9
OFF ON

U1
1 2 3 4 5 6 7 8 40 41 42 43 44 1 2 3 9 10 11 12 13 14 15 16 29 27 4 PB0/T0/XCK0/PCINT8 PB1/T1/CLKO/PCINT9 PB2/AIN0/INT2/PCINT10 PB3/AIN1/OC0A/PCINT11 PB4/SS/OC0B/PCINT12 PB5/MOSI/PCINT13 PB6/MISO/PCINT14 PB7/SCK/PCINT15 PD0/RXD0/PCINT24 PD1/TXD0/PCINT25 PD2/INT0/RXD1/PCINT26 PD3/INT1/TXD1/PCINT27 PD4/OC1B/XCK1/PCINT28 PD5/OC1A/PCINT29 PD6/ICP/OC2B/PCINT30 PD7/OC2A/PCINT31 AREF AVCC RESET ATMEGA164P PA0/ADC0/PCINT0 PA1/ADC1/PCINT1 PA2/ADC2/PCINT2 PA3/ADC3/PCINT3 PA4/ADC4/PCINT4 PA5/ADC5/PCINT5 PA6/ADC6/PCINT6 PA7/ADC7/PCINT7 PC0/SCL/PCINT16 PC1/SDA/PCINT17 PC2/TCK/PCINT18 PC3/TMS/PCINT19 PC4/TDO/PCINT20 PC5/TDI/PCINT21 PC6/TOSC1/PCINT22 PC7/TOSC2/PCINT23 XTAL1 XTAL2 37 36 35 34 33 32 31 30 19 20 21 22 23 24 25 26 7 8 1 2 3 4 5 6 7 8

DSW2
ON OFF

16 15 14 13 12 11 10 9

DIPSW_8

DIPSW_8

R17 R24 R23 390R R22 390R R21 390R R20 390R R19 390R R18 390R
390R 390R

R25 R26 R27 390R R28 390R R29 390R R30 390R R31 390R
390R 390R

DSW3 D1
LED-RED DIPSW_2 4 3
OFF ON

1 2