


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电路图仿真图温控范围 25 到 35 度之间源程序#include<reg51.h>/包含单片机寄存器的头文件#include<intrins.h> /包含 _nop_() 函数定义的头文件#include <absacc.h>#include <math.h>sbit DQ=P11;sbit jdq=P10;sbit dot=P27;unsigned char codexiaoshu=0xc0,0xc0,0xf9,0xf9,0xa4,0xb0,0xb0,0x99,0x92,0x92,0x82,0xf8,0xf8,0x80,0x80,0x90;c
2、har duan4=0,0,0,0;unsigned char code weikong=0x01,0x02,0x04,0x08,0x10,0x20; unsigned char code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;int bai,shi,ge,flag=0,i;unsigned char temp;unsigned char TL;/储存暂存器的温度低位unsigned char TH;/储存暂存器的温度高位unsigned char TN;/储存
3、温度的整数部分unsigned int TD;/储存温度的小数部分void delay1ms()unsigned char i,j;for(i=0;i<10;i+)for(j=0;j<33;j+);void delaynms(int n)unsigned char i;for(i=0;i<n;i+)delay1ms();unsigned char time_DS18B20;/设置全局变量,专门用于严格延时bit Init_DS18B20(void)bit flag_DS18B20;/储存 DS18B20 是否存在的标志,flag=0 ,表示存在;flag=1 ,表示不存在DQ
4、 = 1;/先将数据线拉高for(time_DS18B20=0;time_DS18B20<2;time_DS18B20+) /略微延时约6 微秒;DQ = 0;/再将数据线从高拉低,要求保持480960usfor(time_DS18B20=0;time_DS18B20<200;time_DS18B20+) /略微延时约600 微秒; / 以向 DS18B20 发出一持续 480960us 的低电平复位脉冲DQ = 1;/释放数据线(将数据线拉高)for(time_DS18B20=0;time_DS18B20<10;time_DS18B20+); /延时约 30us (释放总线
5、后需等待1560us 让 DS18B20 输出存在脉冲)flag_DS18B20=DQ;/让单片机检测是否输出了存在脉冲(DQ=0 表示存在)for(time_DS18B20=0;time_DS18B20<200;time_DS18B20+) /延时足够长时间,等待存在脉冲输出完毕;return (flag_DS18B20);/返回检测成功标志unsigned char ReadOneChar( )unsigned char i=0;unsigned char dat; /储存读出的一个字节数据for (i=0;i<8;i+)DQ =1;/先将数据线拉高_nop_();/ 等待一个
6、机器周期DQ = 0;/单片机从 DS18B20 读书据时 ,将数据线从高拉低即启动读时序dat>>=1;_nop_();/等待一个机器周期DQ = 1;/将数据线 " 人为 " 拉高 ,为单片机检测DS18B20 的输出电平作准备for(time_DS18B20=0;time_DS18B20<3;time_DS18B20+);/延时约 6us,使主机在15us 内采样if(DQ=1)dat|=0x80; /如果读到的数据是1,则将 1 存入 datelsedat|=0x00;/如果读到的数据是0,则将 0 存入 dat/ 将单片机检测到的电平信号DQ 存
7、入 rifor(time_DS18B20=0;time_DS18B20<8;time_DS18B20+);/延时 3us, 两个读时序之间必须有大于1us 的恢复期return(dat);/返回读出的十进制数据WriteOneChar(unsigned char dat)unsigned char i=0;for (i=0; i<8; i+)DQ =1;/先将数据线拉高_nop_();/ 等待一个机器周期DQ=0;/将数据线从高拉低时即启动写时序DQ=dat&0x01;/利用与运算取出要写的某位二进制数据,/ 并将其送到数据线上等待 DS18B20 采样for(time_D
8、S18B20=0;time_DS18B20<10;time_DS18B20+);/ 延时约 30us , DS18B20 在拉低后的约1560us 期间从数据线上采样DQ=1;/释放数据线for(time_DS18B20=0;time_DS18B20<1;time_DS18B20+);/ 延时 3us, 两个写时序间至少需要1us 的恢复期dat>>=1;/将 dat 中的各二进制位数据右移1 位for(time_DS18B20=0;time_DS18B20<4;time_DS18B20+); /稍作延时 ,给硬件一点反应时间void ReadyReadTemp(
9、void)Init_DS18B20();/将 DS18B20 初始化WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0x44); /启动温度转换for(time_DS18B20=0;time_DS18B20<100;time_DS18B20+); / 温度转换需要一点时间Init_DS18B20();/将 DS18B20 初始化WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE); /读取温度寄存器 ,前两个分别是温度的低位和高位TL=ReadOneChar();/先读的是温度值低位TH=ReadOne
10、Char();/接着读的是温度值高位void display()if(TH>=8)TH=TH; /当温度为负数时求负数的补码TL=TL;TL=TL+1;flag=1;/当温度为负值时标志置1if(TL=0)TH+=1;duan0=TL&0X0f;/ 保存小数部分的值temp=(TH<<4)&0x70)|(TL>>4);/ 将高8位的低 3位和低 8位的高 4 位合并构成温度的整数部分duan3=temp/100;/ 取百位duan2=temp%100/10;/取十位duan1=temp%10;/ 取个位P2=xiaoshuduan0;/显示小数部分
11、P3=0x01;delaynms(3);P3=0;if(duan3)/ 显示百位P3=weikong3;P2=tableduan3;delaynms(3);P3=0;if(duan3)/ 显示十位P3=weikong2;P2=tableduan2;delaynms(3);P3=0;elseif(duan2)/ 显示十位P3=weikong2;P2=tableduan2;delaynms(3);P3=0;P3=weikong1;P2=tableduan1;/ 显示个位dot=0;delaynms(3);P3=0;/ 显示小数点if(flag) /当温度为负数时显示符号位P2=0xbf;if(!duan3)P3=0x08;if(!duan2)P3=0x04;elseP3=0x10;delaynms(1);P3=0;flag=0;delaynms(25);/ 延时一段时间void main(void)wh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业智能化数字工具的应用与优化
- 2025年监理工程师之合同管理自测模拟预测题库(名校卷)
- 办公自动化的组织文化影响及人才需求
- 企业数字化过程中的员工学习与发展机制
- 医疗健康领域的数字化创新发展
- 医疗教育资源的知识传播与保护机制
- 商业环境下的教育与培训变革趋势及应对策略分析
- 城市规划中的数字孪生优化城市空间布局与发展策略
- 基于数字孪生的制造业生产流程优化实践案例
- 企业数据安全数字健康隐私保护的挑战与对策
- 《生物制品连续制造指南》
- 保卫管理员三级练习题
- 湖北荆州市监利市畅惠交通投资有限公司招聘笔试冲刺题2024
- 食品配送行业安全生产管理制度
- 土力学知到智慧树章节测试课后答案2024年秋青岛理工大学
- 手术室护理疑难病例讨论
- 国家秘密载体的管理要求
- 硫酸安全使用管理及使用制度(4篇)
- 《正确看待中美关系》课件
- 申请发票额度合同范例
- 2024年砂石厂主要负责人安全生产责任制(2篇)
评论
0/150
提交评论