. , , ,

,,,

,

, . , .

AVR90S8515

ATMEL, . , AVR, RISC , , 8- . , Trondheim. , 1995 , Atmel. , Atmel .

10 10

1.

.

.

.

:

10

10

1%

1

2

-

-

4

2

+5

2. .

.1

.

-

.

.1.

.2. .

.3. .

AVR90S8515 - AVR90S8515

1.

- , .

- ( , /, / 80000, / 1 ( CTC1 / 1(TCCR1B), , / 1 , CS10, , , , ), ). (0 , 1 - ), (IMPULS_POLOGITELNAY , IMPULS_OTRICHATELNAY - ).

, IMPULS_POLOGITELNAY. PA0 / 1. / 1 ( 8000, 8 1± 1% ), 1. . 50 . PA0 , , / 1 - - bin16BCD5 ( - ). bin16BCD5, . ( ), 7 . , . ( D C) . .

-

- AVR- ( ) , . , ( ) . , , , .

- - (BCD-Binary-Coded Decimal).

BCD- - , 4- 8-4-2-1. . ( 3 : 0), - ( 7 : 4). BCD- . , BCD-

bin16bcd5 . , 16- ( 0 65535). , 5 . , , 10000, . 1000 . . . . , , .

3.

3.1

- AVR90S8515 Atmel.

- AVR90S8515:

AVR RISC -

120 ,

8 Flash , SPI , 1000 /

512 , SPI , 100000 /

512

32 x 8

32 /

16- 32-

2,7 6,0

- 0 8

: 125 , 8

8- 16- ( ) /

8, 9 10-

UART

: (idle) (power down)

(-40C...85C) (0C...70C)

40- PDIP 44- TQFP PLCC

AT90S8515 AVR RISC

( ) 8- AVR (AT90SXXX). , , 1 MIPS/. AVR 32 8- . 32 16- - . 4 . /. , . Flash SPI ( Flash SPI ( ) ( 12- ). 3,5 1 ( VCC =3 f=4 ). , , 50 . ) ( 12- ). 3,5 1 ( VCC =3 f=4 ). , , 50 .

3.1.1

XTAL1 XTAL2 (. )

( . 2 , ) , f=8

2

3.1.1.1

.

406 0.00001 ,

-

=0.00001*8000000=80

fBQ

3.2

5142

3.3

3224

3.4

2495 - . 2495 . 1.

1

2495

I=15

1.7

0.4

2.4

12

15

5(± 0.5)

-60+85 °

4 .

, , , .

(d) , (t ) .. d=t . ( 1):

T=t *N

N , /1.

D =D t:

D t=T-Tx=N*t -Tx

Tx .

t (. .2) . , . D t (D t1 . .2) , , D t2 , . :

=N*t -(D t1-D t2)= N*t -D t1+D t2

P D t1 D t2 , [2, . 20]

5

- AVRSTUDIO 3.0

:

.include "8515def.inc".def fbinL=r22 ; , .def fbinH =r23 ; , .def tBCD0 =r23 ;BCD , 1

.def tBCD1 =r24 ;BCD , 3 2

.def tBCD2 =r25 ;BCD , 4

; :

; bit 0 -

;

;

; bit 1 -

;

; 0 -

;

; 1 -

;

; bit 2 -

; 0 - ( )

;

;

; 1 - ( )

;

;

; bit 3 -

;

;

; bit 4 -

;

;

; bit 5 -

;

;

; bit 6 -

;

;

.ORG 0

RJMP MET1

RJMP IMPULS

RJMP MET1

RJMP MET1

1:RJMP Prog

RJMP Prog

RJMP MET1

RJMP MET1

MET1:LDI R16,0x02

OUT SPH,R16;

LDI R16,0X10;

OUT SPL,R16

LDI R16,0B11100100

OUT DDRA,r16; b 0,1,3,4

; , 2,5,6,7

LDI R16,0B11111111;

OUT DDRC,R16; C

LDI R16,0B11111111;

OUT DDRD,R16; D

LDI R16,0B01000000 ;

OUT TIMSK,R16; T/C1

LDI R16,0B00000000;

OUT GIMSK,R16; INT0

LDI R16,0X1F ;

OUT OCR1AH,R16 ; - 8000

LDI R16,0X40

OUT OCR1AL,R16

LDI R16,0B00000000

OUT TCNT1L,R16

LDI R16,0B00001000 ;T/C1

OUT TCCR1B,R16 ;

LDI R16,0B10000000 ;

OUT SREG,R16

LDI R16,0X9

LDI R19,0X9 ;R19

; R16 ,

;

CLR R17

clr r22

OPROS_KEY_OF_INVERT: ;

SBIC PORTA,1 ;

RCALL IMPULS_POLOGITELNAY ; -

RCALL IMPULS_OTRICHATELNAY ; -

