15-08-2010, 11:19 AM | #1 |
Đệ tử 1 túi
Tham gia ngày: Jul 2010
Bài gửi: 17
: |
1 số chỗ chưa hiểu trong đoạn code, mong được giải đáp
em có đọc một đoạn code như sau:
//************************************************** *************************** // Author : nhh // Date : 03/04/06 // Hardware: PIC16F877A //************************************************** *************************** #include <16F877A.h> #include <def_877A.h> #fuses NOWDT,PUT,XT,NOPROTECT #use delay(clock=4000000) #use fast_io(b) #use fast_io(c) int a; const unsigned char dig[]={0b00111111,0b00000110, 0b01011011,0b01001111,\ 0b01100110,0b01101101,0b01111101,0b00000111,0b0111 1111,0b01101111,0b01110111,\ 0b01111100,0b00111001,0b01011110,0b11111001,0b1111 0001}; // ma hoa digital duoi dang mang // Chuong trinh ngat #int_RB void ngat_RB() { if((RBIF)&&(RBIE)) { { if(RB4&&RB0) a=dig[0]; } { if(RB4&&RB1) a=dig[4]; } { if(RB4&&RB2) a=dig[8]; } { if(RB4&&RB3) a=dig[12]; } //....... { if(RB5&&RB0) a=dig[1]; } { if(RB5&&RB1) a=dig[5]; } { if(RB5&&RB2) a=dig[9]; } { if(RB5&&RB3) a=dig[13]; } //........ { if(RB6&&RB0) a=dig[2]; } { if(RB6&&RB1) a=dig[6]; } { if(RB6&&RB2) a=dig[10]; } { if(RB6&&RB3) a=dig[14]; } //........ { if(RB7&&RB0) a=dig[3]; } { if(RB7&&RB1) a=dig[7]; } { if(RB7&&RB2) a=dig[11]; } { if(RB7&&RB3) a=dig[15]; } RBIF=0; //Xoa co ngat RB } } // Chuong trinh chinh void main() { set_tris_b(0b11110000); set_tris_c(0); enable_interrupts(global); enable_interrupts(int_RB); ext_int_edge(H_to_L); portb=0; portc=0; while(true) { portb=1; portb=2; portb=4; portb=8; portc=a; } } 1/ các anh cho em hỏi tại sao ta lại có thể mã hóa được như thề này const unsigned char dig[]={0b00111111,0b00000110, 0b01011011,0b01001111,\ 0b01100110,0b01101101,0b01111101,0b00000111,0b0111 1111,0b01101111,0b01110111,\ 0b01111100,0b00111001,0b01011110,0b11111001,0b1111 0001}; 2/ các anh giải thích hộ em ý nghĩa của đoạn code này: while(true) { portb=1; portb=2; portb=4; portb=8; portc=a } thanks! |
|
|