




免费预览已结束,剩余40页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机课程设计:基于基于PIC16F877A单片机的八路温度巡回检测系统设计 课 程 设 计八路温度巡回检测系统设计 院 (系): XXXXXX学院 专 业: XXXXXX 学 号: XXXXXXX 学生姓名: XXX 指导老师: XXX 摘 要本文介绍了一种基于PIC16F877A单片机,利用DS18B20对多路温度采集,并进行温度的控制与检测,并通过12864液晶显示出来。系统中通过控制按钮实现了实时各路的报警温度,并且实现多路与任一单路温度显示切换,从而既可以进行多路的检测又可以进行任一单路的监控,而且还有数字跟图形两种显示方式更为直观。在温度超过设定温度时温度跟时间通过24C02存储起来,以便查看,同时可以通过固定电话远程报警,还能将温度上传至PC机,进行后续处理。关键词:温度检测;单片机;串行通讯;DS18B20;目 录1系统设计72主芯片:PIC16F877A单片机简介92.1 PIC单片机的优越之处:92.2 PIC16F877A引脚图及主要性能102.3 最小系统112.3.1复位功能112.3.2 系统时钟122.4 设计心得总结123LCD12864液晶原理介绍及接口实现123.1 液晶显示模块概述123.2 液晶引脚说明133.3 接口时序143.4 具体指令介绍153.5 显示坐标关系193.5.1、图形显示坐标193.5.2 汉字显示坐标203.6 与单片机的接口实现213.7设计心得总结224DS18B20原理介绍及接口实现224.1 DS18B20简介224.2DS18B20结构及其工作原理234.3DS18B20的接口实现294.3.1 硬件设计294.3.2 软件设计304.4设计心得总结314.4.1 焊接问题:314.4.2 软件设计:314.4.3 不足:315存储芯片AT24C02简单介绍及接口实现325.1AT24C02功能描述管脚定义325.2管脚定义及接口实现325.3设计心得346 实时时钟DS1302简单介绍及接口实现346.1 DS1302简介346.2 DS1302结构及工作原理346.3DS1302的接口实现357温度上限报警功能377.1 设计原理377.2 设计心得体会378与PC串口通讯及VB上位机简单介绍388.1 与PC串口通信388.2 上位机介绍399 总结43附录44 部分原理图:44 参考文献:45基于PIC单片机的多路温度监控巡回系统系统设计在工业生产和日常生活中,经常要对温度进行测量与控制,并且有时是对多个点进行温度测量,比如冷库温度监控、环境温度监测、农业温室监控、粮库温度监控等。在这种情况下,多点温度检测系统应运而生。多点温度检测系统通常能够对多个工作点的温度进行检测,显示当前温度,并能够对温度进行存储和报警,还能将温度上传至PC机,进行后续处理。传统的测温元件有热电偶和热电阻,需很多硬件支持并且电路复杂。本文将设计一款由新型的数字温度传感器DS18B20配合单片机,具有温度检测、显示、存储、自动统计分析及跟电脑通讯连接还利用固定电话远程报警等功能的多点温度监控系统。 图 1.1 多路温度监控系统模拟应用温度监控主系统构架框图如图 1.2 所示: 图 1.2 多路温度监控系统构架框图图1.3 手工焊接实物图主要技术参数A温度检测范围 : -55+125B测量精度 : 0.0625C 显示方式: LCD12864显示D 报警方式: 固话报警主芯片:PIC16F877A单片机简介2.1 PIC单片机的优越之处: 1 哈佛总线结构:MCS-51单片机的总线结构是冯-诺依曼型,计算机 在同一个存储空间取指令和数据,两者不能同时进行;而PIC单片机的总线结构是哈佛结构,指令和数据空间是完全分开的,一个用于指令,一个用于数据,由于 可以对程序和数据同时进行访问,所以提高了数据吞吐率。正因为在 PIC单片机中采用了哈佛双总线结构,所以与常见的微控制器不同的一点是:程序和数据总线可以采用不同的宽度。数据总线都是8位的,但指令总线位数分别位 12、14、16位。 2 流水线结构:MCS-51单片机的取指和执行采用单指令流水线结构,即取一条指令,执行完后再取下一条指令;而PIC的取指和执行采用双指令流水线结构,当一条指令被执行时,允许下一条指令同时被取出,这样就实现了单周期指令。 3 寄存器组:PIC单片机的所有寄存器,包括I/O口,定时器和程序计数器等都采用RAM结构形式,而且都只需要一个指令周期就可以完成访问和操作;而MCS-51单片机需要两个或两个以上的周期才能改变寄存器的内容。 (4)运行速度高:由于采用了哈佛总线结构,以及指令的读取和执行才用了流水作业方式,使得运行速度大大提高。 (5)功耗低:PIC单片机的功率消耗极低,是目前世界上最低的单片机品种之一。在4MHz时钟下工作时耗电不超过2mA,在睡眠模式下耗电可以低到1uA以下。 (6)驱动能力强:I/O端口驱动负载的能力较强,每个I/O引脚吸入和输出电流的最大值可分别达到25mA和20mA,能够直接驱动发光二极管LED、光电耦合器或者轻微继电器等。 (7)外接电路简洁PIC单片机片内集成了上电复位电路、I/O引脚上拉电路、看门狗定时器等,可以最大程度减少或免用外接器件,以便实现“纯单片机”应用。这样,不仅方便于开发,而且还可节省用户的电路空间和制作成本。 (8)程序保密性强目前,尚无办法对其直接进行解密拷贝,可以最大限度的保护用户的程序版权。2.2 PIC16F877A引脚图及主要性能PIC16F877A的详细引脚如图2.21所示。 图 2.2-1 PIC16F877A引脚图 图 2.2 -2 PIC16F877A实物图主要性能参数如下所示:具有高性能RISC CPU仅有35条单字指令100000次擦写周期除程序分支指令为两个周期外,其余均为单周期指令运行速度: DC20MHZ始终输入 DC200ns 指令周期8K * 14个 FLASH程序存储器368 * 8 个数据存储器(RAM)字节256 * 8 EEPRM 数据存储器字节提供14个中断源功耗低在5V, 4MHZ 时钟运行时电流小于 2mA在3V, 32KHZ 时钟运行时电流小于20Ua支持在线串行编程(ICSP)运行电压范围广,2.0V到5.5V输入及输出电流可达到25mATimer0:带有预分频器的8位定时器/计数器Timer1:带有预分频器的16位定时器/计数器,在使用外部晶振震荡时钟时,在睡眠期间仍能工作Timer2:带有8位周期寄存器,预分频器和后分频器的8位定时器/计数器。2个捕捉器,比较器,PWM模块其中: 捕捉器是16位,最大分辨率是12.5ns 比较器是16位,最大分辨率是200ns PWM最大分辨率是10位10位多通道模数转换器2.3 最小系统 2.3.1复位功能PIC16F877A的复位功能设计得比较完善,实现复位或引起复位的条件和原因可以归纳成4类:人工复位、上电复位、看门狗复位、欠压复位。这里简单介绍一下人工复位人工复位:无论是单片机在正常运行程序,还是处在睡眠状态或出现死机状态,只要在人工复位端MCLR加入低点平信号,就令其复位。本次设计的电路图如图2.31所示。 图 2.31 PIC最小系统电路图 图2.32 最小系统实物图 2.3.2 系统时钟 数字电路的工作离不开时钟信号,每一步细微动作都是在一个共同的时间基准信号协调下完成的。作为时基发生器的时钟震荡电路,为整个单片机芯片的工作提供系统时钟信号,也为单片机与其他外接芯片之间的通讯提供可靠的同步时钟信号。PIC16F877A的时钟电路是由片内的一个反相器和一个反馈电阻,与外接的1个石英晶体和2个电容,共同构成的一个自激多谐振荡器。电路如图2.31 所示。2.4 设计心得总结 PIC16F877A的最小系统跟51相似,较为简单。芯片自身增加了很多功能,如:自带8路AD转换、增加SPI总线,引脚复位功能多等。芯片自身功能的增加给设计带来了很多灵活性,同时也是学习的难点。LCD12864液晶原理介绍及接口实现3.1 液晶显示模块概述12864A-1汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。主要技术参数和显示特性:电源:VDD 3.3V+5V 内置升压电路,无需负压 ;显示内容:128列 64行显示颜色:黄绿显示角度:6:00钟直视LCD类型:STN与MCU接口:8位或4位并行/3位串行配置LED背光多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等3.2 液晶引脚说明引脚号引脚名称方向功能说明1VSS-模块的电源地2VDD-模块的电源正端3V0-LCD驱动电压输入端4RS CS H/L并行的指令/数据选择信号;串行的片选信号5R/W SID H/L并行的读写选择信号;串行的数据口6E CLK H/L并行的使能信号;串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并/串行接口选择:H-并行;L-串行16NC空脚17/RETH/L复位 低电平有效18NC空脚19LED_A-背光源正极(LED+5V)20LED_K-背光源负极(LED-OV)逻辑工作电压 VDD :4.55.5V电源地 GND :0V工作温度 Ta :060 常温 / -2075(宽温)3.3 接口时序模块有并行和串行两种连接方法,本文采用并行接法(时序如下):8位并行连接时序图MPU写资料到模块程序实现如下:/* 名 称:send_i * 功 能:写一个字节命令到LCD* 入口参数:unsigned char x 字符*/void send_i unsigned char x chk_busy ; /检测LCD是否工作繁忙rs 0; /设置该字节数据为控制命令rw 0; /设置此次操作为写PORTD x; /送数据口PORTDe 1; /使能nop ;nop ;nop ;e 0; /禁止 MPU从模块读出资料程序实现如下:/* 读数据*/unsigned char u8_Lcd12864ReadByte_f void unsigned char byReturnValue ; chk_busy ; /检测LCD是否工作繁忙TRISD 0XFF; /设置PD口为输入状态 PORTD 0xff ; /PD初始化为高电平 rs 1; / 读置高 rw 1; / 写置高 e 0; / 使能置低 e 1; / 使能置高 byReturnValue PORTD ; / 读数据 e 0; / 关使能TRISD 0X00; / 恢复PD口为输出 return byReturnValue ; / 返回读到的数据 3.4 具体指令介绍1、清除显示CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLLLLLLH功能:清除显示屏幕,把DDRAM位址计数器调整为“00H”2、位址归位CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLLLLLHX功能:把DDRAM位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM3、位址归位CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLLLLHI/DS功能:把DDRAM位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM功能:执行该命令后,所设置的行将显示在屏幕的第一行。显示起始行是由Z地址计数器控制的,该命令自动将A0-A5位地址送入Z地址计数器,起始地址可以是0-63范围内任意一行。Z地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。4、显示状态 开/关CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLLLHDC B 功能: D 1;整体显示ON C 1;游标ON B 1;游标位置ON5、游标或显示移位控制CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLLHS/CR/LX X 功能:设定游标的移动与显示的移位控制位:这个指令并不改变DDRAM的内容6、功能设定CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLHDLX0 REX X 功能:DL 1(必须设为1) RE 1;扩充指令集动作 RE 0:基本指令集动作7、设定CGRAM位址CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLHAC5AC4AC3AC2AC1 AC0功能:设定CGRAM位址到位址计数器(AC)8、设定DDRAM位址CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLHAC6AC5AC4AC3AC2AC1 AC0 功能:设定DDRAM位址到位址计数器(AC)9、读取忙碌状态(BF)和位址CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LHBFAC6AC5AC4AC3AC2AC1 AC0 功能:读取忙碌状态(BF)可以确认内部动作是否完成,同时可以读出位址计数器(AC)的值10、写资料到RAMCODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0HLD7D6D5D4D3D2D1 D0 功能:写入资料到内部的RAM(DDRAM/CGRAM/TRAM/GDRAM)11、读出RAM的值CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0HHD7D6D5D4D3D2D1 D0 功能:从内部RAM读取资料(DDRAM/CGRAM/TRAM/GDRAM)12、待命模式(12H)CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLLLLLL H 功能:进入待命模式,执行其他命令都可终止待命模式13、卷动位址或IRAM位址选择(13H)CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLLLLLH SR 功能:SR 1;允许输入卷动位址 SR 0;允许输入IRAM位址 14、反白选择(14H)CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLLLLHR1 R0功能:选择4行中的任一行作反白显示,并可决定反白的与否15、睡眠模式(015H)CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLLLHSLX X功能:SL 1;脱离睡眠模式 SL 0;进入睡眠模式16、扩充功能设定(016H)CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLLHHX1 REG L 功能:RE 1;扩充指令集动作 RE 0;基本指令集动作 G 1;绘图显示ON G 0;绘图显示OFF17、设定IRAM位址或卷动位址(017H)CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLLHAC5AC4AC3AC2AC1 AC0 功能:SR 1;AC5AC0为垂直卷动位址 SR 0;AC3AC0写ICONRAM位址18、设定绘图RAM位址(018H)CODE: RW RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0LLHAC6AC5AC4AC3AC2AC1 AC0 功能:设定GDRAM位址到位址计数器(AC)备注、1、当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取BF标志时BF需为0,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的个别指令说明。2、“RE”为基本指令集与扩充指令集的选择控制位元,当变更“RE”位元后,往后的指令集将维持在最后的状态,除非再次变更“RE”位元,否则使用相同指令集时,不需每次重设“RE”位元。本次设计液晶初始化如下:void lcd_init rst 0; /复位LCDdelay 1 ; /保证复位所需要的时间(1ms)rst 1; /恢复LCD正常工作/nop ;/psb 1; /设置LCD为8位并口通信send_i 0x30 ; /基本指令操作send_i 0x01 ; /清除显示send_i 0x06 ; /指定在写入或读取时,光标的移动方向send_i 0x0c ; /开显示,关光标,不闪烁 3.5 显示坐标关系3.5.1、图形显示坐标水平方向X以字节单位 垂直方向Y以位为单位/*函数名称:Draw_PM功 能:在整个液晶屏幕上画图参 数:无返回值 :无*/void Draw_PM const uchar *ptr uchar i,j,k;send_i 0x34 ; /打开扩展指令集i 0x80; for j 0;j 32;j+ send_i i+ ; send_i 0x80 ; for k 0;k 16;k+ send_d *ptr+ ; i 0x80; for j 0;j 32;j+ send_i i+ ; send_i 0x88 ; for k 0;k 16;k+ send_d *ptr+ ; send_i 0x36 ; /打开绘图显示send_i 0x30 ; /回到基本指令集 3.5.2 汉字显示坐标 X坐标Line180H81H82H83H84H85H86H87HLine290H91H92H93H94H95H96H97HLine388H89H8AH8BH8CH8DH8EH8FHLine498H99H9AH9BH9CH9DH9EH9FH/* 名 称: writelcd()* 功 能: 在LCD上显示字符串* 入口参数:const unsigned char *pt 字符串的首地址*/void writelcd const unsigned char *pt while *pt /检测是否达到了字符串最后 send_d *pt+ ; /发送数据给lcd / 应用如下const uchar table1 基PIC 单片机 ;const uchar table2 多路温度 ; const uchar table3 巡回检测系统 ; const uchar table4 2009年12月01日 ;send_i 0x80 ; / 定位在第一行writelcd table1 ; / 写:基PIC 单片机send_i 0x90 ; / 定位在第二行writelcd table2 ; / 写:多路温度send_i 0x88 ; / 定位在第三行writelcd table3 ; / 写:巡回检测系统send_i 0x98 ; / 定位在第四行writelcd table4 ; / 写:2009年12月01日3.6 与单片机的接口实现12864液晶的电路连线图如图3.6 -1所示,实物位置如图3.6 -2所示 图 3.6 -1 12864液晶电路连接图 图 3.6 -2 12864液晶模块实物图设计心得总结LCD12864与1602相比需要较大的电流驱动,如果出现图片模糊不清晰或者灰暗,除了检查背光灯外应考虑电源问题。最好采用大于5V的电源,经7805稳压管稳压驱动,以保证电流。基本驱动跟1602相似难度不大。中文及图像显示是12864最大的特点也是难点,主要是指令较多,还有就是图像驱动需要了解液晶内部原理。整屏画图可以使用PCtoLCD2002把图片转换成16进制数,局部画曲线、直线、圆等需要一些算法,比较复杂DS18B20原理介绍及接口实现DS18B20是DALLAS公司的图4.1DS18B20内部结构图DS18B20的内部结构图如图4.1所示。由此我们可以看出DS18B20主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如图所示,DQ为数字信号输入输出端;GND为电源地;VDD为外接供电电源输入端在寄生电源接线方式时接地图4.3 DS18B20复位时序图程序实现如下:/* 名 称:reset * 功 能:18b20复位*/#define DQ RB7#define DQ_HIGH TRISB7 1#define DQ_LOW TRISB7 0;DQ 0void reset uchar st 1;DQ_HIGH ; / 先拉至高电平NOP ;NOP ;while st DQ_LOW ; / 低电平delayus 70,30 ; / 延时503usDQ_HIGH ; /释放总线等电阻拉高总线delayus 4,4 ; /延时60usif DQ 1 /没有接收到应答信号,继续复位st 1;else /接收到应答信号st 0;delayus 50,10 ; /延时430us DS18B20的读时序:对于DS18B20的读时序分为读0时序和读1时序两个过程。 对于DS18B20的读时隙是从主机把单总线拉低之后,在15uS之内释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。图4.4 DS18B20读时序图/* 名 称:read_byte * 功 能:18b20读字节* 出口参数:读出18B20的内容*/uch read_byte uch i;uch value 0; /读出温度static bit j;for i 8;i 0;i- value 1;DQ_LOW ;NOP ;NOP ;NOP ;NOP ;NOP ;NOP ; /6usDQ_HIGH ; /拉至高电平NOP ;NOP ;NOP ;NOP ;NOP ; /4usj DQ;if j value | 0x80;delay 2, 7 ; /63us return value ; DS18B20的写时序:对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。 对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。 图4.5 DS18B20写时序图/* 名 称:write_byte * 功 能:写18b20写字节* 入口参数:uch val 待写的数据*/void write_byte uch val uch i;uch temp;for i 8;i 0;i- temp val & 0x01; /最低位移出DQ_LOW ;NOP ;NOP ;NOP ;NOP ;NOP ;/从高拉至低电平,产生写时间隙if temp 1 DQ_HIGH ; /如果写1,拉高电平delay 2, 7 ; /延时63usDQ_HIGH ;NOP ;NOP ;val val 1; /右移一位 DS18B20内部带有共9个字节的高速暂存器RAM和电可擦除EEPROM,起结构如表2所示。表2 DS18B20高速暂存器结构寄存器内容字节地址温度值低位(LSB)0温度值高位(MSB)1高温限值(TH)2低温限值(TL)3配置寄存器4保留5保留6保留7CRC校验值8DS18B20所包含的操作指令如表3所示。表3 DS18B20操作指令ROM操作指令指令约定代码功能读ROM33H读DS18B20温度传感器ROM中的编码(即64位地址)匹配ROM55H发出命令后接着发出64位ROM编码,访问总线上与该编码对应的芯片搜索ROMF0H用于确定挂接在同一总线上DS18B20的个数跳过ROMCCH忽略64位ROM地址,直接向DS18B20发温度变换命令告警搜索ECH执行后只有问多超过上限或下限的芯片才响应RAM操作指令指令约定代码功能温度转换44H启动DS18B20温度转换。12位转换时长典型值750ms读暂存器BEH读内部RAM中9字节的数据。写暂存器4EH向RAM第2、3字节写上、下限温度数据,紧跟命令之后传送2字节数据复制暂存器48H将RAM中第2、3字节的内容复制到内部EEPROM中重调EEPROMB8H将EEPROM中内容恢复到RAM中第3、4字节温度数据在高速暂存器RAM的第0和第1个字节中的存储格式如下表4所示。表4 DS18B20温度数据存储格式位7位6位5位4位3位2位1位0232221202-12-22-32-4位15位14位13位12位11位10位9位8SSSSS262524DS18B20在出厂是默认配置为12位,其中最高位为符号位,即温度值共11位,单片机在读取数据时,一次会读2字节共16位,读完后将低11位的二进制数转化为十进制数后再乘以0.0625便为所测的实际温度值。另外,还需要判断温度的正负。前5个数字为符号位,这5位同时变化,我们只需要判断11位就可以了。前5位为1时,读取的温度为负值,且测到的数值需要取反加1再乘以0.0625才可得到实际温度值。前5位为0时,读取的温度为正值,且温度为正值时,只要将测得的数值乘以0.0625即可得到实际温度值。考虑到实际使用的需要,在这里我们只使用一个DS18B20,故每次操作前只需复位后发出Skip ROM指令(即跳过ROM指令)再读出温度的正值、并精确到小数点后一位,即可满足设计需求。/* 名 称:get_temp * 功 能:启动温度转换*/void get_tem uchar tem1,tem2,num;float aaa;reset ; /复位write_byte 0xCC ; /跳过ROMwrite_byte 0x44 ; /温度转换for num 100;num 0;num- /确保温度转换完成所需要的时间reset ; /再次复位,等待从机应答write_byte 0xCC ; /忽略ROM匹配write_byte 0xBE ; /发送读温度命令tem1 read_byte ; /读出温度低8tem2 read_byte ; /读出温度高8位shu tem2 4|tem1 4 ; /温度整数部分aaa tem2*256+tem1 *6.25; /温度小数部分temper int aaa; /强制转换成整型a1 temper/1000; /取温度十位a2 temper%1000/100; /取个位a3 temper%100/10; /小数点后个位a4 temper%10; /小数点后十位 DS18B20的接口实现4.3.1 硬件设计DS18B20在本次设计中接线图如图4.6 所示,实验板硬件图如图4.7所示这次实验只焊了两个温度传感器而已,其他两个用法一样,留作外接口,可以方便外用。 图4.6 DS18B20原理图 图4.7 DSB18B20硬件连接实物图4.3.2 软件设计根据DS18B20约定的通讯协议,每次使用DS18B20之前都必须经过三个步骤,即先复位DS18B20,接着发出ROM操作指令,然后才可以发出RAM操作指令以进行温度转换等命令。本系统将实现读出DS18B20的温度并实时显示到LCD12864上,分辨率为0.0625。由于DS18B20对时序要求很严格,所以在程序设计时,时序要多加注意一点,不过数字不是死的,只要控制合理控制也不是扫描大问题。 DS18B20首次初始化时开启温度转换,之后每1s进行一次DS18B20的温度读取和转换,具体实现效果图如图4.8 流程图如图4.9所示 图 4.8温度采集效果实物图图4.9 DS18B20读取温度流程图设计心得总结4.4.1 焊接问题:焊接DS18B20时,速度要快,如果高温的电烙铁持续接触传感器很容易烧掉DS18B20,因为电烙铁一般温度为350 450度,而传感器承受温度为125度。我曾经因此烧坏了两个传感器,得此痛训!4.4.2 软件设计:DS18B20时序要求较为严格,这里的严格不是说一定要按手册的时间一摸一样而是说相对其他芯片来说严格了一点。如果读取不到温度应该检查一下时序时间设计问题。再有一个难点就是温度转换问题。温度能显示到小数点后4位,如果要将温度全部读出,应该将整数部分乘以10000再加上小数部分,化浮点数为整数,当然也可以直接采用浮点数相乘。开机会出现85C那是18B20复位值4.4.3 不足:此次设计没有处理温度负数情况,如果要处理应该判断最高位符号位,然后取反加一。18B20可单总线挂多个,这里IO口有剩再加上为了程序设计简单采用了并口方式。存储芯片AT24C02简单介绍及接口实现AT24C02功能描述AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IC总线接口进行操作,有一个专门的写保护功能。AT24C02支持IC,总线数据传送协议IC,总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上。 SCL 串行时钟 AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。 SDA 串行数据/地址 AT24C02 双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(wire-OR)。 A0、A1、A2 器件地址输入端 这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。当使用AT24C02 时最大可级联8个器件。如果只有一个AT24C02被总线寻址,这三个地址输入脚(A0、A1、A2 )可悬空或连接到Vss,如果只有一个AT24C02被总线寻址这三个地址输入脚(A0、A1、A2 )必须连接到Vss。 WP 写保护 如果WP管脚连接到Vcc,所有的内容都被写保护只能读。当WP管脚连接到Vss 或悬空允许器件进行正常的读/写操作设计心得 A0、A1、A2 器件地址输入端实时时钟DS1302简单介绍及接口实现DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。DS1302 的控制字如图2所示。控制字节的最高有效位 位7 必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位 位0 如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 数据输入输出 I/O ,在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 DS1302一共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见图6.3DS1302日历、时间寄存器此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH 写 、FFH 读
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国家事业单位招聘2025农业农村部国际交流服务中心招聘拟聘用人员笔试历年参考题库附带答案详解
- 国家事业单位招聘2025中国人民大学校医院招聘2人笔试历年参考题库附带答案详解
- 北京市2025中国国土勘测规划院招聘应届博士毕业生6人笔试历年参考题库附带答案详解
- 上海市2025第二季度上海文化广场招聘3人笔试历年参考题库附带答案详解
- 2025贵州镇远县佰利供销再生资源回收有限责任公司招聘2人笔试参考题库附带答案详解
- 2025福建泉州文旅集团招聘61人笔试参考题库附带答案详解
- 2025渭南合阳县煤炭事务中心招聘(12人)笔试参考题库附带答案详解
- 2025浙江余姚市舜源供应链服务有限公司招聘12人笔试参考题库附带答案详解
- 2025江西锦苑司法鉴定中心招聘专职管理人员1人笔试参考题库附带答案详解
- 2025新疆机场(集团)有限责任公司下辖机场第一季度招聘(15人)笔试参考题库附带答案详解
- 项目经理职业生涯规划
- 2023年广东生物高考第18题光合作用说题课件
- 除锈剂MSDS参考资料
- 6社会体育导论
- 部编版七年级历史与社会下册《第三课中华文明探源》评课稿
- 中考英语作文预测(范文20篇)
- 选煤厂原煤分级筛技术操作规程
- 方物电子教室q2用户手册
- 消防管道支架工程量计算表
- GB/T 700-2006碳素结构钢
- 腹腔镜下肾癌根治术
评论
0/150
提交评论