PDA

View Full Version : xuat ra leb


vuhoang8x
17-10-2008, 01:45 PM
Hi, Minh moi hoc voi PIC, minh da mua mot con PIC6F877A va lap trinh cho out ra portB. Nhung chang hieu sao con leb o portB cha sang j het.
Cao thu chi jup.
Code (Su dung CCS)

#use delay(clock=4000000) //dung thach anh 4Mhz

int main ()
{
set_tris_b(0x00);
output_b(0xFF);
while (TRUE)
{
output_low (PINB_7);
delay_ms (500);
output_high (PINB_7);
delay_ms (500);
}
}

nguyenquoctoan
17-10-2008, 10:51 PM
bạn đã dịch ra file hex chương trình mà bạn đã post chưa mình đã chép và bổ sung một số khai báo thì nó báo lỗi 2 dong này đó, bạn xem kỹ cái help trong ccs đi "output_low (PINB_7);" và "output_high (PINB_7);", code như vậy sẽ chạy nè

#include <16F877a.h>
#fuses NOWDT,PUT,HS,NOPROTECT
#use delay(clock=4000000)
//#byte porta=0x05
#byte portb=0x06
//#byte portc=0x07
//#byte portd=0x08
//#byte porte=0x09
int8 A=0;
int i;
int main ()

{
set_tris_b(0x00);
output_b(0xFF);
while (TRUE)
{
output_low (PIN_B7);
delay_ms (500);
output_high (PIN_B7);
delay_ms (500);
}
}

hopeman
18-10-2008, 12:53 AM
có khi phải treo lên cao cổng B thông qua trở 1K lên 5V thì tốt hơn
mà riêng port B thì có thể tự treo được bằng lệnh port_b_pullups(TRUE); thì phải
không biết có giúp gì được bạn ko nhể :)

vuhoang8x
18-10-2008, 09:19 AM
thanks cac ban nhieu. hom nay ve se thu xem sao.

vuhoang8x
21-10-2008, 03:35 PM
Hi,mình đã sửa code và download lại nhưng con pic vẫn không hoạt động.
Mình có dùng Ohsoft simulator để test thử thì thấy code output portB chạy bình thường.
Có cao thủ nào giúp mình với. Có thể port B die hoặc sai cấu hình ??? PIC die (mình đã thử với 3 con PIC16F877A đều không xuất ra được port B -- Cả 3 con PIC deu download/upload binh thuong) ???

love_ac
21-10-2008, 04:35 PM
Bạn có thể copy đoạn code bạn đã viết lên(nguyên vẹn nhé và chụp mạch nguyên lý của bạn lên không(Nếu không có gì bí mật).Sửa thế này thì như bói toán quá

vuhoang8x
21-10-2008, 05:53 PM
Hi
Mình chỉ mới học PIC thôi, chỉ là mạch đơn giản cấp nguồn, thạch anh 4Mhz và gắn con led với pull up resistor vào portB (làm theo sơ đồ của anh F). Mình chỉ gắn nó vào board test thôi.
Code (Sử dụng CCS)
#include <pic16f877a.h>
#fuses NOWDT,PUT,HS,NOPROTECT,NOLPV
#used delay(clock=4000000)

void main ()
{
set_tris_b(0x00);
output_b(0xFF);
while(TRUE)
{
output_low (PIN_B7);
delay_ms(500);
output_high (PIN_B7);
delay_ms(500);
}
}

Mình đã build và run simulator OK. Nhưng khi nap vào con PIC là không chạy.

love_ac
21-10-2008, 06:17 PM
với code trên ok:
((((chỗ này chắc bạn nhầm :include <16f877a.h>,không có pic đằng trước ;NoLVP chứ không phải nolpv;dòng 3 use chứ không phải used)))Bạn đã dịch tốt rồi chứng tỏ lỗi này là do bạn gõ trên đây thôi nên bỏ qua.
Nếu nó vẫn không chạy với code này mình đoán do kết nối phần cứng của bạn chỗ nào đó nhầm nhọt thôi.

nguyenquoctoan
21-10-2008, 09:53 PM
bạn dịch ra file hex có báo lỗi kô,đoạn code của bạn chỉ nhầm mỗi #include <pic16f877a.h>,dịch ra file hex kô báo lỗi nạp vô kô chạy chỉ có thể là do phần cứng,phần cứng chí cần
-chân 11,32 nối 5V
-chân 12,31 nối OV
-chân 13,14 thạch anh,và tụ 33p xuống mass, kô nên xài 15 hay 22p
chĩ đơn giản vậy gắn trên texboard nó cũng chạy