![]() |
|
Tài trợ cho PIC Vietnam |
PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ tử 1 túi
Tham gia ngày: Sep 2010
Bài gửi: 13
: |
Ko chạy bạn ơi!hix,sao bài mình viết chỉ chạy từ 0-->9 thôi còn chuyển sang led hàng chục thì nó ko chạy nữa?
Bạn coi thử mình viết cách này nó sai chỗ nào?khi bấm cái button từ 1-->9 thì Trên Led hàng đơn vị chạy ok từ 0--->9,còn bấm cái thứ 10 thì nó ko chạy nữa. ================================================== ================== //Chuong trinh LED //Nhom thuc hien:Nhom 2 //Ngay thuc hien:25/12/2010 //************************************************** **************** #include<16f877a.h> #fuses NOWDT,PUT,HS,NOPROTECT #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP #use delay(clock=4000000) #use fast_io(B) #use fast_io(D) #byte portB=0x06 #byte portD=0x08 const unsigned char digital[]={0b00000001,0b00000010,0b00000011,0b00000100,0b00 000101,0b00000110,0b00000111,0b00001000,0b00001001 }; //Chuong trinh ngat #int_ext void ngat_RB0() { unsigned int press_count; if(press_count<10) { portD=digital[press_count]; ++ press_count; } if (press_count==10) { press_count==0x00010000; output_d(press_count); } if(press_count==20) { portD=0x00100000; } if(press_count==30) { portD=0x00110000; } if(press_count==40) { portD=0x01000000; } if(press_count==50) { portD=0x01010000; } if(press_count==60) { portD=0x01100000; } if(press_count==70) { portD=0x01110000; } if(press_count==80) { portD=0x10000000; } if(press_count==90) { portD=0x10010000; } } //Chuong trinh chinh main() { set_tris_B(0x00000001); set_tris_D(0); enable_interrupts(GLOBAL); enable_interrupts(INT_EXT); ext_int_edge(H_To_L); portD=0x00; while(true); { } } thay đổi nội dung bởi: troiuuuu, 26-12-2010 lúc 10:28 PM. |
![]() |
![]() |
![]() |
#2 | |
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
: |
Trích:
Code:
//Chuong trinh ngat #int_ext void ngat_RB0() { unsigned int press_count; if(press_count<10) //tại đây hiển thị từ 0...9 { portD=digital[press_count]; ++ press_count; } if (press_count==10) { press_count=0x00010000;//tại đây lúc này giá trị (press_count là 16) khi vào ngắt lần nữa giá trị (press_count là 16) không thỏa các điều kiện bạn đưa ra lên nó luôn thoát khỏi ngắt. output_d(press_count); } if(press_count==20) { portD=0x00100000; } if(press_count==30) { portD=0x00110000; } if(press_count==40) { portD=0x01000000; } if(press_count==50) { portD=0x01010000; } if(press_count==60) { portD=0x01100000; } if(press_count==70) { portD=0x01110000; } if(press_count==80) { portD=0x10000000; } if(press_count==90) { portD=0x10010000; } }
__________________
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, 27-12-2010 lúc 09:38 PM. |
|
![]() |
![]() |
![]() |
#3 |
Đệ tử 6 túi
|
Mấy bạn viết gì mà phức tạp thế.
|
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|