Ðề tài: CCS C for PIC16F877A
View Single Post
Old 28-06-2007, 11:53 PM   #1
anh_gioi
Đệ tử 6 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 147
:
mình đánh lại chương trình trên ,CCS thông báo không có lỗi gì nhưng khi mô phỏng không chạy được.
mong mọi người tìm ra chỗ sai hộ mình!
thank!

Code:
#include "C:\Documents and Settings\Administrator\Desktop\thu\giai ma ban phim\giai ma ban phim.h"

#fuses NOWDT,PUT,HS,NOPROTECT
#use delay(clock=4000000)
//giai ma ban phim
#use fast_io(b)
#use fast_io(c)
#byte portb = 0x06
#byte portc = 0x07
#byte intcon = 0x000B
#bit RB0 = portB.0
#bit RB1 = portB.1
#bit RB2 = portB.2
#bit RB3 = portB.3
#bit RB4 = portB.4
#bit RB5 = portB.5
#bit RB6 = portB.6
#bit RB7 = portB.7
#bit RBIF = intcon.0 //dinh nghia ham ngat cong RB
#bit RBIE = intcon.3 //dinh nghia bit ngat RB
int a;
const unsigned char digital[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f\
                                 0x77,0x7c,0x39,0x5e,0x79,0x71};
      
//tao ham ngat
#int_ext
void ngat_RB(){
                     IF((RBIF)&&(RBIE)){
                                            if(RB4&&RB0)
                                            { a = digital[0];}
                                             
                                             if(RB5&&RB0)  
                                             {a = digital[1];}
                                             
                                            if(RB6&&RB0) 
                                            { a = digital[2];}
                                             
                                             if(RB7&&RB0) 
                                             {a = digital[3];}
                                             ////
                                             if(RB4&&RB1)
                                             { a = digital[4];} 
                                              
                                             if(RB5&&RB1)  
                                             {a = digital[5];}
                                             
                                             if(RB6&&RB1)  
                                             {a = digital[6];}
                                             
                                             if(RB7&&RB1) 
                                             {a = digital[7];}
                                             ////
                                             if(RB4&&RB2)
                                             {a = digital[8];} 
                                             
                                             if(RB5&&RB2)  
                                             {a = digital[9];}
                                             
                                             if(RB6&&RB2) 
                                             {a = digital[10];}
                                             
                                             if(RB7&&RB2) 
                                             {a = digital[11];}
                                             RBIF =0; //xoa co ngat                                          
} 
}
                                                                       
                     
                     
   //tao ham chinh
   void main(){
                    set_tris_b(0xf0);
                    set_tris_c(0x00);
                    portb = 0;
                    portc = 0;
                    enable_interrupts(int_ext); //ngat toan bo
                    ext_int_edge(H_to_L);
                    enable_interrupts(global);
                    while(true){
                              portb = 1;
                              portb = 2;
                              portb = 4;
                              portb = 8;
                              portc = a;
                    }
                        }

thay đổi nội dung bởi: falleaf, 29-06-2007 lúc 03:20 PM.
anh_gioi vẫn chưa có mặt trong diễn đàn