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

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 08-12-2009, 06:22 PM   #3
tkpro
Đệ tử 4 túi
 
Tham gia ngày: Jul 2008
Bài gửi: 61
:
Trích:
Nguyên văn bởi dung h View Post
thì bạn cứ khai báo như bình thường
enable_interrupts(INT_EXT) //sử dụng ngắt INT0
enable_interrupts(INT_EXT1) // INT1

ext_int_edge( H_TO_L ); // chọn cạnh sườn xung gây ra ngắt INT0 H_TO_L hoặc
// L_TO_H
ext_int_edge( 1,H_TO_L ); // cho INT1
enable_interrupts(GLOBAL) // cho phép ngắt toàn cục

sau khi khai báo song thì mỗi khi có thay đổi ở chân INT0,INT1 thì ct nhảy đến ct ngắt
#INT_EXT
void ngat_ext()
{
// cong viec
}
bạn viết thử xem!
cám on bạn
vấn đề là ở chỗ thằng INT0, lúc trước tôi viết:
#INT_EXT0
void ngat_ext()
{
// cong viec
}
enable_interrupts(INT_EXT0) nó báo lỗi ngay

còn thằng INT1 thì Ok
chương trình chạy được, mong bà con tham khảo và cho ý kiến
//-----------------
#include<18f4550.h>
#device *=16 ADC=8
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT
#use delay(clock = 20000000)
#use rs232(baud=9600,parity=n,xmit=pin_C6,rcv=pin_C7)
# byte portA=0xf80
# byte portB=0xf81
# byte portC=0xf82
# byte portD=0xf83
# byte portE=0xf84
// cac pin cong A
#bit a0 = portA.0
#bit a1 = portA.1
#bit a2 = portA.2
#bit a3 = portA.3
#bit a4 = portA.4
#bit a5 = portA.5
#bit a6 = portA.6
#bit a7 = portA.7
//----cac pin cong B--
#bit b0 = portB.0
#bit b1 = portB.1
#bit b2 = portB.2
#bit b3 = portB.3
#bit b4 = portB.4
#bit b5 = portB.5
#bit b6 = portB.6
#bit b7 = portB.7
// cac pin cong C
#bit c0 = portC.0
#bit c1 = portC.1
#bit c2 = portC.2
#bit c3 = portC.3
#bit c4 = portC.4
#bit c5 = portC.5
#bit c6 = portC.6
#bit c7 = portC.7
// cac pin cong D
#bit d0 = portD.0
#bit d1 = portD.1
#bit d2 = portD.2
#bit d3 = portD.3
#bit d4 = portD.4
#bit d5 = portD.5
#bit d6 = portD.6
#bit d7 = portD.7
// cac pin cong E
#bit e0 = portE.0
#bit e1 = portE.1
#bit e2 = portE.2

//void bit_to_byte( )
//////////////////////////
//signed char i;
char j;
char k,mode;
char i=0;
// Ngat ngoai 0(EXT0)

# int_ext
void EXT_ISR()
{
mode++;
if(mode==100)mode=0;
}

// Ngat ngoai 1(EXT1)
///*
# int_ext1
void EXT_ISR1()
{
i++;
if(i==100)i=0;
}
//*/
///////////////////////
# int_rda
void nhan()
{
delay_us(100);
j=getc();
//portA=j;
}
void main()
{
set_tris_b(255);
set_tris_d(255);
set_tris_a(255);
enable_interrupts(int_rda);
enable_interrupts(INT_EXT);// cho EXT0
enable_interrupts(INT_EXT1); // cho EXT1
/////////////////////////
ext_int_edge(H_TO_L); // select interrups
ext_int_edge(1,L_TO_H ); // cho EXT1
enable_interrupts(global);
while(true)
{
//for(k=1;k<=100;k++)
//{
putc(i);
delay_ms(1000);
//}
}
}

thay đổi nội dung bởi: tkpro, 09-12-2009 lúc 02:38 PM. Lý do: Post cho anh e tham khao
tkpro vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


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:26 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