View Full Version : Giúp em với (ngắt rb trong đèn giao thông(
Bach y
17-10-2009, 10:51 PM
Em đang làm bài về đèn giao thông .Ông thầy ko chỉ gì cả phảii tự mò
viết code lẫn phần cứng. nhưng thử viết ngắt pỏt b từ B4-B7 mãi mà ko được. Nó chỉ chạy mỗi phần voidmain ,còn ngắt thì bó tay luôn. Ấn reset mà nó cứ nhảy lung tung.
Mong anh em trong diễn đán giúp em một tay
ẤN RB4 THÌ DỪNG ĐẾM THỜI GIAN .ĐỎ 1 XANH 2 SÁNG
ẤN RB5 THÌ ĐỎ 2 XANH 1 SÁNG
ẤN RB6 THÌ SÁNG HAI ĐÈN VÀNG
RB7 THÌ CHẠY LẠI VOID MAIN
em chưa có kinh nghiệm viết ngắt nên nếu ai giúp cái ngắt chạy một cái em hy vọng làm tiếp được
Bach y
17-10-2009, 10:55 PM
http://i546.photobucket.com/albums/hh434/phungcaovan/09.jpg
http://i546.photobucket.com/albums/hh434/phungcaovan/09.jpg
#include <16F877A.H>
#fuses nowdt,noprotect,nolvp,put
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#byte intcon=0x000B
#BYTE PORTB =0X06
#BYTE PORTC =0X07
#BYTE PORTD =0X08
#bit RD4 = 0x08.4
#bit RD3 = 0x08.3
#bit RD2 = 0x08.2
#bit RD1 = 0x08.1
#bit RD0 = 0x08.0
#bit RB4 = 0X06.4
#bit RB5 = 0X06.5
#bit RB6 = 0X06.6
#bit RB7 = 0X06.7
#bit RBIF=intcon.0 //dinh nghia co ngat RB
#bit RBIE=intcon.3 //dinh nghia bit cho phep ngat RB
void ngat_RB();
void main();
#int_RB
void ngat_RB()
{
if((RBIF)&&(RBIE))
{
if(RB4==0)
{
}
{
if(RB5==0)
{
}
}
if(RB6==0)
if(RB7==0)
}
RBIF=0; //Xoa co ngat RB
}
void main()
{set_tris_a(0);
output_a(0);
set_tris_c(0);
output_c(0);
set_tris_d(0);
output_d(0);
enable_interrupts(global);
enable_interrupts(int_RB);
ext_int_edge(H_to_L);
while(true)
{
output_c(0b10000001);//DEN XANH 2(20);DO 1(25)
output_d(0b00000101);
output_a(34);
output_b(34);
delay_ms(25);
output_d(0b00001010);
output_a(32);
output_b(37);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(34);
delay_ms(25);
output_d(0b00001010);
output_a(41);
output_b(36);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(34);
delay_ms(25);
output_d(0b00001010);
output_a(40);
output_b(35);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(34);
delay_ms(25);
output_d(0b00001010);
output_a(39);
output_b(34);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(34);
delay_ms(25);
output_d(0b00001010);
output_a(38);
output_b(33);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(34);
delay_ms(25);
output_d(0b00001010);
output_a(37);
output_b(32);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(36);
output_b(41);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(35);
output_b(40);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(34);
output_b(39);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(33);
output_b(38);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(32);
output_b(37);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(41);
output_b(36);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(40);
output_b(35);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(39);
output_b(34);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(38);
output_b(33);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(37);
output_b(32);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(36);
output_b(41);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(35);
output_b(40);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(34);
output_b(39);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(33);//XANH2=1;
output_b(38);
delay_ms(25);
output_c(0b01000001);//V2=5;D1=5
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(37);
output_b(37);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(36);
output_b(36);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(35);
output_b(35);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(34);
output_b(34);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(33);
output_b(33);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(32);//V2=0
output_b(32);//D1=0
delay_ms(25);
output_c(0b00100100);//D2=25;X1=20
output_d(0b00000101);
output_a(34);
output_b(34);
delay_ms(25);
output_d(0b00001010);
output_a(37);
output_b(32);
delay_ms(25);
output_d(0b00000101);
output_a(34);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(36);
output_b(41);
delay_ms(25);
output_d(0b00000101);
output_a(34);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(35);
output_b(40);
delay_ms(25);
output_d(0b00000101);
output_a(34);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(34);
output_b(39);
delay_ms(25);
output_d(0b00000101);
output_a(34);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(33);
output_b(38);
delay_ms(25);
output_d(0b00000101);
output_a(34);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(32);
output_b(37);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(41);
output_b(36);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(40);
output_b(35);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(39);
output_b(34);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(38);
output_b(33);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(33);
delay_ms(25);
output_d(0b00001010);
output_a(37);
output_b(32);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(36);
output_b(41);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(35);
output_b(40);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(34);
output_b(39);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(33);
output_b(38);
delay_ms(25);
output_d(0b00000101);
output_a(33);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(32);
output_b(37);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(41);
output_b(36);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(40);
output_b(35);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(39);
output_b(34);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(38);
output_b(33);//X1=1
delay_ms(25);
output_c(0b00100010);//V1=5
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(37);
output_b(37);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(36);
output_b(36);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(35);
output_b(35);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(34);
output_b(34);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(33);
output_b(33);
delay_ms(25);
output_d(0b00000101);
output_a(32);
output_b(32);
delay_ms(25);
output_d(0b00001010);
output_a(32);//D2 =00
output_b(32);
delay_ms(25);
}
}
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.