View Single Post
Old 30-10-2010, 10:06 PM   #11
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi akatsu View Post
#include <16F877A.h>
#include <def_877a.h>
#device adc=8
#FUSES NOWDT, HS, PUT, PROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
//#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8)
#use fast_io(b)
int8 i=0;
void densang();
void reset();
#int_rb
void ngatngoai()
{
if ((RBIF)&&(RBIE))
{
if(RB0==0)
{//while(RB0==0);
i++;
if(i==10)
{
i=0;
densang();
}
}
if(RB1==0)
{
reset();
}
}

}
}




void main()
{
set_tris_b(0);
set_tris_d(0xff);
enable_interrupts(int_rb);
enable_interrupts(global);
ext_int_edge(L_to_H);

while(true)
{
}

}
void densang()
{
output_high(PIN_D0);
}
void reset()
{
i=0;
output_low(pin_d0);
}


đây là code e mới viết. các cao thủ xem jup e xem có sai sót j k nhá!!!e cám ơn
enable_interrupts(int_rb);//chỉ ngắt khi các pin rb4,rb5,rb6,rb7 tác động.
set_tris_b(0);//các chân portb là chân xuất dữ liệu.(nên phím không có tác dụng)
set_tris_d(0xff);//các chân portd là chân nhập dữ liệu.
sửa bài này như sau:
Code:
#include <16F877A.h>
#include <def_877a.h>
#device adc=8
#FUSES NOWDT, HS, PUT, PROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
//#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
#use fast_io(b)
int8 i=0;
void densang();
void reset();
#int_rb
void ngatngoai()
     {
   if((RBIF)&&(RBIE))
   {
         if(RB4==0)
         {
         delay_ms(10);//chong rung phim
         if(RB4==0)
          {
            i++;
             if(i==10)
              {
               i=0;
                densang();       
               }
          while (RB4==0)//chờ phím nhả
           {
           }
           delay_ms(10);//chong rung phim
          }
         }
         //*******************************
         else if(RB5==0)
         {
         delay_ms(10);//chong rung phim
         if(RB5==0)
           {
           reset();
         while (RB5==0)//chờ nhả phím
          {
          }
          delay_ms(10);//chong rung phim
           }
         }
}  
void main()
{
set_tris_b(0xf0);//rb4...rb7 là pin nhập
set_tris_d(0xfe);//pinD0 là pin xuất dữ liệu
enable_interrupts(int_rb);
enable_interrupts(global);
ext_int_edge(H_to_L);
reset();
while(true)
{
}

}
void densang()
      {
      output_high(PIN_D0);
      }
void reset()
      {
      i=0;
      output_low(pin_d0);
      }
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.

thay đổi nội dung bởi: tdm, 30-10-2010 lúc 10:26 PM.
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn