![]() |
|
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 |
Nhập môn đệ tử
Tham gia ngày: Nov 2009
Bài gửi: 8
: |
giúp em cái code này
Mình đang làm bài tập đếm số = con PIC 16f877A (dem 0-99)
mà nó chạy ko đúng mong các bạn giúp đỡ. được viết =chương trình Pic C compler 4.08 #use delay(clock=20000000) #fuses LP, XT, HS , WDT, NOWDT, PROTECT, NOPROTECT, PUT, NOPUT, BROWNOUT, NOBROWNOUT int16 a=0; int8 i, hang_chuc, donvi; void dem() { a++; } void bcd() { donvi=a%10; hang_chuc=a/10; } void display() { while(1) { output_b(donvi); output_high(PIN_A0);///noi voi transitor delay_ms(100); output_low(PIN_A0); delay_ms(100); output_high(PIN_A1); delay_ms(100); output_b(hang_chuc); delay_ms(100); output_low(PIN_A1); } } void main() { set_tris_b(0x00); delay_ms(2000); while(1) { dem(); bcd(); display(); } } |
![]() |
![]() |
![]() |
#2 |
Đệ tử 4 túi
Tham gia ngày: May 2009
Bài gửi: 74
: |
ct của bạn có những vấn đề sau:
khai báo #fuses LP, XT, HS ban khai báo HS khi sử dụng thạch anh >= 4MHZ và XT với thạch anh <4MHz và chỉ khai báo HS hoặc XT chứ o viết cả 2 như bạn vì bạn dùng thạch anh 20MHZ nên sẽ khai báo HS - bạn không được dùng vòng lắp while(1) trong ct con khi đó nó sẽ không thoát ra được khỏi ct con - ct của bạn sẽ thực hiện ct dem() ,bcd() và luôn thực hiện ct con dislay() vì có vòng lặp vô hạn trong dislay() - khi bạn thực hiện đếm thì bạn nên sử dụng timer để định sau bao lâu thì đếm hoặc sử dụng timer ở chế độ counter đếm xung clock bền ngoài hoặc dùng ngắt còn ở ct của cậu nếu bỏ while(1) ở dislay() thì nó sẽ chạy rấtnhanh cỡ khoảng vài trăm ms nên số đếm tăng lên rất nhanh bạn không thể kiểm soát được -vấn đề thứ 3 đó là bạn xuất dữ liệu ra port A nhưng ban chưa định cho nó là đầu ra set_tris_a(0x00); |
![]() |
![]() |
![]() |
#3 |
Nhập môn đệ tử
Tham gia ngày: Nov 2009
Bài gửi: 8
: |
mình đã suẳ code và mo phỏng bằng protues.
http://megashare.vn/download.php?uid...100&bn=eee.rar |
![]() |
![]() |
![]() |
#4 |
Nhập môn đệ tử
Tham gia ngày: Nov 2009
Bài gửi: 8
: |
mình muốn nó đếm từ 0-99 thôi . ban nào có code đã test share cho mình với. viết = ngôn ngữ C ấy. thanks
|
![]() |
![]() |
![]() |
#5 |
Nhập môn đệ tử
Tham gia ngày: Nov 2009
Bài gửi: 8
: |
no ko chạy bạn ah .
|
![]() |
![]() |
![]() |
|
|