Em đang làm bài tập lớn với con 16f877 các bác ạ.Đến phần hiển thị ra Led thì gặp vấn đề. Em đọc 1 số tài liệu hướng dẫn quét Led thì thấy đơn giản lắm, nhưng khi thực hiện thì sao Led nó nháy ghê quá.
Yêu cầu của em là hiển thị ra 1 số có 3 chữ số (đầu vào đo không nói đến ở đây). Em ngồi tính để lưu ảnh trên võng mạc cần 24frame/s, 3 led là tầm 72 frame/s. Em để delay 10ms thì lại nháy rất từ từ như là delay 1s vậy,em để delay 25ms thì nó nháy ghê quá, còn hiển thị lung tung nữa, tăng delay lên 40ms thì k hiển thị lung tung nữa nhưng bác xem dùm em nha.
Đây là đoạn code em thử nghiệm:
trisD=0x00;
trisB=0x00;
portd=0x00;
while(1){
portb=0b00000001;portd=1;delay_ms(10);
portb=0x00;
portb=0b00000010;portd=2;delay_ms(10);
portb=0x00;
portb=0b00000100;portd=3;delay_ms(10);
portb=0x00;
}
À,các bác giúp em phần code để hiện thị ra số có 3 chữ số nữa với, em làm với số có 2 chữ số như sau thì đúng mà 3 chữ số lại sai (đây là phần cho 2 chữ số,còn 3 chữ số là cả phần trong // nữa)
x=45;//so nay de thu nghiem
if(x%10==0)
{z=0;
y=x/10;
if (y%10==0)
{t=0;u=y/10;}
else t=y%10;u=(y-t)/10;
}
else
//{
z=x%10;y=(x-z)/10;
//if (y%10==0)
//{t=0;u=y/10;}
//else t=y%10;u=(y-t)/10;}
Các bác giúp đỡ nha,thanks.
Yêu cầu của em là hiển thị ra 1 số có 3 chữ số (đầu vào đo không nói đến ở đây). Em ngồi tính để lưu ảnh trên võng mạc cần 24frame/s, 3 led là tầm 72 frame/s. Em để delay 10ms thì lại nháy rất từ từ như là delay 1s vậy,em để delay 25ms thì nó nháy ghê quá, còn hiển thị lung tung nữa, tăng delay lên 40ms thì k hiển thị lung tung nữa nhưng bác xem dùm em nha.
Đây là đoạn code em thử nghiệm:
trisD=0x00;
trisB=0x00;
portd=0x00;
while(1){
portb=0b00000001;portd=1;delay_ms(10);
portb=0x00;
portb=0b00000010;portd=2;delay_ms(10);
portb=0x00;
portb=0b00000100;portd=3;delay_ms(10);
portb=0x00;
}
À,các bác giúp em phần code để hiện thị ra số có 3 chữ số nữa với, em làm với số có 2 chữ số như sau thì đúng mà 3 chữ số lại sai (đây là phần cho 2 chữ số,còn 3 chữ số là cả phần trong // nữa)
x=45;//so nay de thu nghiem
if(x%10==0)
{z=0;
y=x/10;
if (y%10==0)
{t=0;u=y/10;}
else t=y%10;u=(y-t)/10;
}
else
//{
z=x%10;y=(x-z)/10;
//if (y%10==0)
//{t=0;u=y/10;}
//else t=y%10;u=(y-t)/10;}
Các bác giúp đỡ nha,thanks.
Comment