Professional Documents
Culture Documents
Viết chương trình cho PIC16F887 dùng ngôn ngữ C, sử dụng fosc = 4MHz
SV làm bài theo các bước sau:
- Vẽ sơ đồ nguyên lý (nếu đề bài không cho trước sơ đồ mạch)
- Tính toán các thông số (nếu có)
- Vẽ lưu đồ giải thuật
- Viết code
Các sơ đồ mẫu:
Mạch 1:
Mạch 2:
Mạch 3:
+5V
RB0
RB1
RB2
Bài 1: điều khiển 8 led sáng dần từ phải qua trái sử dụng sơ đồ mạch 1, thời gian tồn tại một
trạng thái là 500ms
Bài 2: điều khiển 8 led sáng đuổi từ phải qua trái sử dụng sơ đồ mạch 1, thời gian tồn tại một
trạng thái là 500ms
Bài 3: điều khiển 8 led sáng dồn từ phải qua trái sử dụng sơ đồ mạch 1, thời gian tồn tại một
trạng thái là 500ms
Bài 4: điều khiển 2 led bảy đếm lên 00 24 sử dụng sơ đồ mạch 2, thời gian tồn tại một trạng
thái là 500ms
Bài 5: điều khiển 2 led bảy đếm lên 24 00 sử dụng sơ đồ mạch 2, thời gian tồn tại một trạng
thái là 500ms
Bài 6: điều khiển 2 led bảy đếm lên 00 60 sử dụng sơ đồ mạch 3, thời gian tồn tại một trạng
thái là 500ms
Bài 7: điều khiển 2 led bảy đếm lên 60 00 sử dụng sơ đồ mạch 3, thời gian tồn tại một trạng
thái là 500ms
Bài 8: lập trình nút nhấn + led đơn (mạch 1)
Khi nhấn nút 1 (RB0): 8 led chớp tắt 3 lần với f = 1Hz
Khi nhấn nút 2 (RB1): 8 led sáng dần 3 lần, thời gian tồn tại một trạng thái là 500ms
Bài 9: lập trình nút nhấn + led bảy đoạn (mạch 2)
Khi nhấn nút 1 (RB0): led hiển thị chữ “GO” trong 2s
Khi nhấn nút 2 (RB1): led đếm lên 00 12, thời gian tồn tại một trạng thái là 500ms
Bài 10: lập trình ngắt ngoài + led đơn (mạch 1)
Chế độ bình thường: 8 led sáng dần từ trái qua phải, thời gian tồn tại một trạng thái là 500ms
Chế độ ngắt (khi nhấn RB0) : led 1,3,5 sáng trong 3s rồi tắt
Bài 11: lập trình ngắt portB + led bảy đoạn (mạch 2)
Chế độ bình thường: hiển thị số A = 35 chớp tắt với f = 1Hz
Chế độ ngắt PORTB
+ nhấn RB0: hiển thị phần nguyên của A khi chia 3 trong 2s
+ nhấn RB1: hiển thị phần dư của A khi chia 3 trong 2s
Bài 12: Timer0 + led bảy đoạn (mạch 3)
Lập trình điều khiển led bảy đoạn hiển thị các số chẵn từ 00 – 99, thời gian sáng mỗi trạng thái
là 300ms. dùng timer0 để tạo delay.
Bài 13: Timer0 + led bảy đoạn nối với PORTD,C+ nút nhấn nối với chân RA4 (SV tự vẽ sơ đồ
nguyên lý)
Lập trình điều khiển led bảy đoạn hiển thị theo yêu cầu sau:
Nhấn nhả lần 1: led hiển thị chữ “01”
Nhấn nhả lần 2: led hiển thị chữ “02”
Nhấn nhả lần 3: led hiển thị chữ “03”
Nhấn nhả lần 4: led hiển thị chữ “04”
Nhấn nhả lần 5: led hiển thị chữ “05”
Nhấn nhả lần 6: led hiển thị chữ “06”
Nhấn nhả lần 7: led tắt hết
Quá trình lặp lại như nhấn nhả lần 1, sử dụng timer0 ở chế độ đếm xung.
Bài 14: Timer1 + led đơn (mạch 1)
Lập trình điều khiển 8 led đơn sáng dần từ 2 biên vào, thời gian sáng mỗi trạng thái là 500ms.
dùng timer1 để tạo delay.
Bài 15: PWM (SV tự vẽ sơ đồ nguyên lý)
viết chương trình điều khiển tạo xung PWM có fPWM = 7KHz, D = 40% tại chân RC2. Sử dụng
modul CCP ở chế độ PWM, fosc=4MHz. Hiển thị phần trăm D trên 2 led bảy đoạn (nối PORTB,D).
Bài 16: PWM (SV tự vẽ sơ đồ nguyên lý)
viết chương trình điều khiển tạo xung PWM có fPWM = 10KHz, Toff = 3Ton tại chân RC1. Sử dụng
modul CCP ở chế độ PWM, fosc=4MHz. Hiển thị phần trăm D trên 2 led bảy đoạn (nối PORTB,D).
Bài 17: PWM + nút nhấn (SV tự vẽ sơ đồ nguyên lý)
Viết chương trình điều khiển tạo xung PWM tại chân RC1, RC2. Sử dụng modul CCP ở chế độ
PWM, fosc = 4MHz. Xung được tạo ra như sau
Nhấn nhả SW0 (nối với RB0):
tạo xung chân RC2 có f = 8Khz, D1=40% ; RC1 = 0
Nhấn nhả SW1 (nối với RB1):
tạo xung chân RC1 có f = 8Khz, D2=90% ; RC2 = 0
Bài 18: Timer1 + led đơn (mạch 1)
Lập trình điều khiển led 0 (nối với RD0) chớp tắt với f = 2Hz
Lập trình điều khiển led 1 (nối với RD1) chớp tắt với f = 1Hz
Lập trình điều khiển led 2 (nối với RD2) chớp tắt với f = 0.5Hz
Lập trình điều khiển led 3 (nối với RD3) chớp tắt với f = 0.25Hz
Sử dụng timer1 để tạo delay, các led có thời điểm bắt đầu như nhau.
Bài 19: ADC (SV tự vẽ sơ đồ nguyên lý)
viết chương trình điều khiển đọc giá trị điện áp (05V) từ biến trở nối với chân RB1, chuyển đổi
ADC và hiển thị giá trị của 8 bit cao của giá trị số sau khi chuyển đổi ADC lên 8 LED đơn (nối với
PORTD). Tìm giá trị số (10 bit) tương với điện áp vào là 3.5V
Bài 20: ADC (SV tự vẽ sơ đồ nguyên lý)
viết chương trình điều khiển đọc giá trị điện áp (05V) từ biến trở nối với chân RE1, chuyển đổi
ADC và hiển thị giá trị số sau khi chuyển đổi ADC lên LED đơn (nối với PORTD,C). Tìm giá trị số
(10 bit) tương với điện áp vào là 2.5V
yêu cầu:
sử dụng điện áp tham chiếu ngoài: Vref+ = 4V; Vref- = 0V
chon tần số chuyển đổi ADC: fadc = fosc/2