You are on page 1of 4

1. Đếm số lần nhấn nút trên chân ngõ vào timer0 (T0= chân PB0).

Hiển thị kết


quả LED 7đoạn, lấy mạch hiển thị theo mô hình của mạch thí nghiệm.
2. Viết chương trình tạo sóng vuông 1Hz tại ngõ ra PA0, Fosc=8Mhz bằng:
a. Vòng lặp.
f=1hz => T=1s
1MC=0.125us
tH=tl=0.5s=4.000.000MC=4*250*250*16(3 vòng lặp)
Code
.ORG 0
SBI DDRA,0
MAIN:
SBI PORTA,0
RCALL DELAY
CBI PORTA,0
RCALL DELAY
RJMP MAIN
DELAY:
LDI R20,250
L1:
LDI R19,250
L2:
LDI R18,16
L3:
NOP
DEC R18
BRNE L3
DEC R19
BRNE L2
DEC R20
BRNE L1
RET
b. Timer0, mode normal
Chọn chia tần :(clkI/O)/1024
=>CS[2:0]=101
clkTimer=7812.5hz
=>1 count =1/7812.5=128us
=>tdelay=0.5s=3906counts=18*217
=>timer0 count -217->0
TCNT0=-217
LOOP 18 times
Code
.ORG 0
XUNG:
SBI DDRA,0
SBI PORTA,0
RCALL DELAY
CBI PORTA,0
RCALL DELAY
RJMP XUNG
DELAY:
LP:
LDI R17,18
LDI R16,-217
OUT TCNT0,R16
LDI R16,$00
OUT TCCR0A,R16
LDI R16,$05
OUT TCCR0B,R16
LOOP:
SBIS TIFR0,TOV0
RJMP LOOP
SBI TIFR0,TOV0
LDI R16,$00
OUT TCCR0B,R16
DEC R17
CPI R17,0
BRNE LP
RET
c. Timer0, mode CTC
3. Viết chương trình tạo đồng thời 2 sóng vuông f0=1KHz và f1=400Hz tại 2
ngõ ra OC0A (PB3) và OC1A(PD5) bằng 2 cách:
a. Lập trình timer 0/timer1 mode normal, tạo sóng ngõ ra OC0A/OC1A.
b. Lập trình timer 0/timer1 mode CTC, tạo sóng ngõ ra OC0A/OC1A.

You might also like