View Single Post
Old 20-11-2009, 03:51 AM   #7
Huynh Thanh San
Nhập môn đệ tử
 
Huynh Thanh San's Avatar
 
Tham gia ngày: Oct 2008
Bài gửi: 8
:
Talking Them chut xiu nua

[QUOTE=tungtot_vl;26081][QUOTE=nguyenductu2310;26064]Em đang làm thử mạch hiển thị LED matrix, không hiểu tại sao khi cho nháy LED với thời gian chậm để kiểm tra thì LED báo đúng. Còn khi rút ngắn delay time, LED hiển thị không đúng như lúc chạy chậm. Các đại ca giúp em với!!! Please, em tìm lỗi mấy ngày rùi mà không được.
Đây là code của chương trình và mạch mô phỏng:

#include <16f877a.h>
#fuses NOWDT,HS,PUT,NOPROTECT
#device 16f877a*=16 adc=8
#use delay(clock=20000000)
int8 y,i;
int8 Cot1[]={0b00001110, 0b00010001, 0b00000001, 0b00000001, 0b00000001, 0b00010001, 0b00001110};
int8 Cot2[]={0b00001110, 0b00000100, 0b00000100, 0b00000100, 0b00000100, 0b00000100, 0b00001110};
int8 Cot3[]={0b00001111, 0b00010001, 0b00010001, 0b00001111, 0b00000001, 0b00000001, 0b00000001};
int8 Dong[]={0b11111110, 0b11111101, 0b11111011, 0b11110111, 0b11101111, 0b11011111, 0b10111111};

void sen595(int8 x)
{
#bit fla=x.7;
output_high(PIN_B0);
for (i=0;i<8;i++)
{
if (fla==1)
output_high(PIN_B1); //Dich 1 bit vao 74HC595
else output_low(PIN_B1);
output_low(PIN_B0); //Tao xung Clock
output_high(PIN_B0); //tao xung Clock
x = x<<1; //Dich trai 1 bit cua Data
}
output_low(PIN_B2); //Chot 8 bit cho dau ra
output_high(PIN_B2); //Chot 8 bit cho dau ra
}

void main()
{
set_tris_b(0x00);
while(1)
{
for (y=0;y<7;y++)
{
sen595(Cot1[y]); //Gui ky tu C
delay_ms(8);
output_d(255);
sen595(Cot2[y]); //Gui ky tu I
delay_ms(8);
output_d(255);
sen595(Cot3[y]); //Gui ky tu P
output_d(Dong[y]);
delay_ms(8);
output_d(255);

}
}
}[/QUOTE


==========================================
Voi code zay bay gio muon cho 3 cai chu cip chay thi sao ha ban , nen them zy zo them
__________________
THS
Huynh Thanh San vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn