PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   giúp em cái code này (http://www.picvietnam.com/forum/showthread.php?t=5397)

conchocon 26-11-2009 09:34 PM

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();
}

}

conchocon 26-11-2009 10:15 PM

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

conchocon 26-11-2009 10:25 PM

no ko chạy bạn ah .

dung h 26-11-2009 11:31 PM

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);

conchocon 27-11-2009 12:32 AM

mình đã suẳ code và mo phỏng bằng protues.
http://megashare.vn/download.php?uid...100&bn=eee.rar


Múi giờ GMT. Hiện tại là 06:37 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam