19-04-2009, 09:31 PM | #15 |
Nhập môn đệ tử
Tham gia ngày: Dec 2008
Bài gửi: 8
: |
không hiểu tại sao khi em chép <DEF_16F877A.H> vào thư mục Devices rồi mà khi kiểm lỗi vẩn báo lỗi , các bác giúp em với. chưởng trình như sau
/*******BAT DAU CHUONG TRINH************/ #INCLUDE <16F877A.H> #INCLUDE <DEF_16F877A.H> #DEFINE STOP PIN_B4 #DEFINE DKTH PIN_B5 #DEFINE DKNG PIN_B6 #FUSES NOWDT,PUT,HS,NOPROTECT,NOLVP #USE DELAY(CLOCK=20000000) //SU DUNG THACH ANH 20MHZ #USE FAST_IO(A) #USE FAST_IO(B) #USE FAST_IO(D) INT8 I,BCHUC,BDVI,VDVI,VCHUC; INT8 SBUOC=0,A,SVONG=0; INT8 R_KEY=0; CONST UNSIGNED CHAR DIG[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X9 0}; CONST UNSIGNED CHAR ROTATE[]={14,12,13,9,11,3,7,6}; /************************************************** ******* CHUONG TRINH DIEU KHIEN LED QUAY THUAN SU DUNG LOAI DONG CO BUOC 48 RANG DIEU KHIEN NUA BUOC */ //CHUONG TRINH NGAT RB #INT_RB VOID NGAT_RB() { IF(RBIF==1) { IF(INPUT(STOP)==0){A=0;} IF(INPUT(DKTH)==0){A=1;} IF(INPUT(DKNG)==0){A=2;} } RBIF=0; } //CHUONG TRINH DOI SO BUOC, SO VONG RA SO BCD HEX_BCD() { VCHUC=SVONG/10; VDVI=SVONG%10; BCHUC=SBUOC/10; BDVI=SBUOC%10; } HIENTHI1() { PORTC=DIG[BDVI]; //HIEN THI SO BUOC DON VI PORTD=0X0F; DELAY_US(100); PORTD=0; //CHONG LEM PORTC=DIG[BCHUC]; //HIEN THI SO BUOC CHUC PORTD=0X17; DELAY_US(100); PORTD=0; PORTC=0XBF; //HIEN THI DAU GACH PHAN CACH PORTD=0X1B; DELAY_US(100); PORTD=0; PORTC=DIG[VDVI]; //HIEN THI SO VONG DON VI PORTD=0X1D; DELAY_US(100); PORTD=0; PORTC=DIG[VCHUC]; //HIEN THI SO VONG CHUC PORTD=0X1E; DELAY_US(100); PORTD=0; } HIENTHI() { I=0; SBUOC++; IF(SBUOC>95){ SBUOC=0; SVONG++; IF(SVONG>99){SVONG=0;} } HEX_BCD(); WHILE(I<10) { HIENTHI1(); I++; } } QUAYTHUAN() { PORTA=ROTATE[R_KEY]; HIENTHI(); IF (R_KEY < 7){R_KEY++;} ELSE R_KEY=0; } QUAYNGICH() { IF (R_KEY > 0){R_KEY--;} ELSE R_KEY=7; PORTA=ROTATE[R_KEY]; HIENTHI(); } STP() { OUTPUT_A(0XFF); HEX_BCD(); HIENTHI1(); } VOID MAIN () { SET_TRIS_A(0); // PORTA DIEU KHIEN DONG CO BUOC SET_TRIS_B(0XFF); // PORTB LA PORT NHAP DU LIEU SET_TRIS_C(0); // PORTC XUAT MA HIEN THI SET_TRIS_D(0); // PORTD QUET LED ENABLE_INTERRUPTS(GLOBAL); //CHO PHEP NGAT TOAN CUC ENABLE_INTERRUPTS(INT_RB); //CHO PHEP NGAT RB EXT_INT_EDGE(H_TO_L); //CHO PHEP NGAT CANH XUONG A=0; WHILE(1) { SWITCH(A) { CASE 0 : STP(); //NEU A=0 THI STOP BREAK; CASE 1 : QUAYTHUAN(); //NEU A=1 THI QUAY THUAN BREAK; CASE 2 : QUAYNGICH(); //NEU A=2 THI QUAY NGHICH BREAK; } } } |
|
|
Similar Threads | ||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
dsPIC Tutorial 3-Đọc ngõ vào và giao tiếp LCD | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 92 | 19-02-2017 11:15 PM |
dsPIC Tutorial 2-Các kỹ thuật cơ bản | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 33 | 17-10-2013 11:09 PM |
dsPIC Tutorial 4-Module UART và I2C | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 76 | 09-05-2012 10:55 AM |
Tutorial LCD cua Nigel??????? | spirit | Cơ bản về vi điều khiển và PIC | 16 | 16-03-2009 05:32 PM |
tutorial hay cho newbie | FUD84 | Cơ bản về vi điều khiển và PIC | 2 | 04-12-2005 02:29 AM |