DS1307 (RTS) (DD5), ATmega8535 (DD4), CD4511N (DD1, DD2) DC56 -11 RWA (DA2 DA4), IRF7103 (DA5.1 DA6). 4011 (DD3.3, DD3.4) IRF7103 (DA5.2), HCM1212A (Z1). , R8, 3 4011 (DD3.1, DD3.2). +5 L7805CV (DA1).

(DA2), (DA3), (DA4), (S6) (DA2), (DA3), (DA4). o: . (S1), -> (S3), > (S4), < (S5). , : , , , , . -> : HL1 1.

. (S2). ->, > , < . -> ( HL2 ). 3 . : (S8).

RTS RTS TWI . DS1307 , , . RTS, PortA DD1, DD2 .

:

.def lim=r1 ;

.def temp=r16 ;

.def logika=r17 ;

.defSecond=r18 ;

.defMin=r19 ;

.defHoer=r20 ;

.defdata=r21 ;

.defMonth=r22 ;

.defYear=r23 ;

.defDAT=r24 ;RTS

.defClkA=r25 ; RTS

.def Delay1=r26 ; 0,5

.defDelay2=r27 ;

.defDelay3=r28 ;

.defBHoer=r29 ;

.defBMin=r30 ;

.equ k1=PortB0 ; DA2 - ()

.equ k2=PortB1 ; DA3 - ()

.equ k3=PortB2 ; DA4 - ()

:

-

-

- RTS

- RTS

:

-

-

-

-

-

-

INT0 ( S1 . ). 1 (, ..) RTS.

.

Ed:

outPortA,logika ;

sbicPinD,4 ; à ?

rjmpBEd ;,

rcallZad05 ;, 0,5 ( )

rjmpEnd ;

BEd: ;

sbicPinD,5 ; > ?

rjmpMEd ;,

rcallZad05

movtemp,logika ; logika temp

andi temp,0b00001111;

subi temp,-1 ; 1

cpi temp,10 ; >9? ( )

breqEd ;,

subilogika,-1 ;, logika 1

rjmpEd ;

MEd: ;

sbicPinD,6 ; < ?

rjmpEd ;,

rcall Zad05

mov temp,logika

andi temp,0b00001111

subitemp,1 ; 1

brcsEd ; , ( < 0 )

subi logika,1 ; 1

rjmp Ed

End

ret

, : = 6, = 3 .. .

Des:

outPortA,logika ;

sbic PinD,4 ; à ?

rjmpBDes ;,

rcallZad05 ;, 0,5

rjmp Ende ;

BDes: ;

sbicPinD,5 ; > ?

rjmpMDes ;,

rcallZad05

movtemp,logika

anditemp,0b11110000;

swaptemp ;

subi temp,-1 ; 1

cpse temp,lim ;temp=lim ?

subilogika,-0b00010000;, 1

rjmpDes

MDes: ;

sbicPinD,6 ; < ?

rjmpDes ;,

rcall Zad05

mov temp,logika

andi temp,0b11110000

swap temp

subi temp ,1 ; 1

brcsDes ; , ( < 0)

subilogika,0b00010000; 1

Ende:

ret

:

StandClok:

outPortA,data ;

sbi PortB,k1

lditemp,4 ; < 4

mov lim,temp

mov logika,data ; data logika

rcallEd ;

rcallDes ;

movdata,logika

movDAT,data ; RTS

ldiClkA,4 ; RTS

rcallwrite_TWI ; RTS

cbiPortB,k1 ;

..

.

clrDAT ;

ldiClkA,0 ;

rcallwrite_TWI

ldiDAT,0b00010000 ; SQW=1 Hz

ldiClkA,7 ;

rcallwrite_TWI

reti

- StandBudi StandClok INT1 ( S2 . ). , . sbi PortC,3.

RTS RTS.

i2c DS1307 TWI (TWO WIRE serial Interface ). TWI i2c Philips. 128 , : SCL SDA. (Master) , RTS (Slave) .

(Control Unit) TWI TWCR , .

TWCR:

7. TWINT TWI. , . I SREG TWIE TWCR, . TWINT , SCL . . 1.

6. TWEA . . 1 ; 0 TWI.

5. TWSA . TWSA . 1 , , . , TWI . .

4.TWSTO . . 1 . .

. 3. TWWC . 1 TWDR, TWINT . TWDR, TWINT .

. 2. TWEN TWI. . 1 TWI / SCL SDA. TWEN TWI .

. 1. , 0

. 0. TWI. 1 I SREG , .

RTS:

write_TWI:

rcallStart ;

rcallwait ; TWINT

rcallSLA_W; (RTS),

rcallAdres ; RTS

rcallwait

rcallWdata ; RTS

rcall Stop ;

ret

Stop:

ldi temp,(1<<TWINT)|(1<<TWEN)|(1<<TWSTO)

out TWCR,temp

ret

Start:

ldi temp,(1<<TWINT)|(1<<TWEN)|(1<<TWSTA)

out TWCR,temp

ret

SLA_W:

lditemp,0b11010000 ; RTS,

out TWDR,temp

ldi temp,(1<<TWINT)|(1<<TWEN)

out TWCR,temp

ret

Adres:

outTWDR,ClkA ; RTS

ldi temp,(1<<TWINT)|(1<<TWEN)

out TWCR,temp

ret

Wdata:

out TWDR,DAT ;

ldi temp,(1<<TWINT)|(1<<TWEN)

out TWCR,temp

ret

wait:

in temp,TWCR

sbrs temp,TWINT ; TWINT

rjmp wait

ret

RTS:

read_TWI:

rcall Start

rcall wait

rcall SLA_W

rcall wait

rcall Start

rcall wait

rcallSLA_R ; RTS

rcall wait

rcall Rdata ; RTS

sbiPortC,1 ; (SDA=1)

rcallStop

ret

Rdata:

lditemp,0b11010001 ; RTS (1101000 RTS)

outTWDR,temp

lditemp,(1<<TWINT)|(1<<TWEN) ; TWI

outTWCR,temp

ret

Rdata:

lditemp,0b11010001 ; RTS (1101000 RTS)

outTWDR,temp

lditemp,(1<<TWINT)|(1<<TWEN) ; TWI

outTWCR,temp

ret

, :

- RTS

- , , ( S6 )

- , , ( )

- (, ) ( sbis PinC,3), .

Start1:

rcallLesung; RTS

sbisPinD,1 ; ?

rjmpIndD ;,

rcall IndClok;

rjmpBudilo

IndD:

rcallIndData ;

Budilo:

sbisPinC,3 ; ?

rjmpStart1 ;,

cpseHoer,BHoer ;

rjmpStart1 ;

cpseMin,BMin ;

rjmpStart1 ;

sbiPortC,2 ; -

rjmpStart

RTS:

Lesung:

ldi ClkA,6 ;

rcall read_TWI

mov Year,DAT

, , , , - .

:

IndClok:

out PortA,Hoer ;

sbi PortB,k1

rcall Zad010 ; 10

cbi PortB,k1

rcall Zad001 ; 1

out PortA,Min ;

sbi PortB,k2

rcall Zad010

cbi PortB,k2

rcall Zad001

out PortA,Sec ond ;

sbi PortB,k3

rcall Zad010

cbi PortB,k3

ret

(IndData) . .

:

(jpg PCAD 2006)

(AVR Studio 4.12)

: Andre