Trích:
Nguyên văn bởi nangvang
các anh ơi giúp em doạn code này với
em định cho 2 led đếm từ 00 đến 99 không dùng ngắt mà dùng delay
nhưng khi chạy mô phỏng thì chỉ thấy nó nhấp nháy vài thanh của led thôi
các anh kiểm tra code giúp em với
em cam ơn
#include <16F877A.h>
#Fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#use fast_io(c)
#use fast_io(d)
int8 font[10]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 };
void main ()
{
unsigned int8 i;
set_tris_c(0);
set_tris_d(0);
output_d(0xff);
while(1)
{
for(i=0;i<=100;i++);
{
output_d(0xfe);
output_c(font[i/10]);
delay_ms(50);
output_d(0xfd);
output_c(font[i%10]);
delay_ms(50);
}
}
}
|
sai ở đây:
for(i=0;i<=100;i++); bỏ dấu chấm phẩy đi
tạo thêm vòng lặp nữa để đếm chậm lại.
thay 2con tranzitor bằng cổng đảo.
Code:
#include <16F877A.h>
#Fuses NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#use fast_io(c)
#use fast_io(d)
const unsigned char font[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 };
int8 i,a;
void main ()
{
set_tris_c(0);
set_tris_d(0);
output_d(0x00);
while(1)
{
for(i=0;i<=100;i++)
{
for(a=0;a<=100;a++)
{
output_d(0xfe);
output_c(font[i/10]);
delay_ms(1);
output_c(0xff);
output_d(0xfd);
output_c(font[i%10]);
delay_ms(1);
output_c(0xff);
}
}
}
}
http://www.youtube.com/watch?v=XFRGEs2XMy0