![]() |
|
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ế.
|
|
|
|
![]() |
|
|