Pc0 Output Reset Pc0 Timero:Nor Stop Timer
Pc0 Output Reset Pc0 Timero:Nor Stop Timer
(a)
.ORG 0x00
LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
SBI DDRC,0; PC0=OUTPUT
CBI PORTC,0; RESET PC0
LDI R16,0X00
OUT TCCR0A,R16; TIMERO:NOR
LDI R16,0X00
OUT TCCR0B,R16; STOP TIMER
START:
RCALL DELAY_5MS
IN R17,PORTC
LDI R16,1
EOR R17,R16; DAO PC0
OUT PORTC,R17
RJMP START
DELAY_5MS:
LDI R16,-39
OUT TCNT0,R16; n=39
LDI R16,0X05
OUT TCCR0B,R16; N=1024
WAIT:
IN R16,TIFR0
SBRS R16,TOV0
RJMP WAIT
OUT TIFR0,R16; XOA CO TOV0
LDI R16,0
OUT TCCR0B,R16; STOP TIMER
RET
(b)
.ORG 0x00
LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
SBI DDRC,0; PC0=OUTPUT
CBI PORTC,0; RESET PC0
LDI R16,0X02
OUT TCCR0A,R16; TIMER0:CTC
LDI R16,0
OUT TCCR0B,R16
START:
LDI R17,1
LDI R16,38
OUT OCR0A, R16
LDI R16,0X05
OUT TCCR0B,R16
WAIT:
IN R16,TIFR0
SBRS R16,OCF0A
RJMP WAIT
OUT TIFR0,R16
IN R16,PORTC
EOR R16,R17
OUT PORTC,R16
RJMP START
(a) NOR:
.EQU OUTPUT=5
.EQU N1=-7000
.EQU N2=-13000
.ORG 0
RJMP MAIN
.ORG 0X40
MAIN:
LDI R16,(1<<OUTPUT)
OUT DDRB,R16
LDI R17,0X00
STS TCCR1A,R17; TIMER1 MODE NOR N=1
LDI R17,0X00
STS TCCR1B,R17; STOP TIMER1
START:
SBI PORTB,OUTPUT; BAN DAU DAT PB5=1 ( CKNV 35%)
RCALL DELAY_35
CBI PORTB,OUTPUT; PB5=0 (CKNV 65%)
RCALL DELAY_65
RJMP START
DELAY_35:
LDI R17,HIGH(N1)
STS TCNT1H,R17
LDI R17,LOW(N1)
STS TCNT1L,R17; NAP GIA TRI DAT TRC N1
LDI R16,0X01
STS TCCR1B,R16; TIMER1 N=1 RUN
CHK_FL:
IN R17,TIFR1
SBRS R17,TOV1
RJMP CHK_FL; TOV1=0 => TIEP TUC KTRA
OUT TIFR1,R17; XOA CO TOV1
LDI R16,0X00
STS TCCR1B,R16; STOP TIMER1
RET
DELAY_65:
LDI R17,HIGH(N2)
STS TCNT1H,R17
LDI R17,LOW(N2)
STS TCNT1L,R17; NAP GIA TRI DAT TRC N1
LDI R16,0X01
STS TCCR1B,R16; TIMER1 N=1 RUN
CHK_FL1:
IN R17,TIFR1
SBRS R17,TOV1
RJMP CHK_FL1; TOV1=0 => TIEP TUC KTRA
OUT TIFR1,R17; XOA CO TOV1
LDI R16,0X00
STS TCCR1B,R16; STOP TIMER1
RET
(b) CTC: