mọi người giúp mình sửa lỗi này nhé. các bạn kết nối com 2<->3 nhé.
các bạn chạy proteus rùi để ý hiển thị LCD 1 lát sẽ thấy thỉnh thoảng hiển thị lỗi, thừa thêm 1 số ở đầu.
anh e xem giúp và chỉ chỗ code chưa đúng và sửa hộ mình nhé.
mình xin cảm ơn.
mình up file cứ bảo lỗi nên up ảnh + code 89x52 nhé
code VDK:
#include<reg52.h>
#include<stdio.h>
#include<string.h>
unsigned char i,j;
unsigned char x,y,M[10];
sbit RS = P1^2;
sbit RW= P1^1;
sbit EN= P1^0;
void delay_ms(void)
{
TH0=64535/256;
TL0=64535%256;
TR0=1;
while(!TF0);
TR0=TF0=0;
}
void kiemtraco(void)
{
P2=0xff;
RS=0;
RW=1;
do
{
EN=1;
delay_ms();
EN=0;
x=P2;
x=x&0x80;
}
while(x!=0x80);
}
void ghi_lenh(unsigned char lenh)
{
kiemtraco();
P2=lenh;
RS=0;
RW=0;
EN=1;
delay_ms();
EN=0;
delay_ms();
}
void ghi_kytu(unsigned char kytu)
{
kiemtraco();
P2=kytu;
RS=1;
RW=0;
EN=1;
delay_ms();
EN=0;
delay_ms();
}
void khoitao(void)
{
ghi_lenh(0x01);
ghi_lenh(0x38);
ghi_lenh(0x06);
ghi_lenh(0x0c);
}
void main(void)
{
IE=0x90;
TMOD=0x21;
SCON=0x50;
TH1=TL1=-3;
TR1=1;
khoitao();
ghi_lenh(0x01);
delay_ms();
ghi_lenh(0x80);
while(1);
}
void serial_port() interrupt 4
{
if(RI)
{
RI=0;
y=SBUF;
if (y!=66)
{
M[j]=y;
j++;
}
else
{
ghi_lenh(0x01);
delay_ms();
ghi_lenh(0x80);
delay_ms();
while(i<j)
{
ghi_kytu(M[i]);
i++;
}
i=j=0;
}
}
}
Clock.zipClock.zip
các bạn chạy proteus rùi để ý hiển thị LCD 1 lát sẽ thấy thỉnh thoảng hiển thị lỗi, thừa thêm 1 số ở đầu.
anh e xem giúp và chỉ chỗ code chưa đúng và sửa hộ mình nhé.
mình xin cảm ơn.
mình up file cứ bảo lỗi nên up ảnh + code 89x52 nhé
code VDK:
#include<reg52.h>
#include<stdio.h>
#include<string.h>
unsigned char i,j;
unsigned char x,y,M[10];
sbit RS = P1^2;
sbit RW= P1^1;
sbit EN= P1^0;
void delay_ms(void)
{
TH0=64535/256;
TL0=64535%256;
TR0=1;
while(!TF0);
TR0=TF0=0;
}
void kiemtraco(void)
{
P2=0xff;
RS=0;
RW=1;
do
{
EN=1;
delay_ms();
EN=0;
x=P2;
x=x&0x80;
}
while(x!=0x80);
}
void ghi_lenh(unsigned char lenh)
{
kiemtraco();
P2=lenh;
RS=0;
RW=0;
EN=1;
delay_ms();
EN=0;
delay_ms();
}
void ghi_kytu(unsigned char kytu)
{
kiemtraco();
P2=kytu;
RS=1;
RW=0;
EN=1;
delay_ms();
EN=0;
delay_ms();
}
void khoitao(void)
{
ghi_lenh(0x01);
ghi_lenh(0x38);
ghi_lenh(0x06);
ghi_lenh(0x0c);
}
void main(void)
{
IE=0x90;
TMOD=0x21;
SCON=0x50;
TH1=TL1=-3;
TR1=1;
khoitao();
ghi_lenh(0x01);
delay_ms();
ghi_lenh(0x80);
while(1);
}
void serial_port() interrupt 4
{
if(RI)
{
RI=0;
y=SBUF;
if (y!=66)
{
M[j]=y;
j++;
}
else
{
ghi_lenh(0x01);
delay_ms();
ghi_lenh(0x80);
delay_ms();
while(i<j)
{
ghi_kytu(M[i]);
i++;
}
i=j=0;
}
}
}
Clock.zipClock.zip
Comment