Trích:
Nguyên văn bởi Em_ku
Em viết đoạn code thế này nhưng mà nó chạy chi chi ấy!! Công tắc bấm nút tại chân RB7, hiển thị số lần bấm nút bằng led7 đoạn. Hix viết mà kô hiểu nó sai chỗ nào. Các bác các anh các chị giúp em với. À mà mấy cái số case ... là em cho bậy quan trọng bấm nút sao cho led nó nhảy..
Code:
#include <C:\Program Files\PICC\Devices\16f877a.h>
#fuses HS,NOWDT
#byte trisb=0x86
#byte portb=0x06
#bit R7=portb.7
#use delay(clock=4000000)
int i;
main ()
{
while (1)
{
trisb=0x00;
R7=1;
portb=0x3f;
if (R7==0)
{
delay_ms(1000);
while (R7==0)
{
;
}
i=i+1;
if (i==10) i=0;
}
return i;
switch (i)
{
case 0: portb=0x3f; break;
case 1: portb=0x05; break;
case 2: portb=0x89; break;
case 3: portb=0xf1; break;
case 4: portb=0xff; break;
case 5: portb=0xf6; break;
case 6: portb=0xf5; break;
case 7: portb=0xf6; break;
case 8: portb=0xf7; break;
case 9: portb=0xf8; break;
}
}
}
Viết của em nó kô bị lỗi gì cả. Nhưng nạp vào pic thì chạy gì gì kô à!! Theo em nghĩ là đúng rồi mà chẳng biết sao nữa. Mô phỏng bằng cái proteus.
|
Theo em thì bác đã vô tình làm cho RB7 vừa là output vừa là input, bác nên cho chân input là 1 chân ở portA, C,..(không phải port B)
không biết các bác có ý kiến gì không?