2022年单片机中使用DSB温度传感器C语言程序 .pdf
《2022年单片机中使用DSB温度传感器C语言程序 .pdf》由会员分享,可在线阅读,更多相关《2022年单片机中使用DSB温度传感器C语言程序 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机中使用DS18B20温度传感器C 语言程序(参考1)/* DS18B20 测温程序硬件: AT89S52 (1)单线 ds18b20接 P2.2 (2)七段数码管接P0 口(3)使用外部电源给ds18b20 供电,没有使用寄生电源软件: Kei uVision 3 */ #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit ds=P22; sbit dula=P26; sbit wela=P27; uchar flag ; uint temp; /参数
2、temp 一定要声明为int 型uchar code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d, 0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71; /不带小数点数字编码uchar code table1=0 xbf,0 x86,0 xdb,0 xcf,0 xe6,0 xed,0 xfd, 0 x87,0 xff,0 xef; /带小数点数字编码/*延时函数 */ void TempDelay (uchar us) while(us-); void delay(uint count)
3、 /延时子函数 uint i; while(count) i=200; while(i0) i-; count-; /*串口初始化,波特率9600 ,方式 1 */ void init_com() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - TMOD=0 x20; /设置定时器1 为模式 2 TH1=0 xfd; /装初值设定波特率TL1=0 xfd; TR1=1; /启动定时器SM0=0; /串口通信模式设置SM1=1;
4、/ REN=1; /串口允许接收数据PCON=0; /波特率不倍频/ SMOD=0; /波特率不倍频/ EA=1; /开总中断/ES=1; /开串行中断 /*数码管的显示*/ void display(uint temp) uchar bai,shi,ge; bai=temp/100; shi=temp%100/10; ge=temp%100%10; dula=0; P0=tablebai; /显示百位dula=1; /从 0 到 1,有个上升沿,解除锁存,显示相应段dula=0; /从 1 到 0 再次锁存wela=0; P0=0 xfe; wela=1; wela=0; delay(1);
5、 /延时约 2ms P0=table1shi; /显示十位dula=1; dula=0; P0=0 xfd; wela=1; wela=0; delay(1); P0=tablege; /显示个位dula=1; dula=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - P0=0 xfb; wela=1; wela=0; delay(1); /* 时序:初始化时序、读时序、写时序。所有时序都是将主机(单片机 )作为主设备,单
6、总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。初始化时序:复位脉冲存在脉冲读; 1 或 0 时序写; 1 或 0 时序只有存在脉冲信号是从18b20 (从机)发出的,其它信号都是由主机发出的。存在脉冲:让主机(总线)知道从机(18b20 )已经做好了准备。*/ /*- 初始化:检测总线控制器发出的复位脉冲和 ds18b20 的任何通讯都要从初始化开始初始化序列包括一个由总线控制器发出的复位脉冲和跟在其后由从机发出的存在脉冲。初始化:复位脉冲+存在脉冲具体操作:总线
7、控制器发出(TX)一个复位脉冲(一个最少保持480s 的低电平信号),然后释放总线,进入接收状态(RX )。单线总线由5K 上拉电阻拉到高电平。探测到I/O 引脚上的上升沿后DS1820 等待 1560s ,然后发出存在脉冲(一个60240s 的低电平信号)。具体看 18b20 单线复位脉冲时序和1-wire presence detect 的时序图-*/ void ds_reset(void) ds=1; _nop_(); /1us ds=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年单片机中使用DSB温度传感器C语言程序 2022 单片机 使用 DSB 温度传感器 语言 程序
限制150内