5649|7

25

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

让数码管显示温度的代码,我是新手,希望大家可以帮我一下 [复制链接]

本帖最后由 胡豆豆的春天 于 2017-4-1 12:38 编辑

这是我的代码,可能会有很多错误,希望大神可以耐心的帮我看一下!!


#include
#include
#define uchar unsigned char
#define uint  unsigned int
sbit wd=P2^2;
sbit du=P2^6;
sbit we=P2^7;
sbit fm=P2^3;

float wendu;
uint warn_l1=270;
uint warn_l2=250;
uint warn_h1=300;
uint warn_h2=320;

sbit led0=P1^0;
sbit led1=P1^1;
sbit led2=P1^2;
sbit led3=P1^3;

char code table []={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
                                        0x3f+0x80,0x06+0x80,0x5b+0x80,0x4f+0x80,0x66+0x80,0x6d+0x80,0x7d+0x80,0x07+0x80,0x7f+0x80,0x6f+0x80};
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);        
}

void fuwei(void)
{
        uint i;
        wd=0;
        i=103;
        while(i>0)i--;
        wd=1;
        i=4;
        while(i>0)i--;
}

bit yigezijie()
{
        uint i;
        bit dat;
        wd=0;
        i++;i++;
        wd=1;
        i++;
        i=8;
        while(i--);
        return (dat);        
}

uchar yigezifu()
{
        uint a,dat;
        dat=0;
        for(a=0;a<8;a++)
        {
                a=yigezijie();
                dat=(a<<7)|(dat>>1);
        }
}

void duyigezijie(uchar dat)
{
        uchar a,i;
        bit xie;
        for(a=0;a<8;a++)
        {
                xie=dat&0x01;
                dat>>1;
                if(xie)
                {
                        wd=0;
                        i++;i++;
                        wd=1;
                        i=8;
                        while(i--);
                }
                else
                {
                        wd=1;
                        i=8;
                        while(i--);
                        wd=0;
                        i++;i++;
                }
        }
}

void zhuanhua()
{
        fuwei();
        delay(1);
        duyigezijie(0xcc);
        duyigezijie(0x44);        
}

uint duqushuju()
{
        uchar a,b;
        fuwei();
        delay(1);
        duyigezijie(0xcc);
        duyigezijie(0xbe);
        a=yigezifu();
        b=yigezifu();
        wendu=(a+b*256)*0.625;
        return wendu;
}

void xianshishuju(uchar a,uchar b)
{
        uchar c;
        c=~((0x01)<         we=1;
        P0=c;
        we=0;
        P0=0xff;
        du=1;
        P0=table;
        du=0;
                        
}

void shujudefenpei(uchar t)
{
        uchar shi,ge,shii;
        shi=t/100;
        xianshishuju(0,shi);
        ge=t/100/10;
        xianshishuju(0,shi+10);
        shii=t%10;
        xianshishuju(0,shii);
}

void panduanwendu()
{
        if(wendu>warn_h2)
        {        
                P1=0xfe;
                shujudefenpei(duqushuju());
        }
        else if(wenduwarn_h1)
        {
                P1=0xfd;
                shujudefenpei(duqushuju());
        }
        else if(wendu>warn_l1&&wendu         {
                P1=0xfb;
                shujudefenpei(duqushuju());
        }
        else if(wendu         {
                P1=0xf7;
                shujudefenpei(duqushuju());
        }
}

void chuankouchushihua()
{
        TMOD=0X20;
        PCON=0X00;
        SCON=0X50;
        TH1=0XFD;
        TL1=0XFD;
        TR1=1;
}

void comm(char *parr)
{
        do
        {
                SBUF=*parr++;
                while(!TI);
                TI=0;
        }                 while(*parr);
}

void main()
{
        uchar buff[4],i;
        du=0;
        we=0;
        chuankouchushihua();
        while(1);
        {
                zhuanhua();
                for(i=10;i>0;i++)
                {
                        shujudefenpei(duqushuju());
                }
                shujudefenpei(wendu);
                printf(buff,"%f",wendu);
                for(i=10;i>0;i++)
                {
                        shujudefenpei(duqushuju());
                }
                comm(buff);
                for(i=10;i>0;i++)
                {
                        shujudefenpei(duqushuju());
                }
        }
        
}

IMG20170331212954.jpg (4.24 MB, 下载次数: 2)

IMG20170331212954.jpg

QQ截图20170401123806.png (319.88 KB, 下载次数: 3)

QQ截图20170401123806.png
此帖出自51单片机论坛

最新回复

显示部分有问题  详情 回复 发表于 2017-4-2 16:40
点赞 关注
 

回复
举报

9803

帖子

24

TA的资源

版主

沙发
 
你遇到什么问题啦
此帖出自51单片机论坛
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

现在的情况是:代码没有错误,有警告,数码管也不亮,我希望各位大神可以帮我看看代码哪里出错了。
此帖出自51单片机论坛
 
 
 

回复

128

帖子

1

TA的资源

一粒金砂(中级)

4
 
1. bit yigezijie()  这个是什么结构,没用过,里面的i貌似没有初始化;
2.建议 一个模块一个模块的调试,看数据转化貌似用的是ds18b20,可以下载相关例程看看  ;
3.排除软件问题,先仿真,再调试硬件。
个人建议,祝好~
此帖出自51单片机论坛
 
 
 

回复

9803

帖子

24

TA的资源

版主

5
 
本帖最后由 littleshrimp 于 2017-3-31 21:20 编辑

我没有51单片机 不能帮你测试了 你可以按提示把警告消除 或者把警告发出来 大家帮你看看哪些需要解决 代码弄好后如果有示波器或逻辑分析仪可以看一下输出 如果没有需要写一些测试程序 比如控制对应的I/O输出 用万用表或者LED看一下输出是否正常 确定能输出了在看一下时序是不是正确 代码的输出需要和对应的硬件配套 如果你有硬件资料最好也发出来 不然之发代码 别人很难看出问题在哪里
此帖出自51单片机论坛
 
 
 

回复

606

帖子

1

TA的资源

一粒金砂(中级)

6
 
函数全是拼音感觉好奇怪啊 不过不要紧 看到你有添加串口打印调试信息 ,首先可以看调试信息确定程序执行下去没有,感觉跑不下去啊,前提是你的串口打印是正常的 。建议程序先简单点,可以先读取数据或者数码管显示正常了再加入下一部分的。
此帖出自51单片机论坛
 
个人签名疏雨客晚归,荒烟乱,几许江南无晴!又落花,残香织梦,莫  莫  莫,白首衷肠……
 
 

回复

57

帖子

0

TA的资源

一粒金砂(中级)

7
 
先把原理图传一下大家才能判断
此帖出自51单片机论坛
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

8
 
显示部分有问题
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表