楼主描述的不太明确了,我就说我以前的一个事,希望能对上号。
我用单片机+1602显示东西。
为什么有乱码?
单片机在给显示屏传数据的时候,某一引脚本来想传0101的,结果传到第2个数字的时候,中断来了,这个时候,引脚保持原来的状态不变,直到中断结束,继续传输。那么这个引脚传的是什么?0111....11101中间是不是多了很多个1,这个时候,屏幕不知道你是乱发的啊,他以为你发的是0111,1111,1111,1111,.....,1101。这个时候就会有乱码产生。
那么为什么乱码了,出来的大多是中文?
那就要说说显示屏的原理了,单片机发给显示屏的是0和1这样的编码,显示屏,根据编码在它自带的字库里寻找这个编码所对应的字符,这些字符很多了,字母,汉字,空格,标点,都有。
要知道一般英文在显示屏的字库里只占了52个码,汉字最少有2500个。
比方说,如果单片机发0000,显示屏就是显示a, 0001 是b,0025是z,0026 A,0051 Z。0052就是汉字了,后面的都不是英文了。从概率上来说,你发英文,产生了乱码,显示汉字的几率是不是很大?
但是总会有你发英文,还出现英文的时候,所以如果我猜,如果楼主不断的发英文,不断的用中断去干扰发送,一定会有英文出现的。你可以试一试!
看看你的晶振是不是11.0592Mhz的,如果不是,那就对了,你的波特率不对!!我就碰到过这个问题,如果不是11.0592Mhz晶振,那你程序怎么编,最后都是乱码
不知道你说的什么意思哦...说明白点
有没选择HEX收发?
不知道也,,,