• 大小: 77KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: 其他
  • 标签: Proteus  串口通信  

资源简介

基于Proteus的温度传感器仿真,单片机是89C52系列的,可设置温度等参数,将数据通过串口发送到上位机。

资源截图

代码片段和文件信息

/***********************************************************************************
参考网址 http://www.sensirion.com.cn/download_sd.aspx
仿真调试 济宁职业技术学院 胡建波
***********************************************************************************/
#include  //Microcontroller specific library e.g. port definitions
#include  //Keil library (is used for _nop()_ operation)
#include  //Keil library
#include  //Keil library
typedef union
{ unsigned int i;
  float f;
} value;
//----------------------------------------------------------------------------------
// modul-var
//----------------------------------------------------------------------------------
enum {TEMPHUMI};
sbit DATA=P1^0;
sbit SCK=P1^1;
#define noACK 0
#define ACK 1

//adr command r/w
#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)
//----------------------------------------------------------------------------------
// writes a byte on the Sensibus and checks the acknowledge
{
unsigned char ierror=0;
for (i=0x80;i>0;i/=2) //shift bit for masking
{ if (i & value) DATA=1; //masking value with i  write to SENSI-BUS
else DATA=0;
SCK=1; //clk for SENSI-BUS
_nop_();_nop_();_nop_(); //pulswith approx. 5 us
SCK=0;
}
DATA=1; //release DATA-line
SCK=1; //clk #9 for ack
error=DATA; //check ack (DATA will be pulled down by SHT11)
SCK=0;

return error; //error=1 in case of no acknowledge
}

//----------------------------------------------------------------------------------
char s_read_byte(unsigned char ack)
//----------------------------------------------------------------------------------
// reads a byte form the Sensibus and gives an acknowledge in case of “ack=1“
{
unsigned char ival=0;
DATA=1; //release DATA-line
for (i=0x80;i>0;i/=2) //shift bit for masking
{ SCK=1; //clk for SENSI-BUS
if (DATA) val=(val | i); //read bit
SCK=0;
}
DATA=!ack; //in case of “ack==1“ pull down DATA-Line
SCK=1; //clk #9 for ack
_nop_();_nop_();_nop_(); //pulswith approx. 5 us
SCK=0;
DATA=1; //release DATA-line
return val;
}

//----------------------------------------------------------------------------------
void s_transstart(void)
//----------------------------------------------------------------------------------
// generates a transmission start
// _____ ________
// DATA: |_______|
// ___ ___
// SCK : ___| |___| |______
{
DATA=1; SCK=0; //Initial state
_nop_();
SCK=1;
_nop_();
DATA=0;
_nop_();
SCK=0;
_nop_();_nop_();_nop_();
SCK=1;
_nop_();
DATA=1;
_nop_();
SCK=0;
}

//----------------------------------------------------------------------------------
void s_connectionreset(void)
//------------------------------------------------

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-07-08 19:00  基于Proteus的温度传感器仿真\
     文件        8105  2020-07-07 18:18  基于Proteus的温度传感器仿真\Backup Of sht11_rs232.pdsbak
     文件       19199  2020-07-06 21:52  基于Proteus的温度传感器仿真\Last Loaded sht11_rs232.DBK
     文件        8104  2020-07-07 23:06  基于Proteus的温度传感器仿真\Last Loaded sht11_rs232.pdsbak
     文件       16449  2020-07-06 22:12  基于Proteus的温度传感器仿真\SHT11
     文件       14452  2020-07-06 22:12  基于Proteus的温度传感器仿真\SHT11.LST
     文件       18320  2020-07-06 22:12  基于Proteus的温度传感器仿真\SHT11.M51
     文件       14816  2020-07-06 22:12  基于Proteus的温度传感器仿真\SHT11.OBJ
     文件        1031  2020-07-06 22:12  基于Proteus的温度传感器仿真\SHT11.Opt
     文件        2129  2020-07-06 21:55  基于Proteus的温度传感器仿真\SHT11.Uv2
     文件        9692  2020-07-06 22:12  基于Proteus的温度传感器仿真\SHT11.c
     文件       12634  2020-07-06 22:12  基于Proteus的温度传感器仿真\SHT11.hex
     文件          42  2020-07-06 22:12  基于Proteus的温度传感器仿真\SHT11.lnp
     文件         503  2020-07-06 22:12  基于Proteus的温度传感器仿真\SHT11.plg
     文件        1031  2020-07-06 21:58  基于Proteus的温度传感器仿真\SHT11_Opt.Bak
     文件        1990  2020-07-06 21:52  基于Proteus的温度传感器仿真\SHT11_Uv2.Bak
     文件       19198  2020-07-06 21:52  基于Proteus的温度传感器仿真\sht11_rs232.DSN
     文件         795  2020-07-06 21:52  基于Proteus的温度传感器仿真\sht11_rs232.PWI
     文件       15459  2020-07-08 11:41  基于Proteus的温度传感器仿真\sht11_rs232.pdsprj
     文件        2198  2020-07-08 19:03  基于Proteus的温度传感器仿真\sht11_rs232.pdsprj.LAPTOP-MU7MFRH1.ASUS.workspace

评论

共有 条评论