.DEF ZL=r30 ; для адресации элементов таблицы из Flash
.DEF ZH=r31 ; для адресации элементов таблицы из Flash
.DEF count=r20 ; счётчик
.cseg
.org 0
rjmp Reset
rjmp INT_0
rjmp INT_1
rjmp Timer0_OVF0
rjmp UART_RX
rjmp UART_UDRE
rjmp UART_TX
rjmp ANA_COMP
INT_0:
INT_1:
Timer0_OVF0:
UART_RX:
UART_UDRE:
UART_TX:
ANA_COMP:
reti
reset:
seti
ldi r25,low(RAMEND) ;инициализируем стек
out SPL,r25
RCALL Init
pusto:
;нагоняем время
nop
nop
nop
rjmp pusto
rjmp PC
Init: ;Инициализация
ldi r25,0 ;инициализация таймера 0
out TCCR0,r25
ldi r25,2 ;разрешение прерывания по переполнению Т0
out TIMSK,r25
sei ;установка глобального флага разрешения прерываний
ldi temp, 0b00000100
out DDRD, temp
ldi
r25,25 ;9600 бит/c при fclk=4МГц
out UBRR,r25
clr r25
;Настроить порт D на ввод
out ddrd,r25
ldi r25,0x02 ;задаем цикл
receive:
in r21,pind ;считываем из порта частоту сигнала
bst r21,7
bld r22,0
bst r21,6
bld r22,1
bst r21,5
bld r22,2
bst r21,4
bld r22,3
bst r21,3
bld r22,4
bst r21,2
bld r22,5
bst r21,1
bld r22,6
bst r21,0
bld r22,7
cpi r25, 0x02 ;сравнили
с 2
breq copy ;если равно перешли на copy
copy:
mov r23,r22 ;скопировали в
другой регистр
dec r25
cpi r25, 0x00
brne receive
ldi mc,11
ldi mp,r23
RCALL mult
mult: clr XH
ldi count,8
lsr mp
m_1: brcc m_2
add XH,mc
m_2: ror XH
ror XL
dec count
brne m_1
ret
clr count
ldi dd,1
ldi dv,r15
RCALL div
div: sub drem,drem
ldi count,9
d_1: rol dd
dec count
brne d_2
ret
d_2: rol drem
sub drem,dv
brcc d_3
add drem,dv
clc
rjmp d_1
d_3: sec
rjmp d_1
ret
mov r13,r18
tim0: ldi ZH,HIGH(ORD*2)
ldi ZL,LOW(ORD*2)
lpm
adiw ZL,1
ldi r12,11
out pind,r0
out pind,r13
dec r12
cpi r12, 0 ; проверяем не прошел ли полный период
brne endtick
breq tim0
endtick:
ldi temp , 53 ; увеличем число тактов чтоб переполнение случилось раньше
in r2 , TCNT0 ;
add r2 ,temp
out TCNT0, r2
sei
reti
.CSEG
ORD: .DB 0,51,102,153,204,255,204,153,102,51,0
7. Список используемых ресурсов:
1.PDF документация на микроконтроллер AT90S2313 www.ATMEL.com
2.PDF документация на интерфейс RS 232 www.ANALOG.com
3. www.amtel.ru
4. www.chipinfo.ru
5. www.shema.ru
6. www.rtcs.ru
7.www.gaw.ru
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.