Ðề tài: CCS C for PIC16F877A
View Single Post
Old 09-07-2007, 08:12 PM   #246
cuopbienquin
Đệ tử 2 túi
 
cuopbienquin's Avatar
 
Tham gia ngày: Jun 2007
Bài gửi: 43
:
Chương trình ngắt đây

Các bạn coi gium` mình có sai chỗ nào không mà mình delay không được
Mình muốn khi đóng RB4 thì LED sẽ nháp nháy với delay 50ms chẳng hạn.
Phần ngắt chuyển chế độ thì mình làm được nhưng delay trong mỗi chế độ thì potay.
Code:
#include <16F877A.h>
#fuses NOWDT,PUT,XT,NOPROTECT
#use delay(clock=1000000)
#use fast_io(b)
#byte portb=0x06
#byte intcon=0x000B
#bit RB4=portb.4
#bit RB5=portb.5
#bit RBIF=intcon.0 //dinh nghia co ngat RB
#bit RBIE=intcon.3 //dinh nghia bit cho phep ngat RB

// Chuong trinh ngat
#int_RB
void ngat_RB()
{
if((RBIF)&&(RBIE))
   {
      //Kiem tra sw1
      {
      if(RB4==0)
         {
         
         portb=0b00000001;
         
         delay_ms(200);
         portb=0b00001111;
         delay_ms(200);
                  
         }
      }
      //Kiem tra sw2
      {
      if(RB5==0)
         {
         portb=0b00001000; 
                                    }
      }
      
   RBIF=0; //Xoa co ngat RB
   }
}
// Chuong trinh chinh
main()
{
set_tris_b(0b11110000);
portb=0b11110000;
enable_interrupts(global);
enable_interrupts(int_RB);
ext_int_edge(H_to_L);
while(true)
   {
   
   }
}
File Kèm Theo
File Type: rar ngat.rar (13.9 KB, 213 lần tải)
cuopbienquin vẫn chưa có mặt trong diễn đàn