资源简介
本设计仿真了电炉丝的温度控制,采用51单片机控制继电器的开或者关控制电炉丝的加热,采用pt100温度传感器采集电炉丝的温度,系统可按键设置电炉丝的温度大小,通过温度传感器进行温度反馈后控制继电器的开和关的时间来控制电炉丝的温度,使电炉丝温度工作在设定的温度值,达到稳定控制效果,本设计仅供参考,请勿他用
代码片段和文件信息
#include “DHT111.h“
#include
#include
sbit DATA = P1^1;
sbit SCK = P1^0;
/***********************************************************************************************************************************************************/
//SHT11程序
#define noACK 0 //继续传输数据,用于判断是否结束通讯
#define ACK 1 //结束数据传输;
//地址 命令 读/写
#define STATUS_REG_W 0x06 //000 0011 0
#define STATUS_REG_R 0x07 //000 0011 1
#define MEASURE_TEMP 0x03 //000 0001 1
#define MEASURE_HUMI 0x05 //000 0010 1
#define RESET 0x1e //000 1111 0
//写字节程序
char s_write_byte(unsigned char value)
{
unsigned char ierror=0;
for (i=0x80;i>0;i/=2) //shift bit for masking 高位为1,循环右移
{
if (i&value) DATA=1; //和要发送的数相与,结果为发送的位
else DATA=0;
SCK=1;
_nop_();_nop_();_nop_(); //延时3us
SCK=0;
}
DATA=1; //释放数据线
SCK=1;
error=DATA; //检查应答信号,确认通讯正常
_nop_();_nop_();_nop_();
SCK=0;
DATA=1;
return error; //error=1 通讯错误
}
//读字节程序
char s_read_byte(unsigned char ack)
//----------------------------------------------------------------------------------
{
unsigned char ival=0;
DATA=1; //释放数据线
for(i=0x80;i>0;i>>=1) //高位为1,循环右移
{
SCK=1;
if(DATA) val=(val|i); //读一位数据线的值
SCK=0;
}
DATA=!ack; //如果是校验,读取完后结束通讯;
SCK=1;
_nop_();_nop_();_nop_(); //延时3us
SCK=0;
_nop_();_nop_();_nop_();
DATA=1; //释放数据线
return val;
}
//启动传输
void s_transstart(void)
// generates a transmission start
// _____ ________
// DATA: |_______|
// ___ ___
// SCK : ___| |___| |______
{
DATA=1; SCK=0; //准备
_nop_();
SCK=1;
_nop_();
DATA=0;
_nop_();
SCK=0;
_nop_();_nop_();_nop_();
SCK=1;
_nop_();
DATA=1;
_nop_();
SCK=0;
}
//连接复位
void s_connectionreset(void)
// communication reset: DATA-line=1 and at least 9 SCK cycles followed by transstart
// _____________________________________________________ ________
// DATA: |_______|
// _ _ _ _ _ _ _ _ _ ___ ___
// SCK : __| |__| |__| |__| |__| |__| |__| |__| |__| |______| |___| |______
{
unsigned char i;
DATA=1; SCK=0; //准备
for(i=0;i<9;i++) //DATA保持高,SCK时钟触发9次,发送启动传输,通迅即复位
{
SCK=1;
SCK=0;
}
s_transstart(); //启动传输
}
//软复位程序
char s_softreset(void)
// resets the sensor by a softreset
{
unsigned char e
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-05-17 16:07 电炉丝控制\
文件 128140 2017-05-17 14:16 电炉丝控制\Last Loaded pd.DBK
文件 130642 2017-05-17 16:07 电炉丝控制\pd.DSN
文件 1102 2017-05-17 16:07 电炉丝控制\pd.PWI
目录 0 2017-05-17 14:17 电炉丝控制\project\
文件 1187 2017-04-20 03:47 电炉丝控制\project\ADC0832.h
文件 6629 2017-04-14 23:28 电炉丝控制\project\DHT111.c
文件 280 2017-04-14 20:09 电炉丝控制\project\DHT111.h
文件 10757 2017-04-20 05:05 电炉丝控制\project\DHT111.LST
文件 10192 2017-04-20 05:05 电炉丝控制\project\DHT111.OBJ
文件 9732 2017-04-14 20:54 电炉丝控制\project\DS18B20.c
文件 218 2017-04-14 23:24 电炉丝控制\project\DS18B20.h
文件 17240 2017-04-20 05:05 电炉丝控制\project\DS18B20.LST
文件 5463 2017-04-20 05:05 电炉丝控制\project\DS18B20.OBJ
文件 77758 2012-10-07 10:08 电炉丝控制\project\Last Loaded SHT11.DBK
文件 4193 2017-05-17 14:07 电炉丝控制\project\lcd.c
文件 1170 2017-05-17 13:40 电炉丝控制\project\lcd.h
文件 7681 2017-05-17 14:07 电炉丝控制\project\lcd.LST
文件 8124 2017-05-17 14:07 电炉丝控制\project\lcd.OBJ
文件 42 2017-05-17 14:07 电炉丝控制\project\lcd.__i
文件 77758 2012-10-07 11:09 电炉丝控制\project\SHT11.DSN
文件 792 2012-10-07 15:57 电炉丝控制\project\SHT11.PWI
文件 20042 2017-05-17 14:14 电炉丝控制\project\SHT11TEST
文件 3118 2017-05-17 14:14 电炉丝控制\project\SHT11TEST.C
文件 11848 2017-05-17 14:14 电炉丝控制\project\SHT11TEST.hex
文件 62 2017-05-17 14:14 电炉丝控制\project\SHT11TEST.lnp
文件 6120 2017-05-17 14:14 电炉丝控制\project\SHT11TEST.LST
文件 18013 2017-05-17 14:14 电炉丝控制\project\SHT11TEST.M51
文件 10901 2017-05-17 14:14 电炉丝控制\project\SHT11TEST.OBJ
文件 17136 2017-05-17 14:14 电炉丝控制\project\SHT11TEST.plg
文件 74365 2017-05-17 14:17 电炉丝控制\project\SHT11TEST.uvgui.lifu
............此处省略8个文件信息
评论
共有 条评论