PDA

View Full Version : Mong anh em giúp đỡ !


Option
30-12-2009, 08:41 PM
Em có thử 1 bài C này nhưng chưa được. khi nhấn RD0 mà RD6 mức thấp thì lên mức cao và ngược lại. thế mà vẫn chưa được.
Đây là link,các anh chịu khó down về xem giúp em với, có cả file mô phỏng luôn:
http://download264.mediafire.com/ym30flpjmjfg/kzzjgwkkwyh/baitap1.rar

Yokel
31-12-2009, 10:26 AM
Mua mạch nạp ở tphcm thì mua ở đâu nhỉ?,mua nước rữa mạch dùng bord cảm quang thì mua những loại nào?

Option
31-12-2009, 10:42 AM
Hic.hok cóa anh nào cho 1 lời tư vấn hết ta.buồn thiệt.

Mr.Bi
01-01-2010, 02:48 PM
Em có thử 1 bài C này nhưng chưa được. khi nhấn RD0 mà RD6 mức thấp thì lên mức cao và ngược lại. thế mà vẫn chưa được.
Đây là link,các anh chịu khó down về xem giúp em với, có cả file mô phỏng luôn:
http://download264.mediafire.com/ym30flpjmjfg/kzzjgwkkwyh/baitap1.rar

dễ òm chi mà k đc

main()
{ TRISD.0 =1;TRISD.6=0; // khai báo 2 chân nhập xuất
RD0=RD6=1;
while(1)
{ if (!RD0) {delay_ms(10);while(!RD0);delay_ms(10);RD6=~RD6;}
}
}

Delfy_Coltech
01-01-2010, 03:05 PM
Hi all!
Lời đầu cho Bài viết đầu tiên trong năm mới 2010 này! Cho phép tôi gửi tới toàn thể Anh, Chị, Em, bạn bè trong diễn đàn "PIC VIET NAM" lời chúc mừng năm mới: Sức khỏe- thành công và gặp nhiều may mắn!

Về câu hỏi của bạn.
File mô phỏng của bạn mình ko mở được!
Tuy nhiên theo như code bạn viết:
#include <16f877a.h>
#include <def_877a.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=400000)

void main(void)
{
trisd=0x1;
portd=0x0;
while(1)
{
if(rd0==1)
rd6=0;
else
{
if(rd0==0)
rb6=0;
else
{
if(rd6==0)
rd6=1;
else
rd6=0;
}
}
}
}

Mình có mấy góp ý sau:
Thứ nhất: Bạn khai báo sai Clock. Nếu sử dụng 4MHz thì còn thiếu 1 số 0. Nhưng theo mình nên dùng thạch anh 20MHz và tương ứng trong mô phỏng Proteus bạn phải khai báo tần số thạch anh giống như thế.

Thứ 2: Đoạn khai báo TRISD, ở đây RD0 của bạn là chân INPUT, còn RD6 là chân OUTPUT. Khai báo trisd=0x1 như bạn là chưa đúng (Khi chạy thì vẫn OK,nhưng PIC sẽ phải mất time để set lại). Có thể không cần khai báo gì.

Thứ 3: Thường thì nên thiết kế nút nhấn nối đất. Khi nhấn nút sẽ đưa mức logic của chân đc nối về 0. Theo như bạn làm thì đưa nó lên 1--> Khi đó, đưa RD6 về 0. Tuy nhiên khi RD6 về 0 thì bạn lại cho nó lên 1 ngay. Không thấy có thời gian delay để quan sát. Mà viết như bạn hơi dài dòng. Sửa lại và tìm cách viết ngắn hơn nhé!

Thân.

Option
01-01-2010, 05:19 PM
@delfy
em dùng proteus 7.5,chắc anh ko mở được là do vậy.còn nút nhấn thì em làm vậy mà,khi nhấn rd0 sẽ xuống 0,à để em xem lại cách khai báo,do mới học nên nghĩ sao làm vậy chứ chưa nghĩ ra gì hết.để em xem lại có gì nhờ các anh chỉ giáo giúp.hè.