Код: Выделить всё
.include "..\avr_assembler\appnotes\tn15def.inc"
.cseg
.org 0
rjmp start
reti ; Addr $01
reti ; Addr $02
reti ; Addr $03
reti ; Addr $04
reti ; Addr $05
reti ; Addr $06 Use 'rjmp myVector'
reti ; Addr $07 to define a interrupt vector
reti ; Addr $08
reti ; Addr $09
reti ; Addr $0A
reti ; Addr $0B This is just an example
reti ; Addr $0C Not all MCUs have the same
reti ; Addr $0D number of interrupt vectors
reti ; Addr $0E
reti ; Addr $0F
reti ; Addr $10
start:
ldi r17,0b00001010 ;nastroika porta B
out DDRB,r17
ldi r17,0b00001000
out portb,r17
nop
ldi r17,(1<<COM1A1)|(1<<CS10)|(1<<CS11)|(1<<CS12)|(1<<PWM1)
out TCCR1,r17
ldi r20,159
out ocr1b,r20
ldi r17,0
out ocr1a,r17
nop
scan:
sbic pinb,3 ; esli pinb3 = 1 pereiti na scan a esli = 0 to
rcall scan
ldi r17,80 ; 50%
out ocr1a,r17
rcall delay
sbic pinb,3 ; esli pinb3 = 1 idem na start, esli = 0 idem dalshe
rcall start
ldi r17,100 ; 60%
out ocr1a,r17
rcall delay
sbic pinb,3 ; esli pinb3 = 1 idem na scan, esli = 0 idem dalshe
rcall start
ldi r17,120 ; 70%
out ocr1a,r17
rcall delay
sbic pinb,3 ; esli pinb3 = 1 idem na scan, esli = 0 idem dalshe
rcall start
ldi r17,140 ; 80%
out ocr1a,r17
rcall delay
sbic pinb,3 ; esli pinb3 = 1 idem na scan, esli = 0 idem na loop
rcall start
ldi r17,159 ; 99%
out ocr1a,r17
rcall delay
loop:
sbic pinb,3 ; esli pinb3 = 1 idem na scan, esli = 0 idem na loop
rcall start
rcall loop
delay:
; ===========
; delay loop generator
; 12000000 cycles:
; -----------------------------
; delaying 11999976 cycles:
ldi R20, $3E
WGLOOP0: ldi R21, $FD
WGLOOP1: ldi R22, $FE
WGLOOP2: dec R22
brne WGLOOP2
dec R21
brne WGLOOP1
dec R20
brne WGLOOP0
; -----------------------------
; delaying 24 cycles:
ldi R20, $08
WGLOOP3: dec R20
brne WGLOOP3
; ===========
ret
- Вложения
-
- hexfile.hex
- (427 байт) 221 скачивание

