⑴ 51单片机,读写IIC总线,1602LCD显示.结果乱码
write_date(shi); write_date(ge);
是不是这两个地方不对啊,shi,ge这两个数转换成ASII值之后再传给屏才能正常显示吧 ?
⑵ 51单片机上12864显示乱码问题,由于字数限制不相关函数去掉了
x00=unm/100;
xx=unm%100;
x0=xx/10;
x=xx%10;
数据分离出错
改下
x00=unm/1000; 千位
xx=unm%1000/100;百
x0=xx%100/10;十
x=xx%10;个
⑶ 51单片机 电子时钟程序(共阳)。为何老是乱码,求大神指点
小问题还是挺多的。
首先,像楼上说的,P0送显示数据前应该关一下显示。考虑到你是共阳显示,mov P1,#0才对。像这样
mov P1, #0 // 关显示。
mov P0, 显示数据
mov P1, 显示哪一位。
acall delay // 延时一小段时间,调试的时候可以适当延时长一点。
djnz 。。。// 显示下一位。
关显示的位置应该在MOV P0,@R1之前。当然在delay后面也可以,但考虑到将来要改成使用定时中断,最好还是像上面这样做。
另外,这个程序应该先把中断全部关了调,不然肯定显示乱码。
⑷ 单片机 LCD1602显示乱码
估计是初始化没做好,时序不对,考虑到你之前是没问题的,应该是工作不稳定,很有可能是你写的代码的时序太快,造成LCD工作不稳定。
建议在写指令的时候多加一些短延时,每一个CLK时钟信号之间都加一些短延时(这是最主要的),很短的延时就可以了。
我之前也遇到过这些问题,基本加了延时之后工作就很稳定了,现在的1602质量参差不齐,不同模块的工作速度都有很大误差。这些东西仿真是仿不出来的,只能自己慢慢调试
⑸ 51单片机1602液晶只显示第一排黑块和数码管乱码怎么解决
你所说的这种液晶,如果之前是第1排的话,建议你减3,是不是因为显像管损坏。
⑹ 51单片机直接驱动LED数码管感觉程序和硬件都没问题,却输出乱码,这是为什么呢
输出乱码是固定的话,多数是软件问题。如果不固定,软硬件都有可能。
你不应该用延时程序来点亮LED,这种程序结构容易造成CPU无法处理其他的事件,如果CPU在处理大量的数据时可能就没机会进入延时,应该灵活运用定时器引起的中断,来解决这个问题。你可以考虑下你的程序的总体结构,不要按照顺序的思路来考虑,而是要考虑随机事件产生如何处理的思路。延时在书本上是现成的例子,那些入门学习时是不错的,真正工作中需要结合实际创新。不知道你是用C还是汇编,如果有机会你可以参考下C编译后产生的汇编文件,学习下他的设计思路,一定会对你有帮助的。
⑺ 51单片机点阵问题,总是乱码
好象是滚动显示中间的8个代码看看阴码阳码是否搞错,行列是否搞错
delay(1000);不知你是多大的延时,要是1000ms可有点大,100ms以下还差不多
扫描一次才花费16ms,中间你敢停1000ms吗?
个人认为,这个延时太小了会无滚动效果,太大了会造成其它行很暗、而只有最后一行很亮的情况
所以,干脆去掉这个延时,而将每一次扫描重复5-7次,也就是80-110ms,然后再i++,将图像向上推进
就是在for(z=0;z<8;z++)外面再加一层for循环
for(m=0;m<10;m++)//m值由实验确定
{
for(z=0;z<8;z++)
{
c=i+z;
DULA=1;
P1=HANG[z];
DULA=0;
delay(1);
WELA=1;
P1=LIE_2[c];
WELA=0;
delay(1);
}
}
另外8*8点阵显示效果不会很好,特别是点与点之间的空隙太大,有时不仔细看,还真看不出显的是什么东东
⑻ 单片机做ds1302实验时出现lcd乱码怎么办
估计是你发送给1602的待显示数据有问题,调试看看,
51单片机的话 一般不使用在线仿真 可以使用串口打印的方法调试
⑼ 单片机lcd1602显示乱码是怎么回事
LCD1602只能显示ASCII码字符,如果你送的不是ASCII码,比如汉字的区位码,那么肯定形式乱码。
⑽ LCD显示乱码
很简单~换解码板
整个液晶面板占成本的92%,你可以算算电源,解码板,还有别的东西的成本了哦