51单片机上12864显示乱码问题,由于字数限制不相关函数去掉了

程序在12864上都能准确显示,可是添加将一个字节转化成字符串显示时,昨天用是不显示,今天就变为乱码了求解呀代码如下#include<reg52.h>#include<i... 程序在12864上都能准确显示,可是添加 将一个字节转化成字符串显示时,昨天用是不显示,今天就变为乱码了 求解呀代码如下

#include <reg52.h>
#include <intrins.h>
/***
本程序使用12864液晶是 ST7920控制器,5v电压驱动,带背光,内置16x16点阵,
128个字符(8x16点阵)及64x256点阵显示RAM。
***/

#define LCD_Date P0 //数据口
sbit LCD_RS=P2^0; //数据/命令选择端(H/L)
sbit LCD_RW=P2^1; //读写选择(H/L)
sbit LCD_EN=P2^2; //使能信号
sbit LCD_PSB=P2^3; //并/串选择 H:并行 。 L:串行

uchar code addr_tab[]={
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,//第一行汉字位置
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,//第二行汉字位置
0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,//第三行汉字位置
0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,//第四行汉字位置
};

void delay_1ms(uint z)
void Write_Com(uchar com)
void Write_Data(uchar date)

/********************12864初始化***************************************/
void LCD_Init()
{
LCD_PSB=1;//并行口方式

Write_Com(0x30);//基本操作指令
delay_1ms(5);
Write_Com(0x0c);//显示开关光标
delay_1ms(5);
Write_Com(0x01);//清除LCD显示内容

}
uchar str[4];//作为uchartostr函数转换的字符串

/***
讲一个数据字节转化为字符串 好显示在 12864上
***/
uchar * uchartostr(uchar unm)
{
uchar x00,xx,x0,x,n;
x00=unm/100;
xx=unm%100;
x0=xx/10;
x=xx%10;
n=0;

if(x00!=0)
{
str[n]=x00+48;//值加48即为字符
n++;
}
if(!(x00==0&x0==0))
{
str[n]=x0+48;
n++;
}
str[n]=x+48;
n++;
str[n]='\0';
return str;
}

/*****
功能:在12864任意位置显示字符串

*****/
void hanzi_Disp(uchar x,uchar y,uchar code *s)

void main()
{

uchar tmp;//定义一个临时变量
tmp=251;
delay_1ms(100);
LCD_Init();
delay_1ms(2);
hanzi_Disp(0,0,"淘宝电子");

while(1)
{

hanzi_Disp(2,0,"FF"); //这个能正常显示??
hanzi_Disp(2,4,uchartostr(tmp)); //????加上这句话 12864上就一堆乱码,注释掉 就没有
delay_1ms(80000);
// hanzi_Disp(1,2," "); //清除显示
// delay_1ms(800);
}
}
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏20(财富值+成长值)
嵌入式砖家99
推荐于2016-01-11 · 超过13用户采纳过TA的回答
知道答主
回答量:53
采纳率:40%
帮助的人:13.1万
展开全部
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;个
追问
亲 还是错误代码啊
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式