Các ah cho Em hỏi viết code đếm ngược cho 2 pha đèn tín hiệu giao thông như này không đúng, cần phải sửa lại thế nào ah.
#include <18F4431.h>
#include <math.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
int8 dvi1,truc1,dvi2,truc2,dvi3,truc3,dvi4,truc4;
int billy[]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7C,0x7D,0x7F,0x6 F};
int16 i,j,a,c,m,n,o,e,k ;
void hien()
{
for(j=128;j>=0;j--)
{
if(a>=0)
{
a=j-96;
dvi1=a%10;
truc1=a/10;
output_C(0b11111110);
output_B(billy[dvi1]);
delay_us(100);
output_C(0b11111101);
output_B(billy[truc1]);
delay_us(100);
}
{
if(j<=94)
{
c=j;
dvi2=c%10;
truc2=c/10;
output_C(0b111111011);
output_B(billy[dvi2]);
delay_us(100);
output_C(0b111110111);
output_B(billy[truc2]);
delay_us(100);
}
{
m=j-65;
dvi3=m%10;
truc3=m/10;
output_C(0b11101111);
output_B(billy[dvi3]);
delay_us(100);
output_C(0b11011111);
output_B(billy[truc3]);
delay_us(100);
}
dvi4=n%10;
truc4=n/10;
output_C(0b10111111);
output_B(billy[dvi4]);
delay_us(100);
output_C(0b01111111);
output_B(billy[truc4]);
delay_us(100);
}
if(j<=65)
{
n=j+32;
dvi4=n%10;
truc4=n/10;
output_C(0b10111111);
output_B(billy[dvi4]);
delay_us(100);
output_C(0b01111111);
output_B(billy[truc4]);
delay_us(100);
}
}
}
void main()
{
set_tris_E(0xFF);
set_tris_B(0x00);
set_tris_D(0x00);
set_tris_C(0x00);
while(1)
{
hien();
}
}