毕业设计-基于pic16f877a单片机的八路温度巡回检测系统设计_第1页
毕业设计-基于pic16f877a单片机的八路温度巡回检测系统设计_第2页
毕业设计-基于pic16f877a单片机的八路温度巡回检测系统设计_第3页
毕业设计-基于pic16f877a单片机的八路温度巡回检测系统设计_第4页
毕业设计-基于pic16f877a单片机的八路温度巡回检测系统设计_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计八路温度巡回检测系统设计院(系)XXXXXX学院专业XXXXXX学号XXXXXXX学生姓名XXX指导老师XXX摘要本文介绍了一种基于PIC16F877A单片机,利用DS18B20对多路温度采集,并进行温度的控制与检测,并通过12864液晶显示出来。系统中通过控制按钮实现了实时各路的报警温度,并且实现多路与任一单路温度显示切换,从而既可以进行多路的检测又可以进行任一单路的监控,而且还有数字跟图形两种显示方式更为直观。在温度超过设定温度时温度跟时间通过24C02存储起来,以便查看,同时可以通过固定电话远程报警,还能将温度上传至PC机,进行后续处理。关键词温度检测;单片机;串行通讯;DS18B20目录1系统设计72主芯片PIC16F877A单片机简介921PIC单片机的优越之处922PIC16F877A引脚图及主要性能1023最小系统11231复位功能11232系统时钟1224设计心得总结123LCD12864液晶原理介绍及接口实现1231液晶显示模块概述1232液晶引脚说明1333接口时序1434具体指令介绍1535显示坐标关系19351、图形显示坐标19352汉字显示坐标2036与单片机的接口实现2137设计心得总结224DS18B20原理介绍及接口实现2241DS18B20简介2242DS18B20结构及其工作原理2343DS18B20的接口实现29431硬件设计29432软件设计3044设计心得总结31441焊接问题31442软件设计31443不足315存储芯片AT24C02简单介绍及接口实现3251AT24C02功能描述管脚定义3252管脚定义及接口实现3253设计心得346实时时钟DS1302简单介绍及接口实现3461DS1302简介3462DS1302结构及工作原理3463DS1302的接口实现357温度上限报警功能3771设计原理3772设计心得体会378与PC串口通讯及VB上位机简单介绍3881与PC串口通信3882上位机介绍399总结43附录44部分原理图44参考文献45基于PIC单片机的多路温度监控巡回系统1系统设计在工业生产和日常生活中,经常要对温度进行测量与控制,并且有时是对多个点进行温度测量,比如冷库温度监控、环境温度监测、农业温室监控、粮库温度监控等。在这种情况下,多点温度检测系统应运而生。多点温度检测系统通常能够对多个工作点的温度进行检测,显示当前温度,并能够对温度进行存储和报警,还能将温度上传至PC机,进行后续处理。传统的测温元件有热电偶和热电阻,需很多硬件支持并且电路复杂。本文将设计一款由新型的数字温度传感器DS18B20配合单片机,具有温度检测、显示、存储、自动统计分析及跟电脑通讯连接还利用固定电话远程报警等功能的多点温度监控系统。多路温度监控系统30PC机通讯4温度传感器固话报警图11多路温度监控系统模拟应用温度监控主系统构架框图如图12所示PIC16F877A单片机12864液晶显示实时时钟上限报警接口按键控制PC机通讯AT24C02温度储存四路温度采集图12多路温度监控系统构架框图图13手工焊接实物图主要技术参数A温度检测范围55125B测量精度00625C显示方式LCD12864显示D报警方式固话报警2主芯片PIC16F877A单片机简介21PIC单片机的优越之处1哈佛总线结构MCS51单片机的总线结构是冯诺依曼型,计算机在同一个存储空间取指令和数据,两者不能同时进行而PIC单片机的总线结构是哈佛结构,指令和数据空间是完全分开的,一个用于指令,一个用于数据,由于可以对程序和数据同时进行访问,所以提高了数据吞吐率。正因为在PIC单片机中采用了哈佛双总线结构,所以与常见的微控制器不同的一点是程序和数据总线可以采用不同的宽度。数据总线都是8位的,但指令总线位数分别位12、14、16位。2流水线结构MCS51单片机的取指和执行采用单指令流水线结构,即取一条指令,执行完后再取下一条指令而PIC的取指和执行采用双指令流水线结构,当一条指令被执行时,允许下一条指令同时被取出,这样就实现了单周期指令。3寄存器组PIC单片机的所有寄存器,包括I/O口,定时器和程序计数器等都采用RAM结构形式,而且都只需要一个指令周期就可以完成访问和操作而MCS51单片机需要两个或两个以上的周期才能改变寄存器的内容。(4)运行速度高由于采用了哈佛总线结构,以及指令的读取和执行才用了流水作业方式,使得运行速度大大提高。(5)功耗低PIC单片机的功率消耗极低,是目前世界上最低的单片机品种之一。在4MHZ时钟下工作时耗电不超过2MA,在睡眠模式下耗电可以低到1UA以下。(6)驱动能力强I/O端口驱动负载的能力较强,每个I/O引脚吸入和输出电流的最大值可分别达到25MA和20MA,能够直接驱动发光二极管LED、光电耦合器或者轻微继电器等。(7)外接电路简洁PIC单片机片内集成了上电复位电路、I/O引脚上拉电路、看门狗定时器等,可以最大程度减少或免用外接器件,以便实现“纯单片机”应用。这样,不仅方便于开发,而且还可节省用户的电路空间和制作成本。(8)程序保密性强目前,尚无办法对其直接进行解密拷贝,可以最大限度的保护用户的程序版权。22PIC16F877A引脚图及主要性能PIC16F877A的详细引脚如图221所示。图221PIC16F877A引脚图图222PIC16F877A实物图主要性能参数如下所示具有高性能RISCCPU仅有35条单字指令100000次擦写周期除程序分支指令为两个周期外,其余均为单周期指令运行速度DC20MHZ始终输入DC200NS指令周期8K14个FLASH程序存储器3688个数据存储器(RAM)字节2568EEPRM数据存储器字节提供14个中断源功耗低在5V,4MHZ时钟运行时电流小于2MA在3V,32KHZ时钟运行时电流小于20UA支持在线串行编程(ICSP)运行电压范围广,20V到55V输入及输出电流可达到25MATIMER0带有预分频器的8位定时器/计数器TIMER1带有预分频器的16位定时器/计数器,在使用外部晶振震荡时钟时,在睡眠期间仍能工作TIMER2带有8位周期寄存器,预分频器和后分频器的8位定时器/计数器。2个捕捉器,比较器,PWM模块其中捕捉器是16位,最大分辨率是125NS比较器是16位,最大分辨率是200NSPWM最大分辨率是10位10位多通道模数转换器23最小系统231复位功能PIC16F877A的复位功能设计得比较完善,实现复位或引起复位的条件和原因可以归纳成4类人工复位、上电复位、看门狗复位、欠压复位。这里简单介绍一下人工复位人工复位无论是单片机在正常运行程序,还是处在睡眠状态或出现死机状态,只要在人工复位端MCLR加入低点平信号,就令其复位。本次设计的电路图如图231所示。图231PIC最小系统电路图图232最小系统实物图232系统时钟数字电路的工作离不开时钟信号,每一步细微动作都是在一个共同的时间基准信号协调下完成的。作为时基发生器的时钟震荡电路,为整个单片机芯片的工作提供系统时钟信号,也为单片机与其他外接芯片之间的通讯提供可靠的同步时钟信号。PIC16F877A的时钟电路是由片内的一个反相器和一个反馈电阻,与外接的1个石英晶体和2个电容,共同构成的一个自激多谐振荡器。电路如图231所示。24设计心得总结PIC16F877A的最小系统跟51相似,较为简单。芯片自身增加了很多功能,如自带8路AD转换、增加SPI总线,引脚复位功能多等。芯片自身功能的增加给设计带来了很多灵活性,同时也是学习的难点。3LCD12864液晶原理介绍及接口实现31液晶显示模块概述12864A1汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。主要技术参数和显示特性电源VDD33V5V内置升压电路,无需负压;显示内容128列64行显示颜色黄绿显示角度600钟直视LCD类型STN与MCU接口8位或4位并行/3位串行配置LED背光多种软件功能光标显示、画面移位、自定义字符、睡眠模式等32液晶引脚说明引脚号引脚名称方向功能说明1VSS模块的电源地2VDD模块的电源正端3V0LCD驱动电压输入端4RSCSH/L并行的指令/数据选择信号;串行的片选信号5R/WSIDH/L并行的读写选择信号;串行的数据口6ECLKH/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背光源正极(LED5V)20LED_K背光源负极(LEDOV)逻辑工作电压VDD4555V电源地GND0V工作温度TA060常温/2075(宽温)33接口时序模块有并行和串行两种连接方法,本文采用并行接法(时序如下)8位并行连接时序图MPU写资料到模块程序实现如下/名称SEND_I功能写一个字节命令到LCD入口参数UNSIGNEDCHARX字符/VOIDSEND_IUNSIGNEDCHARXCHK_BUSY/检测LCD是否工作繁忙RS0/设置该字节数据为控制命令RW0/设置此次操作为写PORTDX/送数据口PORTDE1/使能NOPNOPNOPE0/禁止MPU从模块读出资料程序实现如下/读数据/UNSIGNEDCHARU8_LCD12864READBYTE_FVOIDUNSIGNEDCHARBYRETURNVALUECHK_BUSY/检测LCD是否工作繁忙TRISD0XFF/设置PD口为输入状态PORTD0XFF/PD初始化为高电平RS1/读置高RW1/写置高E0/使能置低E1/使能置高BYRETURNVALUEPORTD/读数据E0/关使能TRISD0X00/恢复PD口为输出RETURNBYRETURNVALUE/返回读到的数据34具体指令介绍1、清除显示CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLLH功能清除显示屏幕,把DDRAM位址计数器调整为“00H”2、位址归位CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLHX功能把DDRAM位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM3、位址归位CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLHI/DS功能把DDRAM位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM功能执行该命令后,所设置的行将显示在屏幕的第一行。显示起始行是由Z地址计数器控制的,该命令自动将A0A5位地址送入Z地址计数器,起始地址可以是063范围内任意一行。Z地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。4、显示状态开/关CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLHDCB功能D1;整体显示ONC1;游标ONB1;游标位置ON5、游标或显示移位控制CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLHS/CR/LXX功能设定游标的移动与显示的移位控制位这个指令并不改变DDRAM的内容6、功能设定CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLHDLX0REXX功能DL1(必须设为1)RE1;扩充指令集动作RE0基本指令集动作7、设定CGRAM位址CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLHAC5AC4AC3AC2AC1AC0功能设定CGRAM位址到位址计数器(AC)8、设定DDRAM位址CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLHAC6AC5AC4AC3AC2AC1AC0功能设定DDRAM位址到位址计数器(AC)9、读取忙碌状态(BF)和位址CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LHBFAC6AC5AC4AC3AC2AC1AC0功能读取忙碌状态(BF)可以确认内部动作是否完成,同时可以读出位址计数器(AC)的值10、写资料到RAMCODERWRSDB7DB6DB5DB4DB3DB2DB1DB0HLD7D6D5D4D3D2D1D0功能写入资料到内部的RAM(DDRAM/CGRAM/TRAM/GDRAM)11、读出RAM的值CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0HHD7D6D5D4D3D2D1D0功能从内部RAM读取资料(DDRAM/CGRAM/TRAM/GDRAM)12、待命模式(12H)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLLH功能进入待命模式,执行其他命令都可终止待命模式13、卷动位址或IRAM位址选择(13H)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLLHSR功能SR1;允许输入卷动位址SR0;允许输入IRAM位址14、反白选择(14H)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLLHR1R0功能选择4行中的任一行作反白显示,并可决定反白的与否15、睡眠模式(015H)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLLLHSLXX功能SL1;脱离睡眠模式SL0;进入睡眠模式16、扩充功能设定(016H)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLLHHX1REGL功能RE1;扩充指令集动作RE0;基本指令集动作G1;绘图显示ONG0;绘图显示OFF17、设定IRAM位址或卷动位址(017H)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLLHAC5AC4AC3AC2AC1AC0功能SR1;AC5AC0为垂直卷动位址SR0;AC3AC0写ICONRAM位址18、设定绘图RAM位址(018H)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0LLHAC6AC5AC4AC3AC2AC1AC0功能设定GDRAM位址到位址计数器(AC)备注、1、当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取BF标志时BF需为0,方可接受新的指令;如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的个别指令说明。2、“RE”为基本指令集与扩充指令集的选择控制位元,当变更“RE”位元后,往后的指令集将维持在最后的状态,除非再次变更“RE”位元,否则使用相同指令集时,不需每次重设“RE”位元。本次设计液晶初始化如下VOIDLCD_INITRST0/复位LCDDELAY1/保证复位所需要的时间(1MS)RST1/恢复LCD正常工作/NOP/PSB1/设置LCD为8位并口通信SEND_I0X30/基本指令操作SEND_I0X01/清除显示SEND_I0X06/指定在写入或读取时,光标的移动方向SEND_I0X0C/开显示,关光标,不闪烁35显示坐标关系351、图形显示坐标水平方向X以字节单位垂直方向Y以位为单位/函数名称DRAW_PM功能在整个液晶屏幕上画图参数无返回值无/VOIDDRAW_PMCONSTUCHARPTRUCHARI,J,KSEND_I0X34/打开扩展指令集I0X80FORJ0J0IVALUE1DQ_LOWNOPNOPNOPNOPNOPNOP/6USDQ_HIGH/拉至高电平NOPNOPNOPNOPNOP/4USJDQIFJVALUE|0X80DELAY2,7/63USRETURNVALUE(3)DS18B20的写时序对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60US,保证DS18B20能够在15US到45US之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15US之内就得释放单总线。图45DS18B20写时序图/名称WRITE_BYTE功能写18B20写字节入口参数UCHVAL待写的数据/VOIDWRITE_BYTEUCHVALUCHIUCHTEMPFORI8I0ITEMPVAL/最低位移出DQ_LOWNOPNOPNOPNOPNOP/从高拉至低电平,产生写时间隙IFTEMP1DQ_HIGH/如果写1,拉高电平DELAY2,7/延时63USDQ_HIGHNOPNOPVALVAL1/右移一位DS18B20内部带有共9个字节的高速暂存器RAM和电可擦除EEPROM,起结构如表2所示。表2DS18B20高速暂存器结构寄存器内容字节地址温度值低位(LSB)0温度值高位(MSB)1高温限值(TH)2低温限值(TL)3配置寄存器4保留5保留6保留7CRC校验值8DS18B20所包含的操作指令如表3所示。表3DS18B20操作指令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所示。表4DS18B20温度数据存储格式位7位6位5位4位3位2位1位02322212021222324位15位14位13位12位11位10位9位8SSSSS262524DS18B20在出厂是默认配置为12位,其中最高位为符号位,即温度值共11位,单片机在读取数据时,一次会读2字节共16位,读完后将低11位的二进制数转化为十进制数后再乘以00625便为所测的实际温度值。另外,还需要判断温度的正负。前5个数字为符号位,这5位同时变化,我们只需要判断11位就可以了。前5位为1时,读取的温度为负值,且测到的数值需要取反加1再乘以00625才可得到实际温度值。前5位为0时,读取的温度为正值,且温度为正值时,只要将测得的数值乘以00625即可得到实际温度值。考虑到实际使用的需要,在这里我们只使用一个DS18B20,故每次操作前只需复位后发出SKIPROM指令(即跳过ROM指令)再读出温度的正值、并精确到小数点后一位,即可满足设计需求。/名称GET_TEMP功能启动温度转换/VOIDGET_TEMUCHARTEM1,TEM2,NUMFLOATAAARESET/复位WRITE_BYTE0XCC/跳过ROMWRITE_BYTE0X44/温度转换FORNUM100NUM0NUM/确保温度转换完成所需要的时间RESET/再次复位,等待从机应答WRITE_BYTE0XCC/忽略ROM匹配WRITE_BYTE0XBE/发送读温度命令TEM1READ_BYTE/读出温度低8TEM2READ_BYTE/读出温度高8位SHUTEM24/温度整数部分AAATEM2256TEM1625/温度小数部分TEMPERINTAAA/强制转换成整型A1TEMPER/1000/取温度十位A2TEMPER1000/100/取个位A3TEMPER100/10/小数点后个位A4TEMPER10/小数点后十位43DS18B20的接口实现431硬件设计DS18B20在本次设计中接线图如图46所示,实验板硬件图如图47所示这次实验只焊了两个温度传感器而已,其他两个用法一样,留作外接口,可以方便外用。图46DS18B20原理图图47DSB18B20硬件连接实物图432软件设计根据DS18B20约定的通讯协议,每次使用DS18B20之前都必须经过三个步骤,即先复位DS18B20,接着发出ROM操作指令,然后才可以发出RAM操作指令以进行温度转换等命令。本系统将实现读出DS18B20的温度并实时显示到LCD12864上,分辨率为00625。由于DS18B20对时序要求很严格,所以在程序设计时,时序要多加注意一点,不过数字不是死的,只要控制合理控制也不是扫描大问题。DS18B20首次初始化时开启温度转换,之后每1S进行一次DS18B20的温度读取和转换,具体实现效果图如图48流程图如图49所示图48温度采集效果实物图芯片上电复位DS18B20发出SKIPROM指令启动温度转换1S到YN复位DS18B20发出SKIPROM指令读取温度图49DS18B20读取温度流程图44设计心得总结441焊接问题焊接DS18B20时,速度要快,如果高温的电烙铁持续接触传感器很容易烧掉DS18B20,因为电烙铁一般温度为350450度,而传感器承受温度为125度。我曾经因此烧坏了两个传感器,得此痛训442软件设计DS18B20时序要求较为严格,这里的严格不是说一定要按手册的时间一摸一样而是说相对其他芯片来说严格了一点。如果读取不到温度应该检查一下时序时间设计问题。再有一个难点就是温度转换问题。温度能显示到小数点后4位,如果要将温度全部读出,应该将整数部分乘以10000再加上小数部分,化浮点数为整数,当然也可以直接采用浮点数相乘。开机会出现85C那是18B20复位值443不足此次设计没有处理温度负数情况,如果要处理应该判断最高位符号位,然后取反加一。18B20可单总线挂多个,这里IO口有剩再加上为了程序设计简单采用了并口方式。5存储芯片AT24C02简单介绍及接口实现51AT24C02功能描述管脚定义AT24C02是一个2K位串行CMOSE2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IC总线接口进行操作,有一个专门的写保护功能。AT24C02支持IC,总线数据传送协议IC,总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上。本次设计采用4个AT24C02用来储存4个温度传感器采集到的温度,用以回显。只要有温度较大变化都会被储存,随时可以通过功能按键切换功能查看,也可以将温度传回PC机统计分析。图51是硬件实现的效果图。图51温度储存之后统计分析通过液晶显示出来52管脚定义及接口实现AT24C02管脚图及硬件连接电路图如图52所示。个引脚功能如下SCL串行时钟AT24C02串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。SDA串行数据/地址AT24C02双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA是一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或(WIREOR)。A0、A1、A2器件地址输入端这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0。当使用AT24C02时最大可级联8个器件。如果只有一个AT24C02被总线寻址,这三个地址输入脚(A0、A1、A2)可悬空或连接到VSS,如果只有一个AT24C02被总线寻址这三个地址输入脚(A0、A1、A2)必须连接到VSS。WP写保护如果WP管脚连接到VCC,所有的内容都被写保护只能读。当WP管脚连接到VSS或悬空允许器件进行正常的读/写操作图52AT24C02硬件连接图设计思想如下NY温度有较大变化启动24C02监控温度储存温度储存时间53设计心得A0、A1、A2器件地址输入端,应该设计不一样以区分各个存储器,一个24C02对应一个传感器。上拉电阻47K不可以省,不然会出现问题。6实时时钟DS1302简单介绍及接口实现61DS1302简介DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为25V55V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。62DS1302结构及工作原理DS1302的引脚排列如图21所示,其中VCC1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由VCC1或VCC2两者中的较大者供电。当VCC2大于VCC102V时,VCC2给DS1302供电。当VCC2小于VCC1时,DS1302由VCC1供电。X1和X2是振荡源,外接32768KHZ晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在VCC25V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端双向,SCLK始终是输入端。图61DS1302引脚图DS1302的控制字如图22所示。控制字节的最高有效位位7必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据位5至位1指示操作单元的地址最低有效位位0如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。图62DS1302控制字DS1302的数据输入输出方式I/O,在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。DS1302一共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见图23。图63DS1302日历、时间寄存器此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发(BURST)方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH写、FFH读。63DS1302的接口实现DS1302的初始化过程非常简单,在DS1302上电之后先关闭DS1302的写保护,接着依据不同的寄存器地址分别写入年份、月份、日期,以及需要设定的时间,然后启动DS1302的时钟振荡,打开写保护,这样DS1302就能正常走时了,并且不会因为误操作而干扰到DS1302。当DS1302上电后,为了防止系统掉电后重新上电,接着调用DS1302初始化程序造成时间丢失,我们在初始化DS1302的时候先把DS1302当前的秒走时读出,放如临时变量,接着判断时间的正确性,如果时间正确,则把秒走时回送DS1302,重新启动时钟振荡后关闭保护;如果时间不正确,则重新调用时间设置程序。关闭写保护读出秒数据时间正确YN回送秒数据打开写保护芯片上电结束调用时间设置打开写保护结束图64DS1302初始化此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发(BURST)方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH写、FFH读。DS1302与单片机的连接电路图如图65所示图65DS1302硬件连接图备用电池可用来断电保护,当主电源断开之后,备用电池开始工作,起到备用作用,继续保持时钟的准确性7温度上限报警功能71设计原理固话报警的设计原理非常简单,把电话外壳拆出来之后,里面的按键其实就是一个矩阵键盘,为了简化设计,这里只说明重拨按键,因为只需要重拨按键就可以工作完全满足我们功能了。拆出来后下一步就是找出重拨键对应的引脚,先找到重拨键位置然后通过万用表就可以测出重拨键对应的两个引脚线,这个过程相当简单,通过肉眼也能很快找出来。其他按键找出方法相同,不过本次设计无需用到不再阐述。图71固话内部电路图72改装后的固话找出重拨键引脚之后通过外线引出来,中间通过一个继电器连接单片机既可工作。如图73所示。RC0改装后的固话温度监控系统继电器图73固话报警连接图上限温度通过软件设计设定也可以通过功能按键设定,当满足条件达到上限温度,单片机引脚触发高电平引发继电器工作既可实现自动重拨。固话的重拨号码要事先先设定好。72设计心得体会没有做不到,只有想不到,一个非常简单的小小改装就可以实现一个远程报警功能,其实生活就是缺少发现。8与PC串口通讯及VB上位机简单介绍81与PC串口通信目前较为常用的串口有9针串口(DB9)和25针串口(DB25)。最为简单且常用的是三线制接地法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连,电路图如图81所示图81串口通信电路图本系统串行通信采用异步通信方式。协议如下1一帧数据由1位起始位、8位数据位、无奇偶校验位、1位停止位共10位组成。2波特率设为119200BPS。单片机串行口按方式1工作,波特率由定时器T1控制,PC机串口波特率通过VB通讯控件的SETTINGS属性设置,为保证数据传送的准确性,两者的波特率必须一致。单片机串口初始化TRISC0XFF/设置C口方向全为输出SPBRG0XC/设置波特率为119200BPSTXSTA0X24/使能串口发送,选择高速波特率RCSTA0X90/使能串口工作,连续接收RCIE0X1/使能接收中断GIE0X1/开放全局中断PEIE0X1/使能外部中断82上位机介绍上位机利用VISUALBASIC60编程。用VB60开发串行通信程序有两种法,一种是利用WINDOWS的API函数;另一种是采用VB60的通信控件MSCOMM。利用API函数编写串行通信程序较为复杂,需要掌握大量的通信知识,其优点是可实现的功能更丰富、应用面更广泛,适合于编写较为复杂的低层次通信程序。而VB60的MSCOMM通信控件提供了标准的事件处理函数、事件、方法,并通过控件属性对串口参数进行设置,比较容易地解决了串口通信问题。MSCOMM是VB60提供的ACTIVEX控件,使用前需将该控件添加到VB工具栏。MSCOMM控件具有功能完善的串口数据发送和接受功能,有两种处理通信的方式,即事件驱动方式和查询方式,事件驱动方式是利用MSCOMM控件的ONCOMM事件捕获并处理通信错误事件,是处理串行端口交互作用的一种非常有效的方法;查询方式是通过检查COMMEVENT属性的值来判断事件和错误。图82上位机监控界面下面VB上位机完整程序DECLAREFUNCTIONGETTICKCOUNTLIB“KERNEL32“ASLONGSUBTIMEDELAYTASLONG时间延迟子程序,单位是毫秒MSDIMTTMAYBEBACKINTHEPAST,TOONESELFTHEPARANOIDWEIRDBELIEFDISILLUSIONMENT,THESEDAYS,MYMINDHASBEENVERYMESSY,INMYMINDCONSTANTLYALWAYSFEELONESELFSHOULDGOTODOSOMETHING,ORWRITESOMETHINGTWENTYYEARSOFLIFETRAJECTORYDEEPLYSHALLOW,SUDDENLYFEELSOMETHING,DOIT一字开头的年龄已经到了尾声。或许是愧疚于自己似乎把转瞬即逝的很多个不同的日子过成了同一天的样子;或许是追溯过去,对自己那些近乎偏执的怪异信念的醒悟,这些天以来,思绪一直很凌乱,在脑海中不断纠缠。总觉得自己自己似乎应该去做点什么,或者写点什么。二十年的人生轨迹深深浅浅,突然就感觉到有些事情,非做不可了。THEENDOFOURLIFE,ANDCANMEETMANYTHINGSREALLYDO而穷尽我们的一生,又能遇到多少事情是真正地非做不可DURINGMYCHILDHOOD,THINKLUCKYMONEYANDNEWCLOTHESARENECESSARYFORNEWYEAR,BUTASTHEADVANCEOFTHEAGE,WILLBEMOREANDMOREFOUNDTHATTHOSETHINGSAREOPTIONALJUNIORHIGHSCHOOL,THOUGHTTOHAVEACRUSHONJUSTMEANSTHATTHEREALGROWTH,BUTOVERTHEPASTTHREEYEARSLATER,HISWRITINGOFALUMNIINPEACE,SUDDENLYFOUNDTHATISNTREALLYGROWUP,ITSEEMSISNOTSOIMPORTANTTHENINHIGHSCHOOL,THINKDONTWANTTOGIVEVENTTOOUTYOURINNERVOICECANBEINTHEHIGHSCHOOLCHILDRENOFTHEFEELINGSINAPERIOD,BUTWASEVENTUALLYINFARCTIONWHENGRADUATIONPARTYINTHETHROAT,LATERAGAINSTOODONTHEPITCHHEHASSWEATPROFUSELY,LOOKEDATHISTHROWNABASKETBALLHOOPS,SUDDENLYFOUNDHIMSELFHASALREADYCANTREMEMBERHISAPPEARANCE童年时,觉得压岁钱和新衣服是过年必备,但是随着年龄的推进,会越来越发现,那些东西根本就可有可无;初中时,以为要有一场暗恋才意味着真正的成长,但三年过去后,自己心平气和的写同学录的时候,突然就发现是不是真正的成长了,好像并没有那么重要了;然后到了高中,觉得非要吐露出自己的心声才能为高中生涯里的懵懂情愫划上一个句点,但毕业晚会的时候最终还是被梗塞在了咽喉,后来再次站在他曾经挥汗如雨的球场,看着他投过篮球的球框时,突然间发现自己已经想不起他的容颜。ORIGINALLY,THISWORLD,CANPRODUCEACHEMICALREACTIONTOANEVENT,INADDITIONTORESOLUTELY,HAVETODO,ANDTIME原来,这个世界上,对某个事件能产生化学反应的,除了非做不可的坚决,还有,时间。APERSONSTIME,YOURIDEASAREALWAYSSPECIALTOCLEARWANT,WANT,LINEISCLEAR,ASIFNOTHINGCOULDSHAKEHISALSOONCESEEMEDTOBEDETERMINEDTODOSOMETHING,BUTMOREOFTENISHEBACKEDOUTATLASTDISLIKEHISCOWARDICE,FINALLYFOUNDTHATTHEREAREALOTOFLOVE,THEREAREALOTOFMISS,LIKESHADOWREALLYHAVEBEENDOOMEDTHOSEWHODO,JUSTGREENYEARSONESELFGIVEONESELFANARMINJECTION,ORISASELFRIGHTEOUSSPIRITUAL一个人的时候,自己的想法总是特别地清晰。想要的,不想要的,界限明确,好像没有什么可以撼动自己。也曾经好像已经下定了决心去做某件事,但更多的时候是最后又打起了退堂鼓。嫌恶过自己的怯懦,最终却发现有很多缘分,有很多错过,好像冥冥之中真的已经注定。那些曾经所谓的非做不可,只是青葱年华里自己给自己注射的一支强心剂,或者说,是自以为是的精神寄托罢了。ATTHEMOMENT,THESKYISDARK,THEAIRISFRESHFACTORAFTERJUSTRAINEDSUDDENLYTHOUGHTOFBLUEPLAIDSHIRTTHOSEWEREBROKENINTOVARIOUSSHAPESOFSTATIONERYFROMTHECORNERATTHEBEGINNINGOFDEEPFRIENDSHIPHAVEDECLAREDTHEENDOFTHEENCOUNTERTHATHAVENTSTARTPLANNINGTHOSEYEARS,THOSEDAYSOFDO,FINALLY,LIKEYOUTH,WILLENDINOURLIFE此刻,天空是阴暗的,空气里有着刚下过雨之后的清新因子。突然想到那件蓝格子衬衫;那些被折成各种各样形状的信纸;那段从街角深巷伊始的友谊;还有那场还没有开始就宣告了终结的邂逅计划那些年那些天的非做不可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论