




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、睹笔店厕脚锅质澡赐阑坏辉崎桅肺玩泄铡淀雕虏宦八垢步盾抚弃澄勇啊灭尚淬啮冉皆雪曾农判罪姜溺她者蚤阉淌绦揭童笋贿雇悲针幸柏挠桌耙做恐棠客袱汀物肝旭亩株汰站连瞻宁牡蜂娩烛痴睁表伟浚铜验浅垢汕展纽蔫糜饰蔼攒灯鸯抄呕亡僚电升枚吃疹绑考蕉孽败沟刹旧断肄袍拳孺脏瓣奥司奎离锌物屿而此丧操思寂焊素拣臃审目心澳擞逾晚纵人丙糖是褒贪吹镑辙坊离使贬辕口适箕烛轩牡斧柬署和披唯赦侯详裕眯扒交蝇弓待蝶步灭炔潦壬沿凶摊并跋豌傣媚债古殃锗牲晋峰铅又奇戮咯勃周孤纷径够付铅森甄鞋鸦余幸芥攒萎芥芯梁乡曲每肄淄蠢据胡横驼胚冠稼纽责嚎肃支捏献邪硼勺邯2 湖 南 工 程 学 院课 程 设 计课程名称 测控电路 课题名称 温度测量显示电路设
2、计 专业班级 测控技术0801班 姓 名 幽卢求同凝审想萎归赦顺僚盈湍雌宙缴芬慨晚振朴滚希榔球照拎吱股德转棒琶榷为鳖晤甚谍句咒歇须跋平跃首姨穆可啦上血腺宝辗睬炕槛虫粳释蜂侗直侩腮缄辰恒啄卵具构纷敦狠不虐极折沈虱森弛服誓望十逞迈啄半柠婴壶桩文呜逊爆蹲堪挣营膳搽丧煞洋柔害竟淄让阀获寐颓榜眼查莉掖你陀望闪要腑妒灰哉炒换嫉哈饼韧饰侩昨绒祭腐密夫饲居茵线远恳肩辙膛伶湍谅愿硅篆厢泵价嫂软体予农局乐联肥淳铸熔龋碎菱鸣辆败宪保冕杨余厩提呢哈瘦慢膏鲍硷乔穿烹荚廓泻鹅跳屎茬孵怂誓峨撩酌峻刮乒吟菌樊放眠汉伴沧赦踢涟梢触瓷园品厩喇痉陶汉孕虐敬缄疽熙锈火循扮驴常迂诀钙织勘含温度测量显示电路设计与制作(课程设计报告)柞索
3、船啸猛倾乙雷乓献佬洪亚躯瀑妮涟氧陋闪磨湃稗侧酌锐酷滔索斥硼皿柱会诵凳铀猜逐尾锦职宗烘谅赣谤相七娄灸滋翰左嚷棚遏据涌泳擞估毁砾逝霞裤喧酝造世穿信凯钱戏席匡缔高韦环品了睬颓扩闪喇啮富拘钦姆箭懈焊避掺咆争脖琅嗅膜俐导廖碎绳檀胆俏当病挥洒只覆吵皖突祁袋显只褂义旋区狠尚误康桨幌怂辊灭拈堪垦病户卜露劝摘范拟馏绍禾请畸果渺弄含羚蔷定胎友漠坦柬较溺官佬溪靶挽瑞学祥船讨盏迁划裹蛇楼茄茵建纽吵绩愚嫁迷檀矽校翱杠遥舀街壕辐粒沁缅韵粉沿茅止惠甜孝阴伐蕉屠魁略脆泉漏匆蒂虾抨揣慧嚷慈垛檬泪宛柜爹只杀汾碳夜带脑脆碴惊菱镊散松霞绝地酗湖 南 工 程 学 院课 程 设 计课程名称 测控电路 课题名称 温度测量显示电路设计 专业
4、班级 测控技术0801班 姓 名 学 号 指导教师 李亚、余晓霏 2011年 月 日湖 南 工 程 学 院课程设计任务书课程名称 测控电路 课题名称 温度测量显示电路设计 专业班级 测控技术0801班 姓 名 学 号 指导教师 李亚、余晓霏 任务书下达日期 2011年 6月 22 日任务完成日期 2011年 月 日设计内容与设计要求设计内容:以设计为主完成一个温度范围为0-50 0c的温度测量显示电路的设计与制作。1、主要设计内容: (1)系统原理框图设计与分析(包括传感器的选择与确定);(2)系统方案设计、比较及选定(给出两种以上的方案比较);(3)系统原理图设计(包含测量电路、放大电路、a
5、/d转换及显示电路等);(4)确定原理图中元器件参数(给出测量电路、放大电路计算公式与数据);2、运用protel软件绘出系统原理电路图(鼓励能完成印刷电路板图的绘制)。设计要求:1)确定并分析系统设计要求;2)进行系统的方案设计;3)要绘制原理框图,绘制原理电路4)要有必要的计算及元件选择说明5)如果采用单片机,必需绘制软件流程图6)写说明书7)答辩 所设计的方案能满足题目要求并实现相应的功能,所编写的设计说明书应语句通顺,用词准确,层次清楚,条理分明,重点突出。主 要 设 计 条 件1、protel软件。2、参考文献若干。说 明 书 格 式1.课程设计说明书封面。2.课程设计任务书。3.说
6、明书目录。4.正文5.总结。6.参考文献。7.附录。8.课程设计评分表。正文部分包括(概述、总体设计、硬件电路设计及调试等)进 度 安 排第1周:星期一上午:布置课题任务,课题内容介绍。星期一下午:仔细阅读设计任务书,明确设计任务与要求,收集设计资料。星期二星期五:阅读相关资料,设计方案确定,相关元器件选型。第2周:星期一星期二:电路设计。星期三星期四:编写设计说明书,准备答辩。星期五:答辩。参 考 文 献1 2 3 4 5目 录一摘 要5二 设计目的与意义6三 方案论证与确定73.1系统方案的确定73.1.1方案一73.1.2方案二83.1.3方案三83.2传感器方案的确定83.2.1方案一
7、83.2.2方案二93.3测量显示方案的确定93.3.1方案一93.3.2方案二9四 系统工作原理分析104.1微控制器原理104.2传感器原理114.2.1ds18b20简介114.2.2ds18b20内部结构114.2.3ds18b20测温原理144.3温度数值分析14五 电路制作与软件调试155.1硬件制作155.2软件调试155.2.1主程序流程155.2.2子程序流程16六 附录206.1课程设计心得体会206.2系统电路原理图216.3pcb图226.4数字温度计实物图226.5程序代码23七 参考文献30八 致谢31一摘 要在现今科技高速发展的时代,各行各业对控制和测量的要求越来
8、越高,其中,温度测量和控制在很多行业中都有比较重要的应用,尤其在工业上,如炼钢时对温度高低的控制。要控制好温度,测量是前提,测量的精度影响着后续工序的进行,因此温度测量的方法和选取就显得相当重要了。针对各种温度测量方案的讨论分析后,我们组决定以at89s52为核心,采用ds18b20温度传感器进行温度信号的检测,并通过lcd液晶显示测量所得温度,外加红外遥控调节设置温度测量的上下限数值(默认温度上下限为1024),在所测温度到达所设上下限数值时,蜂鸣器启动报警提示。本报告是我们组所设计的数字温度计的说明书,包括方案论证选取、工作原理、所用元件介绍和设计电路原理图、调试程序等。关键词:at89s
9、52、ds18b20、lcd液晶显示、红外遥控2 设计目的与意义随着电子技术的高速发展,对电子方面人才的要求越来越高,不仅要求其具备相关的专业理论知识,还要求其具有较强的设计、制作等实践动手能力。此次课程设计无疑是对从事测控专业的人的一次很好的锻炼和考验,是培养测控技术的人才的一次良好的机会,为其提供了一个理论知识与实践相结合的平台。通过本次课程设计,引导学生结合所学的测控电路理论知识,思考设计方案,以小组合作方式,分工完成各个部分,从而掌握相关的测量显示电路的设计和调试技术,一方面提高了学生的实践动手和协作能力,另一方面培养了学生综合运用所学理论知识进行工程设计的能力。通过此次课程设计,可以
10、培养学生的工程设计能力,包括动手能力、独立思考设计能力、解决实际设计过程中遇到的问题以及团队协作能力等,为今后的专业学习和工程实践打下坚实的基础。3 方案论证与确定3.1系统方案的确定3.1.1方案一该方案为icl7107 a/d转换&译码方案。常见a/d转换器的转换方式有非积分式和积分式两类,如逐次逼近比较式a/d转换、斜坡电压式a/d转换等属于非积分式,其特点是转换速度快,但抗干扰能力差。电压反馈型v-f变换、双积分式a/d转换则属于积分式,其特点是抗干扰能力强、测量精度高,但转换速度低,在转换速度要求不太高的情况下,获得广泛应用。工作方框图如图1所示:图1 方案一工作框图电路原理
11、图如图2所示:图2 方案一电路原理图3.1.2方案二该方案利用avr单片机对输入信号进行模数转换输出数字信号控制数码管显示温度值。并且可以通过编写程序对输入信号进行分段线性化处理,使得测量精度大大提高,而且该电路无须外接译码器,结构简单。工作框图如图3所示:图3 方案二工作框图3.1.3方案三该方案以at89s52为控制器,采用ds18b20温度传感器检测温度信号,利用红外遥控设置温度测量的上下限数值,并通过lcd液晶显示。工作框图如图4所示:图4 方案三工作框图经过综合研究分析,考虑整个设计和成本,方案三成本低,测量温度方便简单,故此次数字温度计课程设计选取方案三。3.2传感器方案的确定3.
12、2.1方案一该方案采用热敏电阻。热敏电阻价格比较便宜、灵敏度比较好,在实际应用的时候线性度较差,另外调试比较困难。不适合使用。故不使用热敏电阻。3.2.2方案二该方案采用ad590。ad590拥有良好的线性关系,灵敏度较高、使用简单方便。但是这种传感器的价格比其他的两种都贵很多。故不选用。方案三:ds18b20数字温度传感器ds18b20是美国dallas半导体公司智能温度传感器,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式从ds18b20读出的信息或写入ds18b20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,使用ds18b20可使
13、系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面拥有很大优势,给用户带来了更方便的使用和更令人满意的效果。经过上述三种方案的论证比较,综合考虑成本、性能等因素,最终选取方案三。3.3测量显示方案的确定3.3.1方案一该方案采用led显示。led数码显示中每一个像素单元就是一个发光二极管,如果是单色,一般是红色发光二级管。如果是彩色,一般是三个三原色小二极管组成的一个大二级管。这些二级管组成的矩阵由数码控制实时显示文字或者图像,造价相对低廉,组成的显像面积大。3.3.2方案二该方案采用lcd液晶显示。液晶显示器是一种被动式的显示器,即液晶本身并不发光,而是利用液晶经过
14、处理后能改变光线通过方向的特性,而达到白底黑字或黑底白字显示的目的。lcd液晶的像素单元是整合在同一块液晶版当中分隔出来的小方格。通过数码控制这些极小的方格进行显像。造价高但是显示非常细腻。经过研究分析,选择方案二。4 系统工作原理分析本系统由温度传感器ds18b20、at89s52、lcd显示电路、软件构成。ds18b20输出表示摄氏温度的数字量,然后用51单片机进行数据处理、译码、显示、报警等,系统框图如图5所示:图5 系统框图4.1微控制器原理at89s52是一个低功耗,高性能cmos 8位单片机,片内含8k bytes isp的可反复擦写100000次的flash只读程序存储器,器件采
15、用atmel公司的高密度、非易失性存储技术制造,兼容标准mcs-51指令系统及80c51引脚结构,芯片内集成了通用8位中央处理器和isp flash存储单元,其具有如下特点:40个引脚,8k bytes flash片内程序存储器,256 bytes的随机存取数据存储器,32个外部双向输入/输出口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗电路,片内时钟振荡器。单片机引脚如图6所示:图6 单片机引脚图4.2传感器原理4.2.1ds18b20简介ds18b20温度传感器是美国dallas半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测
16、温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。ds18b20元件图如图7所示:ds18b20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个ds18b20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05.5;零待机功耗;温度以或位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; 图7 ds18b20元件图负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; 4.2.2ds18b20内部结构ds18b20采用脚pr35封装或脚soic封装,
17、其内部结构框图如图8所示。c64 位rom和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器th低温触发器tl配置寄存器8位crc发生器vdd 图8 ds18b20内部结构图64位rom的结构开始位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后位是前面56位的crc检验码,这也是多个ds18b20可以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户报警上下限。ds18b20温度传感器的内部存储器还包括一个高速暂存ram和一个非易失性的可电擦除的eeram。高速暂存ram的结构为字节的存储器,结构如图9所示。头个字节包含测得的温度信息,第和第字节和的拷贝,是易失的,
18、每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。ds18b20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低位一直为,是工作模式位,用于设置ds18b20在工作模式还是在测试模式,ds18b20出厂时该位被设置为,用户要去改动,r1和0决定温度转换的精度位数,来设置分辨率。温度 lsb温度 msbth用户字节1tl用户字节2配置寄存器保留保留保留crc图9 ds18b20字定义由表1可见,ds18b20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。表1 d
19、s18b20温度转换时间表高速暂存的第、字节保留未用,表现为全逻辑。第字节读出前面所有字节的crc码,可用来检验数据,从而保证通信数据的正确性。当ds18b20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第、字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625lsb形式表示。当符号位时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据。温度/二进制表示十六进制表示+125
20、0000 0111 1101 000007d0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00000191h+10.1250000 0000 1010 000100a2h+0.50000 0000 0000 00100008h00000 0000 0000 10000000h-0.51111 1111 1111 0000fff8h-10.1251111 1111 0101 1110ff5eh-25.06251111 1110 0110 1111fe6fh-551111 1100 1001 0000fc90h表2一部分温度对应值表 ds1
21、8b20完成温度转换后,就把测得的温度值与ram中的th、t字节内容作比较。若th或ttl,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只ds18b20同时测量温度并进行报警搜索。在64位rom的最高有效字节中存储有循环冗余检验码(crc)。主机rom的前56位来计算crc值,并和存入ds18b20的crc值作比较,以判断主机收到的rom数据是否正确。ds18b20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输入。器件
22、中还有一个计数门,当计数门打开时,ds18b20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应的一个基数值。减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门
23、仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。 另外,由于ds18b20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对ds18b20的各种操作按协议进行。操作协议为:初使化ds18b20(发复位脉冲)发rom功能命令发存储器操作命令处理数据。4.2.3ds18b20测温原理ds18b20低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。当计数门打开时,ds18b20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启
24、时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。此外,用斜率累加器补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测
25、温度值,4.3温度数值分析利用的单片机的一个io口,读取ds18b20的温度高位,温度低位。由上面的分析可知:温度高位的高5位的符号位、低3位是整数部分的高四位(整数部分的最高位永远为0),温度低温的高四位为整数部分的低四位,温度地位的低四位是小数部分用以下公式计算: 整数部分温度低位/16温度高位×16 小数部分十分位(温度低位&0x0f)×10/16由于ds18b30的集成度很高,使得设计的原理还是比较简单,设计的关键是了解ds18b20的时序,准确地获得温度高位和温度低位。5 电路制作与软件调试5.1硬件制作本次设计应用protel dxp绘制电路原理图,生成
26、pcb图,然后用雕刻机刻板,焊接电路元件,最后用程序调试系统功能。硬件电路主要由单片机最小系统、ds18b20为核心的传感器电路、液晶显示电路、报警电路、红外遥控电路和供电电路组成。单片机最小系统:提供一个上电复位高电平,和12mhz时钟振荡。ds18b20传感器电路:加电即可工作,data端加4.7k电阻作上拉电阻保证有足够大的灌拉电流。液晶显示电路:报警电路:利用5v蜂鸣器作报警提示。供电电路:利用7805组成线性稳压电源为整个系统供电。具体电路连接见附录sch电路原理图,硬件接线正确,单片机能构正常工作,硬件调试成功。5.2软件调试首先用proteus进行仿真,调试程序,然后在制作好的电
27、路板上调试程序。测温精度可取到小数点后三位。5.2.1主程序流程主程序说明:小于10度,亮黄色led,表示较凉,开蜂鸣器; 大于24度,亮绿色led,表示温度较热,开蜂鸣器; 遥控远程控制,改变上下限报警温度。主程序流程图如图10所示: 开始温度读取数值送显示判定按键摄氏变华氏< 10度开黄灯报警> 24度遥控信号初始化开绿灯报警改变上下限温度是否是是否否图10 主程序流程图 5.2.2子程序流程ds18b20工作流程图如图11所示;计算温度流程图如图12、图13所示;温度读取流程图如图14所示。y发ds18b20复位命令发跳过rom命令发读取温度命令读取操作,crc校验9字节完?
28、crc校验正?确?移入温度暂存器结束nny初始化调用显示子程序0.5 s到?初次上电读出温度值温度计算处理显示数据刷新发温度转换开始命令nyny图11 ds18b20工作流程图 开始温度零下?温度值取补码置“”标志计算小数位温度bcd值 计算整数位温度bcd值 结束置“+”标志ny 图12 计算温度流程图温度数据移入显示寄存器十位数0?百位数0?十位数显示符号百位数不显示百位数显示数据(不显示符号) 结束nnyy图13 显示数据刷新流程图图14 温度读取流程图温度读取程序开始复位ds18b20,等待大于480us发送避开rom信息指令发送转换命令,开始转换延时等待转换完成发送读取指令开始读取温
29、度,保存温度进制处理,化为十进制温度读取程序结束6 附录6.1课程设计心得体会本次课程设计,我们组成功完成了数字温度计的设计、制作与调试。三天的时间里,我们分工合作,组长全瑞负责写程序,我和景存负责电路部分(主要绘制电路、焊接电路),安荣负责刻板、包装。最后的调试工作我们共同参与,遇到了不少问题,大家从电路、程序中寻找出错的原因(负责检查自己负责的那部分,并作相应修改),经过讨论、思考找到解决的方法,使得最终用程序调试电路显示成功。在这里,很感谢与我共同奋斗的我们组的成员,尤其是景存,在我绘制电路原理图和pcb图时给予我很多帮助。这次课程设计,我尝试用protel dxp绘制电路图,因为我们在
30、讨论方案是确定了电路制作方面采用刻板方式。虽然以前有学过protel 99,但从未接触过dxp,所以还是去图书馆借了相关的书籍,边学边绘制。这次用dxp而不用99,主要是考虑到对以后学习fpga等会有更大的帮助。绘制电路图的过程中,的确遇到了不少问题。虽然这次设计的电路并不复杂,(主要由单片机最小系统、ds18b20测温电路、液晶显示电路、红外遥控电路、报警电路和供电电路组成),但里面的元件查找和封装很繁琐,导入pcb后有些封装太大,要做相应的替换。通过这次绘制电路,认识了不少元件的各种封装,更学会了刻板时用到的相关参数的设置,例如焊盘、布线等参数的设置。因为是第一次刻板,在设置这些参数时还请
31、教了我们513实验室的师兄,在这里非常感谢他们给予的帮助。导入pcb后,更头痛的是布局。刚开始尝试用自动布局功能,但是出来的效果不是很理想,有不少跳线,所以还是用手动布局。对应着电路原理图,初步调整元件的位置,在尽量避免线路的交叉。在布局过程中,景存和我一起思考讨论布局方案,可是第一次自动布线后,还是有不少跳线。我们研究自动布线时线路的走向,讨论怎样移动一下元件的位置能让这里的跳线消除,让线路有空间绕过去而不必跳线。另外结合刻板的实际(例如雕刻机的刀有些钝),线的大小和焊盘孔径的大小的修改也相当考验我。当安荣把第一块板刻出来时,发现线太细,有些几乎要断了,孔径太小,根本无法钻孔。就这样,我结合
32、师兄给予的建议和实际出来的效果修改了相关参数,最后终于有所成效。出来自己负责的绘制电路原理图和pcb图外,我还学会了雕刻电路板(例如如何定位雕刻刀、如何调整进刀的大小等),在电路调试中更是深有感慨。一个作品无论大小、复杂或简单,在软硬件相结合的过程中总会出现一些问题,要我们去调试,去检查,才能使结果更精确。而且调试时让我着实体会到前期电路制作部分很重要,电路制作得好,会减少调试中出现问题的可能性。这次课程设计我受益匪浅,也是进实验室以来的又一次不错的经历。团队协作做出来的作品,每一部分都不可或缺,既要分工又要合作,这样才能有更佳的效果。6.2系统电路原理图 6.3pcb图6.5程序代码*lcd
33、1602模块*/#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit rs=p27;/液晶使能端口sbit rw=p26;sbit e=p25;sbit p3_6=p36;sbit p1_0=p10;sbit p1_1=p11;/sbit p1_0 = p10;/sbit p1_1 = p11;void delay_ms(uchar ms) /延时 uint i,j; for(i=0;i<ms;i+) for(j=0;j<120;j+);void lcd_wcmd(uchar
34、 cmd) /液晶写指令rs=0;rw=0;e=0;p0=cmd;e=1;e=0;delay_ms(5);void lcd_wdat(uchar dat) /液晶写数据rs=1;rw=0;e=0;p0=dat;e=1;e=0;delay_ms(5);void lcd_dis(uchar post,uchar *p)lcd_wcmd(0x80 | post);/设置数据地址指针显示while(*p!='0')lcd_wdat(*p+);uchar code def_char0=0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00; /字符void lcd
35、_wcgram(uchar adress,uchar tmp)uchar i;for(i=0;i<8;i+)lcd_wcmd(adress+i);lcd_wdat(tmpi);void lcd_inti()delay_ms(15);lcd_wcmd(0x38);/16x2字符,5x7点阵,8位数据接口lcd_wcmd(0x38);lcd_wcmd(0x08);/关闭显示lcd_wcmd(0x01);/清屏lcd_wcmd(0x06);/设置光标工作方式lcd_wcmd(0x0c);/开显示,设置光标显示方式lcd_wcgram(0x48,def_char0); /载入用户自定义字符sbi
36、t dq=p37; /18b20数据管脚/*ds18b20延迟子函数(晶振12mhz )*/ void delay_18b20(unsigned int i)while(i-);void reset() uchar x=0; dq = 1; /dq复位 delay_18b20(8); /稍做延时 dq = 0; /单片机将dq拉低 delay_18b20(80); /精确延时 大于 480us dq = 1; /拉高总线 delay_18b20(14); x=dq; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay_18b20(20); unsigned char rbyt
37、e()uchar i=0;uchar dat = 0;for (i=8;i>0;i-) dq = 0; / 给脉冲信号 dat>>=1; dq = 1; / 给脉冲信号 if(dq) dat|=0x80; delay_18b20(4); return(dat); void wbyte(uchar dat) uchar i=0; for (i=8; i>0; i-) dq = 0; dq = dat&0x01; delay_18b20(5); dq = 1; dat>>=1; uchar rtempetuare(uchar tmp)uchar a=0,
38、b=0,temp,decimal;uint uival;reset();wbyte(0xcc); /跳过读序号列号的操作wbyte(0x44); /启动温度转?reset();wbyte(0xcc); /跳过读序号列号的操作wbyte(0xbe); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=rbyte(); /读取温度值低位b=rbyte(); /读取温度值高位temp=b;temp&=0xf0;if(temp) /负温if(a=0)a=a+1; /bit7向bit8位产生进位b=b+1; else a=a+1; b=b;tmp0='-'elsetmp0
39、=' 'temp=(b<<4)|(a>>4); /组合decimal=a&0x0f; /将小数点后的数据提取出来uival=decimal*625; tmp0='t'tmp1='='tmp2=0x20; /空格 tmp3=temp/100 | 0x30; /取百位tmp4=temp%100/10 | 0x30; /取十位tmp5=temp%100%10 | 0x30; /取个位tmp6=0x2e; /小数点tmp7=uival/1000 | 0x30; /十分位tmp8=uival%1000/100 | 0x30;
40、 /百分位tmp9=uival%1000%100/10 | 0x30; /千分位tmp10=uival%1000%100%10 | 0x30; /万分位tmp11=0x20; /空格tmp12=0x01; /字符tmp13='0'return temp; /十进制温度/*红外解码模块*/#define c(x) (x*110592/120000)sbit ir_pin=p32; /红外数据管脚unsigned char ir_buf4; /用于保存解码结果/=unsigned int ir_get_low() /计数器1,用于解码延时tl1=0;th1=0;tr1=1;whil
41、e(!ir_pin && (th1&0x80)=0);tr1=0;return th1*256+tl1;/=unsigned int ir_get_high() /计数器1,用于解码延时tl1=0;th1=0;tr1=1;while(ir_pin && (th1&0x80)=0);tr1=0;return th1*256+tl1;char jianche() /解码程序char i,j;uint temp;restart:while(ir_pin);temp=ir_get_low();if(temp<c(8500) | temp>c(
42、9500) goto restart;/引导脉冲低电平9000temp=ir_get_high();if(temp<c(4000) | temp>c(5000) goto restart;/引导脉冲高电平4500for(i=0;i<4;i+) /4个字节for(j=0;j<8;j+) /每个字节8位temp=ir_get_low();if(temp<c(200) | temp>c(800) goto restart;temp=ir_get_high(); if(temp<c(200) | temp>c(2000) goto restart;ir_
43、bufi>>=1;if(temp>c(1120) ir_bufi|=0x80;return ir_buf2&0x0f; /所得码/*时钟模块*/extern uchar mintx; /最小报警温度extern uchar maxtx; /最大报警温度uchar storet14; /实际温度的显示长度uchar wendu; void t0isr() interrupt 1 /t0中断(50ms),中断读温度static uchar timec = 0;th0=0x3c;tl0=0xb0;if(10=+timec) / (50*n)毫秒timec=0;wendu=r
44、tempetuare(storet);lcd_dis(0x42, storet); /显示实际温度if(wendu <= mintx)p1_0= 0;p3_6=0; /小于最小温度,报警elsep1_0= 1;p3_6=1; if(wendu>=maxtx) /大于最高温度,报警p1_1= 0;p3_6=0;elsep1_1= 1;p3_6=1; void inti_timer() /初始化ie|=0x82; /允许定时器0中断ip|=0x02; /设置定时器0的优先级tmod=0x01; /选用定时器0th0=0x3c; /50ms定时tl0=0xb0;tr0=1; /启动定时器
45、0/*主程序模块 */uchar mintx = 10; /最小报警温度初始化uchar maxtx = 24; /最大报警温度初始化char mint7="min:10"char maxt7="max:24"main()uchar i;lcd_inti(); /lcd初始化inti_timer();tmod=0x11; /设置计数器寄存器 lcd_dis(0x01, mint); /显示最小报警温度lcd_dis(0x0a, maxt); /显示最大报警温度while(1)for(i=4; i!=6; +i)minti=jianche();minti
46、|= 0x30;lcd_dis(0x01, mint);mintx=(mint4-0x30)*10 + (mint5-0x30);for(i=4; i!=6; +i)maxti=jianche();maxti |= 0x30;lcd_dis(0x0a, maxt);maxtx=(mint4-0x30)*10 + (mint5-0x30); 7 参考文献1.张国雄等编.测控电路.机械工业出版社,2001.8.2.赵负图等编.现代传感器集成电路.人民邮电出版社,2000.1.3.刘征宇等编.线性放大器应用手册.福建科学技术出版社,2005.1.4.蔡锦福等编.运算放大器原理与应用.科学出版社,20
47、05.7.5.自编.测控电路设计型实验任务书.6. 谷树忠等编.protel 2004实用教程原理图与pcb设计.电子工业出版社,2007.2.7. 袁鹏平等编.protel dxp电路设计实用教程.化学工业出版社,2007.18 致谢这次课程设计,首先要感谢我们组的每一位成员。感谢组长全瑞给予我锻炼的机会,把绘制电路部分交给我;感谢景存和安荣给予的帮助。此外,还要感谢513实验室的晓明师兄在刻板方面给予的建议和指导,感谢老师给予我们这次锻炼工程设计和实践动手能力的机会。由于时间原因,我们的作品还有很多可以完善的地方,但整个过程我们受益匪浅。负责硬件方面的工作让我真切感受到硬件的制作要不断积累
48、经验,硬件制作得好,对于软件调试有重要意义,能减少不少问题。另外,我必须感谢一直以来给予我帮助和支持的老师、师兄和同学。无论是在课程方面还是在实验室的电子制作方面,他们都给予了我不少建议和引导。在实验室参与电子方面的制作和比赛的一年里,学到了很多知识,也提高了自己的实践动手能力和独立思考能力。运用在实验室接触到的知识和课堂所学知识,我才得以顺利完成此次课程设计的任务。最后,要感谢学院给予我们提高综合应用理论知识解决实际问题的学习平台。原文已完。下文为附加文档,如不需要,下载后可以编辑删除,谢谢!施工组织设计本施工组织设计是本着“一流的质量、一流的工期、科学管理”来进行编制的。编制时,我公司技术发展部、质检科以及项目部经过精心研究、合理组织、充分利用先进工艺,特制定本施工组织设计。一、 工程概况:西夏建材城生活区27
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教学反思如何促进学生主动学习试题及答案
- 幼儿园数学问题解决试题及答案
- 新能源汽车的政策导向分析试题及答案
- 月基础理论试题及答案
- 2025年入党培训测试题及答案(一)
- 物流金融服务在供应链金融创新中的应用场景与风险控制研究
- 绞车运输工试题及答案
- 工业催化考试题及答案
- 教育大数据在2025年教育行业数据驱动战略规划中的应用研究
- 环境监测面试真题及答案
- 模拟退火与数论-深度研究
- 驾照考试科目一试题900题(含标准答案)022506
- 水利项目立项报告
- 幼儿园初级保育员考试题库(附答案)
- 【MOOC】航空燃气涡轮发动机结构设计-北京航空航天大学 中国大学慕课MOOC答案
- 家政服务人员岗前培训
- 国家生物安全培训课件
- 专题11 名著阅读之《童年》(考题猜想)(期中真题速递20题)(含答案解析)
- TSGD7002-2023-压力管道元件型式试验规则
- 无人机组装与调试 课件全套 项目1-3 无人机组装调试基础、多旋翼无人机组装与调试、垂直起降无人机组装调试
- (完整版)第八章财务报表分析习题及答案
评论
0/150
提交评论