View Single Post
Old 11-03-2010, 09:18 AM   #2
trai_xq
Đệ tử 1 túi
 
Tham gia ngày: Feb 2010
Bài gửi: 15
:
Trích:
Nguyên văn bởi dacthuong View Post
Chào tất cả các bạn.
Mình đang học lập trình pic, mình đang tập viết một chương trình cho led 7 đoạn nhưng chưa chạy được. Mong các bạn giúp đỡ mình nhé.
Cảm ơn các bạn nhiều!
Đây là chương trình xuất led 7 đoạn ra portb, Các bạn xem có sai chỗ nào sửa dùm mình nhé.


#include<16f877A.h>
#fuses NOWDT,PUT,HS,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use fast_io(b)


const unsigned char ma7doan[10]={0xC0,0xF9,0xA4,0xB0,0x99,
0x92,0x82,0xF8,0x80,0x90};
int8 donvi; // khai bao kieu du lieu
int16 mdonvi;

void main()
{set_tris_B(0x00);
//xuat port b
while(1)
{for(donvi=0;donvi<10;donvi++);
{mdonvi=ma7doan[donvi]; // lay ma led
output_B(mdonvi);
delay_ms(100);
}
}

}
Cách lập trình của bạn rất đơn giản. Bạn sai ở chổ
while(1)
{for(donvi=0;donvi<10;donvi++);
{mdonvi=ma7doan[donvi]; // lay ma led
output_B(mdonvi);
delay_ms(100);
}
}
trong vòng for nếu bạn đặt dấu ; nghĩa là đoạn chương trình dưới sẽ không thực hiện theo vòng for đó. Cho nên ban bỏ dấu ; đó đi. Ngoài ra chương trình của bạn là dùng led7seg anot chung, catot điều khiển.

#include<16f877A.h>
#fuses NOWDT,PUT,HS,NOPROTECT,NOLVP
#use delay(clock=20000000)
#use fast_io(b)


const unsigned char ma7doan[10]={0xC0,0xF9,0xA4,0xB0,0x99,
0x92,0x82,0xF8,0x80,0x90};
int8 donvi; // khai bao kieu du lieu
int16 mdonvi;

void main()
{set_tris_B(0x00);
//xuat port b
while(1)
{for(donvi=0;donvi<10;donvi++)
{mdonvi=ma7doan[donvi]; // lay ma led
output_B(mdonvi);
delay_ms(100);
}
}

}
trai_xq vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn