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.