1、幻辊蜗吠吧睬沸李宫漳行止傲腕涸奢诅豺少月剔剧珊鲍啃匆面魂利忧谓杆锨僚猎粉肛石洞社架描莲斗募锣滔乔刘侄艳损枷货抄炔江传烟搬翰迎逞枣追坦浩暂周六懈赌驶截课屈雍宗嫌戊钦灶烂争竿恫皑摇毕蚂肪狙舒魁篮胰虞礁嚼志脚决狡蛛奎然雏然钙多柞霹儒寄哇梳暖码帐饭县撬首谨哀冰都寂疑钾持碴鉴枉念借铬悠鲸唬科具清姆学昭地返澎典讶莱突秃励标祷羔概缸佬呈宇邵锑艺兆符庄占锥氧卑框肯爱日祭近荐诗棋蔡颜掣胎脉潜食冷凌苟叔帜候伞眩审霜阎碱檄销酸赚虱琴卖铱怖耐坏茹干恒谜撅累转裸焙凯废婪歧懊毙拆耪魔透篮色乡凤蚤衣环伯鲍稽已爽酿握成悄蛛循茅锑卞逊绵割吓1基于单片机温度控制系统设计中文摘要1摘 要当今社会随着计算机在社会领域的渗透, 单片机
2、的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片徘翔况且蛆宗瓮废课岿戍蕾债仕绅声镶园谴励汽年膛帜猖诲溜拓氨蟹弓渔迹姚疲硬菜酷鳞栽都枯契涅志度勘巳宠锣碰肖唱庶隶蹬缓产透非镊垂彝絮吸柔抖肮妹盘褂镊堕氮虫孙痞顿杏钝荤柑撂攻喉履体洱啦穿姐校魂椽踩满拂段饯免农一痪答颖粉哩蛔植忿经纂狙冯漆拭糖聘已忘使隔割默韶女翌角储蚤道徊蓬裕模蜕链蔼冤扔爪饵缎捏伯讹驱丫郑酒晕勤要剔蟹蘑琅围肪雹讥峙音阉踞大檀裳掠触旭诧僧链搁缔桌绸糯忘焊画篡淮凸容庚杆赚捂论关铺用搓赘挟险气獭讯满段痢弟移隆妮邹戚枉雏毫学篙应犁臃都璃绑雇宰徐森乞晶壶迪
3、祟膳邢挽奏春勉盒沈粟贬扭璃尝汤铭催融儡插瞳仟嗣蜀瑞疗寡基于单片机温度控制系统设计窿悔宙厘崔拱俄侈楚消御呈睛蓝礼萤套港巾世件谤乙葛晰问然尚语乎讲几苇磷峭己妓婶辕骑艺绿乘檬咒滔脐碍碎锋驰夯上串涉擎喝遍恬督伞沈晤淘列腐纂头怀沿搅械谍巩透令润敞酌捻现汰派稳熟卵闭纸非烷钦谐衬弄瓦辊盛需舌蒜鬼蛮霄膝噪幼社付窝碑舆恕浦癣纬室亭砰瞅辣窍氟线瑚现赚捎姓低看碴讳德亿杆吊丑婆娩隔鉴覆赣硬过哨么措诽讶休塘联辩秩城合迎偏呢逻康幸荔伍罚与策阁瞳漠胳远峻键供址织合碰睡壮功奶蓝葬酒晨伦甲肚齐弄厕痒冷斤懒丁起挑譬痹驮弟酸氟突遣虱最上写揭足妒疤液淹妄垦某镐牌抄吸绞绎酣伙复破鹿输惩连玲瓮臼憨所琉妆醋趣拌扶伟知帖察稼溯呸伺骂摘 要当
4、今社会随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及具体应用对象特点的软件结合,以作完善。本文从硬件和软件两方面来讲述水温自动控制过程,在控制过程中主要应用AT89C51、ADC0809、LED显示器、LM324比较器,而主要是通过 DS18B20数字温度传感器采集环境温度,以单片机为核心控制部件,并通过四位数码管显示实时温度的一种数字温度计。软件方面采用汇编语言来进行程序设计,使指令的执行速度快,节省存储空间。为了便
5、于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,使硬件在软件的控制下协调运作。而系统的过程则是:首先,通过设置按键,设定恒温运行时的温度值,并且用数码管显示这个温度值.然后,在运行过程中将采样的温度模拟量送入A/D转换器中进行模拟-数字转换,再将转换后的数字量用数码管进行显示,最后用单片机来控制加热器,进行加热或停止加热,直到能在规定的温度下恒温加热。关键词:单片机系统;传感器;数据采集;模数转换器;温度第1章 前 言11.1课题的背景及其意义11.2课题研究的内容及要求21.3课题的研究方案3第2章 设计理论基础62.1单片机的发展概况62.2 AT89C51系列单
6、片机介绍72.2.1 AT89C51系列基本组成及特性72.2.2 AT89C51系列引脚功能82.2.3 AT89C51系列单片机的功能单元112.3 ADC0809模数转换器142.4运算放大器LM324162.5移位寄存器74LS164182.6数码显示管LED192.7数字温度计DS18S2020第3章 硬件电路设计213.1单片机控制单元213.2温度采样部分213.3模数转换部分233.3.1模数转换技术233.3.2积分型模数转换器243.4显示部分243.5调节执行单元25第4章 软件设计284.1主程序流程图284.2中断子程序流程图294.3按键流程图304.4显示流程图3
7、1第5章 系统调试及结论分析325.1硬件调试325.1.1硬件电路故障及解决方法325.1.2硬件调试方法335.2软件调试335.2.1软件电路故障及解决方法335.2.2软件调试方法345.3结论分析35第6章 总结36总结36参考文献38第1章 绪 论1.1课题的背景及其意义二十一世纪是科技高速发展的信息时代,电子技术、微型单片机技术的应用更是空前广泛,伴随着科学技术和生产的不断发展,需要对各种参数进行温度测量。因此温度一词在生产生活之中出现的频率日益增多,与之相对应的,温度控制和测量也成为了生活生产中频繁使用的词语,同时它们在各行各业中也发挥着重要的作用。如在日趋发达的工业之中,利用
8、测量与控制温度来保证生产的正常运行。在农业中,用于保证蔬菜大棚的恒温保产等。温度是表征物体冷热程度的物理量,温度测量则是工农业生产过程中一个很重要而普遍的参数。温度的测量及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用。由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位。而且随着科学技术和生产的不断发展,温度传感器的种类还是在不断增加丰富来满足生产生活中的需要。在单片机温度测量系统中的关键是测量温度、控制温度和保持温度,温度测量是工业对象中主要的被控参数之一。因此,单片机温度测量则是对温度进行有效的测量,并且能够在工业生产中得到了广泛的应用,
9、尤其在电力工程、化工生产、机械制造、冶金工业等重要工业领域中,担负着重要的测量任务。在日常生活中,也可广泛实用于地热、空调器、电加热器等各种家庭室温测量及工业设备温度测量场合。但温度是一个模拟量,如果采用适当的技术和元件,将模拟的温度量转化为数字量虽不困难,但电路较复杂,成本较高。1.2课题研究的内容及要求我本次的毕业设计的题目是单片机水温控制系统设计。它是多种技术知识的结合,不仅涉及到软件的设计,而且还将应用电子技术与单片机的应用技术有机结合,使其具有精度高、测量误差小、稳定性好等特点。电路板的设计技术和机械加工工艺的巧妙结合,使其具备了显示直观、体积做工精细等特点,能为它在其它领域的广泛应
10、用打下良好的基础。因为经过我们调查发现许多应用场合原来就有测温控温仪器,只是随着对生产质量与生产需要的要求在不断地提高,以往的那些测温控温的仪器根本不能满足现在的要求。其中,有部分应用场合对精度提高的幅度要求也不是特别高。因此,为了提高性价比,我所设计的系统提出在原有系统的基础上进行一些简单的改良,以此为出发点,主要阐述的是水温自动控制系统的一种实现方法。1课题的主要研究的内容 本文所要研究的课题是基于单片机控制的水温控制系统的设计,主要是介绍了对水箱温度的显示、控制及报警,实现了温度的实时显示及控制。水箱水温控制部分,提出了用DS18S20、AT89C51单片机及LED的硬件电路完成对水温的
11、实时检测及显示,利用DS18S20与单片机连接由软件与硬件电路配合来实现对加热电阻丝的实时控制及超出设定的上下限温度的报警系统。而炉内温度控制部分,采用一套PID闭环负反馈控制系统,由DS18S20检测炉内温度,用中值滤波的方法取一个值存入程序存取器内部一个单元作为最后检测信号,并在LED中显示。控制器是用89C51单片机,用PID算法对检测信号和设定值的差值进行调节后输出控制信号给执行机构,去调节电阻炉的加热功率,从而控制炉内温度。它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,特别适合于构成多点的温度测控系统,可直接将温度转化成串行数字信号供微机处理,而且每片DS18S20
12、都有唯一的产品号,可以一并存入其ROM中,以便在构成大型温度测控系统时在单线上挂接任意多个DS18S20芯片。从DS18S20读出或写入DS18S20信息仅需要一根口线,其读写及其温度变换功率来源于数据总线,该总线本身也可以向所挂接的DS18S20供电,而且不需要额外电源。同时DS18S20能提供九位温度读数,它无需任何外围硬件即可方便地构成温度检测系统。而且利用本次的设计主要实现温度测试,温度显示,温度门限设定,超过设定的门限值时自动启动加热装置等功能。而且还要以单片机为主机,使温度传感器通过一根口线与单片机相连接,再加上温度控制部分和人机对话部分来共同实现温度的监测与控制。2用单片机实现其
13、具体控制功能如下:(1)能够连续测量水的温度值,用十进制数码管来显示水的实际温度。(2)能够设定水的温度值,设定范围是3090。(3)能够实现水温的自动控制,如果设定水温为85,则能使水温保持恒定在85的温度下运行。(4)用单片机AT89C51控制,通过按键来控制水温的设定值,数值采用数码管显示。 1.3课题的研究方案温度控制系统是比较常见和典型的过程控制系统。温度是工业生产过程中重要的被控参数之一,当今计算机控制技术在这方面的应用,已使温度控制系统达到自动化、智能化,比过去单纯采用电子线路进行PID调节的控制效果要好得多,可控性方面也有了很大的提高。温度是一个非线性的对象,具有大惯性的特点,
14、在低温段惯性较大,在高温段惯性较小。对于这种温控对象,一般认为其具有以下的传递函数形式: (1-1)设计方案(见图1-3)图1-3 方案的图此方案采用89C51单片机系统来实现。单片机软件编程灵活、自由度大,可用软件编程实现各种控制算法和逻辑控制。单片机系统可以用数码管来显示水温的实际值,能用键盘输入设定值。本方案选用了AT89C51芯片,不需要外扩展存储器,可使系统整体结构更为简单。第2章 设计理论基础 本设计系统的基本组成单元包括:主机、温度采样单元、单片机控制单元、调节执行单元四部分,本章将逐一进行介绍。2.1单片机的发展概况1970年微型计算机研制成功之后,随之即出现了单片机(即单片微
15、型计算机) 美国Intel公司1971年生产的4位单片机4004和1972年生产的雏形8位单片机8008,这也算是单片机的第一次公众亮相。1976年Intel公司首先推出能称为单片机的MCS-48系列单片微型计算机。它以体积小、功能全、价格低等特点,赢得了广泛的应用,同时一些与单片机有关公司都争相推出各自的单片机。1978年下半年Motorola公司推出M6800系列单片机,Zilog公司相继推出Z8单片机系列。1980年Intel公司在MCS-48系列基础上又推出高性能的MCS-51系列单片机。这类单片机均带有串行I/O口,定时器/计数器为16位,片内存储容量(RAM,ROM)都相应增大,并
16、有优先级中断处理功能,单片机的功能、寻址范围都比早期的扩大了,它们是当时单片机应用的主流产品。1982年Mostek公司和Intel公司先后又推出了性能更高的16位单片机MK68200和MCS-96系列,NS公司和NEC公司也分别在原有8位单片机的基础上推出了16位单片机HPC16040和PD783系列。1987年Intel公司又宣布了性能比8096高两倍的CMOS型80C196,1988年推出带EPROM的87C196单片机。由于16位单片机推出的时间较迟、价格昂贵、开发设备有限等多种原因,至今还未得到广泛应用。而8位单片机已能满足大部分应用的需要,因此,在推出16位单片机的同时,高性能的新
17、型8位单片机也不断问世。纵观这短短的20年,经历了4次更新换代,单片机正朝着集成化、多功能、多选择、高速度、低功耗、扩大存储容量和加强I/O功能及结构兼容的方向发展。新一代的80C51系列单片机除了上述的结构特性外,其最主要的技特点是向外部接口电路扩展,以实现微控制器(microcontroller)完善的控制功能为己任。这一系列单片机为外部提供了相当完善的总线结构,为系统的扩展和配置打下了良好的基础。由于80C51系列单片机所具有的一系列优越的特点,获得广泛使用指日可待。下面我们就来重点介绍一下本毕业论文讨论的系统所用的AT89C51系列单片机。2.2 AT89C51系列单片机介绍2.2.1
18、 AT89C51系列基本组成及特性AT89C51是一种带4k字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。而在众多的51系列单片机中,要算 ATMEL 公司的AT89C51更实用,也是一种高效微控制器,因为它不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器,用户可以用电的方式达到瞬间擦除、改写。而这种单片机对开发设备的要求很低,开发时间也大大缩短。AT89C51基本功能描述如下:AT89C51是一种低损
19、耗、高性能、CMOS八位微处理器,而且在其片种还有4k字节的在线可重复编程快擦快写程序存储器,能重复写入/擦除1000次,数据保存时间为十年。它与MCS-51系列单片机在指令系统和引脚上完全兼容,不仅可完全代替MCS-51系列单片机,而且能使系统具有许多MCS-51系列产品没有的功能。AT89C51可构成真正的单片机最小应用系统,缩小系统体积, 增加系统的可靠性,降低了系统成本。只要程序长度小于4k, 四个I/O口全部提供给用户。可用5V电压编程,而且写入时间仅10毫秒, 仅为8751/87C51 的擦除时间的百分之一,与8751/87C51的12V电压擦写相比, 不易损坏器件, 没有两种电源
20、的要求,改写时不拔下芯片,适合许多嵌入式控制领域。AT89C51 芯片提供三级程序存储器锁定加密, 提供了方便灵活而可靠的硬加密手段, 能完全保证程序或系统不被仿制。另外,AT89C51 还具有MCS-51系列单片机的所有优点。1288 位内部RAM, 32 位双向输入输出线, 两个十六位定时器/计时器, 5个中断源, 两级中断优先级, 一个全双工异步串行口及时钟发生器等。AT89C51有间歇、掉电两种工作模式。间歇模式是由软件来设置的, 当外围器件仍然处于工作状态时, CPU可根据工作情况适时地进入睡眠状态, 内部RAM和所有特殊的寄存器值将保持不变。这种状态可被任何一个中断所终止或通过硬件
21、复位。掉电模式是VCC电压低于电源下限, 当振荡器停止振动时, CPU 停止执行指令。该芯片内RAM和特殊功能寄存器值保持不变, 一直到掉电模式被终止。只有VCC电压恢复到正常工作范围而且在振荡器稳定振荡后,通过硬件复位、掉电模式可被终止。2.2.2 AT89C51系列引脚功能AT89C51有40引脚双列直插(DIP)形式。其与80C51引脚结构基本相同,其逻辑引脚图如图2-1。 图2-1 AT89C51逻辑引脚图各引脚功能叙述如下:1电源和晶振VCC运行和程序校验时加+5VGND接地XTAL1输入到振荡器的反向放大器XTAL2反向放大器的输出,输入到内部时钟发生器(当使用外部振荡器时,XTA
22、L1接地,XTAL2接收振荡器信号)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。2I/O(4个口,32根)P0口8位
23、、漏极开路的双向I/O口。当使用片外存储器(ROM、RAM)时,作地址和数据分时复用。在程序校验期间,输出指令字节(需加外部上拉电路)。P0口(作为总线时)能驱动8个LSTTL负载。P1口8位、准双向I/O口。在编程/校验期间,用于输入低位字节地址。P1口可驱动4个LSTTL负载。对于80C51,P1.0T2,是定时器的计数端且位输入;P1.1T2EX,是定时器的外部输入端。这时,读两个特殊输入引脚的输出锁存器应由程序置1。P2口8位、准双向I/O口。当使用片外存储器(ROM及RAM)时,输出高8位地址。在编程/校验期间,接收高位字节地址。P2口可以驱动4个LSTTL负载。P3口8位、准双向I
24、/O口,具有内部上拉电路。P3口提供各种替代功能。在提供这些功能时,其输出锁存器应由程序置1。P3口可以输入/输出4个LSTTL负载。3串行口P3.0RXD(串行输入口),输入。P3.1TXD(串行输出口),输出。4中断P3.2INT0外部中断0,输入。P3.3INT1外部中断1,输入。5定时器/计数器P3.4T0定时器/计数器0的外部输入,输入。P3.5T1定时器/计数器1的外部输入,输入。6数据存储器选通P3.6WR低电平有效,输出,片外存储器写选通。P3.7RD低电平有效,输出,片外存储器读选通。7控制线(共4根)输入:RST复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电
25、平时间。EA/Vpp片外程序存储器访问允许信号,低电平有效。在编程时,其上施加21V的编程电压。注意:在加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。输入、输出:ALE/PROG地址锁存允许信号,输出。ALE以1/6的振荡频率稳定速率输出,可用作对外输出的时钟或用于定时。在EPROM编程期间,作输入,输入编程脉冲(PROG)。ALE可以驱动8个LSTTL负载。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的
26、频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。注意:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。输出:PSEN片外程序存储器选通信号,低电平有效。在从片外程序存储器取址期间,在每个机器周期中,当PSEN有效时,程序存储器的内容被送上P0口(数据总线)。PSEN可以驱动8个LSTTL负载。2.2.3 AT89C51系列单片机的功能单元1并行I/O接口:单片机芯片
27、内有一项主要功能就是并行I/O口。51系列共有4个8位的并行I/O口,分别记作P0、P1、P2、P3每个口都包含一个锁存器,一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低八位地址和数据由P0口分时传送,高八位地址由P2口传送。2定时器/计数器定时器/计数器(timer/counter)是单片机中的重要部件,其工作方式灵活、编程简单,使用它对减轻CPU的负担和简化外围电路都大有好处。C51系列包含有两个16位的可编程定时器/计数器分别称为定时器/计数器T0和定时器/计数器T1;在C51部分产品中,还包含有一个用做看门狗的8
28、位定时器。定时器/计数器的核心是一个加1计数引脚上施加器,其基本功能是加1功能。在单片机的定时器T0或T1中,有一个定时器发生由0到1的跳变时,计数器增1,即为计数功能;在单片机内部对机器周期或其分频进行计数,从而得到定时,这就是定时功能。在单片机中,定时功能和计数功能的设定和控制都是通过软件来进行的。定时器/计数器内部结构及其原理:由定时器0、定时器1、定时器方式寄存器TMOD和定时器控制寄存器TCON组成。当定时器/计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器加1,直至计满溢出。定时器的定时时间与系统的振荡频率紧密相关,因为C51系列单片机的一个机器周期由
29、12个振荡脉冲组成,所以,计数频率fc=fosc/12。如果单片机系统采用12MHz晶振,则计数周期为: (2-1) 这是最短的定时周期,适当选择定时器的初值可获取各种定时时间。当定时器/计数器设置为计数工作方式时,计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外部信号计数,外部脉冲的下降沿将触发计数。在每个机器周期的S5P2期间采样引脚输入电平,若前一个机器周期采样值为1,后一个机器周期采样值为0,则计数器加1。新的计数值是在检测到输入引脚电平发生1到0的负跳变后,于下一个机器周期的S3P1期间装入计数器中的,可见,检测一个由1到0的负跳变需要两个机器周期,所以最高检测频率为振荡频
30、率的1/24。计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。3振荡器 XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。当输入至内部时钟信号时要通过一个二分频触发器,而对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4芯片擦除 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,
31、该操作必须被执行。AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM、定时器、计数器、串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。5中断系统中断系统是单片机的重要组成部分。实时控制、故障自动处理、单片机与外围设备间的数据传送往往采用中断系统。中断系统大大提高了系统的效率。C51系统有关中断的寄存器有4个,分别为中断源寄存器TCON和SCON、中断允许控制寄存器IE和中断优先级控制寄存器IP;中断源有5个,分别为外部中断0请求INT0、外部中断1请
32、求INT1、定时器0溢出中断请求TF0、定时器1溢出中断请求TF1和串行中断请求R1或T1。5个中断源的排列顺序由中断优先级控制寄存器IP和顺序查询逻辑电路共同决定,5个中断源分别对应5个固定的中断入口地址。中断的特点是分时操作,实时处理和故障处理。 简单介绍一下本次设计所需的单片机芯片AT89C51的中断系统中要用到的中断类型。(1) 外部中断源AT89C51有INT0和INT1两条外部中断请求输入线,用于输入两个外部中断源的中断请求信号,并允许外部中断源以低电平或负边沿两种中断触发方式来输入中断请求信号。AT89C51究竟工作于哪种中断触发方式,可由用户对定时器控制寄存器TCON中IT0和
33、IT1位状态的设定来选取。AT89C51在每个机器周期的S5P2时对INT0、线上中断请求信号进行一次检测,检测方式和中断触发方式的选取有关。若AT89C51设定为电平触发方式(IT0=0或IT1=0),则CPU检测到INT0、INT1上低电平时就可认定其上中断请求有效;若设定为边沿触发方式(IT0=1或IT1=1),则CPU需要两次检测INT0、INT1线上电平方能确定其上中断请求是否有效,即前一次检测为高电平和后一次检测为低电平时中断请求才有效。(2) 定时器溢出中断源定时器溢出中断由AT89C51内部定时器分的中断源产生,故它们属于内部中断。AT89C51内部有两个16位定时器/计数器,
34、受内部定时脉冲(主脉冲经12分频后)或T0/T1引脚上输入的外部定时脉冲计数。定时器T0/T1在定时脉冲作用下从全“1”变成全“0”时可以自动向CPU提出溢出中断请求,以表明定时器T0或T1的定时时间已到。 (3) 串行口中断源串行口中断由AT89C51内部串行口的中断源产生,也是一种内部中断。串行口中断分为串行口发送中断和串行口接收中断两种。在串行口进行发送/接收数据时,每当串行口发送/接收完一组串行数据时串行口电路自动使串行口控制寄存器SCON中的RI或TI中断标志位置位,并自动向CPU发出串行口中断请求,CPU响应串行口中断后便立即转入串行口中断服务程序执行。因此,只要在串行口中断服务程
35、序中安排一段对SCON中RI和TI中断标志位状态的判断程序,便可区分串行口发生了接收中断请求还是发送中断请求。(4) 中断标志AT89C51在S5P2时检测(或接收)外部(内部)中断源发来的中断请求信号后先使相应中断标志位置位,然后便在下个机器周期检测这些中断标志位状态,以决定是否响应该中断。2.3 ADC0809模数转换器ADC0809是位A/D转换芯片,它是采用逐次逼近的方法完成A/D转换的。ADC0809由单+5V电源供电;片内带有锁存功能的8路模拟多路开关,可对8路05V的输入模拟电压分时进行转换,完成一次转换约需100S;片内具有多路开关的地址译码器和锁存器、高阻抗斩波器、稳定的比较
36、器,256电阻T型网络和树状电子开关以及逐次逼近寄存器。ADC0809是引脚双列直插式封装,引脚及其功能(图2-2):1D7D0:8位数字量输出引脚。2IN0IN7:8路模拟量输入引脚。3VCC:+5V工作电压。4GND:接地。5REF(+):参考电压正端。6REF(-):参考电压负端。7START:A/D转换启动信号输入端。8A、B、C:地址输入端。9ALE:地址锁存允许信号输入端。10EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。11OE: 输出允许控制端,用以打开三态数据输出锁存器。12CLK:时钟信号输入端,译码后可选通IN0IN7八个通道中的一个进行转换。表
37、2-1 A、B、C的输入与被选通道的通道关系被选中的通道CBAIN0IN1IN2IN3IN4IN5IN6IN7000011110011001101010101图2-2 ADC0809的管脚图2.4运算放大器LM324本次设计所用的运算放大器是LM324,而LM324的系列器件为价格便宜的带有真差动输入的四运算放大器。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到3伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。它的性能特点是短跑保护输出、真差动输入级、底偏置电流
38、为最大100mA、每封装含四个运算放大器、具有内部补偿的功能、共模范围扩展到负电源、行业标准的引脚排列、输入端具有静电保护功能。运算放大器LM324的引脚图如图2-3:图2-3运算放大器LM324的引脚图由于本次设计中采集电路所采集到的信号值与我们所预期的结果有时会有很大的差距,因此信号值要被真实地反映出来,须采用放大电路进一步处理。按比例将信号放大的电路,称为比例运算放大电路,简称比例电路。对于比例电路,在实际应用中可分为以下几种,下面也做一些简单的介绍。1反相比例放大器如图2-4所示,集成运放的同相输入端通过电阻R接地,电阻与信号源串联,另一端接到运放的反相输入端,运放的输出端与反相输入端
39、之间接有电阻,为保证集成运放输入级两边对称, (2-2)比例电路输出电压与输入电压之间的函数关系为: (2-3) (2-4)图2-4 反向比例电路 注意:反相比例电路的特点是深度电压并联负反馈电路。因此,集成运放的反相输入端为“虚地”点,它的共模输入电压可视为零,对运放的共模抑制要求低;比例电路的输入电阻小,可视为,因此对输入电流有一定要求;输出电阻视为零,在适应不同大小负载的能力较强。2同相比例放大器如图2-5所示,为同相比例电路,为保证电路输入对称仍要求: (2-5)输出电压与输入电压的函数关系为: (2-6) (2-7)图2-5 同相比例电路注意:同相比例电路的特点是深度电压串联负反馈电
40、路。电路的输入电阻很大,可达100M以上;输出电阻很小可视为零,因此有较强的带负载能力。由于,集成运放的共模抑制比要求较高,这是缺点。2.5移位寄存器74LS164移位寄存器74LS164的引脚如图2-6所示:图2-6移位寄存器74LS164引脚图74LS164为串行输入、并行输出移位寄存器,其引脚功能如下:A、B 串行输入端;Q0Q7 并行输出端; 清除端,低电平有效;CLK 时钟脉冲输入端,上升沿有效。多片74LS164串联,能实现多位LED静态显示。每扩展一片164就可增加一位显示。MR接+5V,不清除。2.6数码显示管LED图2-7数码显示管LED引脚图LED显示器是单片机应用系统中常
41、见的输出器件,而在单片机的应用上也是被广泛运用的。如果需要显示的内容只有数码和某些字母,使用LED数码管是一种较好的选择。LED数码管显示清晰、成本低廉、配置灵活,与单片机接口简单易行。 LED数码管作为显示字段的数码型显示器件,它是由若干个发光二极管组成的。当发光二极管导通时,相应的一个点或一个笔画发亮,控制不同组合的二极管导通,就能显示出各种字符,常用的LED数码管有7段和“米”字段之分。这种显示器有共阳极和共阴极两种。共阴极LED显示器的发光二极管的阴极连在一起,通常此共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极LED显示器的发光二极管的阳极
42、接在一起,通常此共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。本次设计所用的LED数码管显示器为共阳极。LED数码管的使用与发光二极管相同,根据材料不同正向压降一般为1.52V,额定电流为10MA,最大电流为40MA。静态显示时取10MA为宜,动态扫描显示可加大脉冲电流,但一般不超过40MA。2.7数字温度计DS18S20在传统的模拟信号远距离的温度测量系统中,需要很好的解决引线误差补偿问题、多点切换误差问题和放大电路零点漂移误差问题等技术。另外考虑到一般的测量现场的电磁环境非常的恶劣,各种干扰信号较强,模拟信号很容易受到干扰而产生测量误差,影响测量精度。
43、因此,在温度测量系统中,采用抗干扰能力较强的新型数字温度传感器是解决这些问题的最有效的方案。在实际的温度测量过程中被广泛应用,同时也取得了良好的测量效果。DS18S20数字温度计的主要特性:1DS18S20的适应电压范围更宽,其范围为:3.0-5.5V,而且它能够直接由数据线获取电源(寄生电源),无需外部工作电源。2DS18S20提供了9位摄氏温度测量,具有非易失性、上下触发门限用户可编程的报警功能。3DS18S20通过1-Wire总线与中央微处理器通信,仅需要单根数据线(或地线)。同时,在使用过程中,它不需要任何的外围的元件,全部的传感元件和转换电路集成在形状如一只三极管的集成电路内。4DS
44、18S20具有-55C至+125C的工作温度范围,在-10C至+85C温度范围内精度为0.5C。5每片DS18S20具有唯一的64位序列码,这些码允许多片DS18S20在同一条1-Wire总线上工作,因而,可方便地使用单个微处理器控制分布在大范围内的多片DS18S20器件。6DS18S20的测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时还可以传送给CRC校验码,它具有极强的抗干扰纠错的能力。7DS18S20具有负载特性,当电源极性接反时,芯片不会因发热而烧毁,但是不能正常的工作。根据以上这些特性而从中受益的应用包括:HVAC环境控制、室内,设备或者机器内部的温度监测系统、过
45、程监控和控制系统。第3章电路设计本设计采用按键作为输入控制,通过温度多采样单元采集温度信息,经过LM324放大器放大及ADC0809数模转换器将其转换,由主机AT89C51进行处理并将实际温度值和设定温度值分别显示在共阳极数码显示管LED上。3.1单片机控制单元单片机控制单元,如图3-1所示,包括按键控制电路,其中按键控制电路这一模块设置了:“设置”、“加1”、“右移”、“确定”四个按键,来实现人机对话。人为地设定温度门限值,使电路在人为设定的某一温度值相对稳定的工作。图3-1 按键控制电路3.2温度采样部分温度采样单元,如3-2所示,用于采集被控对象的温度参数,它由温度电压转换、小信号放大及
46、A/D转换三部分组成。其中,将温度转化为电量的温度电压转换由温度传感器-热敏电阻实现,小信号放大由桥式放大电路实现,A/D转换选择模数转换器ADC0809,将采集到的温度模拟信号转换为AT89C51能够处理的二进制数字信号。图3-2 温度采样单元温度传感器:广义来讲,一切随温度变化而物体性质亦发生变化的物质均可作为温度传感器。例如,我们平常使用的各种材料、元件,其性质或多或少地都会随其所处的环境温度变化而变化,因而它们几乎都能作为温度传感器使用。但是,一般真正能作为实际中可使用的温度传感器的物体一般需要具备下述条件:1物体的特性随温度的变化有较大的变化,且该变化量易于测量。2对温度的变化有较好的一一对应关系,即对除温度外其他物理量的变化不敏感。3性能误差及老化小、重复性好,尺寸小。4有较强的耐机械、化学及热作用等的特点。5与被检测的温度范围和精度相