M2:

IMPULS_POLOGITELNAY:

SBI PORTA,2 ;

SBIC PORTA,0 ; PA0

RCALL IMPULS

SBIS PORTA,0 ; 1

RCALL IMPILS_1_TO_0; PA1, ,

M5:CPI R17,0xFF

BRCS M2 ; R17 ,

LDI R17,0XA; R17 10

RJMP M2;

Prog:INC R17 ;

CPI R17,0XA ;

BRCS M3 ; R17 10(DEX)( 10 )

INC R16 ; R17( R17>10)

BRBC 1,M3 ; R16

INC R18 ; R18(

;

M3:RETI ; R18(. ),R16(. )

IMPULS:

LDI R20, 0B00001001 ; T/C1

OUT TCCR1B,R20

RET

IMPILS_1_TO_0:

LDI R20,0B00000000 ; T/C1

OUT TCCR1B,R20

CPSE R16,R19 ;

RCALL TEST_OF_STOP_TC1 ; TEST_OF_STOP_TC1

SBIC PORTA,1 ;

RCALL IMPULS_POLOGITELNAY; -

RCALL IMPULS_OTRICHATELNAY ; -

RET

TEST_OF_STOP_TC1: ; ( T/C1

IN R21,TCCR1B ; )

ANDI R21,0B000000000 ; , bin16BCD5

BRNE ENDTEST_OF

RCALL bin16BCD5

ENDTEST_OF:

RET

M2OTR:

IMPULS_OTRICHATELNAY:

CBI PORTA,2 ;

SBIS PORTA,0 ; 0

RCALL IMPULS_OTR

SBIC PORTA,0

RCALL IMPILS_0_TO_1; PA1, ,

M5OTR:CPI R17,0xFF

BRCS M2OTR

LDI R17,0XA

RJMP M2OTR;

IMPULS_OTR:

;LDI R16,0X9

;LDI R17,0X0

LDI R20, 0B00001001 ; T/C1

OUT TCCR1B,R20

RET

IMPILS_0_TO_1:

LDI R20,0B00000000 ;T/C1

OUT TCCR1B,R20

CPSE R16,R19

RCALL TEST_OF_STOP_TC1_OTR

SBIC PORTA,1

RCALL IMPULS_POLOGITELNAY

RCALL IMPULS_OTRICHATELNAY

RET

TEST_OF_STOP_TC1_OTR:

IN R21,TCCR1B

ANDI R21,0B000000000

BRNE ENDTEST_OF_OTR

RCALL bin16BCD5

ENDTEST_OF_OTR:

RET

bin16BCD5: -

MOV R22,R16

MOV R23,R18

ldi tBCD2, -1

bin16BCD5_loop_1:

inc tBCD2;

subi fbinL, low(10000);

sbci fbinH, high(10000);

brsh bin16BCD5_loop_1;

subi fbinL, low(-10000)

sbci fbinH, high(-10000)

ldi tBCD1, -0x11

bin16BCD5_loop_2:

subi tBCD1, -0x10;

subi fbinL, low(1000);

sbci fbinH, high(1000);

brsh bin16BCD5_loop_2;

subi fbinL, low(-1000)

sbci fbinH, high(-1000)

bin16BCD5_loop_3:

inc tBCD1;

subi fbinL, low(100);

sbci fbinH, high(100);

brsh bin16BCD5_loop_3;

subi fbinL, -100

ldi tBCD0, -0x10

bin16BCD5_loop_4:

subi tBCD0, -0x10 ;

subi fbinL, 10;

brsh bin16BCD5_loop_4;

subi fbinL, -10;

add tBCD0, fbinL

LDI R16,0X9

LDI R17,0X0

ldi r18,0x0

LDI R27,0X0

WAIT_PRESS_KEY: ; ,

;

; :

;

; ,

SBRC R27,0

RJMP EXIT

SBIC PORTA,3 ;

RCALL FLASH_mC ; FLASH_mC

SBIC PORTA,4 ;

RCALL FLASH_C ; FLASH_C

RJMP WAIT_PRESS_KEY ;

;

SBIS PORTA,3 ;

RJMP EXIT

SBIC PORTA,4 ; ,

;

RJMP WAIT_PRESS_KEY

OUT PORTD,R23; D -

OUT PORTC,R24 ; C -

OUT TCNT1H,R18 ; NCNT1H (. T/C1)

OUT TCNT1L,R18 ; NCNT1L (. T/C1)

EXIT:RET

FLASH_mC:

SBI PORTA,5 ; ( )

CBI PORTA,6 ; ( )

CBI PORTA,7 ;

INC R27

RET

FLASH_C:

CBI PORTA,5 ; ( )

SBI PORTA,6 ; ( )

SBI PORTA,7 ;

INC R27

RET

, .

 

 

 

! , , , .
. , :