Você está na página 1de 3

Deber de Sistemas Microprocesados Nombre: Santiago Calle Grupo: Gr-2 Realizar un programa que permita el incremento y decremento de los

nmeros del 1 al 9. Utilizando interrupciones externas e interrupciones por cambio de estado.


Utilizando interrupciones por cambio de estado .include"m164pdef.inc" .def tempo=r17 .def conta=r18 .def impri=r16 .org 0x0 jmp inicio .org 0xa jmp tecla inicio: ldi tempo,255 out ddrc,tempo out ddrb,tempo ;out ddra,tempo out portb,tempo ;out portd,tempo ser r21 baja: ldi tempo,high(ramend) out sph,tempo ldi tempo,low(ramend) out spl,tempo sei ; habilito interrupcion ldi r20,0b00000010 sts pcicr,r20 ldi r20,0b00000011 sts pcmsk1,r20 clr conta lazo: call segmentos rjmp lazo tecla: push tempo in tempo,sreg push tempo cpi conta,0 breq salir dec conta rjmp salir segmentos: push conta mov impri,conta andi impri,0x0f ldi zl,low(tabla<<1) ldi zh,high(tabla<<1) add zl,impri lpm impri,z out portc,impri pop conta ret tabla: .db 0b11000000, 0b11111001 ;0 1 .db 0b10100100, 0b10110000 ;2 3 .db 0b10011001, 0b10010010 ;4 5 in tempo,pinb eor tempo,r21 in r21,pinb sbrc tempo,1 rjmp baja sbrc tempo,0 rjmp sube rjmp salir salir: pop tempo out sreg,tempo pop tempo reti sube: cpi conta,9 breq salir inc conta rjmp salir

.db 0b10000010, 0b11111000 ;6 7

.db 0b10000000, 0b10010000 ;8 9

Utilizando interrupciones externas .include"m164pdef.inc"

cpi conta,9 breq paso inc conta paso: pop tempo out sreg,tempo pop tempo reti

.def tempo=r17 .def conta=r18 .def impri=r16 .org 0x0 jmp inicio .org 0x2 jmp sube .org 0x4 jmp baja .org 0x6 jmp borra inicio: ldi out out ldi out out out out tempo,0b00000000 ddrb,tempo ddrd,tempo tempo,0b11111111 ddra,tempo ddrc,tempo portb,tempo portd,tempo

baja: push tempo in tempo,sreg push tempo cpi conta,0 breq paso1 dec conta paso1: pop tempo out sreg,tempo pop tempo reti borra: push tempo in tempo,sreg push tempo clr conta pop tempo out sreg,tempo pop tempo reti

ldi out ldi out ldi sts ldi out clr sei

tempo,high(ramend) sph,tempo tempo,low(ramend) spl,tempo tempo,0b00101010 EICRA,tempo tempo,0b00000111 EIMSK,tempo conta

lazo: out porta,conta call segmentos rjmp lazo sube: push tempo in tempo,sreg push tempo

segmentos: push conta mov impri,conta andi impri,0x0f ldi zl,low(tabla<<1) ldi zh,high(tabla<<1) add zl,impri lpm impri,z out portc,impri pop conta ret

tabla: .db 0b11000000, 0b11111001 ;0 .db 0b10100100, 0b10110000 ;2

1 3

.db 0b10011001, 0b10010010 ;4 5 .db 0b10000010, 0b11111000 ;6 7 Simulaciones: Interrupciones por cambio de estado

.db 0b10000000, 0b10010000 ;8

(COM)

U1 C1
1uF 40 41 42 43 44 1 2 3 9 10 11 12 13 14 15 16 29 27 4 PB0/XCK0/T0/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 8 7

C2
1uF

Interrupciones externas
(COM)

U1 C1
1uF 40 41 42 43 44 1 2 3 9 10 11 12 13 14 15 16 29 27 4 PB0/XCK0/T0/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 8 7

C2
1uF

C3
1nF

Você também pode gostar