找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2568|回复: 4
打印 上一主题 下一主题
收起左侧

DS18B20应用程序 对数码管的显示里的P0口赋值不懂

[复制链接]
跳转到指定楼层
楼主
ID:236816 发表于 2017-9-30 21:41 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
/*====================================函数:void Display(unsigned long Value)参数:Value,显示值 32位描述:====================================*/void Display(unsigned long Value)                {        uchar i=0;//第一位数码管//------------------------------        if(s == 0);                                                           //如果为负数则不显示        else        {                                DU = 0;                                                        //关闭段选                P0 = s;                                DU = 1;                                                        //打开段选                DU = 0;                                                        //关闭段选                        WE = 0;                                                //关闭位选                P0 = T_COM[i++];                                        WE = 1;                                                //打开位选                WE = 0;                                                //关闭位选                Delay_Ms(1);        }//第二位数码管//------------------------------        if(Value < 1000000);                           //如果温度值百位为0则不显示        else        {                DU = 0;                                                        //关闭段选                P0 = table[Value/1000000];                        DU = 1;                                                        //打开段选                DU = 0;                                                        //关闭段选                        WE = 0;                                                //关闭位选                P0 = T_COM[i++];                                                WE = 1;                                                //打开位选                WE = 0;                                                //关闭位选                Delay_Ms(1);        }//第三位数码管//------------------------------        if(Value < 100000);                                                else        {                DU = 0;                                                        //关闭段选                P0 = table[Value%1000000/100000];                //数码管显示百位                DU = 1;                                                        //打开段选                DU = 0;                                                        //关闭段选                        WE = 0;                                                //关闭位选                P0 = T_COM[i++];                                                WE = 1;                                                //打开位选                WE = 0;                                                //关闭位选                Delay_Ms(1);        }//第四位数码管//-------------------------------        DU = 0;        P0 = table[Value%100000/10000]|0x80;//显示温度小数点,温度值个位显示        DU = 1;        DU = 0;        WE = 0;        P0 = T_COM[i++];                        WE = 1;        WE = 0;        Delay_Ms(1);//第五位数码管//-------------------------------        DU = 0;                                                        //关闭段选        P0 = table[Value%10000/1000];                DU = 1;                                                        //打开段选        DU = 0;                                                        //关闭段选        WE = 0;                                                //关闭位选        P0 = T_COM[i++];                                        WE = 1;                                                //打开位选        WE = 0;                                                //关闭位选        Delay_Ms(1);//第六位数码管//-------------------------------        if((Value%100/10) == 0 && (Value%1000/100) == 0 );         else        {                DU = 0;                                                        //关闭段选                P0 = table[Value%1000/100];                        DU = 1;                                                        //打开段选                DU = 0;                                                        //关闭段选                        WE = 0;                                                //关闭位选                P0 = T_COM[i++];                                                WE = 1;                                                //打开位选                WE = 0;                                                //关闭位选                Delay_Ms(1);        }//第七位数码管//-------------------------------        if((Value%10) == 0 && (Value%100/10) == 0);        else        {                DU = 0;                                                        //关闭段选                P0 = table[Value%100/10];                        DU = 1;                                                        //打开段选                DU = 0;                                                        //关闭段选                        WE = 0;                                                //关闭位选                P0 = T_COM[i++];                                                WE = 1;                                                //打开位选                WE = 0;                                                //关闭位选                Delay_Ms(1);        }//第八位数码管//-------------------------------        if((Value%10) == 0 );        else        {                DU = 0;                                                        //关闭段选                P0 = table[Value%10];                        DU = 1;                                                        //打开段选                DU = 0;                                                        //关闭段选                        WE = 0;                                                //关闭位选                P0 = T_COM[i++];                                                WE = 1;                                                //打开位选                WE = 0;                                                //关闭位选                Delay_Ms(1);        }}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:82765 发表于 2017-9-30 22:10 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

板凳
ID:111634 发表于 2017-10-1 21:36 | 只看该作者
本帖最后由 zl2168 于 2017-10-1 21:37 编辑

实例97  一线式DS18B20测温
Proteus仿真一下,确认有效。
实例97 DS18B20测温.rar (51.78 KB, 下载次数: 4)

以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,电路与程序真实可靠可信可行。仿真电路和Hex文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。
回复

使用道具 举报

地板
ID:474670 发表于 2019-2-6 22:07 | 只看该作者
晕,你自己上个代码都不认真,谁还帮你咯

评分

参与人数 3黑币 +37 收起 理由
春风十里吹 + 10 很给力!
zhengchong60 + 15
钻牛尖滴刘尖尖 + 12

查看全部评分

回复

使用道具 举报

5#
ID:472325 发表于 2019-2-7 00:06 | 只看该作者
说的也是,什么玩意儿嘛?一团遭!

评分

参与人数 3黑币 +60 收起 理由
areyouok + 10
Sawardeakar + 35
#include51.h + 15

查看全部评分

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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