




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#define uchar unsigned char #define uint unsigned intsbit DQ = P10; /DS18B20接入口sbit segd=P11;/段控制74573锁存使能sbit segw=P12;/位控制74573锁存使能uchar code tab=0x3f,0x06,0x5b,0x4f,/030x66,0x6d,0x7d,0x07,/470x7f,0x6f,0x77,0x7c,/8b0x39,0x5e,0x79,0x71,/cf0x00/灭;uchar tem7;uchar T_num=200;/*函数声明*/void delay(uint n);/延时函数void init_uart(void);/串口初始化void init_T0();/定时器T0初始化void Init_DS18B20(void);/DS18b20初始化函数uchar ReadOneChar(void);/DS18b20读一个字节void WriteOneChar(uchar dat);/DS18b20写一个字节int ReadTemperature(void);/DS18b20读取温度void disp_dat(uchar x,uchar y);/单个数码管显示函数void disp(void);/温度显示函数uchar sum(uchar *dat,uchar n);/求和校验函数uchar get_adress(void);/获取从机地址函数void change(void);/数据调整函数void send_dat(void);/串行数据发送函数/*主函数*/void main()init_T0();init_uart();/初始化串口while(1) change();/调整数据disp();/进行显示 /*延时函数*/void delay(uint n)while(n-) ;/*定时器T0初始化*/void init_T0()TMOD=0x01;/工作方式1TH0=0x4c;/定时50msTL0=0x00;ET0=1;/允许定时器T0中断EA=1;/开总中断TR0=1;/启动定时器T0/*串口初始化*/void init_uart(void)SCON=0x40;/工作方式1TMOD=TMOD|0x20;/T1为工作方式2TH1=0xFD;/设置T1TL1=0xFD;TR1=1;/启动定时器T1/*DS18b20初始化函数*/void Init_DS18B20(void) uchar x=0; DQ=1;/DQ复位 delay(10);/延时 DQ=0;/将DQ拉低 delay(80);/精确延时约480us DQ=1;/DQ线拉高总线 delay(20); while(!DQ);/等待初始化结束 delay(30);/*DS18b20读一个字节*/uchar ReadOneChar(void)uchar i=0;uchar dat=0;for (i=8;i0;i-) DQ=0;/给脉冲信号 dat=1; DQ=1;/给脉冲信号 if(DQ)dat|=0x80;/读入值是否为1 delay(8); return(dat);/*DS18b20写一个字节*/void WriteOneChar(uchar dat) uchar i=0; for (i=8;i0;i-) DQ=0; DQ=dat&0x01;delay(10);DQ=1;dat=1; delay(8);/*DS18b20读取温度*/int ReadTemperature(void)uchar dat_L=0,dat_H=0;int temper=0;float temp1=0;Init_DS18B20();WriteOneChar(0xCC);/跳过读序号列号的操作WriteOneChar(0x44);/启动温度转换Init_DS18B20();WriteOneChar(0xCC);/跳过读序号列号的操作WriteOneChar(0xBE);/读取温度寄存器dat_L=ReadOneChar();/低位dat_H=ReadOneChar();/高位temper=dat_H;temper=4;/获取地址return(ad);/*求和校验函数*/uchar sum(uchar *dat,uchar n)uchar i;uchar s_dat=0x00;for(i=2;in+1;i+)/对十位、个位和小数位上的数据求和s_dat+=dati;return(s_dat);/返回求和值/*数据调整函数*/void change(void)int temp;temp=ReadTemperature();/读温度tem0=0x24;/发送起始标志$tem1=get_adress();/获取从机地址tem2=temp%1000/100;/存十位上的数据tem3=temp%100/10;/存个位上的数据tem4=temp%10;/存小数位上的数据tem5=sum(tem,3);/存校验和tem6=0x23;/发送结束标志#/*单个数码管显示函数*/void disp_dat(uchar x,uchar y)segw=1;/74HC573开锁存P0=(0x01x);/送位选segw=0;segd=1;if(x=1)P0=taby|0x80;/若是个位送显示小数点elseP0=taby;/送显示数据segd=0;/*温度显示函数*/void disp(void)disp_dat(0,tem2);/显示十位上的数据delay(200);disp_dat(1,tem3);/显示个位上的数据delay(200);disp_dat(2,tem4);/显示小数点后第一位数据delay(200);disp_dat(3,16);/清零段位74HC573中的数据/*串行数据发送函数*/void send_dat(void)uchar i;for(i=0;i7;i+)SBUF=temi;while(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信息咨询营业方案怎么写
- 2025海南澄迈县就业局招聘见习生1人考前自测高频考点模拟试题附答案详解(模拟题)
- 2025贵州民族大学参加第十三届贵州人才博览会引才60人考前自测高频考点模拟试题及完整答案详解一套
- 2025黑龙江东北林业大学生态学院校内招聘2人模拟试卷有完整答案详解
- 2025安徽皖西国有投资控股集团公司部分经理层、内设部门和子公司负责人选聘拟聘用人员模拟试卷及答案详解(各地真题)
- 2025年扶余市博物馆公开选调解说员(4人)考前自测高频考点模拟试题及答案详解(典优)
- 2025湖南湘南学院招聘事业编制人员108人模拟试卷附答案详解(模拟题)
- 2025广西崇左凭祥市国防动员办公室公开招聘工作人员1人模拟试卷及1套完整答案详解
- 2025江苏泰州市教育局直属学校招聘教师43人模拟试卷及答案详解(新)
- 2025年上半年四川泸州市龙马潭区人民医院、泸州市龙马潭区第二人民医院、中医院考核招聘23人考前自测高频考点模拟试题(含答案详解)
- 《综合实践:进位制的认识与探究》课件
- 胰腺肿瘤WHO分类2025
- 过滤式消防自救呼吸器
- 应急救援技术专业教学标准(中等职业教育)2025修订
- 布洛芬药物分析关键要点
- 【新】2025国职游泳教练考试题库(120题完整版)
- 国家储备林建设项目可行性研究报告
- 2025年中央一号文件高频重点考试题库150题(含答案解析)
- 海豚的基础知识
- 交通事故责任认定书复议申请书
- 《药包材变更研究技术指南》(T-CNPPA 3009-2020)
评论
0/150
提交评论