打印

帮忙看看这个LCD显示数据的程序

[复制链接]
1489|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaohq|  楼主 | 2009-4-3 16:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
显示的是乱码,不知哪里错了?



void writshuju(float shu)    
{
    uint j;
    uchar bai,shi,ge,shifen;
    j=shu*10;                  
    bai=j/1000;                
    shi=j%1000/100;            
    ge=j%1000%100/10;        
    shifen=j%10;            
    
    if(bai==0) bai=' ';    //当百位为0时就用空格,(百位消隐)
    if((bai==0)&&(shi==0)) //当百位为0,十位也为0时就用空格,(百位和十位都消隐)
    {
        bai=' ';
        shi=' ';
    }
    if((bai==0)&&(shi==0)&&(ge==0))
    {    
        bai=' ';
        shi=' ';
        ge=0;
    }

    write_dat(bai);
    write_dat(shi);
    write_dat(ge);
    write_dat('.');
    write_dat(shifen);
    write_dat(baifen);
    
}

相关帖子

沙发
songbangyan| | 2009-4-3 17:02 | 只看该作者

好像你数据传递就有问题了!

使用特权

评论回复
板凳
jiyiche| | 2009-4-3 19:38 | 只看该作者

write_dat

write_dat()里是什么内容?这是最重要的

使用特权

评论回复
地板
gaohq|  楼主 | 2009-4-4 12:27 | 只看该作者

回楼上,write_dat()函数如下.

void write_dat(uchar dat)
{
    
    while(busy());
    rs=1;
    rw=0;
    P0=dat;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    en=1;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    en=0;
}

使用特权

评论回复
5
gaohq|  楼主 | 2009-4-4 12:35 | 只看该作者

报告下

已基本搞定,原因是:
 write_dat(bai);   应写成  write_dat(bai+0x30);
但有个问题
当百位为0时,我想让它消隐,就写' '(空格)  但实际显示出的是'P'
空格的ASIIC码是什么?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

378

主题

3763

帖子

5

粉丝