[单片机实验3-1:《ds18b20温度测控实验指导书》150423[单片机实验3-1:《ds18b20温度测控实验指导书》150423.doc

[单片机实验3-1:《ds18b20温度测控实验指导书》150423[单片机实验3-1:《ds18b20温度测控实验指导书》150423.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[单片机实验3-1:《ds18b20温度测控实验指导书》150423[单片机实验3-1:《ds18b20温度测控实验指导书》150423

实验7:芯片控制《ds18b20温度测控》 硬件设计:据附录1:《ds18b20温度测试》电路图,在Protues软件中绘出硬件仿真电路。 2、填空:软件设计,将附录2给出的《ds18b20温度测试》程序补充完整。 3、仿真:编译程序,完成仿真。 4、增加控制功能:当温度低于200C时,控制低温超限电机启动;当温度高于300C时,控制高温超限电机启动,并添加高、低、正常三种温度的LED指示电路及程序。 附录1:《ds18b20温度测试》电路图 附录2:给出的《ds18b20温度测试》程序【填空】 /********************************************* DS18B20温度测量 *********************************************/ #include reg51.h #define uchar unsigned char #define uint unsigned int 【 】 DQ=P3^0; //单数据总线 【 】 p20=P2^0; //位码C 【-88.C】 【 】 p21=P2^1; //位码8.【-88.C】 【 】 p22=P2^2; //位码8 【-88.C】 【 】p23=P2^3; //位码 负号-【-88.C】) code 【 】tab[]={ 0XC0,0XF9,0XA4,0XB0,0X99, //0~9共阳段码 0X92,0X82,0XF8,0X80,0X90}; code【 】tab1[]={0X40,0X79,0X24,0X30,0X19, //0~9共阳段码带小数点 0X12,0X02,0X78,0X00,0X10}; uchar a,b,t,h; uchar bai,shi,ge,xiao; //////////////////////////////////////////////// 【 】delay(unsigned int i) { while(【 】); } /******************复位函数****************** 1。 初始化:单总线操作从初始化开始: 1)请求: 【单片机发送启动(复位)负脉冲:DQ=0,480us后,DQ=1】进入Rx接收模式 操作:DQ : 1 - 0(480us+) - 1 2)响应: 【单片机接收应答信号:收DQ=1(15~60us) - 响应DQ=0(60~240us),说明有单线器件在线】 操作:DS18B20检测到DQ上升沿后, 延时15~60us, 通过拉低总线60~240us,产生应答脉冲. DQ: 1(15~60us) - 0(60~240us) 【DQ=0,初始化完成,即可2.ROM操作】 *********************************************/ bit int_DS18B20(void) //初始化函数【合理简化协议】 { unsigned char x=0; 【 】 = 1; //1)请求: 【单片机发送启动负脉冲:DQ=0,480us】 delay(8); //延时480us 【 】 = 0; //单片机拉低DQ --- --- delay(80); //延时480us(略大于) |480us| 【 】 = 1; //拉高总线DQ ----- delay(14); //84us x=【 】; //延时片刻后读,如果x=0则初始化成功,x=1则初始化失败 delay(20); return x; //返回x=DQ } /****************************************** 1。写时隙【DQ=下降沿时产生】: 数据线DQ送出下降沿时, 产生写时隙(必须60us,各写时隙间保证1us的恢复时间) 写1 【DQ=0,15us后DQ=1】: 主机将数据线DQ先拉低, 然后释放15us后, 将数据线DQ拉高; 写0 【DQ=0,60us】: 主机将DQ拉低并至少保持60us以上. ******************************************/ //写一个字节 void Write(unsigned char dat) //dat=要写到DQ的8位数 { unsigned char i=0; for (i=8; i0; i--) //写8位 {

文档评论(0)

pkaokqunw + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档