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)
-   -   [Xin giúp đỡ]Bài tập về led và nút bấm với PIC16F886 (http://www.picvietnam.com/forum/showthread.php?t=32918)

kysytoctrang 06-10-2013 08:21 PM

[Xin giúp đỡ]Bài tập về led và nút bấm với PIC16F886
 
Chào các bạn trong diễn đàn. Hiện mình đang bắt đầu học PIC và tự mình đặt ra bài toán như sau

Cổng vào :

Port A0-A5 là các nút nhấn Sw1-sw6
Port C0-C2 lad các nút nhấn sw7-sw9

Cổng ra :

PortB

Khi nhấn các nút thì sẽ cho đầu ra ở portB xuất các tín hiệu khác nhau

Không bấm nút thì outport_B=0

Mình đã lập trình và chạy thử trên protues 7 thì hoạt động được, nhưng khi đổ chương trình vào chip thật thì không hoạt động được.

Mong cac bạn chỉ giúp mình chỗ nào sai hay thiếu sót để mình được học hỏi thêm

P/s : Trong mô phỏng, khi bấm nút có những lúc đầu ra bị nháy nháy không giữ được, vậy có phải do chương trình của mình có vấn đề không ?

Đây là chương trình của mình

Trích:

#include <16F886.h>

#use delay(crystal=20000000)

#define sw1 PIN_A0
#define sw2 PIN_A1
#define sw3 PIN_A2
#define sw4 PIN_A3
#define sw5 PIN_A4
#define sw6 PIN_A5

#define sw7 PIN_C0
#define sw8 PIN_C1
#define sw9 PIN_C2

#FUSES NOWDT //No Watch Dog Timer
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O

void main()
{

while(TRUE)
{
//sw1
if(!input(sw1))
OUTPUT_B(0x70);

///sw2
else if(!input(sw2))
OUTPUT_B(0x0C);

///sw3
else if(!input(sw3))
OUTPUT_B(0x04);

///sw4
else if (!input(sw4))
OUTPUT_B(0x07);

///sw5
else if (!input(sw5))
OUTPUT_B(0x02);

///sw6
else if (!input(sw6))
OUTPUT_B(0x05);


///sw7
else if (!input(sw7))
OUTPUT_B(0x0E);

///sw8
else if (!input(sw8))
OUTPUT_B(0x0B);

///sw9
else if (!input(sw9))
OUTPUT_B(0x0A);

else
OUTPUT_B(0x00);
}

}
Phần mô phỏng

http://i7.upanh.com/2013/1006/12//57724324.untitled.jpg

kysytoctrang 09-10-2013 12:43 AM

Các bạn giúp mình với

truongbm 09-10-2013 02:58 PM

t đợi giúp dài cổ ><

binhbk247 11-10-2013 12:17 PM

thêm #fuses hs
ở hàm main() trước khi vô while(1) thêm set_tris thử bạn

kysytoctrang 16-10-2013 05:55 PM

Trích:

Nguyên văn bởi binhbk247 (Post 83207)
thêm #fuses hs
ở hàm main() trước khi vô while(1) thêm set_tris thử bạn

Cảm ơn bạn. Mình đã thêm các thành phần trên nhưng vẫn bị nhấp nháy ở đầu ra khi chưa có đầu vào haizz


Múi giờ GMT. Hiện tại là 03:56 PM.

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