基于MSP430的智能温度检测系统设计
3. 1. 1 复位子程序
该程序的主要功能是负责DS18B20的复位, 以方便进行以后的操作。复位要求主CPU 将数据线下拉500微秒, 然后释放, DS18B20收到信号后等待16~ 60微秒左右, 后发出60 ~ 240微秒的存在低脉冲, 主CPU 收到此信号表示复位成功。
bit ResetDS18B20( )
{ unsigned char ;i
bit flag;
DS18B20= 0:
for( i= 0; i 200; i+ + ) ; / /保持低电平500微秒
DS18B20= 1:
for( i= O; i 30; i+ + ) ; / /等60微秒
flag= DS18B20; / /取DS18B20状态
for( i= 0; i 100; i+ + ) ; / /等300微秒
return flag; / / flag= 0复位成功, flag= 1, 复位不成功
}
3. 1. 2 写一个字节子程序:
CPU 将数据线从高电平拉至低电平, 产生写起始信号; 15 微秒之内, 将所写的位送到数据线上;DS18B20在之后15~ 60微秒接收位信息; 写下一个位之前要有1秒以上的高电平恢复; 将以上过程重复8次, 即完成一个字节的写操作。
vo idWRDS18B20( unsigned char data0)
{ unsigned char ,i ;j
for( j= 0; j 8; j+ + )
{
DS18B20= 0; / /高电平拉到低电平, 产生写起始信号
for( i= 0; i 1; i+ + ) ;
DS18B20 = da ta0 0x01; / /15微秒内写一位
for( i= 0; i 20; i+ + ) ; / /等60微秒, DS18B20完成采样
DS18B20= 1; / /高电平恢复
data0= data0> > 1; / /右移, 为下一位准备}
}
3. 1. 3 读一个字节子程序
CPU 将数据线从高电平拉到低电平1微秒以上, 再拉到高电平, 产生读起始信号; 15微秒之内,CPU 读一位; 读周期为60微秒, 读下一个位之前要有1微秒以上的高电平恢复; 将以上过程重复8次,即完成一个字节的读操作。
unsigned charRDDS18B20( )
{ unsigned char ,i ,j data0= 0;
bit temp;
for( j= 0; j 8; j+ + )
{ DS18B20= 0; / /高电平拉到低电平1微秒以上
for( i= 0; i ;l i+ + ) ;
DS18B20= 1; / /再拉到高电平, 产生读起始信号
for( i= 0; i 1; i+ + );
temp= DS18B20; / /15微秒之内读一位
for( i= 0; i 20; i+ + ); / /等60微秒
data0= dataO > > 1; / /为下一位准备
if( temp= = 1) data0= dataO |0x80;
else data0= data0 0x7;f
DS18B20= 1; / /高电平恢复
for( i= O; i 1; i+ + ); }
return data0; }
3. 2 上位机软件编程
系统采用MSCOMM 控件实现VC ++ 与单片机之间的数据交换, 具有程序实现简便、程序模块化、工作可靠等优点, 并能满足多数情况下的工控要求。
使用MSCOMM控件主要是通过事件来处理串行口的交互。控件的MSCOMM 事件负责捕获或处理这些通讯事件和通讯错误。
4 结束语
测温系统采用了集成度高、功耗低的MSP430F149 为核心微处理器, 通过传感器DS18B20实现对温度测量, 并进行存储和显示。实验表明: 当外界温度试验的范围设定在0℃ ~ 50℃ ,可确保测量误差不超过±0. 5℃ , 在试验板上显示温度精确到0. 0625℃, AD转换的时间是750ms, 传输的距离是40m。另外, 在该系统的基础上也可以扩展其他信号, 如湿度, 压力等。
参考文献:
[1].MSP430F149 datasheethttp://www.dzsc.com/datasheet/MSP430F149+_874114.html.
[2].DS18B20datasheethttp://www.dzsc.com/datasheet/DS18B20_8175.html.
[3].CAT24WC64datasheethttp://www.dzsc.com/datasheet/.html.
[4].ISD1420datasheethttp://www.dzsc.com/datasheet/ISD1420_409804.html.
[5].ROMdatasheethttp://www.dzsc.com/datasheet/ROM_1188413.html.
[6].MSP430datasheethttp://www.dzsc.com/datasheet/MSP430_490166.html.
[7].S6A0069 datasheethttp://www.dzsc.com/datasheet/S6A0069+_1.html.
[8].RS232datasheethttp://www.dzsc.com/datasheet/RS232_585128.html.
[9].TTLdatasheethttp://www.dzsc.com/datasheet/TTL_1174409.html.
[10].MAX232datasheethttp://www.dzsc.com/datasheet/MAX232_7.html.
评论