PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 12-08-2010, 10:13 AM   #1
hotronghieu
Nhập môn đệ tử
 
Tham gia ngày: Nov 2009
Bài gửi: 9
:
Post cho em hỏi về ngắt ngoài của pic16f877

em có 1 doạn code nhấp nháy led thông qua nút nhấn kết nối với chân rb0/int0 của pic nhưng e mô phỏng không chạy được.các pro giúp đỡ giùm.dưới day là code em viết.


#include <16f877a.h>
#include <def_877a.h>
#int_ext
#fuses hs,nowdt
#use delay(clock=8000000Hz)
int8 a;
void ext_isr(void)
{
a=1;
}

void main()
{
trisd=0x00;
trisb=0x01;
portb=0x00;
enable_interrupts(int_ext);
ext_int_edge(h_to_l);
enable_interrupts(GLOBAL);
while(a==1)
{
portd=~portd;
delay_ms(200);
}
}
hotronghieu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-08-2010, 10:35 AM   #2
baquyen
Đệ tử 2 túi
 
baquyen's Avatar
 
Tham gia ngày: May 2007
Bài gửi: 31
:
bạn thử để #int_ext ngay phía trước void ext_isr(void), cú pháp nó bắt vậy, mình ko hiểu sao bạn để xa nhau thế. Thử xem có được ko nhé
__________________
Biển học mênh mông -- Quay đầu là bờ!
My blog
baquyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-08-2010, 10:43 AM   #3
hotronghieu
Nhập môn đệ tử
 
Tham gia ngày: Nov 2009
Bài gửi: 9
:
như thế vẫn ko được. ko biết chương trình có bị sai chỗ nào ko?
hotronghieu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-08-2010, 10:51 AM   #4
baquyen
Đệ tử 2 túi
 
baquyen's Avatar
 
Tham gia ngày: May 2007
Bài gửi: 31
:
bạn post luôn cái mô phỏng của bạn đi và mô tả hoạt động của nó thế nào, mình nghĩ ct của bạn có vấn đề luôn, nếu xảy ra ngắt thì a nó bằng 1 mãi mãi, vậy thì a==1 từ đó sẽ true mãi luôn, cái hàm ngắt có ý nghĩa gì nữa ko?
__________________
Biển học mênh mông -- Quay đầu là bờ!
My blog
baquyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-08-2010, 10:55 AM   #5
hotronghieu
Nhập môn đệ tử
 
Tham gia ngày: Nov 2009
Bài gửi: 9
:
mình viết đơn giản như thế để mình test ngắt 1 lần đầu tiên thôi, mình viết vậy cho đơn giản mà
File Kèm Theo
File Type: rar start.rar (14.3 KB, 56 lần tải)
hotronghieu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-08-2010, 11:13 AM   #6
baquyen
Đệ tử 2 túi
 
baquyen's Avatar
 
Tham gia ngày: May 2007
Bài gửi: 31
:
Hix, đang học HTPIC, bạn gửi cái file def_877a và cái file hex của thằng này luôn đi . Cái CCS mới cài lại, thiếu đủ thứ
__________________
Biển học mênh mông -- Quay đầu là bờ!
My blog
baquyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-08-2010, 11:23 AM   #7
hotronghieu
Nhập môn đệ tử
 
Tham gia ngày: Nov 2009
Bài gửi: 9
:
anh coi gium em
File Kèm Theo
File Type: rar New Folder.rar (1.4 KB, 34 lần tải)
hotronghieu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-08-2010, 11:28 AM   #8
baquyen
Đệ tử 2 túi
 
baquyen's Avatar
 
Tham gia ngày: May 2007
Bài gửi: 31
:
Nó chạy mà bạn, cái mô phỏng bạn quên nối chân rb0 lên VCC thông qua điện trở 330 mà trong thực tế n ta hay dùng điện trở 1k đến 10k đó
__________________
Biển học mênh mông -- Quay đầu là bờ!
My blog
baquyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-08-2010, 11:31 AM   #9
pic_13
Đệ tử 2 túi
 
pic_13's Avatar
 
Tham gia ngày: Jun 2010
Bài gửi: 33
:
Trích:
Nguyên văn bởi hotronghieu View Post
em có 1 doạn code nhấp nháy led thông qua nút nhấn kết nối với chân rb0/int0 của pic nhưng e mô phỏng không chạy được.các pro giúp đỡ giùm.dưới day là code em viết.


#include <16f877a.h>
#include <def_877a.h>
#int_ext
#fuses hs,nowdt
#use delay(clock=8000000Hz)
int8 a;
void ext_isr(void)
{
a=1;
}

void main()
{
trisd=0x00;
trisb=0x01;
portb=0x00;
enable_interrupts(int_ext);
ext_int_edge(h_to_l);
enable_interrupts(GLOBAL);
while(a==1)
{
portd=~portd;
delay_ms(200);
}
}
thử cái này xem nào,trong so do thi noi vcc vao rb0:
#include <16f877a.h>
#include <def_877a.h>
#fuses hs,nowdt
#use delay(clock=8000000)
int8 a=0;
#int_ext
void ext_isr(void)
{a=1;
}

void main()
{
trisd=0x00;
trisb=0x01;
portb=0x00;
portd=0x00;
enable_interrupts(int_ext);
ext_int_edge(h_to_l);
enable_interrupts(GLOBAL);
while(1)
{if(a==1){
portd=~portd;
a=0;
}
}
}
__________________
hãy sống cho ngày mai,đừng sống cho quá khứ
pic_13 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-08-2010, 11:37 AM   #10
baquyen
Đệ tử 2 túi
 
baquyen's Avatar
 
Tham gia ngày: May 2007
Bài gửi: 31
:
Làm như bác pic_13 thấy ok rùi đó
__________________
Biển học mênh mông -- Quay đầu là bờ!
My blog
baquyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 12-08-2010, 01:22 PM   #11
hotronghieu
Nhập môn đệ tử
 
Tham gia ngày: Nov 2009
Bài gửi: 9
:
sao chân rd6 trong file mô phổng của em lại khác mấy chân còn lại vậy?các chân em khai báo như nhau mà
hotronghieu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 10:16 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam