3821|13

24

帖子

2

TA的资源

一粒金砂(中级)

楼主
 

18b20和ds1302在5110屏幕显示问题 [复制链接]

 
4芯积分
同时使用18b20和ds1302在5110屏幕上显示时,为什么显示不出实时的温度,只有不变的一个00.05。

此帖出自51单片机论坛

最新回复

SDB628 输出电压高达28V可调 电流2A 升压IC SDB628是一款固定频率,电流模式升压变换器,高达1.2MHz的工作频率使得外围电感电容可以选择更小的规格。内置软启动功能减小了启动冲击电流。轻载时自动切换至PFM模式。SDB628 包含了输入欠压锁定,电流限制以及过热保护功能。小尺寸的封装给PCB省下更多的空间。 ●  集成0.8欧姆的高压功率MOSFET ● 内部4A的开关电流限制 ● 2V-24V的输入电压,VFB:0.6V ●  1.2MHz 固定工作频率 ● 输出电流2A    ● 内部补偿功能       ● 输出电压高达28V ● 轻负载条件下,能进行自动脉冲调制。SDB628是一款固定频率,SOT23-6封装的电流模式升压变换器,高达1.2MHz的工作频率使得外围电感电容可以选择更小 ●  效率高达97% 应用:  电池供电设备/ 机顶盒/ LCD偏置电源/ 无线产品及DSL调制调解器/ PCI网卡或插槽供电   DC-DC / AC-DC 电压检测  降压    DC-DC  同步降压  ESD电压保护  详情 回复 发表于 2016-8-20 15:57
点赞 关注
 

回复
举报

305

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
上图,程序
此帖出自51单片机论坛
 
 
 

回复

2万

帖子

0

TA的资源

超级版主

板凳
 
18B20单独使用能够正常工作否?
若单独使用可以正常工作,那么很可能是其它外设触发中断而中断占用时间过长。
18B20对时序要求非常严,中断时间稍长一点点就会影响18B20时序,造成读写失败。
此帖出自51单片机论坛
 
 
 

回复

1万

帖子

25

TA的资源

版主

4
 
可以用proteus仿真试试,多半是时序问题。
此帖出自51单片机论坛
 
 
 

回复

24

帖子

2

TA的资源

一粒金砂(中级)

5
 
maychang 发表于 2016-8-19 06:57
18B20单独使用能够正常工作否?
若单独使用可以正常工作,那么很可能是其它外设触发中断而中断占用时间过 ...

18b20单独可以用,函数中没有中断
此帖出自51单片机论坛

点评

“函数中没有中断” 你好像还没有弄清楚“中断”是怎么回事。 打个比方:你正在看书,朋友来了,你记住书的页码,放下书和朋友谈话,朋友走了,你找到页码继续看。这就是中断。 你的函数里面并没有中断,中断是其  详情 回复 发表于 2016-8-19 17:19
 
 
 

回复

2万

帖子

0

TA的资源

超级版主

6
 
wyf1101 发表于 2016-8-19 16:11
18b20单独可以用,函数中没有中断

“函数中没有中断”
你好像还没有弄清楚“中断”是怎么回事。
打个比方:你正在看书,朋友来了,你记住书的页码,放下书和朋友谈话,朋友走了,你找到页码继续看。这就是中断。
你的函数里面并没有中断,中断是其它某外设产生的。其它某外设产生中断请求,单片机又允许中断,那么你的18B20函数被中断,即停止执行读写18B20,去执行其它某外设要求的程序,执行完毕后,再继续执行读写18B20的程序。
此帖出自51单片机论坛
 
 
 

回复

2万

帖子

0

TA的资源

超级版主

7
 
你读某一章节书所使用的时间,朋友来过和没有来,读书使用的时间显然不一样。
读写18B20的时间,其它某外设是否工作,读写18B20所使用的时间显然不一样。
此帖出自51单片机论坛
 
 
 

回复

24

帖子

2

TA的资源

一粒金砂(中级)

8
 
maychang 发表于 2016-8-19 17:19
“函数中没有中断”
你好像还没有弄清楚“中断”是怎么回事。
打个比方:你正在看书,朋友来了,你记住 ...

是不是18b20的读写时序被ds1302冲突了,但是该怎样解决呢,需要看程序吗
此帖出自51单片机论坛

点评

“该怎样解决呢” 写程序,尤其是底层程序,绝对不是copy一段别人写的可以正常工作的程序,就能够实现你的目标的。  详情 回复 发表于 2016-8-19 21:52
“该怎样解决呢” 准备对18B20进行读或写操作之前,关掉中断,读或写18B20之后立即开中断。这样,中断不会破坏读或写18B20的时序。 关中断后,读或写18B20所需要的时间相当短。在此期间内,中断被“挂起”,相当于  详情 回复 发表于 2016-8-19 21:49
“是不是18b20的读写时序被ds1302冲突了” 是的。 单片机正在读或写18B20的过程中,发生了某种中断,于是单片机转去执行中断例程,这就破坏了对18B20的读或写的时序。  详情 回复 发表于 2016-8-19 21:42
 
 
 

回复

24

帖子

2

TA的资源

一粒金砂(中级)

9
 

这是主函数

本帖最后由 wyf1101 于 2016-8-19 21:23 编辑
  1. void main()
  2. {        

  3.         LCD_init(); //初始化液晶   
  4.         LCD_clear();
  5.         Ds1302Init();
  6.         LCD_write_english_string(0,1,"  2016.08.17 ");
  7.         LCD_write_english_string(0,3,"DS:00:00:00  ");
  8.         LCD_write_english_string(0,5,"    crazyer  ");
  9.         LCD_write_english_string(0,1,"   00:00:00  ");
  10.         LCD_write_english_string(0,2,"wendu: 00.00 C");
  11.         LCD_write_english_string(0,4,"DS 00:00:00  ");
  12.         dd=0;
  13.                 while(1)  
  14.                 {        
  15.                         Ds1302ReadTime();
  16.                         temp1 = Ds18b20ReadTemp();
  17.                         temp1=(temp1*0.0625*100+0.5)*10;         
  18.                     q=temp1 / 1000;
  19.                         b=temp1 % 1000 / 100;
  20.                         s=temp1 % 100 / 10;
  21.                            g=temp1%10;
  22.                         xianshi(3,7,q);                delay(1);
  23.                         xianshi(3,8,b);                delay(1);
  24.                         xianshi(3,9,'.'-48);delay(1);
  25.                         xianshi(3,10,s);        delay(1);
  26.                         xianshi(3,11,g);
  27.                         delay(1);
  28.                                  
  29.                         szshi1=TIME[2]/16;
  30.                         szshi2=(TIME[2]&0x0f);
  31.                         szfen1=TIME[1]/16;
  32.                         szfen2=(TIME[1]&0x0f);
  33.                     szmiao1=TIME[0]/16;
  34.                         szmiao2=(TIME[0]&0x0f);
  35.                         sznian1=TIME[6]/16;
  36.                         sznian2=(TIME[6]&0x0f);
  37.                         szyue1=TIME[4]/16;
  38.                         szyue2=(TIME[4]&0x0f);
  39.                         szri1=TIME[3]/16;
  40.                         szri2=(TIME[3]&0x0f);
  41.                         szxq1=TIME[5]/16;
  42.                         szxq2=(TIME[5]&0x0f);
  43.                         xianshi(1,2,2);
  44.                         xianshi(1,3,0);
  45.                         xianshi(1,4,sznian1);  delay(1);
  46.                         xianshi(1,5,sznian2);  delay(1);
  47. //                        LCD_write_english_string(2,7,"-");
  48.                         xianshi(1,7,szyue1);   delay(1);
  49.                         xianshi(1,8,szyue2);   delay(1);
  50. //                        LCD_write_english_string(2,11,"-");
  51.                         xianshi(1,10,szri1); delay(1);
  52.                         xianshi(1,11,szri2); delay(1);
  53.                         
  54.                         xianshi(2,3,szshi1); delay(1);
  55.                         xianshi(2,4,szshi2); delay(1);
  56. //                        LCD_write_english_string(2,5,":");
  57.                         xianshi(2,6,szfen1); delay(1);
  58.                         xianshi(2,7,szfen2); delay(1);
  59. //                        LCD_write_english_string(2,8,":");
  60.                         xianshi(2,9,szmiao1); delay(1);
  61.                         xianshi(2,10,szmiao2);        delay(1);   
  62. //                        wendu();
  63.                         
  64.                         num1=kaig();                        
  65.                         if(num1==7)        dingshi2(kaig());                        
  66.                         if(num1==1)        dingshi1(kaig());
  67.                         if(shi1==szshi1&&shi2==szshi2&&fen1==szfen1&&fen2==szfen2&&miao1==szmiao1&&miao2==szmiao2)        dd=1;
  68.                         if(s1==szshi1&&s2==szshi2&&f1==szfen1&&f2==szfen2&&m1==szm1&&m2==szmiao2)        dd=1;
  69.                 }

  70.                   
  71. }
复制代码
此帖出自51单片机论坛
 
 
 

回复

2万

帖子

0

TA的资源

超级版主

10
 
wyf1101 发表于 2016-8-19 21:20
是不是18b20的读写时序被ds1302冲突了,但是该怎样解决呢,需要看程序吗

“是不是18b20的读写时序被ds1302冲突了”
是的。
单片机正在读或写18B20的过程中,发生了某种中断,于是单片机转去执行中断例程,这就破坏了对18B20的读或写的时序。
此帖出自51单片机论坛
 
 
 

回复

2万

帖子

0

TA的资源

超级版主

11
 
wyf1101 发表于 2016-8-19 21:20
是不是18b20的读写时序被ds1302冲突了,但是该怎样解决呢,需要看程序吗

“该怎样解决呢”
准备对18B20进行读或写操作之前,关掉中断,读或写18B20之后立即开中断。这样,中断不会破坏读或写18B20的时序。
关中断后,读或写18B20所需要的时间相当短。在此期间内,中断被“挂起”,相当于病人已经挂号,等待医生为前一个病人诊断。读或写18B20完成后开中断,相当于医生已经为前一个病人诊断完毕,允许这个病人陈述病情。
至于18B20转换期间(大约1秒),单片机可以执行很多程序,并无影响。
详细的时序,应该仔细看18B20的datasheet。
此帖出自51单片机论坛
 
 
 

回复

2万

帖子

0

TA的资源

超级版主

12
 
wyf1101 发表于 2016-8-19 21:20
是不是18b20的读写时序被ds1302冲突了,但是该怎样解决呢,需要看程序吗

“该怎样解决呢”
写程序,尤其是底层程序,绝对不是copy一段别人写的可以正常工作的程序,就能够实现你的目标的。
此帖出自51单片机论坛
 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

13
 
SDB628 输出电压高达28V可调 电流2A 升压IC :首鼎 SDB628是一款固定频率,电流模式升压变换器,高达1.2MHz的工作频率使得外围电感电容可以选择更小的规格。内置软启动功能减小了启动冲击电流。轻载时自动切换至PFM模式。SDB628 包含了输入欠压锁定,电流限制以及过热保护功能。小尺寸的封装给PCB省下更多的空间。 ●  集成0.8欧姆的高压功率MOSFET ● 内部4A的开关电流限制 ● 2V-24V的输入电压,VFB:0.6V ●  1.2MHz 固定工作频率 ● 输出电流2A    ● 内部补偿功能        ● 输出电压高达28V ● 轻负载条件下,能进行自动脉冲调制。SDB628是一款固定频率,SOT23-6封装的电流模式升压变换器,高达1.2MHz的工作频率使得外围电感电容可以选择更小 ●  效率高达97%  应用:  电池供电设备/ 机顶盒/ LCD偏置电源/ 无线产品及DSL调制调解器/ PCI网卡或插槽供电   DC-DC / AC-DC 电压检测  降压    DC-DC  同步降压  ESD电压保护
此帖出自51单片机论坛
 
 
 

回复

23

帖子

0

TA的资源

一粒金砂(中级)

14
 
SDB628 输出电压高达28V可调 电流2A 升压IC

SDB628是一款固定频率,电流模式升压变换器,高达1.2MHz的工作频率使得外围电感电容可以选择更小的规格。内置软启动功能减小了启动冲击电流。轻载时自动切换至PFM模式。SDB628 包含了输入欠压锁定,电流限制以及过热保护功能。小尺寸的封装给PCB省下更多的空间。 ●  集成0.8欧姆的高压功率MOSFET
● 内部4A的开关电流限制
● 2V-24V的输入电压,VFB:0.6V
●  1.2MHz 固定工作频率
● 输出电流2A   
● 内部补偿功能      
● 输出电压高达28V
● 轻负载条件下,能进行自动脉冲调制。SDB628是一款固定频率,SOT23-6封装的电流模式升压变换器,高达1.2MHz的工作频率使得外围电感电容可以选择更小
●  效率高达97%
应用:  电池供电设备/ 机顶盒/ LCD偏置电源/ 无线产品及DSL调制调解器/ PCI网卡或插槽供电   DC-DC / AC-DC 电压检测  降压    DC-DC  同步降压  ESD电压保护
此帖出自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
快速回复 返回顶部 返回列表