You are on page 1of 19

1a)

Chọn chia tần :(clkI/O)/8


=>CS[2:0]=010
clkTimer=1Mhz
=>1 count =1us
=>tdelay=25us=25 counts
=>timer0 count -25->0
TCNT0=-25
Code
.EQU P_OUT=0
.ORG 0
MAIN: LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
LDI R16,(1<<P_OUT)
OUT DDRA,R16
LDI R17,0X00
OUT TCCR0A,R17
LDI R17,0X00
OUT TCCR0B,R17
START:
RCALL DELAY
IN R17,PORTA
EOR R17,R16
OUT PORTA,R17
RJMP START
DELAY:
LDI R17,-25
OUT TCNT0,R17
LDI R17,0X02
OUT TCCR0B,R17
WAIT: IN R17,TIFR0
SBRS R17,TOV0
RJMP WAIT
OUT TIFR0,R17
LDI R17,0X00
OUT TCCR0B,R17
RET

=>sai số = 10%

b.

.EQU P_OUT=0
.ORG 0
RJMP MAIN
.ORG 0X40
MAIN: LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
LDI R16,(1<<P_OUT)
OUT DDRA,R16
LDI R17,24
OUT OCR0A,R17
LDI R17,0X02
OUT TCCR0A,R17
LDI R17,0X02
OUT TCCR0B,R17
START:
SBIS TIFR0,OCF0A
RJMP START
SBI TIFR0,OCF0A
OUT TIFR0,R17
IN R17,PORTA
EOR R17,R16
OUT PORTA,R17
RJMP START

=>SAI SỐ=0%
2C.

Chọn chia tần :(clkI/O)/8


=>CS[2:0]=010
clkTimer=1Mhz
=>1 count =1us
=>tdelay=5ms=5000 counts=250*20
=>timer0 count -250->0
Loop 20
TCNT0=-250
Code
.EQU P_OUT=0
.ORG 0
MAIN: LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
LDI R16,(1<<P_OUT)
OUT DDRA,R16
LDI R17,0X00
OUT TCCR0A,R17
LDI R17,0X00
OUT TCCR0B,R17
START: RCALL DELAY
IN R17,PORTA
EOR R17,R16
OUT PORTA,R17
RJMP START
DELAY: LDI R17,-250
OUT TCNT0,R17
LDI R17,0X02
OUT TCCR0B,R17
WAIT: IN R17,TIFR0
SBRS R17,TOV0
RJMP WAIT
OUT TIFR0,R17
LDI R17,0X00
OUT TCCR0B,R17
DEC R19
BRNE DELAY
LDI R19,20
RET

=>sai số 0%
2d.

.EQU P_OUT=0
.ORG 0
RJMP MAIN
.ORG 0X40
MAIN: LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
LDI R16,(1<<P_OUT)
OUT DDRA,R16
LDI R17,249
OUT OCR0A,R17
LDI R17,0X02
OUT TCCR0A,R17
LDI R17,0X02
OUT TCCR0B,R17
LOOP:LDI R19,20
START:
SBIS TIFR0,OCF0A
RJMP START
SBI TIFR0,OCF0A
DEC R19
CPI R19,0
BRNE START
OUT TIFR0,R17
IN R17,PORTA
EOR R17,R16
OUT PORTA,R17
RJMP LOOP
SAI SỐ =0%

5A.

Chọn chia tần :(clkI/O)/64


=>CS[2:0]=011
clkTimer=125000hz
=>1 count =8us
=>tdelay1=0.875ms=109 counts
=>timer0 count -109->0
TCNT0=-109
=>tdelay2=1.625ms=203 counts
=>timer0 count -203->0
TCNT0=-203
.EQU P_OUT=0

.ORG 0

MAIN: LDI R16,HIGH(RAMEND)

OUT SPH,R16

LDI R16,LOW(RAMEND)

OUT SPL,R16

LDI R16,(1<<P_OUT)

OUT DDRA,R16

LDI R17,0X00

OUT TCCR0A,R17

LDI R17,0X00

OUT TCCR0B,R17

START:

SBI PORTA,0

RCALL DELAY1

CBI PORTA,0

RCALL DELAY2

RJMP START

DELAY1:
LDI R17,-109

OUT TCNT0,R17

LDI R17,0X03

OUT TCCR0B,R17

WAIT1:

IN R17,TIFR0

SBRS R17,TOV0

RJMP WAIT1

OUT TIFR0,R17

LDI R17,0X00

OUT TCCR0B,R17

RET

DELAY2:

LDI R17,-203

OUT TCNT0,R17

LDI R17,0X03

OUT TCCR0B,R17

WAIT2:

IN R17,TIFR0

SBRS R17,TOV0

RJMP WAIT2

OUT TIFR0,R17

LDI R17,0X00

OUT TCCR0B,R17

RET
5B.

.EQU P_OUT=0

.ORG 0

MAIN: LDI R16,HIGH(RAMEND)

OUT SPH,R16

LDI R16,LOW(RAMEND)

OUT SPL,R16

LDI R16,(1<<P_OUT)

OUT DDRA,R16

LDI R17,0X00

OUT TCCR0A,R17

LDI R17,0X00

OUT TCCR0B,R17

START:

SBI PORTA,0

RCALL DELAY1

CBI PORTA,0

RCALL DELAY2
RJMP START

DELAY1:

LDI R17,0

OUT TCNT0,R17

LDI R17,108

OUT OCR0A,R17

LDI R17,0X02

OUT TCCR0A,R17

LDI R17,0X03

OUT TCCR0B,R17

LOOP1:

SBIS TIFR0,OCF0A

RJMP LOOP1

SBI TIFR0,OCF0A

LDI R17,0

