• 大小: 41KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-24
  • 语言: 其他
  • 标签:

资源简介

单片机 DS1621温度传感器实验仿真图和程序

资源截图

代码片段和文件信息

/***************   writer:shopping.w   ******************/
#include 
#include 
#define uint unsigned int
#define uchar unsigned char
bit I2C_Busy NO_AckBus_Faultpoint;

uchar bdata a;
sbit LSB = a^0;
sbit MSB = a^7;
sbit SDA = P3^3;
sbit SCL = P3^2;
uchar Array[] = {‘0‘‘1‘‘2‘‘3‘‘4‘‘5‘‘6‘‘7‘‘8‘‘9‘};
uchar command_data[]=
{
  0xac0x000xee0xa10x000x000xa20x000x000xaa
};
uchar Prompt[]=“Waiting for a while...\r“;
uchar i;
void DelayMS(uint ms)
{
  uchar i;
while(ms--)
{
  for(i=0;i<120;i++);
}
}

void SendStop()
{
  SDA = 0;
SCL = 1;
_nop_();
SDA = 1;
I2C_Busy = 0;
}

void SendByte(uchar wd)
{
  uchar i;
a = wd;
for(i=0;i<8;i++)
{
  SCL = 0;
_nop_();
_nop_();
SDA = MSB;
a <<= 1;
_nop_();
_nop_();
SCL = 1;
_nop_();
_nop_();
SCL = 0;
}
SDA = 1;
SCL = 1;
_nop_();
_nop_();

if(!SDA)
{
  SCL = 0;
_nop_();
_nop_();
}
else
{
  NO_Ack = 1;
SCL = 0;
_nop_();
_nop_();
}
}

void Master(uchar slave_addr)
{

  I2C_Busy = 1;
NO_Ack = 0;
Bus_Fault = 0;
if(!SCL || !SDA)
Bus_Fault = 1;
else
{
  SDA = 0;
_nop_();
_nop_();
SCL = 0;
_nop_();
_nop_();
SendByte(slave_addr);
}
}

uchar RecvByte(uchar cnt)
{
uchar ircv_data;
for(i=0;i<8;i++)
{
  SDA = 1;
SCL = 1;
_nop_();
LSB = SDA;
if(i<7)
a <<= 1;
_nop_();
SCL = 0;
_nop_();


if(cnt == 1)
SDA = 1;
else
SDA = 0;
SCL = 1;
_nop_();
SCL = 0;
SDA = 1;
_nop_();
rcv_data = a;
return rcv_data;
}

void SendData(uchar slave_addressuchar startuchar end)
{
  Master(slave_address);
for(i=start;i<=end;i++)
SendByte(command_data[i]);
SendStop();
}

void InitialiseSerialPort()
{
  TMOD = 0x20;
TH1  = 0xfd;
SCON = 0x50;
TR1  = 1;
}

void SendCharToSerialPort(uchar ch)
{
  SBUF = ch;
while(!TI);
TI = 0;
}

void SendTemperatureToSerialPort(uchar val)
{
  if(val>200)
{
  val = 255-val;
SendCharToSerialPort(‘-‘);
if(!point)
val+=1;
}
SendCharToSerialPort(Array[(val/10)/10]);
SendCharToSerialPort(Array[(val/10)%10]);
SendCharToSerialPort(Array[val%10]);
SendCharToSerialPort(‘.‘);
if(point)
SendCharToSerialPort(‘5‘);
else
SendCharToSerialPort(‘0‘);
SendCharToSerialPort(‘ ‘);
SendCharToSerialPort(‘C‘);
SendCharToSerialPort(‘\r‘);
}

void SetTemperatureLimit(uchar HIuchar LO)
{
command_data[4] = HI;
command_data[5] = 0;
command_data[7] = LO;
command_data[8] = 0;
SendData(0x9035);
DelayMS(10);
SendData(0x9068);
}

void StartConversion()
{
  SendData(0x9022);
DelayMS(750);
}

uchar ReadTemp()
{
  uchar d;
SendData(0x9099);
Master(0x91);
d = RecvByte(0);
point = RecvByte(1)>>7;
SendStop();
return d;
}

void WriteConfig(uchar c)
{
  command_data[1] = c;
SendData(0x9001);
}

void main()
{
  uchar i;
    InitialiseSerialPort();
wh

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      11115  2009-08-13 11:21  24 DS1621温度传感器实验\code\24

     文件       3222  2009-08-13 11:21  24 DS1621温度传感器实验\code\24.c

     文件       2021  2009-08-13 11:21  24 DS1621温度传感器实验\code\24.hex

     文件         36  2009-08-13 11:21  24 DS1621温度传感器实验\code\24.lnp

     文件       8760  2009-08-13 11:21  24 DS1621温度传感器实验\code\24.LST

     文件      15110  2009-08-13 11:21  24 DS1621温度传感器实验\code\24.M51

     文件      12892  2009-08-13 11:21  24 DS1621温度传感器实验\code\24.OBJ

     文件        980  2009-08-13 11:22  24 DS1621温度传感器实验\code\24.Opt

     文件        213  2009-08-13 13:27  24 DS1621温度传感器实验\code\24.plg

     文件       2134  2009-08-13 11:22  24 DS1621温度传感器实验\code\24.Uv2

     文件          0  2009-08-13 10:08  24 DS1621温度传感器实验\code\24_Uv2.Bak

     文件      34895  2009-03-11 20:41  24 DS1621温度传感器实验\DS1621温度传感器实验.DSN

     文件        819  2009-08-13 11:22  24 DS1621温度传感器实验\DS1621温度传感器实验.PWI

     文件      10119  2009-03-11 20:40  24 DS1621温度传感器实验\Keil C\DS1621温度传感器实验

     文件       2027  2009-03-11 20:40  24 DS1621温度传感器实验\Keil C\DS1621温度传感器实验.hex

     文件      34895  2009-02-08 00:52  24 DS1621温度传感器实验\Last Loaded DS1621温度传感器实验.DBK

     目录          0  2011-01-13 02:32  24 DS1621温度传感器实验\code

     目录          0  2011-01-13 02:32  24 DS1621温度传感器实验\Keil C

     目录          0  2011-01-13 02:32  24 DS1621温度传感器实验

----------- ---------  ---------- -----  ----

               139238                    19


评论

共有 条评论

相关资源