XXX科技大学
本科生毕业设计说明书(毕业论文)
题 目:基于单片机太阳能热水器控
制系统的设计
学生姓名: 学 号: 专 业:自动化 班 级: 指导教师:
科技大学毕业设计说明书(毕业论文)
基于单片机太阳能热水器控制系统的设计
摘要
今天,环境问题、能源问题日益突出,给我们的生活带来了极大的压力。尽管这些年新兴能源已经得到了很好的发展,但是依旧还是无法解决日趋严峻的能源压力。由于不可再生资源的逐渐减少我们很自然会把目光对准一些可再生资源,这里就不得不提到太阳能,太阳能对我们目前而言可谓是一种取之不尽用之不竭的宝藏,然而由于我们目前的科学技术手段还不能充分的利用太阳能。在本设计中我会给大家介绍一种目前已经算是比较成熟的太阳能应用技术,他就是太阳能热水器。太阳能热水器以其诸多的优点受到人们的欢迎。 本文结合实际太阳能热水器的具体应用,通过软硬件设计,实现以51系列单片机为核心器件,扩展外围接口电路,如键盘与显示等。实现按设定时间自动上水、手动上水以及上水期间有音量提示;阴冷天按照设定温度要求可自动加热等功能。
关键词:单片机;太阳能;热水器
I
内蒙古科技大学毕业设计说明书(毕业论文)
Solar energy water heater based on MCU controller design
Abstract
Abstract: Today, environmental issues, energy issues have become increasingly prominent, to give our lives has brought great pressure. Although these years emerging energy already obtained the very good development, but still can not solve the increasingly serious energy pressure. As a result of non-renewable resources are gradually reduced naturally we will focus on some renewable resource, it will have to solar energy, solar energy to our current character it may be said is an inexhaustible inexhaustible treasure, however due to our current scientific and technical hand paragraph was not very good use of its ten one or two. In this design I will give you a present is already relatively mature solar energy application technology, he is the solar water heater.the solar energy water heater with its many advantages is welcome of people.
Through the software and hardware design, realization to 51 series microcontroller as the core device, peripheral expansion interface circuit, such as the keyboard and display. According to the set time realize automatic sheung shui, manual sheung shui and sheung shui during the volume tip; Cold day temperature can be set according to requirements heating etc. Function.
Keywords: SCM, Solar energy water heater .
II
内蒙古科技大学毕业设计说明书(毕业论文)
目录
第一章 前言 .............................................................................................................................. 1
1.1 太阳能热水器的发展概况及市场竞争分析 ............................................................. 1 1.2 太阳能热水器的应用及意义 ..................................................................................... 2 第二章 设计思路及仿真软件 .................................................................................................. 3
2.1 方案设计 ..................................................................................................................... 3 2.2 关于Proteus ................................................................................................................ 3 第三章 太阳能热水器控制系统硬件设计 .............................................................................. 9
3.1 各单元模块功能及设计 ............................................................................................. 9 3.2 基于AT89C51单片机及其外围电路单元 ................................................................ 9 3.3 水位检测和温度检测接口电路 ............................................................................... 11
3.3.1 上水及排空控制电路和辅助加热电路 ........................................................ 13 3.3.2 4X4矩阵键盘设计 ......................................................................................... 14 3.3.3 显示接口电路的设计 .................................................................................... 17 3.4 特殊元件介绍 ........................................................................................................... 19
3.4.1 AT89C51芯片 ................................................................................................. 19 3.4.2 温度传感器DS18B20 ................................................................................... 26 3.4.3 74LS164简介 ................................................................................................. 29
第四章 控制系统的软件设计 ................................................................................................ 31
4.1 主程序设计 ............................................................................................................... 31 4.2 LED显示子程序 ....................................................................................................... 31 4.3 键盘中断子程序 ....................................................................................................... 32 参考文献…………………………………………………………………………...……34
III
内蒙古科技大学毕业设计说明书(毕业论文)
附录1…………………………………………………………………………………...36
IV
内蒙古科技大学毕业设计说明书(毕业论文)
第一章 前言
1.1 太阳能热水器的发展概况及市场竞争分析
目前,我国已经成为全球最大的太阳能热水器生产销售国家之一,年产量几乎是全世界所有的国家生产量之和,已经有100多家生产太阳能热水器的厂家遍布全国各地。 但是最为核心的控制系统我们目前却还是一直处在研究与开发的初级阶段,这是个很尴尬的事情。我们的控制系统只是简单有一些显示温度和显示液位的功能,而并没有很强的温度控制功能,不能满足需要,因为当遇到各种由光照条件不足的情况下,我们的用户使用起来就非常的不方便;即便是一些有辅助加热功能的热水器,也由于不能很好的控制加热温度加热时间等而产生各种问题,由此大大的浪费了能源。 本设计将重点解决这一问题,这款控制系统我们以AT89C51 这一十分常用的单片机作为我们检测控制的核心元件, 不但可以很好的实现对时间、 温度和水位所有系统参数实时显示和控制,还可以根据用户需要自行实现时间、温度的设定以及控制等强大功能。对于大滞后参数温度我们采用采用模糊控制,这样控制系统就可以根据当地天气状况的实时条件应用系统的辅助加热装置实现在预定时间加热蓄水箱内水的水达到用户预先设定的温度,这样就实现了24小时内都有热水供应的用户需求。目前,太阳能热水器是我们已知的最为常见,最为成熟的一种成熟型产品,他有着十分广阔的市场前景和巨大的经济效益, 现在已经得到了十分迅的推广以及应用,太阳能热水器所必须的热能,为我们使用,方便快捷。
当今社会发展日新月异, 人们衣食住行生活水平也在不断的提高。 现在市场上用的电热型热水器虽然也应用很广但是应为费用比较昂贵以及他在安全性的局限性远无法和我们绿色低碳的太阳能热水器比。这样的市场背景就极大的方便了阳能热水器壮大和发展。因为太阳能热水器并没有上述缺点,他是绿色低碳环保型产品。
这一款热水器他包括主、 从两部分系统: 主系统的最大特点是在光照条件足够的情况下利用阳光能加热;而从系统就是相当于现有的电热水器。在由于光照条件不足的情况下用电加热它在无光照的情况下利用电辅助加热。 它充分利用太阳能的丰富的免费的资源的优势, 同时考虑到在阴天及夜间无法利用太阳能的来满足用户需求。这就很好
1
内蒙古科技大学毕业设计说明书(毕业论文)
的解决了现有市场热水器的一些尴尬问题,方便了人们的日常生活。
1.2 太阳能热水器的应用及意义
我们都知道,可再生资源,太阳能是一种非常环保且储量及其庞大的新型能源。 随着我们现在经济以及科技的发张能源问题已经日益严重,目前我们拥有的传统能源的储量在迅速的减少,而且这一趋势还将日益严重,这就迫使我们尽量开发新能源,而太阳能毫无疑问是一个绝佳的选择,太阳能以其种种优势今后必将成为我们的主要能源。当然太阳能也有其局限性和其自身的劣势,不过随着我们科学技术的进步这些问题都将得到很好的解决目前的一些技术难题终将被攻克。
相比较而言,在现有的太阳能技术的利用中,太阳能热水器已经是最为成熟并且已经得到普遍推广使用的成熟型技术。这一技术已经被人们普遍的接受并广泛应用,已经给我们的能源问题缓解了压力,也已经改善了我们日益严重的环境问题,有理由相信在不久的将来他必将得到更好,更长远的发展。
我们国家很早就已经开始发展与推广太阳能热水器了,而且也取得了很好的成绩,现在我国已经是全球从推广、应用等最为成熟的国家。这些年涌现出了许多许多有自己特色的而且规模宏大的, 属于我们自己的太阳能企业。我们拥有自己的学术中心,有我们自己的发展技术中心,可以说我们已经形成了一个体系,一个逐步完善与壮大的太阳能发展利用的体系。当然并不是只用我们能看到太阳能的这一巨大优势,全世界各国都在积极的发展这这一新兴能源,并且也取得了一定的成果。我们并不能放松,还需要继续加大力度。
2
内蒙古科技大学毕业设计说明书(毕业论文)
第二章 设计思路及仿真软件
2.1 方案设计
本设计中的太阳能热水器控制系统AT89C51单片机为检测控制中心单元, 不仅可以同时实现对温度以及水位这两种系统参数的实时性的显示功能,而且还可以根据用户需求对时间、温度以及其水位状况实现与设定。该控制系统还能够根据当地实际的太阳光照条件利用辅助加热器即我们通常的电加热器来使蓄水箱里面的水可以达到用户预先设定好的设定温度,这样就可以实现全天候不间断的24小时热水供应。总体设计框图如图2-1 所示。
电源 MCS51 液位传感单片机 水箱 手动上水 键盘输入 电磁阀 辅助加热 温度传感手动排水 图2-1 系统硬件结构框图
LED显报警提示 2.2 关于Proteus
Proteus这款软件是由英国Labcenter electronics公司出版的一款EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不但用有很多其他的EDA工具软件所拥有的仿真功能,而且这款软件还可以仿真单片机及外围器件,这是其他一些EDA软件所不具有的。它可以说是目前在单片机及其外围器件的仿真工具中是最为方便快捷,
3
内蒙古科技大学毕业设计说明书(毕业论文)
而且功能强大的仿真软件。虽然在我国国内的推广起步比较晚,但是这并不影响其深深地被广大的单片机爱好者以及那些长期以来一直在从事单片机这一相关行业的人士,还有那些长期以来一直致力于单片机系统的开发应用的那些科技工作者们他们的青睐与喜爱。他之所以如此广受好评与欢迎与其自身的强大功能密不可分。不论是原理布图亦或者是单片机其他外围电路的一些协同仿真以及必不可少的代码调试,Proteus是十分的完整与快捷,它还可以非常方便的一键切换到PCB的设计当中,从真正意义上实现了把电路仿真软件、PCB设计软件和模拟模型仿真软件这三款软件三合为一的强大的设计平台。它的处理器模型可以说是支持目前市场上几乎所有常见的那些单片机。更为优越的是他在编译方面,也同样强大支持了常见的多种编译器。
Proteus软件具有原理布图、PCB自动或人工布线及SPICE仿真这些其它EDA工具软件(例:multisim)的功能。并且有自身的突出特点:用户完全能够实时的使用像RAM,ROM,键盘,马达等等这些器件,实现我们设计的电路的互动仿真;可以仿真市场常见的主流51单片机 甚至可以在根据我们自己的原理图实现原理图的虚拟原型上编程,然后再配合适当的显示器进行输出,这样我们就完全可以看到在其必须要运行以后才能看到的输入输出的效果。在配合系统自身配置的虚拟逻辑分析仪、示波器等,Proteus就建立了一个十分完善的功能强大的电子产品的设计与开发的环境。
(1)智能原理图设计(ISIS)
丰富的器件库:超过27000种元器件,可方便地创建新元件; 支持智能器件搜索:通过模糊搜索可以方便快捷的找到我们要找的器件;支持智能连线;支持总
线结构:非常方便清晰的简化我们的设计中的复杂的线路;支持高质量图纸的输出。
(2)完善的电路仿真功能(Prospice)
ProSPICE混合仿真;超过27000个仿真器件还可以自行设计我们需要的仿真器件,Labcenter也在不断地发布这各种新的仿真器件,他还可以导入第三方发布的仿真器件以供我们的方便使用; 多样的激励源;各种虚拟仪器:有13种虚拟仪器,操作效果十分清晰逼真;仿真显示:它的引脚的数字电平是用不同颜色的色点来显示,而且导线以不同颜色还可以表示其对地电压大小,结合各种我们所需的动态器
4
内蒙古科技大学毕业设计说明书(毕业论文)
件(如电机、显示器件、按钮)的使用那就使得我们的仿真效果更加清晰直观;高级图形仿真功能(ASF);
(3)独特的单片机协同仿真功能(VSM)
支持主流的CPU类型,而且CPU类型将会随着版的本升级继续不断的增加,如即将支持CORTEX、DSP处理器;
支持通用外设模型,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通讯;
实时仿真:支持几乎所有的主流仿真;
编译及其调试:支持单片机中最为原始普遍的汇编语言仿真,其内部本身就带有8051等的汇编编译器,还可以与我们熟悉的IAR,KEIL其他第三方集成编译环境(如IAR、Keil和Hitech)相互结合,进行高级语言像C语言,C++等的源码级仿真以及调试的工作;
(4)实用的PCB设计平台
原理图到PCB的快速通道: 当我们把自己的原理图设计好后,我们非常方便的就可以一键可进入ARES的PCB设计环境,这样我们就能够完美的实现各个产品的概念及实际产品的设计;
强大的布线功能:无需我们自己动手不仅支持自动布局还支持器件自动布线;支持各个不同引脚之间的交换或者不同门之间的交换,这样就使的PCB的设计更加的合理更清晰;
PCB设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D 可视化预览;
5
内蒙古科技大学毕业设计说明书(毕业论文)
Proteus有着丰富的资源:
1.Proteus给我们提供了的元器件资源十分丰富,有超过三十个可供我们选择的元件库,除此之外更有远超过几千种的丰富元件来支持我们设计中的不同选择数字模拟,交流直流可谓是应有尽有,给我们的设计带来了极大的方便。
2.Proteus可提供的各种仿真仪表资源 :他不仅给我们提供了丰富的元器件资源同时也提供了各种仪表等仿真元件像十分常见的示波器、逻辑分析仪等等亦或者是像SPI调试器、I2C调试器这些高端的调试器或者各种主流信号发生器,模式发生器;还有所有交直流电压电流等仪表。我们实现了同一仪器可以方便的在同一电路中随便的移动调换使用。
3.Proteus还超越我们想像的给我们提供了一个十分强大的功能那就是图形显示功能,我们这样就可以随意的将线路上各种不断变化着的信号,以清晰直观的图形的方式非常直观动感的呈现在我们面前,这一功能咋看和示波器有些相似但是却远远的超过示波器,它的功能更加完善。所有这些虚拟仪器仪表都很完美的具有了我们理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。
4.Proteus可提供的调试手段 Proteus在电路的信号测试中拥有这非常丰富的测试信号。所有这些测试信号不但包括了包括模拟信号而且还有数字信号。
电路仿真
在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,我们可以在PROTEUS的原理图中非常直观的看到我们所模拟出的那些实际物体的运行状态和过程。
PROTEUS 是单片机课堂教学的先进助手。
PROTEUS不但把一些非常枯燥无聊的单片机实例改变的非常形象,而且还把
6
内蒙古科技大学毕业设计说明书(毕业论文)
许多实力运行的过程更加直观的呈现在我们面前,是我们更加容易接受。虽然前者我们可以理解为在一定程度上的实现实物演示所带来的直观实验的效果,可是后者却是我们一般的实物演示实验所非常不容易达到的那种效果效果。
他虽然提供很多新的东西但是它的元器件包括它的连接线路等却和我们以前常见的传统意义的单片机实验硬件还能狗非常好的一一对应。这就是说在某些程度上已经替代了我们传统意义上的那些的单片机实验所能狗带来的教学功能。
我们现在的学生为了在将来很好的走向就业,我们就要提高我们的实际动手能力,课程设计或者是毕业设计这就是我们提高我们实际能力的一个十分重要平台或者是环节。在我们院校的实际实验室中资源或许并不能满足我们的需求这时PROTEUS就成为我们最好的选择。
现今科学技术发展十分迅猛,我们改变很多与以往不同的想法,以便能更好的利用科技进步所带来的便捷,“计算机仿真技术”或许以前我们并不熟悉,但是在今天他或许已经是我们必不可少的做产品开发设计的一个强大工具。毫无疑问我们它选择他是因为我们看重其设计灵活,过程趣味化,以及结果更加直观的诸多优点。这样就最大限度的缩短了我们的设计时间,提高了效率,同时也降低了过程中的损耗,甚至很大程度的降低了我们设计中或制造中的风险。我们有理由相信在单片机的外来的开发与应用的过程中PROTEUS也势必将得到更好的推广与发展。
基本操作
1、选择元件:P按钮
2、选择要使用的元件
在Pick Device窗口双击相应元件名称,即可将元件添加到主界面左侧的列表中
3、放置元件到绘图区
7
内蒙古科技大学毕业设计说明书(毕业论文)
单击列表中的元件,然后在右侧的绘图区单击,即可将元件放置到绘图区。(每单击一次鼠标就绘制一个元件,在绘图区空白处单击右键结束这种状态)
4、删除元件
右击元件一次表示选中(被选中的元件呈红色),选中后再一次右击则是删除。
5、移动元件
右击选中,然后用左键拖动。
6、旋转元件
左下角旋转工具栏
7、元件连线
在引脚上鼠标指针变成X状,单击,移动到目的引脚,再次单击。
8、删除连线
同删除元件
9、绘制电源和地
单击工具栏上的左起第8个工具(Inter-Sheet Terminal),左侧工具栏显示TERMINALS,可在其中选择POWER或GROUND,像放置元件一样放置到绘图区。
目前Proteus的最新版为7.10,ARM cortex处理器被增加,在7.9中已经增加DSP系列(TMS320)。
8
内蒙古科技大学毕业设计说明书(毕业论文)
第三章 太阳能热水器控制系统硬件设计
在本章节中主要解决太阳能热水器硬件各单元模块的功能以及要用到的元件。
3.1 各单元模块功能及设计
硬件部分主要分为AT89C51 外围电路单元、 水位检测及温度检测电路、 辅助加热电路、
键盘输入电路和LED 显示电路。
3.2 基于AT89C51单片机及其外围电路单元
单片机系统由AT89C51 和一定功能的外围电路组成,包括为单片机提供复位的复位电路,提供单片机工作时所必须的时钟信号的时钟电路,如图3-1所示。
在单片机中, RST 引脚时复位信号输入端, 复位信号为高电平时有效, 其有效时间应持续24个振荡周期以上才能完成复位操作。 复位电路极性电容C3 的大小直接影响复位时间, 一般采用10至30uF, 容值越大需要的复位时间越短, 在本设计中, 使用的是约为12MH z的石英晶体振荡器,这时电容C3 的大小选取10uF,R1和 R2的大小分别是200 和 和 1K,这样就能进行可靠的上电复位和手动复位操作,时钟是单片机运行的基础,因此,时钟的速度和稳定性都直接影响单片机的工作。单片机的时钟信号一般来说有常见的两种电路方式:内部振荡方式和外部振荡方式。本设计我们采用其更为常见的内部振荡方式,在其引脚XTAL1 和引脚XTAL2 之间外接一个晶振和微调电C1、C2, 这样与AT89C51单片机本身自带一个高增益的反相放大器就可以顺利的一起来构成常见且很有用的自激振荡器 , 以此来产生振荡时钟脉冲。 C1和C2 的作用主要是用来快速起振以及能够很好的稳定振荡频率,本设计中选取的是电容值大小0.01uF 的两个电容。晶振频率的典型值为6MHz、 12MHz 和 24MHz,,高可达到40MHz 。晶振的频率越高, 系统时钟频率也越高, 单片机的运行速度就越快, 本设计选取的是12MHz。
9
内蒙古科技大学毕业设计说明书(毕业论文)
单片机是按照一定的时序为基准来工作的,其基准就是时钟的振荡的频率,所有操作都是以时钟频率的倍数为最小单位来进行的。时钟周期是单片机的基本时间单位,晶振的振荡的频率为12MHz 时,时钟周期 时,为1/12us=0.0833us。机器周期是CPU 完成一个基本操作所需要的时间。单片机中常把执行一条指令的过程分为几个机器周期,每个机器周期内完成一个基本操作。单片机以每12振荡周期为一个机器周期,晶振频率为12MHz 时,机器周期为12/12us=1us。
图3-1 AT89c51 单片机外围电路
这部分单元在proteus 软件里的仿真图如图3-2 所示。
10
内蒙古科技大学毕业设计说明书(毕业论文)
图 3-2 AT89c51单片机外围电路仿真图
3.3 水位检测和温度检测接口电路
热水器都有一个蓄水箱,而我们要对其水位和温度这两个重要参数进行相关检测和控制,这是这一设计的重点,我们只有能够准确的检测出这两个参数才能对其进行相关控制,才能通过单片机的软件部分计算什么时候需要进行辅助加热。然而要真确检测出这些数据我们有很多传感器可以选择,综合考虑系统成本等其他相关因素, 在本设计中我们采用分段式的这种液位传感器,在水位显示上我们也是采用分这种传感器。水位检测部分的硬件连接如图3-3 所示。
图 3-3 水位监测及显示接口电路
11
内蒙古科技大学毕业设计说明书(毕业论文)
检测原理如下: 当水箱中无水, 4个非门输入端全部由一个大小为1M 欧姆的上拉电阻我们把他上啦成高电平, 所以图中各非门输出就都是低电平,这样发光二极管 LED1~LED4 就都不会点亮。向水箱注水当水位高出非门1那个时候由于水的导电作用使得非门1 的输入探针导电这就使得,使其输入端很容易的变为了低电平,所以自然而然其输出端就变为了高电平, LED 就点亮了,其他的都是一个道理就不一一举例。 随着水位的上升, 各非门输出相继为高电平, LED依次点亮。 因为水是有电阻的这就提醒我们所选的上拉电阻不可以太小,要足够大,以保证在水位升高的过程中能把非门的输入端绝对的上啦成为低电平。更具经验, 这个上拉电阻我们一般选择在500k~1M 欧姆左右就足以解决上诉问题且能很好地满足电路的工作要求。这部分电路单元在proteus 里的仿真图如3-4所示。由于proteus 里做不出水箱所以本设计里将水位到达的那一位置用开关来表示,即水位到了那一位置, 开关闭合。 如图所示, 假设水位到达第一个水位段, 则开关1 闭合, LED 1亮,依此类推。
为了使AT89C51 随时能够读出当前的水位情况, 这里把水位信号直接连接 这里把水位信号直接连接到 P2.4~P2.7。蓄水箱温度检测电路采用 DS18B20 芯片使其换成脉冲信号, 与P2. 0 相连送到 AT89C51的 的I/O 口,通过测量输出脉冲频率的大小来换算成水温高低信号,其在 来换算成水温高低信号,在proteus 里的仿真图如图3-5 所示。
图 3-4 水位检测电路仿真图
12
内蒙古科技大学毕业设计说明书(毕业论文)
图 3-5 DS18B20 与 AT89C51 连接图仿真
3.3.1 上水及排空控制电路和辅助加热电路
太阳能热水器要具有自动上水以及手动排空的功能。其结构图如图3-6 所示。
图 3-6 上水及排空结构图
太阳能热水器开始工作后, 其水箱里是要有一定水位的, 在这里设定为1 单位水(这个单位是指水箱满水位后将其平均分成N 份中的一份),不足1 单位水时通过单片机控制冷水水阀来向太阳能热水器水箱里加水,到1 单位后通过水位检测得到结果送到单片机里 得到结果送到单片机里, 其通过控制冷水水阀停止加水。 在单片机里设定用
13
内蒙古科技大学毕业设计说明书(毕业论文)
水时间及温度 后, 由于各地日照时间不一样, 因此预加热时间通常是在用水时间前1 小时通过单片机查询得来, 预加热时间到达后开启辅助加热电路, 辅助加热电路如图3-7 所示, 其余部分时间都是有日照来使水温上升的。 水箱里的水温超过设定水温时, 单片机控制冷水水阀向水箱里加1 单位水,加1 单位水后通过水位检测电路返回给单片机,停止加水。在实际生活中,要保持干净卫生,太阳能热水器里的水每隔一段时间是要定期换水,这一部分功能通过手动控制装置来控制,就不与单片机相连增加其复杂度。
图3-7 所示是太阳能热水器的辅助加热部分,工作原理: 当单片机AT89C51P2.1 口输出高电平时, 三极管 T1 导通导通, 致使发光二极管发光, 同时光敏三极管T2 导通, 继电器闭合, 电阻丝R1-R4 发热, 这样就完成了加热任务, 此电路虽然简单, 但在太阳能热水器 但在太阳能热水器中是必不可少的。
图 3-7辅助加热电路图
3.3.2 4X4矩阵键盘设计
在我们常见的一些单片机系统中,如果所需要设定的按键数量比较多的时候,我们
14
内蒙古科技大学毕业设计说明书(毕业论文)
就可以考虑矩阵式键盘,这种键盘通常也被称作行列式键盘,这种键盘与那种独立式按键键盘相比较能够节省出很多的I/0 口。 图3-8 中为AT89C51单片机P1 口构成的中断方式4×4键盘键盘电路。 通常, 键盘的工作方式有三种, 即编程扫描、 定时扫描和中断扫描。 采用编程扫描或定时扫描方式时,这样的话不管我们是不是去按下其中的一个键, CPU 都会无时无刻不停的去扫描键盘,但是我们都知道单片机应用系统在正常工作时的情况下,其实根本不需要经常的去烧苗其键盘输入, 这样的话就是说: CPU基本一直处在一种空扫描的状态下,极大的浪费了CPU资源。 为能够更好的提高CPU 的工作效率,在本设计中我们选择中断扫描的这样一种工作方式。 它的工作过程如下: 只要没有按键按下的时候,CPU 就可以不去扫描只处理自己的工作; 当有任意一个键按下的时候, 就产生一个中断请求信号, CPU停下自己的工作在去执行键盘扫描的子程序,这样在识别键号。 图 3-8 中, 键盘的行线与 P1口的低四位相连,键盘的列线与P1 口的高四位相连,因此, P1.0~P1.3 是键输出线, P1.4~ P1.7 是扫描输入线。图中的4 输入与门用于产生按键中断,其输入端与各行线相连, 在通过上拉电阻接至+5V 电源电源, 其输出端接至单片机的外部中断输入端。 电路工作过程如下: 当键盘无键按下时, 与门各输入端均为高电平, 保持输出端为高电平; 当有键按下时, 输出端为低电平, 向CPU 申请中断, 若CPU 开放外部中断, 则会响应中断请求,转去执行键盘扫描子程序。16 个键号 个键号Ki(I =0-F )次序为从左向右,从上向下依次排列。
图 3-8 AT89C51 P1 口构成的 4×4 中断方式键盘
15
内蒙古科技大学毕业设计说明书(毕业论文)
这部分电路在proteus 里的仿真图如图3-9所示。
图 3-9中断方式键盘电路的仿真图
键盘扫描工作原理: 我们假设以图中“8” 号键的识别过程作为一个例子来详细的说明扫描法究竟是如何识别某一个按键的过程。 按键按下,那么和这个键相连的两条行线、列线就会导通, 行线在没有任何键按下的时候是处于高电平的。 这就必须把每一条列线都让其处在低电平, 只有在这样的情况下, 如果再有某个键按下的时候, 那么这个键所在的那一行,行电平就会由高电平转变为低电平。 这时CPU就会根据这一行电平的变化,来判定相应行的到底是否有键按下。 为进一步的确定具体是那一个键, 这就不能同时把所有的列线在同一个时刻全部都处在低电平,我们可以在某一时刻仅仅让其中一条列线处在低电平,而其余的所有都处在高电平,在另一时刻的时候, 就让下一列处在低电平,这样循环下去。 在“8”号键按下时的整个工作过程, 当第0 列处于低电平时,第2 行处于低电平,而第1、2 列处于低电平时,第2 行却处于高电平,由此可判定按下的键应是第2 行与第0 列的交叉点, 即8 号键。16 个键号, 0 ~9 定义为数字键了,A ~F 定义为功能键, A 定义为时间,即A 按下进行时间设定, B 定义为温度,即 B 按下进行温度设定, C 定义为上水,即C 按下单片机通过外接设备对水箱进行加水, D 定义为确定键。 E定义为清除键。
16
内蒙古科技大学毕业设计说明书(毕业论文)
3.3.3 显示接口电路的设计
LED数码管显示是利用半导体发光制成条形的发光二极管, 封装在一起组成数字或其他符号形状。数码管根据公共端不同,分为共阴极和共阳极两种形式。
本设计中选用7SEG-MPX4-CC 4个共阴极二极管显示器。这种类型的显示器,在它的内部中,除各个公共端外,是把各个显示器的同名端并联起来的。比如说,四位一体的LED显示器,是每个脚的同名端并接,所以仍是有8个引脚,再加上4个公共端,就是有12个引脚。本设计中这部分的仿真电路图如图 3-10 所示。
图 3-10 显示电路
17
内蒙古科技大学毕业设计说明书(毕业论文)
数码管的分类:数码管如果按段数分为七段的和八段的数码管,八段的就是比七段的多出一个二极管(也就是显示小数点的那一位);如果按照显示“8”的个数的多少来分的话那就可以分为:1位,2位和4位数码管;假设按照他们内部单元的连接方式来分的话就可以分为共阴和共阳极,把每个小发光二极管的阳极相连所得到的就是共阳极数码管,在使用的时候需要在公共端接一个高电平,在电路中某一字段的发光二极管由于电平的变化使得其阴极变为了低电平,那么这时候这一字段就会点亮,反之。
驱动方式:要使数码管要正常显示,就要使用驱动电路来驱动数码管的各个段码,这样才能显示出我们要的那一个数字,因此根据所用的数码管的使用的不同的驱动方式,这样就可以两种一种是静态式和另一种动态式。
① 静态显示驱动:通常我们所称的直流驱动也就是通常所谓的静态驱动。静态驱动指的就是将数码管里的每一个段码都要由单片机中的某一个的I/O端口来进行驱动显示。
② 动态显示驱动:数码管的动态显示接口在一般的常见的单片机的使用中是非常广泛的也是最为常见的一种普通的显示方式之一。
数码管应用
电流:静态时的时候推荐使用10-15mA的电流,当动态的时候,由于16/1动态扫描的时候,那么平均电流就为4-5mA,峰值为电流50-60mA。
1、显示效果:
由于发光二极管内部本身基本上属于电流的敏感型器件,而其正向电压降的分散性就很大, 而且与温度还有很大关系,数码管必须要具有十分良好的亮度以及均匀度,这就要求他具有非常恒定而且稳定的工作电流,还要尽量避免被温度以及其他外界因素所干扰。另外,如果遇到温度变化的时候驱动芯片必须能够很好的自动调节其输出电流的大小以此来实现色差以及平衡温度的补偿。
18
内蒙古科技大学毕业设计说明书(毕业论文)
2、安全性:
发光管很容易收到损坏的即便使是很短时间的电流过载也是非常有可能对这发光管非常严重且是永久性的严重损坏,假设采用恒流驱动后就可以防止由于各种由于电流故障所引起的导致数码管的大面积损坏。
像其他一般超大规模集成电路一样都是具有热保护功能的,假设其中任何一片的数码管温度超过其本身的一定值的时候就可以自动关断了,并且还可以很容易的在控制室内看到所有的故障显示。
怎样来测量数码管的引脚,分共阴和共阳?
找公共共阴和公共共阳首先,我们找个电源(3到5伏)和1个1K(几百的也欧的也行)的电阻, VCC串接个电阻后和GND接在任意2个脚上,组合有很多,但总有一个LED会发光的找到一个就够了,,然后用GND不动,VCC(串电阻)逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阴的了。相反用VCC不动,GND逐个碰剩下的脚,如果有多个LED(一般是8个),那它就是共阳的。也可以直接用数字万用表,红表笔是电源的正极,黑表笔是电源的负极。
3.4 特殊元件介绍
3.4.1 AT89C51芯片
AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、非常高性能的CMOS 8位主流微处理器,也就是人们俗称单片机。单片机的可擦除只读存储器是限制的不可以无限制擦除只可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器的先进的制造技术而制造成的,他是与通常的工业标准的MCS-51的指令集以及输出管脚全部相互兼容的,可以有很好的兼容性。由于将具有很多功能的8位CPU和闪烁存储器而组合而成在单个芯片当中中。
主要特性:
与MCS-51 兼容
19
内蒙古科技大学毕业设计说明书(毕业论文)
4K字节的可编程FLASH存储器
寿命:1000写/擦循环
数据保留时间:10年
全静态工作:0Hz-24MHz
三级程序存储器锁定
128×8位内部ram
32位可编程I/O线
两个16位定时器/计数器
5个中断源
可以进行编程的串行式通道
闲置、掉电模式
在片内的振荡器和时钟电路
表1 中断向量表:
20
内蒙古科技大学毕业设计说明书(毕业论文)
特性概述:
At89c51 提供以下标准功能:4k 字节的Flash(闪存),以及拥有128个字节的内部ram,32 个I/O 口线,还有其自带的两个16位的定时/计数器,以及一个有5个中断向量的二级中断结构,还有那一个全双工方式的串行通信接口,以及单片机的片内自带振荡器及时钟电路。同时,At89c51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口不会停止运行,而且中断系统也还保持原来的状态。在突然掉电的情况下RAM里面的内容将会被完整的保存下来而不丢失,与之不同的是振荡器停止工作,全部的硬件正在执行的工作也会被停止,一直等到一个硬件复位的信号。
单片机的结构和特殊寄存器,这是你编写软件的关键。至于串口通信需要用到那些特殊功能寄存器呢,它们是SCON,TCON,TMOD,SCON等,各代表什么含义呢? SBUF 数据缓冲寄存器这是一个可以直接寻址的串行口专用寄存器。有朋友这样问起过“为何在串行口收发中,都只是使用到同一个寄存器SBUF?而不是收发各用一个寄存器。”实际上SBUF 包含了两个独立的寄存器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址-99H。CPU 在读SBUF 时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧数据已到来,而造成的数据重叠问题。发送器则不需要用到双缓冲,一般情况下我们在写发送程序时也不必用到发送中断去外理发送数据。操作SBUF寄存器的方法则很简单,只要把这个99H 地址用关键字sfr定义为一个变量就可以对其进行读写操作了,如sfr SBUF = 0x99;当然你也可以用其它的名称。
通常在标准的reg51.h 或at89x51.h 等头文件中已对其做了定义,只要用#include 引用就可以了。SCON 串行口控制寄存器通常在芯片或设备中为了监视或控制接口状态,都会引用到接口控制寄存器。SCON 就是51 芯片的串行口控制寄存器。它的寻址地址是98H,是一个可以位寻址的寄存器,作用就是监视和控制51 芯片串行口的工作状态。51 芯片的串口可以工作在几个不同的工作模式下,其工作模式的设置就是使用SCON 寄存器。
21
内蒙古科技大学毕业设计说明书(毕业论文)
在这里只说明最常用的模式1,其它的模式也就一一略过,有兴趣的朋友可以找相关的硬件资料查看。fosc 代表振荡器的频率,也就是晶振的频率。REM 为允许接收位,REM 置1 时串口允许接收,置0 时禁止接收。REM 是由软件置位或清零。如果在一个电路中接收和发送引脚P3.0,P3.1 都和上位机相连,在软件上有串口中断处理程序,当要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断,那么可以在这个子程序的开始处加入REM=0 来禁止接收,在子程序结束处加入REM=1 再次打开串口接收。
大家也可以用上面的实际源码加入REM=0 来进行实验。TB8 发送数据位8,在模式2 和3 是要发送的第9 位。该位可以用软件根据需要置位或清除,通常这位在通信协议中做奇偶位,在多处理机通信中这一位则用于表示是地址帧还是数据帧。RB8 接收数据位8,在模式2 和3 是已接收数据的第9 位。该位可能是奇偶位,地址/数据标识位。在模式0 中,RB8 为保留位没有被使用。在模式1 中,当SM2=0,RB8 是已接收数据的停止位。 TI 发送中断标识位。在模式0,发送完第8 位数据时,由硬件置位。其它模式中则是在发送停止位之初,由硬件置位。TI 置位后,申请中断,CPU 响应中断后,发送下一帧数据。在任何模式下,TI 都必须由软件来清除,也就是说在数据写入到SBUF 后,硬件发送数据,中断响应(如中断打开),这时TI=1,表明发送已完成,TI 不会由硬件清除,所以这时必须用软件对其清零。RI 接收中断标识位。在模式0,接收第8 位结束时,由硬件置位。
其它模式中则是在接收停止位的半中间,由硬件置位。RI=1,申请中断,要求CPU 取走数据。但在模式1 中,SM2=1时,当未收到有效的停止位,则不会对RI 置位。同样RI 也必须要靠软件清除。常用的串口模式1 是传输10 个位的,1 位起始位为0,8 位数据位,低位在先,1 位停止位为1。它的波特率是可变的,其速率是取决于定时器1 或定时器2 的定时值(溢出速率)。AT89C51 和AT89C2051 等51 系列芯片只有两个定时器,定时器0 和定时器1,而定时器2是89C52 系列芯片才有的。
波特率在使用串口做通讯时,一个很重要的参数就是波特率,只有上下位机的波特率一样时才可以进行正常通讯。波特率是指串行端口每秒内可以传输的波特位数。有一些初学的朋友认为波特率是指每秒传输的字节数,如标准9600 会被误认为每秒种可以
22
内蒙古科技大学毕业设计说明书(毕业论文)
传送9600个字节,而实际上它是指每秒可以传送9600 个二进位,而一个字节要8 个二进位,如用串口模式1 来传输那么加上起始位和停止位,每个数据字节就要占用10 个二进位,9600 波特率用模式1 传输时,每秒传输的字节数是9600÷10=960 字节。51 芯片的串口工作模式0的波特率是固定的,为fosc/12,以一个12M 的晶振来计算,那么它的波特率可以达到1M。
模式2 的波特率是固定在fosc/64 或fosc/32,具体用那一种就取决于PCON 寄存器中的SMOD位,如SMOD 为0,波特率为focs/64,SMOD 为1,波特率为focs/32。模式1 和模式3 的波特率是可变的,取决于定时器1 或2(52 芯片)的溢出速率。那么我们怎么去计算这两个模 式的波特率设置时相关的寄存器的值呢?可以用以下的公式去计算。
波特率=(2SMOD÷32)×定时器1 溢出速率
上式中如设置了PCON 寄存器中的SMOD 位为1 时就可以把波特率提升2 倍。通常会使用定时器1 工作在定时器工作模式2 下,这时定时值中的TL1 做为计数,TH1 做为自动重装值 ,这个定时模式下,定时器溢出后,TH1 的值会自动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。在这个定时模式2 下定时器1 溢出速率的计算公式如下:
溢出速率=(计数速率)/(256-TH1)
管脚说明:
VCC:电源。
GND:接地端。
P0口:P0口他是一个有8位漏级开路的双向I/O口,其任何一个引脚都可以吸收8个TTL的门电流。假如我们是第一次写当P0口的管脚的时候,这样就被定义成了高阻输入。P0还能当作外部的一些程序的数据存储器使用,在需要低位数据/地址位的时候
23
内蒙古科技大学毕业设计说明书(毕业论文)
还可以用p0口来定义,在Flash编程的时候,P0 口可以当作一个原码的输入口使用,当Flash进行相关校验时,P0输出原码,此时P0外部必须接上拉电阻。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚 备选功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1)
24
内蒙古科技大学毕业设计说明书(毕业论文)
P3.4 T0(记时器0外部输入)
P3.5 T1(记时器1外部输入)
P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,在这里的内部程的序存储器。在FLASH编程期间,这个引脚通常也用于施加在12V编程电源(VPP)。
Xtal1:内部时钟工作电路的输入也或者是其反向振荡放大器的输入及
Xtal2:反向振荡器输出。
25
内蒙古科技大学毕业设计说明书(毕业论文)
如图 3-11 所示。
振荡器特性:
Xtal1和Xtal2这两个引脚一个是反向放大器的输入,另一个是其输出。这个反向放大器可以采用石晶震荡或者是套餐震荡来以此配置成为一个片内振荡器。假设我们采用外部来的时钟源一次来驱动器这一件,那么Xtal2就不应该连接。由于要输入到内部时钟里面的信号都要很好的通过一个二分频的触发器里面,因此这样就对外部的时钟信号的脉宽降低了要求,可是确是一定要保证其脉冲的高低或者其电平所要求的宽度。
图 3-11 AT89C51 芯片引脚图
3.4.2 温度传感器DS18B20
Ds18b20是Ds1820 的升级更新之后的升级的代产品 ( 他由美国DA IIAS公司生产 )。 具有很多优点比如说其很体积小,且分辨率高,还有换快等许多优点。 但是由于每一片Ds18s20 只有一个单一的的硅串行数,因此在一条总线上那么就最多只能挂接248≈ 218×1014只Ds18b20, 而又由于Ds18b20 有其独特的单线的总线结构,因此就
26
内蒙古科技大学毕业设计说明书(毕业论文)
决定了Ds18b20 非常适合于那些比较大型线路比较多的比较复杂实时控制系统来来检测系统的温度。对于复杂温度系统的实时测控方面的设计,在实现大型系统温度的控制方面就非常好地利用了Ds18b20 的独到特到特点而使得这一系统变的非常简约。
DS18B20的特性
(1)单线接口方式。 DS18B20,仅仅只需要一个I/ O口也就能够非常好的实现与微处理器与Ds18b20 之间的双向通讯。
(2) Ds18b20 支持自组网络的功能,如果有很多个Ds18b20 那么就能够并联在那唯一的单线上,以此很容易就能实现多点测温。
(3) Ds18b20的检测温度的范围是:55 ℃~+125℃,而当其在 -10 ℃ ~+ 85℃ 的时候,其精度很高是:+ 0 15℃。
(4) Ds18b20 其检测出来的温度的结果是9~12位这些数据量。
(5) Ds18b20的里面是含有一个寄生电源的, 其他元器件完全可以由单线向总线来供电,反之也可他的外接电源来供电。
数字化温度传感器Ds18b20它的增量值是 0.5℃ (一个9位的温度的读数),其组成大致可以分为四部分: 一部分一个64位的ROM;还有温度传感器;还有就是非易失性的Ds18b20温度告警触发器th和tl;最后一部分是高速的便笺存储器他也是64位的rOM 作用是用来存储那些序列号码, 其首字节固定为它的第一个字节是固定的28H,这是对其产品类别的一个表示而后面6则是个器件的编码了,然后最后1 个字节就是crc校验码了。
DS18B20测温原理
DS18B20内部结构框图如图3-12所示。
27
内蒙古科技大学毕业设计说明书(毕业论文)
DS18B20的测温原理: 对于Ds18b20测量温度所使用的技术手段是十分独特的,因为与其他的不同Ds18b20是通过计数时钟周期以此实现对温度的测量,在其内部专门有一个计数器来记录那些收到温度影响的振荡器的脉冲数目,在测量温度的时候,其内部振荡器发出来的脉冲就能够可以通过一个门电路。然而如果当已经到达某一个时刻设定好的温度值时,这是这个振荡器的脉冲就无法能够无法通那个门电路了。我们把那个计数器的值设定成-55℃。与此同时,当该计数器如果复位在当前这一时刻的温度值的时候,那么系统电路就会对内部振荡器其的温度系数进行一个合适的补偿,然后计数器再次重新开始计数其直返回来初始。只要门电路不关闭,那么就系统就一直重复上述的过程。
图 3-12 DS18B20内部结构框图
DS18B20的操作协议
Ds18b20他具有单纯的通信功能而且是以分时段的方式实现的。这种单线信号他包含了复位脉冲以及与之相对应的响应脉冲,写 “0”,写“1”,读“1”。时间间隙对它们而言是一个十分严格且独立的概念。整个系统对Ds18b20的操作主要是以5个ROM命令和6个存储器命令出现的,对他的最初的原始对它的操作协议就是:对Ds18b20进行初始化发出一个复位脉冲→然后再发一个ROM功能的命使得处理数据进行数据的处
28
内蒙古科技大学毕业设计说明书(毕业论文)
理。对于这每一种操作都有与之对应的时序图。
Ds18b20在使用时,一般都采用单片机来实现数据采集。只需将DS18B20 信号线与单片机 1位I/O 线相连, 且单片机的1位 I/O线可挂接多个DS18B20, 就可实现单点或多点温度检测。DS18B20 传感器精度高、 互换性好; 它直接将温度数据进行编码, 可以只使用一根电传输温度数据, 通信方便, 它的远距离传输时的抗干扰性非常好,如若与传统的那些用传统温度传感器所组成的那些多点温系统相比的话可以节省出大量的电缆来, 不仅如此而且其系统非常简化,就是系统的可扩展性也是十分良好,更重要的是其维护起来也很方便。
3.4.3 74LS164简介
一、74LS164芯片引脚及功能
(1) 74LS164 芯片引脚
A、B:串行输入端
QA-Q7:串行输出端
CLK:串行时钟输入端
MR:串行输出清零端
VCC:+5V
GND:接地端
29
内蒙古科技大学毕业设计说明书(毕业论文)
74LS164芯片功能
表2 75LS164功能表:
74LS164为8位移位寄存器,其主要主要参数及特性是:1)串行方式进行输入而且自带锁存;2)时钟输入; 3) 异步清除; 4) 其最高可以达到36MHz的时钟频率; 5) 功耗: 10mW/bit;6) 7474 系列工作温度:0°C到70°C;7)Vcc最高电压7V;8)输出驱动:高电平:- 0.4mA 0.4mA ,低电平: 8mA。当清除端R作为一个低电平的时候,输出端全部都是低电平。9)串行数据输入端(A,B)假设其中的任意一个为低电平的时候,则禁止所有的新数据的输入,这时钟端(CLK)脉冲的上升沿的作用下Q0变为低电平。 当A、B有一个为高电平,则另一个就允许输入数据,并在CLK上升沿作用下决定Q0的状态。
30
内蒙古科技大学毕业设计说明书(毕业论文)
第四章 控制系统的软件设计
4.1 主程序设计
热水器理论上应该是不管在怎样外部天气环境里,都能够在预先设定好的时间为用户提供已经设定好的温度的热水,这样才能满足用户的需求。根据这一要求,控制系统的相关软件设计在本设计中我们采用模块化的结构模式, 包括:系统的主程序、 键盘中断子程序、 LED显示子程序和提前加热时间计算子程序等。 系统主程序主要是对温度、水位的相关处理以及进行辅助加热时间预算和一些系统的相关硬件初始化的功能。 在主程序中我们可以使用的查表方法进行辅助加热提前时间预算。系统程序流程图如图如图4-1所示。
对提前加热时间的计算,则是系统能否实现预定功能的重要一环。因为系统采用段式水位检测, 若采用能量守恒的方法对提前加热时间进行预算, 也同样得不到精确的结果。 为了避开繁琐的计算过程, 本系统中采用了模糊控制思想, 使用了如下一些控制语句:
IF水位高AND温度差大THEN加热时间长IF水位适中AND温度差适中THEN加热时间适中IF水位低AND温度差低 THEN加热时间少采用这种思想后,可以用实验方法获得各种情况下需要加热的时间, 采用这种思想后,可以用实验方法获得各种情况下需要加热的时间, 编制成表格。使用时,只要查表获得提前加热时间就行了。显然,表格分得越细,控制就越准确。
4.2 LED显示子程序
在本设计中,从左到右有4个LED 显示管,系统正常工作后,左面两个显示水温,空一个不点亮,第四个显示水位。假设水位和水温存储在片内地址10H~13H。由于使用的是共阴极数码管, 且只显示数字, 则可以将字形码表只使用10个字形码, 并且第10 个字形码是让数码管不点亮的,即它的字形码是0xff ,片内地址11H 里存储10 。图4-2常工作时的显示子程序框图。
31
内蒙古科技大学毕业设计说明书(毕业论文)
4.3 键盘中断子程序
在本设计中, 键盘是时间设定和温度设定的输入工具。 图4-3 所示是键盘中断子程序框图。
键的查找是用的扫描方式, 在第一列送入低电平, 其他列和行都为高电平, 即送EFH到 到P1 口,列偏移值 口, 00HR4 中寄存,再读入 中寄存,再读入P1口状态到A中,一行行的比较,看是否有0状态,有的话,把该行行号写入A,再行号加列偏移值送入A作为键号,入栈保护。若第一列没键按下,列偏移值加一,再开始扫描查行号,依次类推。第四行找完后中断返回。
图 4-1系统程序流程图
32
内蒙古科技大学毕业设计说明书(毕业论文)
图 4-2 正常工作时的显示子程序框图
图 4-3键盘中断子程序
33
内蒙古科技大学毕业设计说明书(毕业论文)
参考文献
【1】 AVR 单片机在太阳能热水器智能控制系统中的应用,刘福才,刘丰,电气自动化, 2001。
【2】智能型太阳能控制系统的研制,李维华,新能源,2000。
【3】基于DS12887 的太阳能热水器智能控制系统的设计,刘福才,朴春俊,自动化与仪表, 2000。
【4】周润景等,基于PROTEUS 的电路及单片机系统设计与仿真,北京航空航天大学出版社, 2006。
【5】王洪福, AT89C51 单片机与74LS164 动态显示接口,内蒙古电大学刊,2006 ,第 11期。
【6】余永权等,单片机在控制系统中的应用,电子工业出版社,2004。
【7】张培仁等,基于 C 语言编程MCS-51 单片机原理与应用,清华大学出版社,2003。
【8】周灵彬, PROTEUS 的单片机教学与应用仿真,单片机与嵌入式系统应用,2008。
【9】徐爱钧等, Keil Cx51 V7.0单片机高级语言编程与u Vision2应用实践,电子工业出版社,2004。
【10】沙占友,单片机外围电路设计,电子工业出版, 2003。
【11】沈红卫,基于单片机的智能系统设计与实现,电子工业出版社, 2005。
34
内蒙古科技大学毕业设计说明书(毕业论文)
【12】朱善君等,单片机接口技术与应用,清华大学出版社,2005。
【13】张靖武等,单片机系统的 PROTEUS 设计与仿真,电子工业出版社,2007。
【14】宁成军等,基于 Proteus和 Keil接口的单片机外围硬件电路仿真,现代电子技术,2006。
【15】孙传友等,感测技术与系统设计,科学出版社,2004。
35
内蒙古科技大学毕业设计说明书(毕业论文)
附录:1
主程序:
ORG 000H JMP START
START : Curtemp EQU10H; Curtemp存储地址
Pretemp EQU 11H; Pretemp存储地址
MOV TMOD , #53H
SETB EA ; 开 CPU 中断
LCALL ReadTempandTime ;读温度时间设定值
LCALL ReadWaterandPosition ;读水位高度
CLR C ; C 清零清零
SUB Curtemp , pretemp JC Offheat Heatcontinue :
LCALL FUZZY ; 预算提前加热时间 LCALL DELAY
36
内蒙古科技大学毕业设计说明书(毕业论文)
LCALL Heat SJMP $
OffHeat : CLR P2.1 RETI
Heat : SETB P2.1 LCALL DELAY CLR C
LCALL ReadTemp MOV A , Curtemp
ADD A , #2H
SUB A , Pretemp JNC Keep Temp JMP Heatcontinue
LCALL KeeptempCON SUB A ,JNC KeepTemp JMP Heatcontinue LCALL Keeptemp CON
Pretemp 37
内蒙古科技大学毕业设计说明书(毕业论文)
RETI
显示子程序, 采用定时显示 方式
; 显示缓冲区 1 0H ~ 17 H MAIN
MOV R0 #10H MOV A @R0 ACALL DISPLAY DISPLAY: POP DPH POP DPL
MOV DPTR #LED_TABLE MOVC A @A+DPTR
MOV SUBF A ; 选中第一个数码管
ACALL DELAY ; 延时 PUSH DPL PUSH DPH RET
38
内蒙古科技大学毕业设计说明书(毕业论文)
INC R0 MOV A @R0 ACALL DISPLAY INC R0
MOV A @R0 ACALL DISPLAY INC R0 MOV A @R0 ACALL DISPLAY DELAY MOV R7 #2 D2: DJNZ R6 D2 DJNZ R7 D1 RET
LED_TABLE:
DB C0H,F9H,A4H,B0H,99H,92H,82H,D8H,90H,FFH 键盘输入主程序:
39
内蒙古科技大学毕业设计说明书(毕业论文)
MOV P1, #0FH ; 键盘初始化, P1.0~P1.3 置输入方式 ,
P1.4~P1.7 为 0 状态
MOV IE, #84H ; 开 CPU 中断, 开 INT1 中断
SJMP $ ;中断 等待
中断服务程序:
ORG 0013 ; INT1 中断入口地址
LJMP IO51K16 ;从中断入口转移键盘处理程序
IO51K16: CALL D10MS ; 延时 10 秒
LCALL KEYIN ;调键输入检查子程序
JNZ LKOUT ;有键输入, 转查键号
RETI ;无键输入,中断返回 ;
LKOUT: MOV R2, #0EFH ;首列扫描字写入 R2
MOV R4, #00H ;首列偏移值写入 R4
CONU: MOV P1, R2 ;列扫描字写入列线中
MOV A, P1 ;读入 P1 口状态到 A 中
JB ACC.0,LONE ;检查第 ; 0 行是否为 0 状态,不为 40
0 表示
内蒙古科技大学毕业设计说明书(毕业论文)
按下键不在此行,转下行
MOV ,A, #00H ;第 0 行为 0 状态,表明按下键在此行,
该行号写入 A
AJMP LKP ;转求键号
LONE: JB ACC.1, LTWO ;检查第 1 行有无键按下
MOV A, #04H ;有键按下,该行号写入 A
AJMP LKP ;转求键号 LTWO: JB ACC.2, LTHR MOV ,A, #08H AJMP LKP
LTHR: JB ACC.3, NEXT ;该列所有行都无键按下,转MOV ,A, #0CH ;有键按下,该行首列号入 ; A 中
LKP: ADD A, R4 ;求键号, 键号为行号加列偏移值
WKFE: LCALL KEYIN ;等待键释放
JNZ WKFE ;键未释放转 WKFE 等待
POP A ;键释放,键号写入 ; A
41
NEXT
内蒙古科技大学毕业设计说明书(毕业论文)
LJMP KJMP ;转键操作转处理
NEXT: INC R4 ;转查下一列,列偏移值加 ; 1 MOV A, R2
JNB ACC.4, KND ;最后一列查完?查完中断返回
RL A ;未查完,列扫描字左移 ; 1 位
MOV R2, A ;扫描字如 R2 继续查找 LJMP CONU KND: RETI
KEYIN: MOV P1, #0FH ;查完有无键按下, A 不为 MOV A, P1 CPL A ANL A, #0FH RET KJMP: SUB A,#OFH JC W riteTemp ADD ,A, #0FH
42
0 ,有键按下
内蒙古科技大学毕业设计说明书(毕业论文)
CLR C SUB ,A, #0EH JC StoreTemporTime ADD A, #0EH CLR C SUB ,A, #ODH JC Waterpoistion ADD ,A, #ODH CLR C
SUB A, #0CH JC Vtemp AD A, 0CH CLR C SUB ,A, #OBH JC StoreTime RETI ORG 0003H
43
内蒙古科技大学毕业设计说明书(毕业论文)
JMP Heat RET
1. 基于C8051F单片机直流电动机反馈控制系统的设计与研究 2. 基于单片机的嵌入式Web服务器的研究 3. MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究 4. 基于模糊控制的电阻钎焊单片机温度控制系统的研制 5. 基于MCS-51系列单片机的通用控制模块的研究 6. 基于单片机实现的供暖系统最佳启停自校正(STR)调节器 7. 单片机控制的二级倒立摆系统的研究 协议栈的实现8. 基于增强型51系列单片机的TCP/IP 9. 基于单片机的蓄电池自动监测系统 10. 基于32位嵌入式单片机系统的图像采集与处理技术的研究 11. 基于单片机的作物营养诊断专家系统的研究 12. 基于单片机的交流伺服电机运动控制系统研究与开发 13. 基于单片机的泵管内壁硬度测试仪的研制14. 基于单片机的自动找平控制系统研究 15. 基于C8051F040单片机的嵌入式系统开发16. 基于单片机的液压动力系统状态监测仪开发 17. 模糊Smith智能控制方法的研究及其单片机 实现18. 一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制 19. 基于双单片机冲床数控系统的研究 20. 基于CYGNAL单片机的在线间歇式浊度仪的研制 21. 基于单片机的喷油泵试验台控制器的研制22. 基于单片机的软起动器的研究和设计 机床短循环走丝方式研究 23. 基于单片机控制的高速快走丝电火花线切割24. 基于单片机的机电产品控制系统开发25. 基于PIC单片机的智能手机充电器 26. 基于单片机的实时内核设计及其应用研究27. 基于单片机 28. 基于单片机的远程抄表系统的设计与研究的烟气二氧化硫浓度检测仪的研制29. 基于微型光谱仪的单片机系统 30. 单片机系统软件构件开发的技术研究 31. 基于单片机的液体点滴速度自动检测仪的研制32. 基于单片机系统的多功能温度测量仪的研制 33. 基于PIC单片机的电能采集终端的设计和应用34. 基于单片机的光纤光栅解调仪的研制 35. 气压式线性摩擦焊机单片机控制系统的研制 36. 基于单片机的数字磁通门传感器 37. 基于单片机的旋转变压器-数字转换器的研究 38. 基于单片机的光纤Bragg光栅解调系统的研究39. 单片机控制的便携式多功能乳腺治疗仪的研制40. 基于C8051F020单片机的多生理信号检测仪 41. 基于单片机的电机运动控制系统设计 42. Pico专用单片机核的可测性设计研究 43. 基于MCS-51单片机的热量计 44. 基于双单片机的智能遥测微型气象站 45. MCS-51单片机构建机器人的实践研究46. 基于单片机的轮轨力检测 47. 基于单片机的GPS定位仪的研究与实现 48. 基于单片机的电液伺服控制系统 49. 用于单片机系统的MMC卡文件系统研制 50. 基于单片机的时控和计数系统性能优化的研究51. 基于单片机和CPLD的粗光栅位移测量系统研究 52. 单片机控制的后备式方波UPS 53. 提升高职学生单片机应用能力的探究 54. 基于单片机控制的自动低频减载装置研究55. 基于单片机控制的水下焊接电源的研究 56. 基于单片机的多通道数据采集系统 57. 基于uPSD3234单片机的氚表面污染测量仪的研制 58. 基于单片机的红外测油仪的研究 59. 96系列单片机仿真器研究与设计60. 基于单片机的单晶金刚石刀具刃磨设备的数控改造61. 基于单片机的温度智能控制系统的设计与实现 62. 基于MSP430单片机的电梯门机控制器的研制63. 基于单片机的气体测漏仪的研究 CAN/USB协议转换器 64. 基于三菱M16C/6N系列单片机的65. 基于单片机和DSP的变压器油色谱在线监测技术研究 66. 基于单片机的膛壁温度报警系统设计 67. 基于AVR单片机的低压无功补偿控制器的设计 68. 基于单片机船舶电力推进电机监测系统 69. 基于单片机网络的振动信号的采集系统 70. 基于单片机的大容量数据存储技术的应用研究71. 基于单片机的叠图机研究与教学方法实践 72. 基于单片机嵌入式Web服务器技术的研究及实现73. 基于AT89S52单片机的通用数据采集系统74. 基于单片机的多道脉冲幅度分析仪研究 75. 机器人旋转电弧传感角焊缝跟踪单片机控制系统 76. 基于单片机的控制系统在PLC虚拟教学实验中的应用研究 77. 基于单片机系统的网络通信研究与应用 78. 基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究 79. 基于单片机的模糊控制器在工业电阻炉上的应用研究 80. 基于双单片机冲床数控系统的研究与开发 81. 基于Cygnal单片机的μC/OS-Ⅱ的研究 82. 基于单片机的一体化智能差示扫描量热仪系统研究 83. 基于TCP/IP协议的单片机与Internet互联的研究与实现 84. 变频调速液压电梯单片机控制器的研究 85. 基于单片机γ-免疫计数器自动换样功能的研究与实现 86. 基于单片机的倒立摆控制系统设计与实现 87. 单片机嵌入式以太网防盗报警系统 88. 基于51单片机的嵌入式Internet系统的设计与实现 89. 单片机监测系统在挤压机上的应用 90. MSP430单片机在智能水表系统上的研究与应用 91. 基于单片机的嵌入式系统中TCP/IP协议栈的实现与应用 92. 单片机在高楼恒压供水系统中的应用 93. 基于ATmega16单片机的流量控制器的开发 94. 基于MSP430单片机 95. 基于MSP430单片机的远程抄表系统及智能网络水表的设计具有数据存储与回放功能的嵌入式电子血压计的设计 96. 基于单片机的氨分解率检测系统的研究与开发 97. 锅炉的单片机控制系统 98. 基于单片机控制的电磁振动式播种控制系统的设计 99. 基于单片机技术的WDR-01型聚氨酯导热系数测试仪的研制 100. 一种RISC结构8位单片机的设计与实现 101. 基于单片机的公寓用电智能管理系统设计 102. 基于单片机的温度测控系统在温室大棚中的设计与实现 103. 基于MSP430单片机的数字化超声电源的研制 104. 基于ADμC841单片机的防爆软起动综合控制器的研究 105. 基于单片机控制的井下低爆综合保护系统的设计106. 基于单片机的空调器故障诊断系统的设计研究 107. 单片机实现的寻呼机编码器 108. 单片机实现的鲁棒MRACS及其在液压系统中的应用研究 109. 自适应控制的单片机实现方法及基上隅角瓦斯积聚处理中的应用研究 110. 基于单片机的锅炉智能控制器的设计与研究 111. 超精密机床床身隔振的单片机主动控制 112. PIC单片机在空调中的应用 113. 单片机控制力矩加载控制系统的研究 项目论证,项目可行性研究报告,可行性研究报告,项目推广,项目研究报告,项目设计,项目建议书,项目可研报告,本文档支持完整下载,支持任意编辑!选择我们,选择成功! 项目论证,项目可行性研究报告,可行性研究报告,项目推广,项目研究报告,项目设计,项目建议书,项目可研报告,本文档支持完整下载,支持任意编辑!选择我们,选择成功! 单片机论文,毕业设计,毕业论文,单片机设计,硕士论文,研究生论文,单片机研究论文,单片机设计论文,优秀毕业论文,毕业论文设计,毕业过关论文,毕业设计,毕业设计说明,毕业论文,单片机论文,基于单片机论文,毕业论文终稿,定会成功! 毕业论文初稿,本文档支持完整下载,支持任意编辑!本文档全网独一无二,放心使用,下载这篇文档,
44