DS18B20数字温度计课程设计报告内有程序.docxVIP

DS18B20数字温度计课程设计报告内有程序.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DS18B20数字温度计课程设计报告 (内有程序) 一、设计思路: ? ?1. 采用AT89S52+DS18B20+三位共阳数码管构架。本案例最终生成的HEX文件只有3.2K,单片机用AT89S52有些浪费了,但芯片是以前学习时留下来的,而且P0口有断脚,发挥余热吧。有强迫症的朋友可以选用STC15W204S+74HC595。 ? ?2. 数码管上下倒置,目的是为了能显示温度单位,数码管代码需另外取码(推荐),或是在焊接时重新分布脚位也可。 ? ? 二、电路构成: ? ? 1. 单片机最小系统:AT89S52、40P双列插座、晶振(12MHz)、30pF贴片电容(2个)、10K电阻、10uF电解电容。 ? ? 2. 温度采集电路:DS18B20(数字温度传感器)、4.7K贴片电阻。 ? ? 3.?数码管显示电路:F4301BH(三位共阳)、100欧电阻8个(段限流电阻,实际焊接为91欧)、SS8550三极管3个+10K电阻3个(位驱动)。 ? ? 4. 供电电路:DC5V电源座、100uF滤波电容。 #include reg52.h #define uchar unsigned char #define uint unsigned int sbit w1=P2^5; sbit w2=P2^6; sbit w3=P2^7; sbit DQ=P3^4; bit TempFlag; uint Temp; uchar code tab[]={0xc0,0xcf,0xa4,0x86,0x8b,0x92,0x90,0xc7,0x80,0x82};??//代码表,已重新取码 void Delayms(uint xms);? ? void Delayus(uint xus); void GetTemp(void); void InitT0(void); void Init_DS18B20(void); uchar Read_DS18B20(void); void Write_DS18B20(uchar Dat); void display() { ? ?P1=0x33; ? ?w3=0; ? ?Delayms(2); ? ?w3=1; ? ?? ?? ? ? ?P1=tab[Temp%10]; ? ?w2=0; ? ?Delayms(2); ? ?w2=1; ? ?? ?? ?? ?? ?? ? ? ?P1=tab[Temp/10]; ? ?w1=0; ? ?Delayms(2); ? ?w1=1; } void main()? ?? ?? ?? ?? ???//主函数 { ? ? InitT0(); ? ? while(1) ? ? { ? ?? ? GetTemp();? ???//读取温度 ? ?? ? display(); ? ? } } void Init_DS18B20(void)? ?? ?? ???//初始化DS18B20函数 { ??DQ=1; ??Delayus(4); ??DQ=0; ??Delayus(100); ??DQ=1; ??Delayus(40); } uchar Read_DS18B20(void)? ?? ? //读DS18B20函数 { ??uchar i=0,Dat=0; ??for(i=0;i8;i++) ? ? { ? ?? ???DQ=1; ? ?? ???DQ=0; ? ?? ???Dat=1; ? ?? ???DQ=1; ? ?? ???if(DQ) ? ?? ???Dat|=0x80; ? ?? ???DQ=1; ? ?? ???Delayus(25); ? ? } ??return(Dat); } void Write_DS18B20(uchar Dat)? ?//写DS18B20函数 { ??uchar i=0; ??for(i=0;i8;i++) ? ?{ ? ?? ?DQ=1; ? ?? ?Dat=1; ? ?? ?DQ=0; ? ?? ?DQ=CY; ? ?? ?Delayus(25); ? ?? ?DQ=1; ? ? } } void GetTemp(void)? ?? ?? ???//取温度函数 { ??uchar a=0,b=0; ??Init_DS18B20(); ??Write_DS18B20(0xcc); ??Write_DS18B20(0x44); ??Init_DS18B20(); ??Write_DS18B20(0xcc); ??Write_DS18B20(0xbe); ??a=Read_DS18B20(); ??b=Read_DS18B20(); ??Temp=b; ??Temp=8; ??Temp=Temp|a; ??if(b=8) ? ?

文档评论(0)

企业管理 + 关注
实名认证
服务提供商

计算机三级持证人

从事多年企业管理、在团队建设、员工培训、营销提升、组织架构有多自己的经验,希望在这个平台分享及帮助更多的公司或企业!

领域认证该用户于2023年05月09日上传了计算机三级

1亿VIP精品文档

相关文档