欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    微机原理与单片机与接口技术课程设计.docx

    • 资源ID:1831441       资源大小:149.95KB        全文页数:22页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    微机原理与单片机与接口技术课程设计.docx

    河南理工密喉微机原理与单片机接口技术课程设计实时测温报警系统姓名:李一学号:3113()8001116专业班级:H1.信13-4指导老师:王:新所在学院:电气工程与申动化学与2016年月口摘要本设计是一款基于单片机的实时温度测量装置,其中单片是数据处理的核心,用来接受和处理温度传感器测的数据。用温度传感器来获得采样的温度,单片机将得到的温度数据处理后,通过液晶显示屏来显示,关于时间显示方面是通过堆片机的定时中断来实现的,并通过按循来调盛显示时间。本文荷要介绍基于单片机的测温系统的设计原理,并依据系统的原理制作出实物,能够简洁的实现温度的测量.本测温系统主要有以下几个模块构成:测温模块、显示模块、按键限制模块、时间显示模块以及报警模块等几个模块组成。测温模块主体是一个测温传感器DSI8B20来进行温度的测量,温度报警模块是一个呜蜂器,显示模块是通过液晶显示屏1602来进行温度和时间的显示,按键限制是由触电开关跟单片机构成,时间显示模块是单片机的定时中断跟1602液晶显示屏构成.本设计的核心是型号为STCI2C5A6()S2的单片机.本系统的工作先由DS18B20测量温度,经过DS18B20内部的转换电路得到组12位精度为0.0625的温度数值通过根单数据线将数据交给单片机,单片机处理数据后将最终温度显示在液晶显示屏上,当温度超过设定值的时候鸣蜂器鸣笛报警,雌片机内部的定时中断程序将时间也同一时间显示在液晶显示屏上,通过按键可以哲停时间和温度测量的刷新,来调整时间。本设计最终做得的实物能够进行0-125。C的测量,24小时以内的时间显示以刚好间调整。关键字:单片机技术、温度采集、液晶1602显示。书目I、M41.1 设计背景及意义41.2 1111611tfttfttfttfttaftftttfttfttfttftt41.3 温度测试报警系统完成的功能42、系统总体方案及便件计52.1 总体方案设计52.2 It-fft>fttfttaftffft>ttfttafa53、软件设计3.1 DS18B20程序编架3.2 1602液晶显示程序编写框架3.3 时间及按键程序编写框架3.4 总程序编写框架4、软件仿真125、设计体会13弁考文献附1源程序代码附2,系统原理图1概述设计背景及意义温度是生产过程和科学试的中普遍而且玳要的物理参数,随着社会的发展,科技的进步,以及测温仪器在各个领域的应用,智能化已是现代温度限制系统发展的主流方向。特殊是近年来,温度限制系统已应用到人们生活的各个方面,但温度限制始终是个未开发的领域,却又是与人们休戚相关的一个实际问题。针对这种实际状况,设计一个温度限制系统,具有广泛的应用前景与实际意义。温度是个重要的物理量,它反映了物体冷热的程度,与自然界中的各种物理和化学过程相联系.在工、农业生产和日常生活中,各个环节都与温度紧密相联,湿度的精确监测及限制占据着极其重要地位。比如,发电厂锅炉的温度必需限制在肯定的范围之内:很多化学反应的工艺过程必需在适当的温度下才能正常进行等。没有介适的温度环境,很多电子设备就不能正常工作,粮仓的储能就会变质毒烂,酒类的品质就没有保隙。可见,温度的测量和限制是特别全要的。随着电子技术和微型计算机的快速发展,单片机在电子产品中的应用已经越来越广泛。利用单片机对阻度进行限制的技术也随之而生,并日益发展和完善,且越来越显示出它的优越性。1.2 设计目的本设计的内容是温度测试报警系统,限制时象是温度“温度限制在日常生活及工业领域应用相当广泛,比如温室、水池、发醉缸、电源等场所的温度限制。而以往温度限制是由人工完成的而且不够重视,其实在很多场所温度都须要监控以防止发生意外。针对此间题,本系统设计的目的是实现一种可连续高精度调温的温度测试报警系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既好用又廉价的限制系统。1.3 温度测试报警系统完成的功能本设计是对温度进行实时监测与报警,设计的温度报警系统实现了基本的温度测试和报警功能:当温度超过设定的温度阀值的时候鸣峰器发声来进行报警,同时通过1602液晶显示屏显示当时的时间跟温度便于对温度的管理。2系统总体方案及硬件设计2.1 总体方案设计考虑运用温度传感器,结合单片机电路设计,采纳一只DS18B20温度传感器,干脆读取被测温度值,之后进行转换,依次完成设计耍求.在本系统的电路设计方框图如图11所示,它由三部分组成:限制部分主芯片采纳单片机STC12C5160S2;显示部分采纳液晶屏1602进行显示:温度采集部分采纳DS18B2O温度传感器。图21温度计电路总体设计方案2.2 硬件设计1 .限制部分单片机STC1.2C5I6OS2具有低电压供电和体枳小等特点,很适合便携手持式产品的设计运用,系统应用三节电池供电。2 .显示部分显示电路采纳1602液晶显示屏.3 .温度采集部分DS18B2O温度传感器是美国DA1.1.AS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能干脆读出被测温。这部分主要完成对温度信号的采集和转换工作,由DSI8B20数字温度传感器及其与单片机的接口部分组成。数字温度传感器DS18B20把采集到的温度通过数据引脚传到单片机的P1.3口,单片机接受温度并存储。此部分只用到DS18B20和单片机,硬件很简洁(1) DSI8B2O的性能特点如下:1)独特的单线接口仅须要一个端口引脚进行通信:2)多个DS18B20可以并联在惟一的三线上,实现多点组网功能:3)无须外部器件:4)可通过数据线供电,电压范用为3.055V:5)零待机功耗:6)温度以3位数字显示:7)用户可定义报警设置:8)报警搜寻吩咐识别并标记超过程序限定温度(温度报警条件)的器件;9)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。(2) DSI8B2O的内部结构DS18B2O采纳3脚PR-35封装,如图1.2所示;DSI8B20的内部结构,如图3所小O必图2-2DS18B2O封装(3) DS18B2O内部结构主要由四部分组成:ISB1)64位光刻RoM。起先8位是产品类型的编号,接着是每个渊件的惟一的序号,共有48位,鼓终8位是前56位的CRe校验码,这也是多个DS18B2O可以采纳一线进行通信的缘由“3。64位闪速ROM的结构如F.64位RON和I表2-IROM结构8b检险CRC48b序列号8b工厂代码(IOH)MSB1.SBMSB1.SBMSB图2-3DS18B20内部结构2)非挥发的温度报警触发器TH和T1.,可通过软件写入用户报警上下限值.,3)高速暂存存储,可以设置DS18B2O温度转换的精度。DS18B2O温度传感器的内部存储器还包括个高速河存RAM和个非易失性的可电擦除的E-PRAM,高速暂存RAM的结构为8字节的存储罂,结构如图1.3所示。头2个字节包含测得的温度信息,第3和第4字节TH和T1.的拷贝,是易失的,每次上电更位时被刷新。第5个字节,为配置寄存器,它的内容用于酹定温度值的数字转换辨别率。DS18B2O工作时寄存落中的辨别率转换为相应精度的温度数值。它的内部存储器结构和字节定义如图1.3所示。低5位始终为】,TM是工作模式位,用于设置DS18B2O在工作模式还是在测试模式。表2-2DS18B2O内部存储器结构BytcOByte1.温度测量值1.SB<50H)E-PROM温度测量值MSB(50H)Byte2TH高温寄存器÷-÷TH高温寄存器Byte3T1.低温寄存器÷-11.低温寄存器Bytc4配位寄存器÷-配位寄存器Bytc5预留(FFH)Bytc6预留(OCH)Byie7预留(IOH)Byte8循环冗余码校盼<CRC)2)非挥发的温度报警触发器TH和T1.,可通过软件写入用户报警上下限值.3)而速暂存存储,可以设置DSI8B20温度转换的精度.DS18B2O出厂时该位被设置为0,用户要去改动,R1.和RO确定温度转换的精度位数,来设置辨别率,如图1.4«图23DS18B20字节定义ITMRiRo1IIIII1由表1.1.可见,辨别率越高,所须要的温度数据转换时间越长。因此,在实际应用中要将辨别率和转换时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面全部8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换吩咐后,起先启动转换。转换完成后的温度值就以16位带符号扩展的二进制补网形式存储在高速暂存存储器的第I,2字节.单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格苴以0.()625'C/1.SB形式表示.当符号位S=O时,表示测得的温度值为正值,可以干脆将二进制位转换为十进制:当符号位S=I时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表1.2是部分温度值对应的二进制温度数据网。表24DSI8B2O温度转换时辰表R1.RO辨别率/位温度最大转向时间msOO993.75O110187.5IOI1.375II12750表25一部分温度对应值表温度W二进制表示十六进制表示+125(XMK)O1.IIIIO1.(XXX)()7X)H+85(XX)OO1.OIOIO1.OOOOO55OH+25.0625(XKM)(XX)II(X)I(XXX)0I91H+10.12500000()IO1.O(X)OIOOA2H+0.5(XXK)(XXX)(XXX)(X)IO(XX)8H0(XXX)OOOOOooo1000(X)OOH-0.5I1.1.iII1.IH1.1.(XXX)FFFSH续表25-10.125I1.1.1.I1.1.1.O1.OIII1.OFF5EH-25.0625I1.1.1.IIIOOIIOI1.1.1.FE6FH-55I1.1.1.I1.(M)10010000FC90H4) CRC的产生在64bROM的最高有效字节中存储有循环冗余校验网(CRC).主机依据ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以推断生机收到的ROM数据是否正确,另外.由于DSI8B2O单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DSI8B20的各种操作按协议进行。操作协议为:初使化DSI8B2O(发复位脉冲)一发RoM功能吩咐一发存储潺操作吩咐一处理数。4.液晶显示部分1 .管脚:1602共16个管脚,但是编程用到的主要管脚不过三个,分别为:RS(数据吩咐选择端)RV(读写选择端),E(使能信号);以后编程便主要围绕这三个管脚绽开进行初始化,写吩咐,写数据以下详细阐述这一:个管脚:RS为寄存器选择,高电平选择数据寄存器,低电平选择指令寄存器.WW为读写选择,高电平进行读操作,低电平进行写操作。E端为使能端,后面和时中联系在起。除此外,IX)D7分别为8位双向数据线。2 .指令集:1.CD_1602初始化指令小结:0x38设黄16-2显示,5*7点阵,8位数据接口OxOI清屏OxOF开显示,显示光标,光标闪耀0x08只开显示OxOe开显示,显示光标,光标不闪耀OxOc开显示,不显示光标0x06地址加1,当写入数据的时候光标右移0x02地址计数器C=0;此时地址为0x80)光标归原点,但是DDRAM中断内容不变0x18光标和显示一起向左移动3,显示地址:1.CD1.602内部RAM显示缓冲区地址的映刖图,OOOF、404F分别时应1.CD1602的上下两行的每一个字符,只要往对应的RAM地址写入要显示字符的ASCII代码,就可以显示出来.3软件设计3 .1DS18B20程序编写框架查询DS18B20的技术手册,通过技术手册上的时序图编写初始化指令、写指令、读指令程序,最终编写一个获得温度的函数,通过函数返回值招测的数据传递给单片机。4 .21602液晶显示程序编写框架与DS18B20编写的过程大体相同,最终也将液晶显示程序封装成一个无返回值函数.5 .3时间及按梃程序编写框架时间是通过单片机的定时中断来获得的.按键是采纳独立按键通过P32,P33,P3N来进行限制的。3.4总程序编写框架将键盘函数跟报警程序放入主函数中,而1602显示程序和DS18B20程序放在定时中断程序中,来实现程序的隔离,放置按键函数影响显示和测温程序的时序,来造成程序运行混乱。4软件仿真5课程设计体会通过本次课程设计使我对堆片机的相识跟进一步,让我了解学习了单片机的扩展功能,不再局限于以前堆片机只能做一个流水灯或者数码显示的思想。本次设计遇到了很多困难,一个最大的困难就是关于DS18B20的时序编写,由于不知到C语言程序在单片机中的运行时间,所以在编写时序的时候出了很多问题,最终经过杳资料和通过kei1.软件的指令运行时间杳询功能,最终才编写出正确的时序程序。另一个困难是各个程序模块的协调运行问题,单个的模块能够正常运行,但是多个放在一起就会出现程序运行错误,经过努力最终找到是因为多个模块的放在一起会影响各自的时序才造成程序错误,最终我通过中断函数将各个模块进行隔离完成了最终的设计。这次的设计,虽然困琲重重,但是最终当系统能够正常工作的时候,我感到无比的喜悦。参考文献侑机原理与电片机接口技术?CC语言程序设计IcdwTitjcom(OxMHOxOb);if(k2=2)fen+;if(fen=60>IIcn=O;mfs(en.0x09):Icdwri«e_conu0x80+0x08):if(k2=3)Ishi+;if(shi=24)Ishi=O;mfs(shi,0x06);1.edwritc-co11(0x80+()x()5);I)WhiICCkCy3);)voidinit()/程序初始化(uchari.t).t2:显示模式设置“显示关闭显示清屏ICdWri1.jeOm(OX38):de1.ayI(5);ICdWritJCOm(OXO8);de1.ay1(5);Icdwri1.e_coin(0x01);de1.ay1(5):1.edwri1.e_com(OxOc>:显示开及光标设区de1.ay1(5);ICdWritJCom(OXo6);显示光标移动设置de1.ayI(5);1.=sir1.en(tab1.e2);fbr(i=0ji<I1.u+)(Icdwritc_dat(tab!e2(i);de1.ay1(20);J1.cdwritc_com(0xS0H)x40):de1.ayI(5):(2=str1.e11(tab1.e1.):fbr(i=<)i<t2i÷÷)(ICdWriudat(tab1.e1.(i);de1.ayI(20);)1.cdwritc_dat(Oxdf):技示群度的总位de1.ay1(5);)cdwri(e_dai(0x43);de1.ayI(5);EA=I;ETO=1;TRO=I;TMOD=OxOI;TH0=0x4c;TU)=0X00;Ivoidmain()(init():whi1.e(I)scankcy():if(temperature1.0>T)bccr=O;Je1.seIbcer=1.:)JvoidIimdX)interrupt1"秒表计数(TH0=0x4c;T1.O=OXOO;tt(>÷+iftuO=2O>Inia>÷+:Uo=O;tcmpcnnurc=Gct_Tmp();mis1(tcmpcrature.4);)ifimiao<60)(mfs(miao.()X0C):)e1.se(miao=0:fen+:Jiftfcn<60)nfs(fen.9):)e1.sefcn=O;shi+;)iftshi<24)(mfs(shi.6):)e1.se(shi=O:)I佣inc1.ude<s1.2.h>例inc1.ude<intrins.h>数据口defineinterfaceSbi1.DQ=P1.A3;“I8b2接口uintwendu;“AA&ffivariab1.eofWenducraturcvoidDeIay(UChara1.b1.,c)(unsignedchara,b.c;tbr(a=Oa<aka+÷)ibr(b=Ob<bib÷÷)tbr(c=Ozc<c1:c+);6*DSXB20*6*t*6f*/voidIni1.DS1.8b20(Void)/DS18B20初始化sendresetandinitia1.izationcommandDQ纪位,不要也可行.梢做延时IoUS单片机拉低总战EA=O;DQ=I;Dday(1.1.1):DQ=O;Dc1.ay(6J.63)z600us/.De1.ay(1.1.15);720usDQ=I;精确延时.维持至少480US择放总线,即拉高了总彼Dday(5,1,63);SOOUS“此处延时有足够,确保能让DS18B20发出存在脉冲.EA=I:ucharRcad_Onc_Bytc()读取一个字节的数据readabytedate读数据时.数据以字节的最低疗效位先从总线移出uchari=O;uchardat:EA=O;fbr(i=8iX)j-)DQ=O:“将总线拉低,要在IUS之后择放总线“单片机要在此卜降沿后的15US内读数据才会有效._nop_0;dat»=1;DQ=1:至少维持了Ius.表示读时序起先让从总线上读到的位数据,依次从高位移动到低位.齐放总线此后DSIXB20会限制总线.把数据传输到总线DeIay(IJJ);“延时IOUS.此处参照举荐的读时序图,尽朵把限制器采样时间放到读时序后的I5us内的鼓终部分if(DQ>I“限制涔进行采样Idat0x80;进行处理,保持为0若总线为1,即DQ为1.那就把M的最一位JR1:若为0.则不De1.ay(1.1.8);EA=I;/20us"此延时不能少,确保读时序的长度60us.return(dat);voidWriIe_One_ByIe(UCharda【)uchari=0:EA=«:for(i=8:i>0;i-)DQ=O;_nop_():曲起先DQ=dat&OxO1.;15US内.De1.ay(1.J.15);DQ=1;dat»=1:De1.ay(MJ);EA=O:uintGei_Tmp()Boattt:UChara.b:InicDs18b2(X);Wri1.JOnJByIC(OXCc);Writc_Onc_Bytc(Ox44):InicDs18b20<>:Write_One_Byte(Oxcc);WriteeOnceBytc(Oxbc);a=Rcad_Onc_Bytc():b=Read_One_By1.e():wendu=b;wcndu«=8;wcndu=wcndua:U=WCmIiI才0.0625:wcndu=u41.(H-0.5:"拉低总线至少维持了Ig表示写时序(包括写0时序或写1时"从字节的最低位起先传输“指令dat的最低位给予给总线,必需在拉低总线后的“因为ISUS后DSI8B2O会对总找采样.必需让写时序持续至少60u$"写完后,必需糅放总税.获得温.度gettheWenduerature初始化忽视ROM指令温度转换指令“初始化忽视ROM指令“读机存器指令“读取到的第一个字节为逊度1.SB/读取到的第一个字节为温度MSB先把高八位有效数据微WendU把以上H位数据从WCndU低八位移到高八位“两字节合成一个整4!变出得到口实卜进制海度值因为DS18B20可以精确到0.0625度所以该网数据的最低位代去的是0.0625度放大十倍这样做的目的将小数点后第一位也转换为可显示数字同时进行一个四舍五人操作.returnwendu;附2系统原理图I1.5791.1.1.31.51.71.921.1.2srN31.B1.sww.ayBU1.PIOP1.IPI-2PUP1.4P1.SPI6P1.?RSrVPDHORXDPJITXDP14(T0P“I1.P6WRP)?RDXTAU1.I>GND温度测

    注意事项

    本文(微机原理与单片机与接口技术课程设计.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开