OUT TCCR0B,R17

RET

DELAY2:

LDI R17,0

OUT TCNT0,R17

LDI R17,202

OUT OCR0A,R17

LDI R17,0X02

OUT TCCR0A,R17

LDI R17,0X03

OUT TCCR0B,R17

LOOP2:
SBIS TIFR0,OCF0A

RJMP LOOP2

SBI TIFR0,OCF0A

LDI R17,0

OUT TCCR0B,R17

RET

8a.

Chọn chia tần :(clkI/O)/1024


=>CS[2:0]=101
clkTimer=7812.5hz
=>1 count =1/7812.5=128us
=>tdelay=2s=15625counts=125*125
=>timer0 count -125->0
TCNT0=-125
LOOP 125 times
Code
.EQU P_OUT=0
.ORG 0
MAIN: LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
LDI R16,(1<<P_OUT)
OUT DDRC,R16
CBI PORTC,0
CBI DDRB,0
SBI PORTB,0
SBI PINB,0
LDI R17,0X00
OUT TCCR0A,R17
LDI R17,0X00
OUT TCCR0B,R17
LOOP:
SBIC PINB, 0
RJMP LOOP
SBI PORTC,0
RCALL DELAY
CBI PORTC,0
RJMP LOOP
DELAY:
LDI R17,-125
OUT TCNT0,R17
LDI R17,0X05
OUT TCCR0B,R17
WAIT: IN R17,TIFR0
SBRS R17,TOV0
RJMP WAIT
OUT TIFR0,R17
LDI R17,0X00
OUT TCCR0B,R17
DEC R19
BRNE DELAY
LDI R19,125
RET

8B.
.EQU P_OUT=0
.EQU TF=-15625
.ORG 0X00
MAIN: LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
LDI R16,(1<<P_OUT)
OUT DDRC,R16
SBI PORTC,1
CBI DDRB,0
SBI PINB,0
SBI PORTB,0
LDI R17,0X00
STS TCCR1A,R17
LDI R17,0X00
STS TCCR1B,R17
LOOP:
SBIC PINB, 0
RJMP LOOP
SBI PORTC,0
RCALL DELAY
CBI PORTC,0
RJMP LOOP
DELAY:
LDI R17,HIGH(TF)
STS TCNT1H,R17
LDI R17,LOW(TF)
STS TCNT1L,R17
LDI R17,0X05
STS TCCR1B,R17
WAIT: IN R17,TIFR1
SBRS R17,TOV1
RJMP WAIT
OUT TIFR1,R17
LDI R17,0X00
STS TCCR1B,R17
RET
Chọn chia tần :(clkI/O)/8
=>CS[2:0]=010
clkTimer=1Mhz
=>1 count =1us
=>tdelay1=40us=40 counts
=>tdelay2=55us=55 counts
=>tdelay3=70us=70 counts
=>tdelay4=85us=85 counts
=>tdelay5=100us=100 counts
.EQU P_OUT=0

.ORG 0

MAIN: LDI R16,HIGH(RAMEND)

OUT SPH,R16

LDI R16,LOW(RAMEND)

OUT SPL,R16

LDI R16,(1<<P_OUT)

OUT DDRA,R16

LDI R17,0X00

OUT TCCR0A,R17

LDI R17,0X00

OUT TCCR0B,R17

START:

SBI PORTA,0

RCALL DELAY1

CBI PORTA,0
RCALL DELAY2

SBI PORTA,0

RCALL DELAY3

CBI PORTA,0

RCALL DELAY4

SBI PORTA,0

RCALL DELAY5

CBI PORTA,0

RCALL DELAY2

RJMP START

DELAY1:

LDI R17,0

OUT TCNT0,R17

LDI R17,39

OUT OCR0A,R17

LDI R17,0X02

OUT TCCR0A,R17

LDI R17,0X02

OUT TCCR0B,R17

LOOP1:

SBIS TIFR0,OCF0A

RJMP LOOP1

SBI TIFR0,OCF0A

LDI R17,0

OUT TCCR0B,R17

RET
DELAY2:

LDI R17,0

OUT TCNT0,R17

LDI R17,54

OUT OCR0A,R17

LDI R17,0X02

OUT TCCR0A,R17

LDI R17,0X02

OUT TCCR0B,R17

LOOP2:

SBIS TIFR0,OCF0A

RJMP LOOP2

SBI TIFR0,OCF0A

LDI R17,0

OUT TCCR0B,R17

RET

DELAY3:

LDI R17,0

OUT TCNT0,R17

LDI R17,79

OUT OCR0A,R17

LDI R17,0X02

OUT TCCR0A,R17

LDI R17,0X02

OUT TCCR0B,R17

LOOP3:

SBIS TIFR0,OCF0A

RJMP LOOP3

SBI TIFR0,OCF0A
LDI R17,0

OUT TCCR0B,R17

RET

DELAY4:

LDI R17,0

OUT TCNT0,R17

LDI R17,84

OUT OCR0A,R17

LDI R17,0X02

OUT TCCR0A,R17

LDI R17,0X02

OUT TCCR0B,R17

LOOP4:

SBIS TIFR0,OCF0A

RJMP LOOP4

SBI TIFR0,OCF0A

LDI R17,0

OUT TCCR0B,R17

RET

DELAY5:

LDI R17,0

OUT TCNT0,R17

LDI R17,99

OUT OCR0A,R17

LDI R17,0X02

OUT TCCR0A,R17

LDI R17,0X02

OUT TCCR0B,R17

LOOP5:
SBIS TIFR0,OCF0A

RJMP LOOP5

SBI TIFR0,OCF0A

LDI R17,0

OUT TCCR0B,R17

RET

You might also like