нужно сделать блоксхему на ассемблере)


гильдия Бойцы (Ученик)[188] Инглар Информация
Назад к темам раздела.
2013-03-17 00:01:43 гильдия Бойцы (Ученик)[188] Инглар Информация
нид хелп, 555331587
 
2013-03-17 10:16:09 гильдия Бойцы (Ученик)[188] Инглар Информация
плачу, ес-сно, там копеечная прога
 
2013-03-17 23:58:56 гильдия Бойцы (Ученик)[188] Инглар Информация
 
2013-03-18 00:37:48 гильдия Бойцы (Ученик)[188] Инглар Информация
.include <m8def.inc>


.def temp=r16
.def index=r20
.def raz = r21

.DSEG
.org SRAM_START
Out_Mas: .BYTE 3

.CSEG

.org 200

Table_BCD: // массив знакогенератора
.db 63,6,91,79,102,109,125,7,127,111
//,.db 64,121,36,48,25,18,2,120,0,16



.org 0
rjmp START

.org OVF0addr
rjmp Timer_Over

.org $13

// подпрограмма обработки прерывания по таймеру Т0
Timer_Over:
inc raz
cpi raz,3
brlt T1
ldi raz,0
T1:
ldi XL,low(Out_Mas)
ldi XH,high(Out_Mas)
add XL,raz

ld index,X
rcall OUT_SEGMENT

reti

TIMER0_INIT:
ldi temp,(1<<CS02)
out TCCR0,temp

ldi temp,(1<<TOIE0)
out TIMSK,temp

ret

START:

// инициализация стека
ldi temp,high(RAMEND)
out SPH,temp
ldi temp,low(RAMEND)
out SPL,temp

rcall INIT_PORT_IO
rcall TIMER0_INIT
ldi XL,low(Out_Mas)
ldi XH,high(Out_Mas)
ldi temp,1
st X+,temp
ldi temp,6
st X+,temp
ldi temp,9
st X+,temp

sei

wait:



rjmp wait

// подпрограмма инициализации портов ввода вывода
INIT_PORT_IO:

ldi temp,0b00000111
out DDRB,temp
ldi temp,0b00000110

out PORTB,temp

ldi temp,0b01111111
out DDRD,temp
ldi temp,0xFF
out PORTD,temp
ret

TIME_WAIT:
ldi r17,80
ldi r18,0xFF
ldi r19,0xFF
W1:
dec r19
brne W1

dec r18
brne W1

dec r17
brne W1


ret

OUT_SEGMENT:

rcall Next_RAZR
O1:
ldi ZL,low(Table_BCD<<1)
ldi ZH,high(Table_BCD<<1)
add ZL,index
lpm
out PORTD,r0
out PORTB,temp
ret

Next_RAZR:
in temp,PORTB
ldi r18,0x07
out PORTB,r18
sec
rol temp
andi temp,0b00001111
cpi temp,7
brne N1
ldi temp,6

N1:
//eg temp
// andi temp,0b00001111

out PORTB,temp
ret
 
2013-03-19 00:30:31 гильдия Бойцы (Ученик)[188] Инглар Информация