基于单片机的无线温度采集开发报告(含原理图PCB图程序)论文.docVIP

  • 11
  • 0
  • 约2.96千字
  • 约 10页
  • 2018-02-28 发布于贵州
  • 举报

基于单片机的无线温度采集开发报告(含原理图PCB图程序)论文.doc

基于单片机的无线温度采集开发报告(含原理图PCB图程序)论文

电子产品开发报告 姓 名 张凌飞 班级 电子1006 报告成绩 开发题目 基于单片机控制的温度测量模块设计 研究目标 无线定点温度测量模块可将测温模块设置在待测量点通过无线通信将测得的数据实时发送到接收点显示。 设计框图(5分): Protues仿真图(10分): 软件设计流程图(5分): 软件程序(15分): 发射芯片U1: #includereg51.h #define uint unsigned int #define uchar unsigned char sbit pin_1820=P1^7; bit flag,f; uchar temp,tempdf,tempint; void delay(unsigned int i) { unsigned int j; for(;i0;i--) for(j=0;j125;j++) ; } void init_scom() { SCON=0x50; TMOD|=0x20; PCON|=0x80; TH1=0xFA; IE=0x90; TR1=1; } void send_char(uchar tempint) { SBUF=tempint; while(TI==0); TI=0; } void set_ds1820() { while(1) { uchar delay; flag=0; pin_1820=1; delay=1; while(--delay); pin_1820=0; delay=250; while(--delay); pin_1820=1; delay=30; while(--delay); while(!pin_1820) { delay=120; while(--delay); if(pin_1820) { flag=1; break; } } if(flag) { delay=240; while(--delay); break; } } } void write_ds1820(uchar command) { uchar delay,i; for(i=8;i0;i--) { pin_1820=0; delay=6; while(--delay); pin_1820=command0x01; delay=25; while(--delay); command=command1; pin_1820=1; } } void read_ds1820() { uchar delay,i,j,k,temp,temph,templ; j=2; do { for(i=8;i0;i--) { temp=1; pin_1820=0; delay=1; while(--delay); pin_1820=1; delay=4; while(--delay); if(pin_1820)temp|=0x80; delay=25; while(--delay); } if(j==2)templ=temp; else temph=temp; }while(--j); f=0; if((temph0xf8)!=0x00) { f=1; temph=~temph; templ=~templ; k=templ+1; templ=k; if(k255) { temph++; } } tempdf=templ0x0f; templ=4; temph=4; tempint=temph|templ; } void get_temperature() { set_ds1820(); write_ds1820(0xcc); write_ds1820(0x44); set_ds1820(); write_ds1820(0xcc); write_ds1820(0xbe); read_ds1820(); } void main() { init_scom(); while(1) { get_temperature(); send_char(tempint); delay(50000); } } 接收芯片U2: #includereg51.h #define uint unsigned int #define uchar unsigned char uchar read_flag; uchar Temp[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x39,0x40}; uchar tempint; void duan_lock(uchar duan) { uint i; P0=Temp[duan]; for(i=7100;i0;i--); } void init_scom() { SCON=0x50; TMOD|=0x

文档评论(0)

1亿VIP精品文档

相关文档