基于单片机的多点温度监测系统设计

发布时间 : 星期三 文章基于单片机的多点温度监测系统设计更新完毕开始阅读

本科生毕业论文(设计)打印专用纸

20 21 22 23 24 25 26 27 28 VDD_5 GND GP0 GP1 NC GND_A PLL_TEST OSC1 OSC2 电源 输入/输出 输入/输出 输入 输入 输入/输出 USB端口的5V电压电源 接地 通用I/O引脚0 通用I/O引脚1 无连接 模拟地锁相环 PLL锁相环测试模拟控制 晶体振荡器输入 晶体振荡器输出

21

本科生毕业论文(设计)打印专用纸

附录三:源程序

//功能:与上位机完成通信,上位机发送请求指令,可以完成三路温度数据的采集

#include #define uchar unsigned char #define uint unsigned int sbit A1 = P3^7; //数码管位选 sbit A2 = P3^6; sbit A3 = P3^5; sbit A4 = P3^4;

sbit db1 = P2^1; //定义采集点1与单片机的接口 sbit db2 = P2^3; //定义采集点2与单片机的接口 sbit db3 = P2^5; //定义采集点3与单片机的接口 sbit jb1 = P2^0; //采集点1温度报警接口 sbit jb2 = P2^2; //采集点2温度报警接口 sbit jb3 = P2^4; //采集点3温度报警接口 sbit buzzer = P3^2; //蜂鸣器 int tem1; int tem2; int tem3; uchar tt = 0; uchar rex = 0;

uchar receivedat = 0; //用于存放单片机收到的指令数据 uchar c; //主程序中循环变量 uchar senden = 0;

//发送使能

uchar qb1,sg1,qb2,sg2,qb3,sg3;//用于存放温度值的各位数值 变量 uchar wd[8]; //用于存放待发送到PC端的温度各位数据 数组 /***************************定义数码管显示数组**************************************/ uchar weixuan[] = {0x80,0x40,0x20,0x10}; //位选

uchar duanxuan[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//段选 uchar dxxsd[] = {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; //段选含小数点 void delay(uint i) //ds18b20数据延时 { }

22

//用于储存各采集点读取的温度值

while(i--);

本科生毕业论文(设计)打印专用纸

void delay0(uint z) //数码管显示延时 { uint i,j;

for(i = 10;i > 0;i--)

for(j = z;j > 0;j--);

}

void init(void) //18b20初始化

{

// uchar x = 0; db1 = 1;//db18b20复位 db2 = 1;//db18b20复位 db3 = 1;//db18b20复位 delay(8); db1 = 0; db2 = 0; db3 = 0; delay(80);

db1 = 1;//db18b20复位 db2 = 1;//db18b20复位 db3 = 1;//db18b20复位 delay(14); // x = db; delay(20);

// return(x);

}

char read1(void) //读采集点1数据{ uchar i = 0; uchar dat = 0; for(i = 8;i > 0;i--) { db1 = 0; dat >>= 1; db1 = 1;

if(db1)

23

本科生毕业论文(设计)打印专用纸

dat |= 0x80; delay(4);

}

return(dat);

}

char read2(void) //读采集点2数据

{ uchar i = 0; uchar dat = 0; for(i = 8;i > 0;i--) { db2 = 0; dat >>= 1; db2 = 1; if(db2) dat |= 0x80; delay(4);

}

return(dat);

}

char read3(void) //读采集点3数据

{ uchar i = 0; uchar dat = 0; for(i = 8;i > 0;i--) { db3 = 0; dat >>= 1; db3 = 1; if(db3) dat |= 0x80; delay(4);

}

return(dat);

}

24

联系合同范文客服:xxxxx#qq.com(#替换为@)