Professional Documents
Culture Documents
MỤC TIÊU:
THAM KHẢO:
➢ Atmel-2505-Setup-and-Use-of-AVR-Timers_ApplicationNote_AVR130.pdf
BÀI 1
a) Viết chương trình con delay 1 ms sử dụng timer 0. Sử dụng chương trình con này để tạo
xung 500 Hz trên chân PA0.
T=1/F=1/500=2MS => TH=TL=1MS
CHỌN HỆ SỐ CHIA N=64
.ORG 0
RJMP MAIN
.ORG 0X40
MAIN:
LDI R16,HIGH(RAMEND)
OUT SPH,R16
https://doe.dee.hcmut.edu.vn/
Lab 2-1
OUT SPL,R16
OUT DDRA,R16
OUT TCCR0A,R17
OUT TCCR0B,R17
START:
RJMP START
DELAY_T0:
OUT TCNT0,R17
OUT TCCR0B,R17
WAIT:
https://doe.dee.hcmut.edu.vn/
Lab 2-1
SBRS R17,TOV0
RJMP WAIT
OUT TIFR0,R17
OUT TCCR0B,R17
RET
https://doe.dee.hcmut.edu.vn/
Lab 2-1
BÀI 2
a) Viết chương trình tạo 1 xung vuông 64 us sử dụng timer 0 ở chế độ Normal mode. Ngõ
ra sử dụng chân OC0.
Chọn ngõ ra là chân OC0A là chân PB3
Xung đối xứng T/2=32us => giá trị nạp -32 (hệ số chia N=8)
.ORG 0X00
RJMP MAIN
.ORG 0X40
https://doe.dee.hcmut.edu.vn/
Lab 2-1
LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,LOW(RAMEND)
LDI R16,0X08
LDI R17,0X00
LDI R17,0X00
START:
RCALL DELAY32US
RJMP START
DELAY32US:
https://doe.dee.hcmut.edu.vn/
Lab 2-1
WAIT:
LDI R17,0X00
RET
https://doe.dee.hcmut.edu.vn/
Lab 2-1
b) Viết chương trình thực hiện tạo xung vuông có chu kỳ 64 us sử dụng timer 1 ở chế độ
CTC mode. Ngõ ra sử dụng chân OC0.
TH=TL=32US
.EQU P_OUT=5
.ORG 0
RJMP MAIN
.ORG 0X40
MAIN:
LDI R16,HIGH(RAMEND)
https://doe.dee.hcmut.edu.vn/
Lab 2-1
LDI R16,LOW(RAMEND)
OUT SPL,R16
LDI R16,(1<<P_OUT)
OUT DDRD,R16
LDI R17,HIGH(31)
STS OCR1AH,R17
LDI R17,LOW(31)
STS OCR1AL,R17
STS TCCR1A,R17
STS TCCR1B,R17
WAIT:
;XÓA CỜ OCF1A
LDI R16,0X20
https://doe.dee.hcmut.edu.vn/
Lab 2-1
RJMP WAIT
BÀI 3
a) Cho chương trình sau tạo 2 xung PWM trên OC0A và OC0B
.org 00
call initTimer0
https://doe.dee.hcmut.edu.vn/
Lab 2-1
start:
rjmp start
initTimer0:
out DDRB,r16
ldi r16, 75
ret
b) Kết nối chân OC0A và chân OC0B ra 2 kênh đo của oscilloscope, đo và ghi nhận, giải
thích dạng sóng thu được
https://doe.dee.hcmut.edu.vn/
Lab 2-1
Hệ số chia N=8
Mô thức ngõ ra: xóa OCR0A=0 khi đạt kết quả so sánh
BÀI 4
https://doe.dee.hcmut.edu.vn/
Lab 2-1
TCCR0A TCCR0B
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
COM0A COM0A COM0B COM0B WM0 WGM0 FOC0 FOC0 WM0 CS0 CS0 CS0
1 1 0 1 0 1 0 A B 2 2 1 0
2 1 0 1 0 1 1 0 0 1 0
3 1 0 1 0 1 1 1 0 1 0
4 1 0 1 0 0 1 0 0 1 0
b) Kết nối chân OC0A và chân OC0B ra 2 kênh đo của oscilloscope, đo và ghi nhận, giải
thích dạng sóng thu được
https://doe.dee.hcmut.edu.vn/
Lab 2-1
Trường hợp 3:
.ORG 00
CALL INITTIMER0
START:
RJMP START
INITTIMER0:
OUT DDRB,R16
https://doe.dee.hcmut.edu.vn/
Lab 2-1
LDI R16, 75
RET
https://doe.dee.hcmut.edu.vn/
Lab 2-1
BÀI 5
a) Viết chương trình tạo ra 1 xung tần số 1Khz, duty cycle 25% trên chân OC0B
T=1/f=1ms=1000us
https://doe.dee.hcmut.edu.vn/
Lab 2-1
.ORG 0
RJMP MAIN
.ORG 0X40
MAIN:
LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
OUT DDRB,R16
OUT TCCR0A,R17
OUT TCCR0B,R17
START:
https://doe.dee.hcmut.edu.vn/
Lab 2-1
RJMP START
DELAY_T0:
OUT TCNT0,R17
OUT TCCR0B,R17
WAIT:
IN R17,TIFR0
SBRS R17,TOV0
RJMP WAIT
OUT TIFR0,R17
OUT TCCR0B,R17
RET
https://doe.dee.hcmut.edu.vn/
Lab 2-1
c) Kết nối OC0B vào kênh R của 1 LED RGB. Viết chương trình để tăng duty cycle trên
OC0B từ 0% lên 100% rồi lại giảm xuống 0, sau 10 ms duty cycle tăng/giảm 1%.
.equ P_OUT=4
.ORG 0
https://doe.dee.hcmut.edu.vn/
Lab 2-1
.ORG 0X40
OUT SPH,R16
LDI R16,LOW(RAMEND)
OUT SPL,R16
LDI R16,(1<<P_OUT)
OUT DDRB,R16
OUT OCR0A,R16
LDI R16,0
LDI R17,1 ;
OUT TCCR0A,R16
OUT TCCR0B,R16
OUT OCR0B,R16
https://doe.dee.hcmut.edu.vn/
Lab 2-1
BRNE LAP1
OUT OCR0B,R16
CPI R16,0
BRNE LAP2
DELAY_10MS:
push r27
push r28
NOP ;1MC
BRNE L2 ;2/1MC
BRNE L1 ;2/1MC
pop r28
pop r27
https://doe.dee.hcmut.edu.vn/
Lab 2-1
bai-5-c.mp4
https://doe.dee.hcmut.edu.vn/
BÁO CÁO
Nhóm:
BÀI 1
BÀI 2
https://doe.dee.hcmut.edu.vn/
BÁO CÁO
Nhóm:
BÀI 3
b. Giải thích lý do có dạng sóng (tần số, chu kỳ làm việc, phase) như kết quả
Mode FPWM, chân OC0A và OC0B =0 khi đạt kết quả so sánh,=1 khi ở
BOTTOM (không đảo)
Chu kỳ:T=N*(TOP+1)/Fosc=256us;
BÀI 4
https://doe.dee.hcmut.edu.vn/
BÁO CÁO
Nhóm:
2. Chụp ảnh các dạng sóng ứng với các mode làm việc và giải thích.
Đã chụp và giải thích ở trên
BÀI 5
b. Giá trị đưa vào các thanh ghi của timer 0 là bao nhiêu? Giải thích
TCNT0=-0x00, TCCR0A=0xA3, TCCR0B=0x02, OCR0A=TOP=124,
OCR0B=(Tp*Fosc/N)-1=30
Đã chèn hình ảnh , video ở trên.
https://doe.dee.hcmut.edu.vn/
BÁO CÁO
Nhóm:
https://doe.dee.hcmut.edu.vn/