![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ tử 1 túi
Tham gia ngày: Jul 2008
Bài gửi: 11
: |
Chào bạn Nhanh0112!
Mình đã thử mô phỏng lại với PIC2f683, led nhấp nháy rồi! Nếu mạch thực thì nó sáng dần phải không bạn? Mình đã thử lại với PiC6f877a nhưng vẫn không được. Bạn thử mô phỏng xem sao? Còn giả sữ mình muốn điều khiển 8 led đơn cho nó sáng dần từ con 1 đến con thứ 8 thì không sử dụng chân CCPx được rồi! Vậy mình lập trình ra sao? Mong được anh em post lên cho y kiến với! Trân trọng cảm ơn! |
![]() |
![]() |
![]() |
#2 | |
Đệ tử 4 túi
Tham gia ngày: May 2007
Bài gửi: 81
: |
Trích:
Ở đây viết là xung mẫu là 500us, và chiều dài của 1 xung đc băm ra là 100 khoảng (là độ phân giải của nó ấy). Thời gian của 1 xung là T=500x100=50ms Đoạn code đc viết cho 4 chân (bạn có thể mở rộng tùy thích) Các giá trị độ rộng xung đc nạp 1 lần vào mảng Pulse[] từ phần tử 0 đến phần tử 3 tương ứng từ kênh 1 đến kênh 4, với giá trị:0-100 ví dụ pulse[0]=20;//0=min,100=max pulse[1]=45; ..... Code:
#int_timer0 //overflow every 500us void decode() { set_timer0(0); xung++; if(xung<pulse[0])//1 {output_high(PIN_D0);} else {output_low(PIN_D0);} if(xung<pulse[1])//2 {output_high(PIN_D1);} else {output_low(PIN_D1);} if(xung<pulse[2])//3 {output_high(PIN_D2);} else {output_low(PIN_D2);} if(xung<pulse[3])//4 {output_high(PIN_D3);} else {output_low(PIN_D3);} if(xung>100){xung=0;}//end of pulse } |
|
![]() |
![]() |
![]() |
|
|