Tài liệu giải bài tập Vi điều khiển AVR cơ bản. Nháy Led đơn, Led 7 đoạn, Timer, ngắt ngoài ADC. Tài liệu phù hợp với sinh viên năm 2 các trường Đại học chuyên nghành Công nghệ thông tin, Điện tử - Viễn thông, Cơ điện tử, Tự động hóa, Điện - Điện tử
Trang 1Nguyễn Quang Vương - 67DCDT20131
Mục Lục
Phần 1: LED đơn 3
2) Lập trình 8 LED đơn nối vào PORTC, 1 nút ấn vào PA0 Nhấn nút bấm thì 8 LED sáng tắt với chu kỳ 200 ms (delay_ms(200)) 3
3.1) Lập trình 8 LED đơn nối vào PORTC, 1 nút ấn nối vào PA0 Nhấn nút bấm thì 8 LED sáng lần lượt từ trên xuông chu kỳ 200 ms, đến led cuối cùng quay về LED đầu tiên 3
3.2) Lập trình dãy 8 LED đơn nối vào PORTC Sử dụng 1 nút bấm nối vào PA0 Trạng thái ban đầu chỉ có LED đầu tiên sáng Ấn nút thì LED sáng sẽ di chuyển từ trên xuống, đến con LED cuối cùng lại vòng về LED đầu tiên 4
3.3) Lập trình dãy 8 LED đơn nối vào PORTC Sử dụng 1 nút bấm nối vào PA0 Trạng thái ban đầu chỉ có LED đầu tiên sáng Ấn nút thì LED sáng sẽ di chuyển sang phải, đến con LED cuối cùng lại vòng về LED đầu tiên Nếu ấn và giữ nút thì LED di chuyển liên tục với chu kì 200(ms) 5
3.4) Lập trình dãy 8 LED đơn nối vào PORTC Sử dụng 1 nút bấm nối vào PA0 Trạng thái ban đầu chỉ có LED đầu tiên sáng Ấn nút lần thứ nhất thì LED sáng sẽ tự động chạy từ trái sang phải với chu kì 200(ms), đến con LED cuối cùng lại vòng về LED đầu tiên Ấn nút lần thứ 2 thì LED sẽ dừng lại 6
AT16, 8 LED nối vào PORTD và 2 nút bấm nối vào PC0 và PC1 7
- Trạng thái đầu 8 LED nhấp nháy xen kẽ với chu kì 100ms 8
*Chú ý: Một số khối hay sử dụng 10
Phần 2: LED 7 THANH 10
Bài 1.1:Lập trình 1 con LED 7 thanh đơn nối vào PORTB, sử dụng 1 nút bấm nối vào PD0 Ban đầu LED hiển thị số 0 Khi ấn nút thì LED sẽ tăng số lên 1 đơn vị, tăng quá 9 LED quay về 0 10
1) Lập trình 1 con LED 7 thanh đơn nối vào PORTB, sử dụng 1 nút bấm nối vào PD0 Ban đầu LED hiển thị số 4 Khi ấn nút thì LED sẽ tự động tăng sau mỗi 1(s), tăng quá 9 thì vòng về 0 đếm chu trình mới 11
Bài 16: Lập trình 4 LED 7 thanh hiển thị số bằng phương pháp quét Ban đầu LED hiển thị số 1234 Sử dụng nút bấm thứ 1 nối vào PA0, nút nhấn thứ 2 nối vào PA1 Khi ấn nút số 1 thì số hiển thị sẽ tăng 1 đơn vị, tăng quá 9999 thì vòng về 0, nhấn nút thứ 2 số hiển thị giảm, giảm tới 0 thì vòng về 9999 12
Phần 3: TIMER 14
Bai 32:Sử dụng một nút bấm nối vào PD0, 1 vào PD1 Trạng thái ban đầu led 7 thanh hiển thị số 1000 Khi bấm nút số hiển thị tăng lên 1 đơn vị sau 1s, ấn nút 2 thì dừng lại Sử dụng timer ở chế độ Normal kích hoạt ngắt tràn để tăng số tự động sau mỗi giây 14
Phần 4: NGẮT NGOÀI 16
Trang 2Bài 28: Lập trình 4 LED 7 thanh hiển thị số bằng phương pháp quét Ban đầu LED hiển thị số 1234 Thiết lập ngắt ngoài 0 hoạt động ở chế độ Rising Egde Khi ngắt ngoài được kích hoạt thì số hiển thị tự động giảm 1 đơn vị sau 1(s) Giảm về 0
thì sẽ tăng lên 9999 16
28) Lập trình 4 LED 7 thanh hiển thị số bằng phương pháp quét Ban đầu LED hiển thị số 1234 Thiết lập ngắt ngoài 1 hoạt động ở chế độ Rising Egde Khi ngắt ngoài được kích hoạt thì số hiển thị sẽ tăng số tự động sau thời gian t, tăng quá 9999 thì vòng về 1 Khi ấn nút 1 thì tăng thời gian t, nhưng không tăng quá 1200(ms) Khi ấn nút 2 thì giảm thời gian t, nhưng không giảm dưới 100(ms) 18
29) Lập trình 4 LED 7 thanh hiển thị số bằng phương pháp quét Ban đầu LED hiển thị số 2222 Sử dụng 2 nút bấm nối vào PD0, PD1 Thiết lập ngắt ngoài 0 hoạt động ở chế độ Falling Edge Khi ngắt ngoài được kích hoạt lần thứ nhất thì số hiển thị sẽ tự động tăng sau mỗi khoảng thời gian t, tăng quá 9999 thì vòng về 0 Khi ngắt ngoài được kích hoạt lần thứ 2 thì số hiển thị sẽ dừng lại Khi ấn nút 1 thì tăng thời gian t, nhưng không tăng quá 1200(ms) Khi ấn nút 2 thì giảm thời gian t, nhưng không giảm dưới 100(ms).???????? 21
Phần 5: ADC 24
TP1: Giới thiệu ADC 25
TP2: Hiển thị sau dấu chấm một số thập phân 27
TP3 2 số thập phân sau dấu chấm 28
TP4 1 nút bấm diều khiển 31
TP5 lm 35 35
Tp6 LM35 voi độ C rõ ràng 38
Trang 3Nguyễn Quang Vương - 67DCDT20131
Hình 1 1: Led đơn 8 LED 2
Hình 1 2: Led đơn 8 led 2 3
Hình 1 3: Led đơn 8 Led 3 5
Hình 1 4: Led đơn 8 led ngang 4 6
Hình 1 5: Led đơn 8 led co phim bấm 6
Hình 1 6: Led đơn 8 led ngang 6 8
Y Hinh 2 1: Led 7 thanh bai 1 10
Hinh 2 2: Led 7 thanh quét led 13
Hình 3 1: Timer 1 14
Hình 4 1: Ngắt ngoài 1 16
Hình 4 2: Ngắt ngoài 2 18
Hình 4 3: Ngắt ngoài 3 21
Trang 4Phần 1: LED đơn
2) Lập trình 8 LED đơn nối vào PORTC, 1 nút ấn vào PA0 Nhấn nút bấm thì 8 LED sáng tắt với chu kỳ 200 ms (delay_ms(200))
Hình 1 1: Led đơn 8 LED
3.1) Lập trình 8 LED đơn nối vào PORTC, 1 nút ấn nối vào PA0 Nhấn nút bấm thì 8 LED sáng lần lượt từ trên xuông chu kỳ 200 ms, đến led cuối cùng quay về LED đầu tiên.
Trang 5Nguyễn Quang Vương - 67DCDT20131
Hình 1 2: Led đơn 8 led 2
3.2) Lập trình dãy 8 LED đơn nối vào PORTC Sử dụng 1 nút bấm nối vào PA0 Trạng thái ban đầu chỉ có LED đầu tiên sáng Ấn nút thì LED sáng sẽ di chuyển từ trên xuống, đến con LED cuối cùng lại vòng về LED đầu tiên.
Trang 63.3) Lập trình dãy 8 LED đơn nối vào PORTC Sử dụng 1 nút bấm nối vào PA0 Trạng thái ban đầu chỉ có LED đầu tiên sáng Ấn nút thì LED sáng sẽ di chuyển sang phải, đến con LED cuối cùng lại vòng về LED đầu tiên Nếu ấn và giữ nút thì LED di chuyển liên tục với chu kì 200(ms).
Trang 7Nguyễn Quang Vương - 67DCDT20131
Hình 1 3: Led đơn 8 Led 3
3.4) Lập trình dãy 8 LED đơn nối vào PORTC Sử dụng 1 nút bấm nối vào PA0
động chạy từ trái sang phải với chu kì 200(ms), đến con LED cuối cùng lại vòng về LED đầu tiên Ấn nút lần thứ 2 thì LED sẽ dừng lại.
Trang 8Hình 1 4: Led đơn 8 led ngang 4
Đề 1: Giữa kì
AT16, 8 LED nối vào PORTD và 2 nút bấm nối vào PC0 và PC1.
Lập trình chương trình hoạt động như sau:
- Led sẽ chạy từ phải sang trái, sau khi hết hàng led sẽ vòng lại LED đầu tiên.
- Ân nút thứ nhất thì sẽ tăng tốc độ chạy LED nhưng không nhanh quá 25Hz
- Ân nút thứ 2 thì sẽ giảm tốc độ chạy LED nhưng không chậm dưới 5Hz
Ân và giữ nút thì tốc độ thay đổi liên tục.
Hình 1 5: Led đơn 8 led co phim bấm
Trang 9Nguyễn Quang Vương - 67DCDT20131
Đề 2: AT16, 8 LED đơn nối vào PORTD và 2 nút bấm nối vào PB6 và PB7 Lập tình chương trình hoạt động như sau:
- Trạng thái đầu 8 LED nhấp nháy xen kẽ với chu kì 100ms
Trang 10- Ân nút thứ nhất thì tăng tần số nhấp nháy.
- Ân nút thứ hai thì giảm tần số nhấp nháy.
- Nếu ấn và giữ nút thì tần số thay đổi liên tục mà không phải chờ nhả nút.??????????
Hình 1 6: Led đơn 8 led ngang 6
Trang 11Nguyễn Quang Vương - 67DCDT20131
Trang 12Hinh 2 1: Led 7 thanh bai 1
1) Lập trình 1 con LED 7 thanh đơn nối vào PORTB, sử dụng 1 nút bấm nối vào PD0.Ban đầu LED hiển thị số 4 Khi ấn nút thì LED sẽ tự động tăng sau mỗi 1(s), tăngquá 9 thì vòng về 0 đếm chu trình mới
Trang 13Nguyễn Quang Vương - 67DCDT20131
2) Lập trình 1 con LED 7 thanh đơn nối vào PORTB, sử dụng 1 nút bấm nối vào PD0.Ban đầu LED hiển thị số 4 Khi ấn nút lần thứ nhất thì LED sẽ tự động tăng sau mỗi1(s), tăng quá 9 thì vòng về 0 đếm chu trình mới Khi nhấn nút lần thứ 2 thì dừng lại
Đề 3: AT16 điều khiển LED 7 thanh và nhận lệnh từ 9 nút
Lập trình:
Khi ấn 1 nút thì sẽ hiển thị số tương ứng từ 0 đến 9
Khi không ấn nút nào thì led hiển thị số 0
Bài 16: Lập trình 4 LED 7 thanh hiển thị số bằng phương pháp quét Ban đầu LED hiển thị số 1234 Sử dụng nút bấm thứ 1 nối vào PA0, nút nhấn thứ 2 nối vào PA1 Khi ấn nút số 1 thì số hiển thị sẽ tăng 1 đơn vị, tăng quá 9999 thì vòng về 0, nhấn nút thứ 2 số hiển thị giảm, giảm tới 0 thì vòng về 9999.
Trang 14[Grab your reader’s attention with a great quote from the document or use this space to emphasize a key point To place this text box anywhere on the page, just drag it.]
Trang 15Hinh 2 2: Led 7 thanh quét led
Phần 3: TIMER
Bai 32:Sử dụng một nút bấm nối vào PD0, 1 vào PD1 Trạng thái ban đầu led 7 thanh hiển thị số 1000 Khi bấm nút số hiển thị tăng lên 1 đơn vị sau 1s, ấn nút 2 thì dừng lại Sử dụng timer ở chế độ Normal kích hoạt ngắt tràn để tăng số tự động sau mỗi giây.
Trang 16Hình 3 1: Timer 1
Trang 17Nguyễn Quang Vương - 67DCDT20131
Phần 4: NGẮT NGOÀI
Bài 28: Lập trình 4 LED 7 thanh hiển thị số bằng phương pháp quét Ban đầu LED hiển thị số 1234 Thiết lập ngắt ngoài 0 hoạt động ở chế độ Rising Egde Khi ngắt ngoài được kích hoạt thì số hiển thị tự động giảm 1 đơn vị sau 1(s) Giảm về 0 thì sẽ tăng lên 9999.
Trang 18Hình 4 1: Ngắt ngoài 1
Trang 19Nguyễn Quang Vương - 67DCDT20131
28) Lập trình 4 LED 7 thanh hiển thị số bằng phương pháp quét Ban đầu LED hiển thị số 1234 Thiết lập ngắt ngoài 1 hoạt động ở chế độ Rising Egde Khi ngắt ngoài được kích hoạt thì số hiển thị sẽ tăng số tự động sau thời gian t, tăng quá
Trang 209999 thì vòng về 1 Khi ấn nút 1 thì tăng thời gian t, nhưng không tăng quá 1200(ms) Khi ấn nút 2 thì giảm thời gian t, nhưng không giảm dưới 100(ms).
Hình 4 2: Ngắt ngoài 2
Trang 21Nguyễn Quang Vương - 67DCDT20131
Trang 22hiển thị số 2222 Sử dụng 2 nút bấm nối vào PD0, PD1 Thiết lập ngắt ngoài 0 hoạt động ở chế độ Falling Edge Khi ngắt ngoài được kích hoạt lần thứ nhất thì số hiển thị sẽ tự động tăng sau mỗi khoảng thời gian t, tăng quá 9999 thì vòng về 0 Khi ngắt ngoài được kích hoạt lần thứ 2 thì số hiển thị sẽ dừng lại Khi ấn nút 1 thì tăng thời gian t, nhưng không tăng quá 1200(ms) Khi ấn nút 2 thì giảm thời gian t, nhưng không giảm dưới 100(ms).????????
Trang 23Nguyễn Quang Vương - 67DCDT20131
Hình 4 3: Ngắt ngoài 3
Trang 26TP1: Giới thiệu ADC
Trang 27Nguyễn Quang Vương - 67DCDT20131
Trang 29Nguyễn Quang Vương - 67DCDT20131
Trang 31Nguyễn Quang Vương - 67DCDT20131
Trang 32C1:2 nut
Trang 33Nguyễn Quang Vương - 67DCDT20131
Trang 35Nguyễn Quang Vương - 67DCDT20131
Trang 37Nguyễn Quang Vương - 67DCDT20131
Trang 39Tp6 LM35 voi độ C rõ ràng