Мой код:
.Macro outi
LDI R16, @1
out @0, R16
.ENDM
.CSEG
.ORG $000 ; reset
RJMP Reset
.ORG $002
Reti
.ORG $004
Reti
.ORG $008
Rjmp Timer2_OVF ;
.ORG $00A
Reti
.ORG $00C
Reti
.ORG $00E
Reti
.ORG $010
Reti
.ORG $012
Reti
.ORG $014
Reti
.ORG $016
Reti
.ORG $018
Reti
.ORG $01A
Reti
.ORG $01c
Reti
.ORG $01E
Reti
.ORG $020
Reti
.ORG $022
Reti
.ORG $024
Reti
.ORG $026
Reti
.ORG $028
Reti
.ORG INT_vectors_SIZE ; Конец таблицы прерываний
; **********************
; Инициализация
; **********************
Reset: //________________
.DEF Led=R17
.DEF MASK=R18
.DEF Ch1=R19 ;десятки
.DEF Ch10=R20 ;еденицы
.def Temp=r16
.def Temp1=r21
OUTI SPL, Low(ramend) ; инициализация стека
OUTI SPH, High(ramend)
//_________________
OUTI DDRA, 255
OUTI DDRB, 255
//________________
OUTI TCCR2, (1<<CS20)|(1<<CS22)
OUTI TIMSK , 1<<TOIE2
OUTI ASSR , 1<<AS2
//_________________
LDI led, 1<<7
LDI MASK, 1<<7
LDI Ch1, 0
LDI Ch10, 0
SEI
; ****************************
Main:
rcall Decoder
Out portA, Led
OUTI portB, 0b00000001
rcall Loop
OUTI portB, 0b00000010
rcall Loop
rjmp Main
; *****************************
Loop:
ldi Temp, 100
ldi Temp1, 20
Loop1:
dec Temp
brne Loop1
dec Temp1
brne Loop1
ret
; *****************************
Timer2_OVF:
INC Ch10
CPI Ch10, 10
BREQ Tool1
RETI
Tool1:
ldi Ch10, 0
INC Ch1
CPI Ch1, 10
BREQ END
RETI
END:
LDI Ch1, 0
LDI Ch10, 0
RETI
; *****************************************
decoder:
LDI ZL, LOW(DIGITS_TABLE*2) ; Инициализация массива
LDI ZH, HIGH(DIGITS_TABLE*2)
CLR R16
ADD ZL, Ch10 ; Смещение на десяток цифр
ADC ZH, R16
LPM ; Загрузка сегмента для десятков
MOV Led, R0 ; Сохраняем сегмент для десятков
CLR R16
ADD ZL, Ch1 ; Смещение на единицу цифр
ADC ZH, R16
LPM ; Загрузка сегмента для единиц
MOV Led, R0 ; Объединение сегментов (десятков и единиц)
RET
; ************************************
Digits_Table:
.db 0b00111111 , 0b10000110 ; 0,1
.db 0b01011011 , 0b11001111 ; 2,3
.db 0b01100110 , 0b11101101 ; 4,5
.db 0b01111101 , 0b10000111 ; 6,7
.db 0b11111111 , 0b11101111 ; 8,9
- Вложения
-
- Схема.png
- (154.66 КБ) 95 скачиваний


