PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC > Những câu hỏi thường gặp

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

Những câu hỏi thường gặp Những lỗi cơ bản thường gặp khi làm việc với PIC hoặc những vấn đề cơ bản nhất thường được hỏi trong những năm qua

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 15-11-2018, 09:52 AM   #1
113vina
Nhập môn đệ tử
 
Tham gia ngày: Dec 2009
Bài gửi: 1
:
Question Ngắt ngoài pic 16f887

EM CÓ VẤN ĐỀ THẾ NÀY MONG CÁC BÁC TRỢ GIÚP Ạ:
EM DÙNG PIC 16F887, KHI EM DÙNG NGẮT NGOÀI RB0, THÌ MẠCH CHẠY BÌNH THƯỜNG, KHI EM DÙNG NGẮT PORTB(RB4-RB7) CŨNG CHẠY BÌNH THƯỜNG, NHƯNG KHI EM DÙNG CẢ NGẮT CHÂN RB0 VÀ PORTB(RB0-RB7) THÌ TRƯƠNG TRÌNH CHẠY BỊ SAI

TRƯƠNG TRÌNH ĐÂY Ạ

#include <16F887.h>
#device adc=8

#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz)
#FUSES NOPUT //No Power Up Timer
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOCPD //No EE protection
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOIESO //Internal External Switch Over mode disabled
#FUSES NOFCMEN //Fail-safe clock monitor disabled
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOWRT //Program memory not write protected
#FUSES BORV40 //Brownout reset at 4.0V

#byte CoNgatRB=6

#use delay(crystal=20000000)
#use FIXED_IO( A_outputs=PIN_A5,PIN_A4,PIN_A3,PIN_A2,PIN_A1 )
#use FIXED_IO( B_outputs=PIN_B3,PIN_B2,PIN_B1 )
#use FIXED_IO( C_outputs=PIN_C6,PIN_C5,PIN_C4,PIN_C3,PIN_C2,PIN_C 1,PIN_C0 )
#use FIXED_IO( D_outputs=PIN_D7,PIN_D6,PIN_D5,PIN_D4,PIN_D3,PIN_D 2,PIN_D1,PIN_D0 )
#use FIXED_IO( E_outputs=PIN_E2,PIN_E0 )

int8 uv,light;

#INT_RB
void RB_isr(void)
{
int8 a;
if(!input(pin_b5))
{
while(!input(pin_b5)){}
light++;
if(light>1) light=0;
}
a = CoNgatRB;
clear_interrupt(INT_RB);
}

#INT_EXT
void EXT_isr(void)
{
uv++;
if(uv>1)
{
uv=0;
}
}

#INT_TIMER0
void TIMER0_isr(void)
{

}

void main()
{
setup_adc_ports(sAN0);
setup_adc(ADC_CLOCK_DIV_2);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256|RTCC_8_bi t); //13.1 ms overflow
setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); //13.1 ms overflow
setup_timer_2(T2_DIV_BY_1,0,1); //0.2 us overflow, 0.2 us interrupt

clear_interrupt(INT_RB);
enable_interrupts(INT_RB4);
enable_interrupts(INT_RB5);
enable_interrupts(INT_RB6);
enable_interrupts(INT_RB7);

enable_interrupts(INT_EXT);
ext_int_edge( L_TO_H );
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);
uv=0;light=0; output_low(pin_C5);output_low(pin_C6);
while(TRUE)
{
if(uv==1) output_high(pin_C6);
else output_low(pin_C6);
output_d(uv);
if(light==1) output_high(pin_C5);
else output_low(pin_C5);
output_d(light);
}

}

CÁC BÁC XEM TRỢ GIÚP EM VỚI Ạ, EM CẢM ƠN NHIỀU
113vina vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 

Ðiều Chỉnh
Xếp Bà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à 12:06 PM.


Đượ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