- Rd: Результирующий (и исходный) регистр в регистровом файле
- Rr: Исходный регистр в регистровом файле
- b: Константа (3 бита), может быть константное выражение
- s: Константа (3 бита), может быть константное выражение
- P: Константа (5-6 бит), может быть константное выражение
- K6; Константа (6 бит), может быть константное выражение
- K8: Константа (8 бит), может быть константное выражение
- k: Константа (размер зависит от инструкции), может быть константное выражение
- q: Константа (6 бит), может быть константное выражение
- Rdl: R24, R26, R28, R30. Для инструкций ADIW и SBIW
- X,Y,Z: Регистры косвенной адресации (X=R27:R26, Y=R29:R28, Z=R31:R30)
Адрес | Название | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
$3F | SREG | I | T | H | S | V | N | Z | C |
$3E | з а р е з е р в и р о в а н | ||||||||
$3D | з а р е з е р в и р о в а н | ||||||||
$3C | з а р е з е р в и р о в а н | ||||||||
$3B | GIMSK | - | INT0 | - | - | - | - | - | - |
$3A | з а р е з е р в и р о в а н | ||||||||
$39 | TIMSK | - | - | - | - | - | - | TOIE0 | - |
$38 | TIFR | - | - | - | - | - | - | TOV0 | - |
$37 | з а р е з е р в и р о в а н | ||||||||
$36 | з а р е з е р в и р о в а н | ||||||||
$35 | MCUCR | - | - | SE | SM | - | - | ISC01 | ISC00 |
$34 | з а р е з е р в и р о в а н | ||||||||
$33 | TCCR0 | - | - | - | - | - | CS02 | CS01 | CS00 |
$32 | TCNT0 | Таймер / счетчик 0 (8 бит) | |||||||
… | з а р е з е р в и р о в а н | ||||||||
$21 | WDTCR | - | - | - | - | WDE | WDP2 | WDP1 | WDP0 |
… | з а р е з е р в и р о в а н | ||||||||
$1E | EEAR | Регистр адреса энергонезависимой памяти | |||||||
$1D | EEDR | Регистр данных энергонезависимой памяти | |||||||
$1C | EECR | - | - | - | - | - | - | EEWE | EERE |
… | з а р е з е р в и р о в а н | ||||||||
$18 | PORTB | PORTB7 | PORTB6 | PORTB5 | PORTB4 | PORTB3 | PORTB2 | PORTB1 | PORTB0 |
$17 | DDRB | DDB7 | DDB6 | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 |
$16 | PINB | PINB7 | PINB6 | PINB5 | PINB4 | PINB3 | PINB2 | PINB1 | PINB0 |
… | з а р е з е р в и р о в а н | ||||||||
$12 | PORTD | - | PORTD6 | PORTD5 | PORTD4 | PORTD3 | PORTD2 | PORTD1 | PORTD0 |
$11 | DDRD | - | DDD6 | DDD5 | DDD4 | DDD3 | DDD2 | DDD1 | DDD0 |
$10 | PIND | - | PIND6 | PIND5 | PIND4 | PIND3 | PIND2 | PIND1 | PIND0 |
… | з а р е з е р в и р о в а н | ||||||||
$08 | ACSR | ACD | - | ACO | ACI | ACIE | - | ACIS1 | ACIS0 |
… | з а р е з е р в и р о в а н | ||||||||
$00 | з а р е з е р в и р о в а н |
.include "8515def.inc"
.equ last_seg =4
.equ zero =0
.equ start_addr= 8
.def capture_l =r2
.def capture_h =r3
.def char =r5
.def char_pointer =r6
.def temp =r16
.def temp1 =r17
.def ZerRol =r18
.def char0 =r20
.def char1 =r21
.def char2 =r22
.def char3 =r23
.def char4 =r24
.def out_char0 =r8
.def out_char1 =r9
.def out_char2 =r10
.def out_char3 =r11
.def out_char4 =r12
.def out_counter =r13
.eseg ;EEPROM segment
.org 0
eetbl3:.db 0x3F,0x06
; ;0 1
.db 0x5B,0x4F
; ;2 3
.db 0x66,0x6D
; ;4 5
.db 0x7D,0x07
; ;6 7
.db 0x7F,0x6F
; ;8 9
.cseg
.org 0
rjmp reset
reti ;
reti ;
rjmp TIM1_CAPT
.org $006
rjmp TIM1_OVF
rjmp TIM0_OVF
;***********************************
;* Main Code
reset: ; Make Stack:
ldi temp, high(RAMEND)
out SPH, temp
ldi temp, low(RAMEND)
out SPL, temp
ldi temp, 0xC3 ;
out TCCR1B, temp ;
ldi temp, 0x8A ;
out TIMSK, temp
ldi temp, 0x3 ;
out TCCR0, temp
sei
ldi temp, zero
mov char_pointer, temp
ldi temp, 0xFF
out DDRA, temp
out DDRC, temp
ldi char0, 8
ldi char1, 8
ldi char2, 8
ldi char3, 8
ldi char4, 8
ldi ZH, 0
ldi ZL, start_addr
ldi ZerRol,0xFE
clt
clr out_counter
forever:
brtc forever
clt
mov dv16uL, capture_l ;tmp16a
mov dv16uH, capture_h ;tmp16b
ldi dd16uL, low(62500)
ldi dd16uH, high(62500)
; пробразование в Гц:
rcall div16u
; преобразование в десятичные цифры
ldi tmp16a, low(10000)
ldi tmp16b, high(10000)
rcall bin2ASCII_digit
mov tASCII4, cnt16a
ldi tmp16a, low(1000)
ldi tmp16b, high(1000)
rcall bin2ASCII_digit
mov tASCII3, cnt16a
ldi tmp16a, low(100)
ldi tmp16b, high(100)
rcall bin2ASCII_digit
mov tASCII2, cnt16a
ldi tmp16a, low(10)
ldi tmp16b, high(10)
rcall bin2ASCII_digit
rjmp forever
;* End Main Code
;************************************
;************************************
;* bin2ASCII_digit