发 帖  
原厂入驻New
[文章]

1602显示问题。。

2014-5-17 21:07:56  967
分享
0
求大神指教。我从AD0832采集数据后想让1602显示出来,是数组。不知道怎么写程序了,困扰好久了。
程序如下:
void convdata(unsigned char i)          //i=dat*5/255=51,是255份; 256份误差大                                       
{          
     unsigned int disdat;           //不可unsigned char disdat
     disdat=i*20.0/255;                 //500不可以。用500.0        
             /* 验证读数
              dis[0] = i/100;     //个位
              dis[1] = i/10%10;   //小数点后第一位
              dis[2] = i%10;     //小数点后第二位         */         
          
      dis[0] = disdat/100+0x30;//
      dis[1] = disdat/10%10+0x30;   //小数点后第一位
      dis[2] = disdat%10+0x30;  
          }
       int u;                                                                                               
          u=dis[0]+dis[1]*0.1+dis[2]*0.01;       
     uchar code table2[]=u;
     uchar code table3[]="jiaquan:";
void dispaly(void)
{
           write_com(0xC0);
                        for(num=0;num<8;num++)
                {
                        write_date(table3[num]);
                        delay(5);      //稳定写入//
                }
                        write_com(0xC8);
                        for(num=0;num<8;num++)
                {
                        write_date(table2[dis[num]]);
                        delay(5);      //稳定写入//
                }
                }
                void baojing()
{
if(dis[1]>=1)
buzz=1;
delay();
buzz=0;
}
void LEDING()
{
if(dis[1]>=1)
LED=1;
else
LED=0;
}
void main()
{
        count=0;
        init();
         CH = 0x00;    //在这里选择通道 0x00(单极性0通道)或0x01(单极性1通道)

    TMOD = 0x01;       //设置中断
    TH0=(65536-50000)/256;//定时器1初值定时50ms
    TL0=(65536-50000)%256;
    IE = 0x82;
       TR0 = 1;         
        while(1)
        {
        keyscan();
        if(count==20)
                {
                        count=0;
                        miao++;
                        if(miao==60)
                        {
                                miao=0;
                                fen++;
                                if(fen==60)
                                {
                                        fen=0;
                                        shi++;
                                        if(shi==24)
                                        {
                                                shi=0;
                                        }
                                write_sfm(8,shi);    //4为地址
                                }
                        write_sfm(11,fen);
                        }
                        write_sfm(14,miao);
                        convdata(dat);
                        dispaly();
                        baojing();
                        LEDING();
               
                       
                       
                }
        }

}

void timer0() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        count++;                    

}


发烧友之麒麟 2014-5-17 22:28:19
路过啊                                                            
回复

举报

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
发文章
关闭

站长推荐 上一条 /8 下一条

快速回复 返回顶部 返回列表