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)
-   -   pic16f877a (http://www.picvietnam.com/forum/showthread.php?t=32467)

letiendung372 22-06-2013 10:46 PM

pic16f877a
 
1 Attachment(s)
chào các anh em , em co đoạn code như sau;
//============================
#include <16F877A.h>
#fuses NOWDT,NOPUT,HS,NOPROTECT
#use delay(clock=20000000)
#use fast_io(D)// su dung IO cho Port D
#use fast_io(B)// su dung IO cho Port B
#byte portB=0x06 // khai bao dia chi cho Port B neu k co khai bao nay thi se k duoc define
#byte portD=0x08 // khai bao dia chi cho Port D neu k co khai bao nay thi se k duoc define
#bit B0=0x06.0 // khai bao ten B0 la Port B.0(vi khai bao dia chi la #byte portb=0x06) nen 0x06.0 la chan B0
#bit B1=0x06.1
#bit B2=0x06.2
#bit B3=0x06.3
#bit B4=0x06.4
#bit B5=0x06.5
#bit D0=0x08.0
#bit D1=0x08.1
#bit D2=0x08.2
#bit D3=0x08.3
#bit D4=0x08.4

main()
{
set_tris_D(0xFF);// dinh nghia Port D la cong in put
set_tris_B(0x00);// dinh nghia Port B la cong out put

while(1)

{
if (D0==0)
{B0=1;}
else if (D0=1)
{ B0=0;}
if(D1==0)
{B1=1;}
else if (D1=1)
{ B1=0;}
if(D2==0)
{B2=1;}
else if (D2==1)
{B2=0;}
if(D3==0)
{B3=1;}
else if (D3==1)
{B3=0;}
if(D4==0)
{
B4=1;
}
else if(D4==1)
{B4=0;}
else continue;
}
}
//===================
mong các anh giúp em nếu em muốn B0=1 thì B5 =1 B5 trễ 1000ms B5=0
thì phải viết như thế nào.rất mong các anh giúp em với

letiendung372 23-06-2013 03:27 PM

không có ai giúp em chút sao

buivantuyen89th 28-06-2013 10:22 AM

Trích:

Nguyên văn bởi letiendung372 (Post 82300)
chào các anh em , em co đoạn code như sau;
//============================
#include <16F877A.h>
#fuses NOWDT,NOPUT,HS,NOPROTECT
#use delay(clock=20000000)
#use fast_io(D)// su dung IO cho Port D
#use fast_io(B)// su dung IO cho Port B
#byte portB=0x06 // khai bao dia chi cho Port B neu k co khai bao nay thi se k duoc define
#byte portD=0x08 // khai bao dia chi cho Port D neu k co khai bao nay thi se k duoc define
#bit B0=0x06.0 // khai bao ten B0 la Port B.0(vi khai bao dia chi la #byte portb=0x06) nen 0x06.0 la chan B0
#bit B1=0x06.1
#bit B2=0x06.2
#bit B3=0x06.3
#bit B4=0x06.4
#bit B5=0x06.5
#bit D0=0x08.0
#bit D1=0x08.1
#bit D2=0x08.2
#bit D3=0x08.3
#bit D4=0x08.4

main()
{
set_tris_D(0xFF);// dinh nghia Port D la cong in put
set_tris_B(0x00);// dinh nghia Port B la cong out put

while(1)

{
if (D0==0)
{B0=1;}
else if (D0=1)
{ B0=0;}
if(D1==0)
{B1=1;}
else if (D1=1)
{ B1=0;}
if(D2==0)
{B2=1;}
else if (D2==1)
{B2=0;}
if(D3==0)
{B3=1;}
else if (D3==1)
{B3=0;}
if(D4==0)
{
B4=1;
}
else if(D4==1)
{B4=0;}
else continue;
}
}
//===================
mong các anh giúp em nếu em muốn B0=1 thì B5 =1 B5 trễ 1000ms B5=0
thì phải viết như thế nào.rất mong các anh giúp em với

Mình cũng không hiểu ý bạn lắm. nhưng nếu bạn chỉ muốn "B0=1 thì B5=1 trễ 1000ms B5=0" thì code như sau:
if (B0==1)
{ B5=1; delay_ms(1000); B5=0;}
mình chỉ làm được vậy.hi
chúc bạn may mắn!

letiendung372 29-06-2013 12:22 AM

mình rất cảm ơn bạn , mình đã làm theo ý bạn nhưng B5 vẫn cứng đơ không chịu tắt

letiendung372 29-06-2013 12:36 AM

if (DO==0)
{B0=1;B5=1;delay_ms(1000);B5=0;} ý bạn là viết như thế này phải không ,mình sợ mô phỏng sai lắp thử ra ngoài nó vẫn vậy


Múi giờ GMT. Hiện tại là 04:28 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