![]() |
|
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ử 2 túi
Tham gia ngày: May 2006
Bài gửi: 26
: |
![]() Chào các bác,
Em cũng mới nghiên cứu về PIC, đang thử làm một mạch test quét LED 7: + dùng cổng B, C. + Thạch anh 4M kèm tụ 33p + nguồn nối đủ cả : 1VDD + 2VSS + chân MCLR nối lên +5V qua trở 10K,nối với đất qua tụ 100nF - Em test hiển thị các số 0 - 9 liên lục, mỗi LED dừng 200ms - Dùng CCS để viết và mô phỏng trên Proteus thì hien thi được , nhưng chạy mạch test thì không được là sao vậy nhỉ???? HIC! - em kiểm tra chân OSC1 & OSC2 bằng Oscillo thì không thấy có dao động, - thử thay thạch anh khác vào ( 8M, 3.5M) mà vẫn không được - bỏ tụ 33p nối với thạch anh ra cũng không được Tuy nhiên, khi bỏ tụ 33p ra khỏi mạch, và sờ tay vào chân OSC1 & OSC2 thì xuất hiện xung một tẹo một mất, rồi xuất hiện rồi lại mất( kiểm tra bằng oscillo) , hiện tượng giống như bị reset liên tục vậy hoặc là dao động bị khởi động lại liên tục , LED nháy liên tục số 0, có lẽ chương trình chạy đến doạn đó rồi lại bị reset lại ! Các bác làm ơn khám bệnh cho nó giúp em với ! hic Đây là chương trình : #include <16F876A.h> #fuses XT, NOWDT, NOPROTECT, NOLVP #use delay(clock = 4000000) #byte portb = 0x06 #byte portc = 0x07 void main() { int const table[10]= {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F }; set_tris_b(0x00); // cong B la dau ra set_tris_c(0x00); // cong C la dau ra portb = 0x00; portc = 0x00; portb= 0Xff; while (1) { portc =0x3F; //0 delay_ms(200); portc =0x06; //1 delay_ms(200); portc =0x5B; //2 delay_ms(200); portc =0x4F; //3 delay_ms(200); portc =0x66; //4 delay_ms(200); portc =0x6D; //5 delay_ms(200); portc =0x7D; //6 delay_ms(200); portc =0x07; //7 delay_ms(200); portc =0x7F; //8 delay_ms(200); portc =0x6F; //9 delay_ms(200); } } |
![]() |
![]() |
|
|