Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .include "m328pdef.inc"
- .cseg
- .org $0000 rjmp init
- .org $0020 rjmp Ext_TimerOFF
- .org INT_VECTORS_SIZE
- Ext_TimerOFF:
- sub r22, r16
- sbc r21, r18
- reti
- init:
- ldi r16, LOW(RAMEND)
- out SPL, r16
- ldi r16, HIGH(RAMEND)
- out SPH,r16
- ldi r16,0b00000011 ;0b01000010
- out TCCR0B,r16
- ldi r16,0b00000001
- sts TIMSK0,r16 ; разрешить прерывания
- ldi r16, 6
- out TCNT0, r16
- sei
- ldi r16,0b00111111
- out DDRB,r16 ;настройка на вывод линий порта B
- out DDRC, r16 ;настройка на вывод линий порта D
- clr r16
- out DDRD,r16
- loop:
- rjmp main1
- clr r16;
- out PORTB,r16
- out PORTC,r16
- rjmp loop
- main1:ldi zl, LOW(array*2)
- ldi zh, HIGH(array*2)
- ldi r17,5 ;счётчик строк матрицы
- M1:
- ldi r21, 0x01
- ldi r22, 0x01
- lpm r16,z+
- out PORTC,r16 ;вывод в порт C
- lpm r16,z+
- out PORTB,r16 ;вывод в порт B
- ; clr r16
- ldi r16, 0x01
- Delay:
- mov r23, r22
- or r23, r21
- brne Delay
- dec r17 ;уменьшить счётчик цикла
- brne M1 ;цикл из 8 итераций завершён?
- rjmp loop
- array: .db 0x3E,0x32,0x02,0x28,0x02,0x20,0x02,0x18,0x02,0x10
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement