mong mọi người giúp đỡ sửa lỗi đoạn code sau
mình làm ví dụ cho xuất số (4 chữ số) ra lcd 16x2 cụ thể là dùng 2 nút nhấn: một nút tăng và một nút giảm cứ nhấn rồi nhả ra thì sẽ tăng hoặc giảm 1 đơn vị nhưng khi mình cho chạy trên protues mới đầu lcd hiện lên 4 con số 0 (0000), khi mình nhấn nút xuống thì lcd hiện chữ u535, mong mọi người xem giùm
// port a là inputs, port d là outputs
int16 nhap_value, y, nghin, tram, chuc, dv;
void main()
{
while(1)
{
doc_bp();
y=nhap_value;
hienthi();
}
}
void hienthi()
{
nghin=y/1000;
tram=(y%1000)/100;
chuc=((y%1000)%100)/10;
dv=((y%1000)%100)%10;
portd =0x38; //hai dong va ma tran 5x7
ghilenh();
portd=0x0C; //bat hien thi, tat con tro
ghilenh();
portd=0xc9;// dua gia tri cua portd len lcd tai vi tri con tro o o so 9 cua hang thu 2
ghilenh();
ghilcd();
}
void ghilcd()
{
portd=mht[nghin];
ghidata();
portd=mht[tram];
ghidata();
portd=mht[chuc];
ghidata();
portd=mht[dv];
ghidata();
}
void ghilenh()
{
e0=0;
e1=0;
e2=1;
e2=0;
delay_ms(10);
}
void ghidata()
{
e2=1;
e0=1;
e1=0;
e2=0;
delay_ms(10);
}
void doc_bp()
{
if(a0==0)
{
do
{}
while(a0==0);
nhap_value++;
}
if(a1==0)
{
do
{}
while(a1==0);
nhap_value--;
}
}
|