标题: DS18B20应用程序 对数码管的显示里的P0口赋值不懂 [打印本页]

作者: 丢了记忆的鱼    时间: 2017-9-30 21:41
标题: DS18B20应用程序 对数码管的显示里的P0口赋值不懂
/*====================================函数: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);        }}
作者: cjjcjj1    时间: 2017-9-30 22:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: zl2168    时间: 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文件能在清华出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。

作者: 站着说话不腰疼    时间: 2019-2-6 22:07
晕,你自己上个代码都不认真,谁还帮你咯
作者: Trump1438    时间: 2019-2-7 00:06
说的也是,什么玩意儿嘛?一团遭!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1