版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的电子时钟系统设计目录TOC\o"1-3"\h\u213851前言 2278551.1电子时钟研究设计的背景和意义 2289871.2电子时钟的功能 386902电子时钟设计方案分析 425052.1单片机设计方案 421783基于单片机的数字时钟硬件设计 5156273.1主要IC芯片选择 5212473.1.1微处理器选择 5259603.1.2环境温度传感器的选择 1293633.2电子时钟硬件电路设计 17272143.2.1时钟电路设计 1871953.2.2环境温度采集电路设计 1960583.2.3显示电路 20256733.2.4按键电路设计 22107443.2.5闹铃电路设计 24230273.2.6复位电路设计 25317063.2.7红外遥控电路设计 2786584电子时钟软件设计 31269654.1主程序设计 3144094.2子程序设计 31241134.2.1实时时钟日历子程序设计 31106414.2.2环境温度采集子程序设计 32286784.2.3显示子程序设计 3493694.2.4键盘扫描及设置子程序 37107464.2.5闹铃子程序设计 39163134.3红外发射程序设计 4080074.4红外接收程序设计 4199675系统调试 42171405.1硬件调试 4392435.1.1单片机基础电路调试 43139395.1.2显示电路调试 4376075.1.3DS1302电路调试 4335765.1.4按键电路调试 4421085.2软件调试 44165855.2.1环境温度采集子程序调试 44183725.2.2键盘子程序调试 44278676结论 461前言数字时钟是人们生活和工作中必不可少的重要工具,如果没有时间观念,人类社会就不会进步和发展。从古老的滴滴计时、十二天干地支,到后来的机械钟和现在的石英表,它们充分展示了时间的重要性,也反映了科学技术的进步和发展。潜心研究钟表,充分发挥钟表的作用,将具有重要意义。电子时钟研究设计的背景和意义随着现代科学技术的进一步发展与进步,数字电子技术也被大量地发展与应用。现代的信息化电子产品几乎已经从法制化中渗透到整个社会的每一项工作中,有力地推动整个社会的生产能力发展法制化矩阵以及其对整个社会信息化程度的提高。与此同时,现代消费电子产品的质量和功能进一步改善和提升,产品技术更新的速度也越来越慢。目前数字时钟正逐步发展成为现代社会和人们的工作和日常生活中必不可少的一种重要必需物质,被广泛应用于大型的公共场合和办公区。而且时间相比于人类而言,永远是那样珍惜。而且工作的繁琐与复杂容易导致让人遗憾地忘记了当前的时光。但是,遇到了重大事情,一旦你在网络上忘记了何种时间,可能也许会给自己或别人造成许多麻烦。通常,我们都是按照需求准时的晚餐或者上班,必须特别注意提到每次约会或者召开一次聚会的时间;列车必须准时抵达,航班必须准时出发;在整个企业的工业生产中,许多环节都是因为需要设置时间而被赋予的,这样才能确定每一个程序被更换的时候。因此我们能够准确把握好时机和运用方法,这些是我们在日常生活中和实际工作中的一种必备。电子时钟器就是一种可以运用电子设备来实现时、分、秒的数字显示。数码类电子产品因为它的体积小、运行方便、功耗少、性能也相对稳定精度高等特征而受到了市场上各界人士的推崇。电子计时器本身也就是我们在日常生活中经常用到的一种计时器和工具,而且这种数字化的电子计时器本身也因为它的特点是体积小、重量轻、趋向准确、结构简单、能耗低等诸多优势,在我们的日常生活中已经被广泛地应用。此外,实时显示温度信息显示系统的诸多功能和技术应用也日益能够得到广泛地充分发挥,例如中央空调系统遥控器上的当前具体室温实时显示、热水器上的具体温度实时显示等。而且在食疗医药卫生和食品工农业的质量生产经营过程中还经常会不断出现许多公共场所都必须需要对室内环境质量进行温度测量。电子时钟的功能电子时钟也被称之为数显时钟钟(digitaldisplayclock),它是一种可以利用数码电路的技术来实现时、分、秒等方式进行计时的设备。与传统的机械钟类型相比,直观性还是主要的区别,原因之一就是由于机械驱动,使用寿命也更长,比传统的石英钟类型所驱动出来的石英式机芯更准确。它们具有时间准确、体积小巧、交互友好、可扩展性强等特点。它们被广泛使用在生活和工作中。目前在市面上的各种电子时钟产品数量繁多,外表小巧精致。也就是一些体积比较大的,例如用于公共场所的大型计时机。电子式时钟表就是一种用于数字化时间表显示装置或者计时码表。人们根据不同应用场合的需求给电子时钟添加了其他的功能,例如定时闹钟、万年历、实时环境温度、实时湿度监测、实时环境空气质量监控、usb设备延伸出口等一些特殊的功能。本工程中的电子时钟主要作用表现为:具有实时的时间表显示及手动、遥控式的校对等等功能;具有年、月、日的图像显示和手动、遥控学习以及校对等等功能;具有闹铃功能;具有实时环境温度采集和显示功能;掉电后无需重新设置时间和日期;电子时钟设计方案分析单片机设计方案单片机作为微机的主要部件。它在结构上最为显著的其优势之处就就是它把cpu、cpu、存储器、定时器和各种数字输入/驱动输出控制接口集成电路全部直接集成应用到了一块高度超大功率尺寸的数字集成电路设计芯片上。从其组成与功能方面来讲,单片机本身就是一台电脑。单片机主要具有以下几个特点:高集成度、小体积、高可靠性;控制功能强;低功耗、低电压,便于企业设计和开发制作各种便携式电子产品;I2C、SPI等串行总线作为外部总线新增加的方式,极大的减小了体积,优化了结构;单片式主机系统的软件扩展与其他系统硬件配置方式相比较较为典型且趋于标准化,容易构成建立在一起各种不同大小的软件应用管理系统;有优异的性能价格比;因此,单片机的技术研究和发展应用极其广泛,单片机技术研究和推广应用的极其重要性就体现在于其应用从根本上彻底改变了我们目前传统的过程控制管理系统的基本结构设计控制理念和操作方法。过去必须直接依靠微机模拟或者数字电路软件才能直接实现的绝大多数应用功能,现在均改为可以直接依靠模拟单片或微机软件等多种方法实现完成。这种用创新软件技术取代传统硬件的安全控制系统技术被普遍认为已经是我国企业安全生产质量管理控制系统工艺的一次重大革命。利用它将单片机的设计智能化,就这样可以很容易地轻松实现对智能型钟和电子式时钟的智能设计。单片硅电机自身内部拥有一个电子元件时钟自动振荡控制系统,利用该振荡系统的电子时钟及采用微处理器的自动定时器/自动计数器就这样可以直接自动实现各个电子元件时钟的振荡功能。但由于系统的基本时钟设计误差比较大,电子式时钟的长期累计计时误差也很大且有可能比较多,因此我们有时可以通过考虑采用通过对系统纠错后的软件错误进行及时校正,或者在系统的基本设计运行过程中再额外添加一些高速低精度的电子时钟日历处理芯片等技术手段可以来准确地及时进行系统计时。基于单片机的数字时钟硬件设计对比上述三种具有特点的实现方案,考虑到该系列单片机在工业中的应用普遍,价格低廉,可以进行软、硬件相互结合的使用,可以更加简易地实现整个系统的通用性,所以该系列单片机的设计主要是利用了片状式微机来作为其硬件的基础。主要IC芯片选择微处理器选择就现在而言8xc5x6x系列工业单片化主机已经发展成为了一个在工业单片化主机系统中已经得到了广泛应用的高级微处理器核心芯片。本次我公司所有的p##x系列监控设备和单片机都采用的是全部内核并且采用多项符合国际标准的i-mcs-51内核,硬件和软件与设备的软件资源完全相互兼容,功能齐全,性能稳定,体积小巧,价格低,货源充足,调试和安装编程方便,应用领域的范围极为广泛。at89c52微控制器在许多不同类型的数控单片式电机系统中都可以是一种低工作功耗、小工作电压、高性能的cmos8位程序微控制器。这个控制芯片由8kb的一个flash一个可编程和一个足以可重复地自动擦除的一个只读应用程序数据存储器(eprom)模块组成。这种新型数字数据存储设备主要设计原理就是通过一种利用基于nucmos生产设计的数字技术与基于nuatmei的一种具有高密度非常容易受的抗损失性能的数字数据存储器(nuram)生产设计技术相结合而进行生产设计出来的,它的数字输入和数据输出引脚与指令系统都必须同时使用的元件是一种具有良好兼容性的mcs-51。片上的闪存组件可以用来允许对系统应用中的易于损失性硬件存储器或者系统使用基于传统非易失性硬件存储器的应用编程器组件来对其进行闪存修改。因此,AT89C52是一种使用功能强、灵活性好、价格合理的数控单片机,它不仅可以很好地广泛适应于各种远程控制应用场景。AT89C52具有以下主要功能特点:8KB可改编程序Flash存储器;全静态工作:0——24Hz;256×8bit的内部RAM;32个可编程双向输入/输出(I/O)口;2个外部中断源;3个16位可编程定时计数器;可编程串行通道;片内0-24MHz的时钟振荡器。另外,AT89C52采用了一种静态高频逻辑工作方式进行设计,其静态工作频率最高精度可以实时下降至0hz,并且还分别提供了两种不同类型的用户可以从应用软件中进行选择的最佳省电工作模式-高频空闲和定时掉电两种模式。在这个正常的空闲工作模式下,cpu就很有可能会自动地停止正常的工作,而cpu、ram、定时器/自动计数器、串口及网络中断等操作系统也可能会无法继续正常运行。在这种掉电工作模式下,片内的电压振荡器将会自动地停止正常运转的工作。由于保存的时钟被"冻结",所有的保存功能都被自动临时暂停,只是继续保存片上的aram的部分硬件内容,直到这个接收机再开始进行下一个新的硬件位。图3.1AT89C52芯片PDIP封装引脚图AT89C52采用pdip、tqfp、plcc三种信号封装的形式,以满足各种类型和多样化的产品要求。本次测试系统主要采用了一个双列直插pdip的封装格式,如图3.1所示。1.常见的时钟日历芯片比较时钟控制器芯片,顾名思义,其指的就是一种带有时钟特点,并且能够实际时间的控制器芯片。在对于电子时钟的控制系统设计中,常见的电子时钟控制器的芯片有ds12887、ds1216、ds1643、ds1302。各个芯片的主要时钟功能都与电动机的引脚次数、后备动力电池等安装位置、计时精度、延伸功能上都稍微差异。时钟芯片最根本的功能之一是对时间做出显示和记录。而且时钟芯片上的时钟显示器功能也是极为强大的。它可以显示出年、月、日、周、小时、分钟、秒三个时间单元。时钟控制芯片也因此可以认为具有准确的闰年自动周期补偿控制功能,鉴于满足需求及提高了系统的性价比,本次设计选择了实时的时钟日历芯片DS1302。2.DS1302简介DS1302是英国达拉斯(现称美国达拉斯)公司2001年推出的一款潺流式无线充电器和动态时钟自动控制器的芯片,2001年dallas被美国maxim(美国)公司正式收购,内部软件包括一个模块带有实时的小型小型动态时钟/移动日历和31×8字节的小型静态时钟ram,通过三线视频接口用户可以与两台单片机之间直接进行实时的视频同步数据通讯,可同时传输多个字节处于突发模式的时间。DS1302可以自动实现秒、分、小时、天、星期几、月份和其他日期。一个每周的自动月龄如果是小于31天,它们就不仅可以随时地进行一个自动周期的调节,并且还可以实现一个具有自动弥补闰年的自动月龄功能。其实际运行工作电压波动范围通常是2.5~5.5v。它不仅采用双短池电源直流供电工作模式(其中包括主短池电源和后备短池电源),可以通过选择手动设定后备短池电源电流进行自动充电的工作方式,并且还具备可以同时提供自动针对后备短池电源上的潺流情况进行自动充电的响应能力。主备用电源与直接备用的主电源之间一般应该分别有两个引脚,备用的主电源也应该可以通过直接使用较大供电容量的稳压电容器引脚来直接作为电源替换。但是我们特别需要注意特别强调的一个地方之一就是,DS1302需要特别选择32.768khz的晶振。3.DS1302引脚说明DS1302引脚图参照图3.2。图3.2DS1302芯片引脚图其的引脚功能参照表3.1。表3.1DS1302引脚功能说明引脚号名称功能1VCC1备份电源输入2X132.768KHz晶振输入3X232.768KHz晶振输出4GND地5RST控制移位寄存器/复位6I/O数据输入/输出7SCLK串行时钟8VCC2主电源输入4.DS1302的控制字和读写时序说明DS1302为使用spi总线接口驱动的一种实现方式。它不但仅仅需要把一个用于控制写入单元的一个字符串写进写入寄存器,而且还必须从中不断读取一直到写在相应写入寄存器上的所有数据。想要与你的DS1302进行无线通信,首先必须你需要正确理解的是DS1302的一个控制处理单元。DS1302的每个控制条件文本中的字符表如下面的图3.2所示。表3.2DS1302控制字(即地址及命令字节)BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT01RAMA4A3A2A1A0RD其中控制数字的功能就是通过设置DS1302的工作模型、传送字节量等。每一次的数据传送都要从控制文本字开始。各种控制文字的含义及其作用分别说明如下:bit7:每个控制单词的最高位必须被称为逻辑1,如果编码位为0,数据不能直接写入DS1302;bit6:如果ram值是0,则代表正在进行的访问中有一个日历的时钟数据,是1表示正在进行的ram数据;BIT5至BIT1(A4~A0):用A4~A0表示,定义片内寄存器和RAM的地址。定义如下:例如,当bit6位=0时,所需要设置的地址是一个时钟和其它寄存器的地址。a4~a0=0~6,顺序分别表示为秒、分、时、日、月、周、星期、年的寄存器。例如:保护寄存器当a4~a0=7,为了保护寄存器在芯片上书写一个保护寄存器。例如,当a4~a0=8,为了减少缓慢速度充电参数而选择了一个寄存器。例如,当a4~a0=31,为一个时钟以多字节的方式进行选择。例如,当bit6=1时,所定义的为ram地址,a4~a0=0~30,对应于各个子地址的ram,地址31所定义的为ram以多字节的方式进行选择寄存器。bit0(最低两个有效位):如果为0,则只能表示用户需要对它们必须进行一次的写和读操作,为1则只能表示对它们需要做一次的正式阅读和写操作。控制输出单元总是用最小的低位元器来进行控制输入。在其中输入一个时钟控制器的字符串单词或者一个字符串命令后的下一个命令sclk就是这个时钟的一个上升开始沿,数据被再次写入到sDS1302,数据从最小开始值(bit0)回到开始值并进行再次输入。同样,在8位的脉冲控制器上进行数字读取命令后的下一个命令sclk就是脉冲的反向延伸和下降路线,读取的是ds1302的最高位和延伸数据,读取后计算得到的这些高位数据也可以表示该命令应该是从最低位一直向上延伸到了最高位。图3.3DS1302数据读写时序5.DS1302的片内寄存器通过一个控制数字对DS1302片内部寄存器位置进行查询后,就已经开始了对所选寄存器的位置进行了操作。片内每个寄存器和各位的主要功能界面定义如下图3.3所示。表3.3DS1302有关日历、时间的寄存器读寄存器写寄存器BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0范围81H80HCH10秒秒00-5983H82H10分分00-5985H84H010时时1-120-23AM/PM87H86H0010日日1-3189H88H0010月月1-128BH8AH00000周日1-78DH8CH10年年00-998FH8EHWP0000000—DS1302具备10个与您的日历及其持续时间密切关联相关的数据寄存器。时钟/时间日历被分别包含在一到7个实时书写/自动阅读数据寄存器中。这7个定时寄存器分别为了毫秒、分钟、小时、天、月、星期几和年。第二个计时寄存器(81h,80h)的第7位被重新定义以作为一个固定时钟信号中的一个暂停计时指示器的标记(ch)。该值单位为1时,时钟信号振荡器自动开始停止,DS1302处于一种较低输出功率的工作状态;当该位置在数字中的频率单位为0时,时钟就荡器会自动开始停止工作。一般在设置时钟时,可以先停止工作,设置好后再开始工作。控制每个寄存器(8fh,8eh)的第7位分别被设定为控制读写位(wp)和保护位(wp),其它7位均被系统设定为0。在任何片上的一个小时钟/分辨率的日历数据寄存器和片的ram中,wp位必须在之前设置为0才能进行任何一次写入的操作,否则将导致无法对它进行任何不可能的编写。例如,当它的wp位为1时,写入的保护位就可能会自动阻碍被写的用户自动写入任意一个缓冲寄存器。因此,通过正确合理设定系统读、写传输数据的安全保护时间地点或者位置,能够大大程度改善系统文件的数据安全性。另外,也分别包括了缓慢式快速充电输入控制器的输入输出寄存器和基于r-ram充电控制器的输出输入寄存器。如表3.4。表3.4充电的控制寄存器与RAM寄存器各位的定义BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0充电控制寄存器TCSTCSTCSTCSDSDSRSRSRAM寄存器————————DS1302的缓冲快速充放特点是由缓冲快速充放寄存器来控制。充电性能的正常与否可用由寄存器中bit4~bit7(tcs)来判断:只有当代码的数量为1010时,它们的充电性能才被确认为正常,其他代码组合不被确认为允许。在vcc2与vcc1之间分别串联一个或两个二极管,并且由bit2与bit3选取。如果代码的大小分别为10,则选取两个二极管;如果代码ds为01,则我们需要在其中选择一个二极管;而且其它的代码会被禁止进行充电。这种二极管串联的电阻值是从寄存器中的bit0和bit1来选取。代码所示rs=01为2kω,rs=10为4kω,rs=11为8kω,rs=00将会在无法再次得到充电允许后再重新进行一次继续大量充电。因此,根据不同的值对数字信号进行数位编码的慢速自动充电电流寄存器,就同样能够直接自动获取并得到一个数字相应的慢速充电电流。其具体的基本计算公式主要如下列所示。其具体的计算方法如下列公式3.1:I充电=(V0-VD-VE)/R(式3.1)式中:V0——所接入的5.0V工作电压;VD——二极管压降,一个按0.7V计算;R——电阻数值的大小可以由慢速充电控制寄存器中0和1位的编码方式来判断;VE——VCC1脚所接入的电池电压。用户通过编程设置静态ram这个寄存器的每个地址字节空间中一次顺序排列的31个地址字节作为静态端的ram,备用端的电源位给静态ram这个寄存器端口提供了具有掉电过流保护的特殊工作功能。命令串的字节数为bit6来分别命令是用于运算或者处理ram上的一个寄存器还是运算ram。如果针对ram两个区域被重新设置进行了寻址,则我们此时可以选择让寻址bit6为"0";此时若寻址器用到了一个时钟/时间日历寻址寄存器,则要求bit6为"1"。其具体流程详见本文附录A。环境温度传感器的选择1.常用温度传感器的比较对温度的监视与控制时,在工人日常生活以及工农业的生产中频繁使用。热电偶和热电阻器主要是采用传统方法来测量中高温的仪器。其输出信号为二进制电压,转化成对应的二进制温度编码。价值,需要使用更多的硬件支撑,硬件集成电路复杂,软件调试比较复杂,生产成本高。此外,还可以使用基于IC的温度传感器来收集环境温度。常用的此类温度传感器有AD590和DS18B20。ad590将测量得到的不同温度转化为线性电流转化为1μa/k,此时线性电流和热力学中的温度之差成正比。ad590具备许多的优势,例如传感器在测量时的数值和量程中适用范围较大,-55~+150℃;精度特别高,激光校准的精度高可达±0.5℃;宽的电源输入区域:+4~+30V。但由于它的输出电流只能将采集得到的温度转化为电流,在实际的应用中,就得需要先将其输出的电流转换成电压,再用A/D转换元件进行模数转换后。模拟量被A/D转换元件转换成数字量,最后送到单片机进行处理。ds18b20的串行数字温度传感器与别的ad590不同,可以把系统中所测得的数字温度直接经过加热进行转化后形成一个串行的温度数字信号一并提示到另外给一个单片机,这样既大大节约了系统硬件,又容易有效避免了传统采用模拟音频计算机的串行输出数字频率信号受到热的干扰。它也具很多有点,比如说各种电子检测设备的轻量小型化,低成本功耗,高性能等。通过这个软件进行编程,ds18b20就能直接完成9-12位的测量和温度值的读。这个信息将从一根单线i/o接口发出,向ds18b20或者从ds18b20发出,所以DS18B20与单片机之间仅仅需要有一根数据传输线来进行链接。而且数据线本身能够提供阅、写、操作并完成温度变化所需的电源,而不必再使用其它的外接电源。-55~+125℃是他的测量范围,其中增量平均值大约为0.5℃。该电源的工作电压范围分别为+3.0~+5.5v。通过这个软件进行编程,上下限告警温度控制器件用户都是可以直接对其进行自己的设置,对于那些上下限的温度远远大于超出了预先控制器所规定的告警边界的控制器件,告警搜索和查询命令就是可以直接对其进行辨认性的识别和查询寻址。2.DS18B20的简介DS18B20是由美国达拉斯公司研发和制造的基于1-wire技术的新型数字温度传感器控制芯片。它的引脚位置分布式如图3.4所示。图3.4DS18B20引脚分布图每一个ds18b20出厂时都配有独立产品编码和唯一生产顺序。这个序列号是一种存储在其内部rom中。微处理器是一种可以直接通过一种简易协议方式来识别这些信息的编码序列代码,因此多个ds18b20可以直接连到同一个。在单独的总线上,这样就可以使得多点温度传感器被安装并且放置在许多不同的位置,特别是很适宜地使用来作为一个组成多点温度检测的测控系统。因此,ds18b20多广泛应用于对暖通空调工作中的环境控制,建筑物、设备或者是工业机械等各种工作场所中的温度检测,以及工业生产运行过程中的温度检测。对于管脚的作用说明详见下表3.5。表3.5DS18B20详细引脚功能描述序号名称引脚功能描述1GND接地引脚2DQ一个数据接口输入/信号输出引脚;一个开漏的单总线数据接口引脚;在一个光源寄生的驱动电源下设备进行自动使用时,它还需要能够给该电源设备自动提供光源电3VDD一个可选择的的vdd引脚;因此当需要使用一个电源寄生器的电源时,此引脚两端应该分别是不同的连接地。3.DS18B20内部结构DS18B20的软件内部结构软件框架设计如如下图3.5所示。它主要由所有4个中的大部分部件组成:64位温度rom、温度传感器、非易于损失性能的温度自动报警器和触发器单位th和4位tl、配置温度寄存器。图3.5DS18B20内部结构图配置存储寄存器五位是一般指在高速电路停止时的配置存储器中可以选择的第5位。DS18B20工作时,根据该参数寄存器端口中的工作温度值和分辨率把它们参数转化成值为一个具有相应的工作精度参数值。每行后一位的符号定义方法如下下表3.6所示。其中,tm为用于测试温度模式的特殊标志位,出厂时未正确书写"0",不懂者可以随意进行更改;r0和以及r1是对于台式温度计的各种分辨率参数进行特殊设置的位。表3.6DS18B20配置寄存器结构表BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0TMR1R011111MSBLSB四种相应的分辨率参数见图3.7。r0和r1的出厂时间被设定为"1",默认时间被设定为12位的分辨率。用户可根据自己的需求将配置寄存器进行写入,以便于获得合理的分辨率。表3.7配置寄存器与分辨率关系表R0R1温度计的分辨率/bit最大数据转换持续时间/ms00993.750110187.5010113751112750温度指示信息的较低、较中或高字节格式中的温度内容也可能包含了符号位置的s(不管它只是正常的温度或者它只是一个负温度)以及一个基于二进制的温度小数段。其具体方法如下下图3.6所示。图3.6DS18B20温度值格式表图3.6显示了12位的图像分辨率。若被选的配置文件为不同时具有高或低分辨率,则其位置无特殊意义且该位置的值为"0"。DS18B20完成了两个温度参数变化值的转换后,将其中的一个温度变化值和其中th及其在tl中所有两个数据包中存储的温度报警信号触发器的值值互相加入并进行了温度比较。由于这些数据寄存器都使用的是8位,所以我们在进行比较的这个过程中很有可能会因为忽视第9位而放到第12位。th或tl的温度最大值高位是作为16位每一个温度标记函数寄存器的一个温度标记位。如果你在开始进行设备的温度预警检测时候结果会显示检测到温度的值是否高于这个th或者检测到温度的值是否低于这个tl,将来就会自动重新设置一个温度检测值在设备温度文档文件中的一个预警温度标记,并且每次温度检测值达到一定温度时系统软件都会自动更新这个值的预警温度标记。只要你在单线上准备设置好一个新的报警提示标记,DS18B20就有人有机会自动开始响应一个关于报警标记搜索器的命令,允许一个连在单线上的多台设备DS18B20同时进行工作。即使真的是所测温度已经稍微超过界面的限值,也同样可以准确地自动识别正在自动进行温度报警的传感装置。特别是还需要重点提醒大家特别注意的一点那就是,DS18B20所需要采用的一个频率控制范围大约为11.0592mhz的高频单片机晶振,决定了一个信号指令的正常工作等待时间。在整个应用软件设计中,会根据本文所述及提供的延时指令以及运行时间周期情况来设计编写各类延时的应用程序。电子时钟硬件电路设计电子闹钟至少必须包含秒的信号发生器、时刻表显示电路、按键控制电路、来源及报警指令等。再次,这种方式的设计需要电子时钟能够实现采集周围的环境中的温度,所以也就需要了一个用于进行温度测量的芯片。硬件的电路结构框图如图3.7所示。该温度控制处理系统以dsAT89C52单片硅电机为主要控制处理中心,通过自动程序读取本控制设备的大气时钟日历控制芯片时钟DS1302和温度传感器芯片DS18B20的温度数据,完成了本控制设备的大气电子温度计时钟/温度日历和大气环境信息中的大气温度变化信息自动采集的主要控制作用。利用图aLCD1602来准确显示各个自然地区的年、月、日、周、时、分、秒、各个自然环境的平均温度。图3.7多功能电子时钟硬件系统框图该键盘可以实现完成对时钟/日历校对以及时间与日历/温度之间的显示。由于这类电子钟都需要同时具备所有闹钟的特点,因此我们设计出了一个带有闹钟声音的电路。整个交流控制电路分别同时采用两种高频交流电源,+5v的高频交流电源向整个交流控制电路进行供电。+3v的稳压电源一般来说只能直接拿来用作基于ds1302的一个主要备用稳压电源。当+5v的直流电源被自动切断时,DS1302将会打开+3v的电源,维持DS1302工作。当+5v的供电停止或恢复时,led仍然会自动显示当前的时间,系统也不会因为断电而自动复位至未达到一定的初始化时间,免去了重新进行校准的题。详细的电路图见本文附录C。时钟电路设计该控制系统的数位时钟控制采用了一个非常实时的数位时钟日历控制芯片例如DS1302,其接线如图3.8所示。软硬件电路设计简单,抗干扰性好。如图3.8所示,at89c52单片机p1.2直接被串行终端ds1302的rst端。在上电后,at89c52的p1.2引脚将会自动地向其中一个高电平输出。p1.0用于串行时钟的接口,p1.1对于串行时钟中的数据i/o。ds1302采用双相备用电源方式进行供电,通常都是+5v的备用电源开始供电,当+5v的备用电源开始或者关闭时,由下表所示bt1(+3v的备用电池)开始进行供电。同时还需要格外注意保证连接于x1与x2两端的一个晶振y1。其晶振信号频率范围是32.768khz。图3.8系统时钟电路环境温度采集电路设计在本文的设计中,DS18B20温度传感器主要是用来采集并转换各种环境下的温度。如图3.9所示,AT89C52单片机的p1.3引脚接DS18B20的i/o引脚可以作为一个数据的读写输入出口。图3.9系统环境温度采集电路显示电路就时钟而言,通常可采用LCD显示或LED显示。液晶显示器广泛的应用在控制和显示屏表面上。英文名称为liquidcrystaldisplay,缩写为LCD。液晶电视显示器的主要特点之一是器件体积小、负载轻和重量少、功耗低、性价比高。因此,lcd逐渐逐步发展壮大成为各类便携式家用中的电子检测设备。理想化的字符点阵字母液晶,1602液晶又可以叫1602字符点阵液晶,是一种专门自行设计的一种用于实现点阵显示字母、数码、符号等显示信息的新型点阵字母液晶显示模组,由若干个5x7或5x11的显示点阵字母矩形字符位置所组成,每个显示点阵或矩阵的矩形字符每增加一位大约每秒可以同时输出显示一个矩形字符。每个位之间特别设置了只有一个字符节点的间距,每行之间还特别设置了只有一个字符节点距的间隙,起到了每个字符节点间距和每个行节点间隙的平衡作用。正因为如此,它可能无法直接开始显示一个像12864这样的特殊图形,但有时候我们可能会非常想直接开始使用这个新的图形然后,lcd1602提供8个带有空格的一种自定义图形字符。lcd1602主要的一个功能之一是那就是一个屏幕可以直接用来同时显示某一或几个人的中位数、文字、图像以及很少的其他一个人自定义的数字图形或者其他字符。由于其主要特点之一是显示功能明确、显示方式多以及操作控制简单,性价比高,被广泛应用在各种小型家庭中如电子手表、冰箱、空调、汽车等等。检测仪表等各种电子检测仪器设备中。LCD1602分为一个需要带背光的白色小型机和一个不需要带背光的黑色小型机。大多数的基本的微控制器均可以采用i/hd44780。有一个黑色背光的话有时候如果要比图像没有一个黑色背光的话有时候更厚。无论它们本身是否可以携带任何背光,在整体设计上和时间上都基本没有太大差异。用lcd来显示一个字符时,文本中的字符表现得比较复杂,因为一个字符通常是由6×8或8×8点阵构成的。需要在屏幕上找到与显示器上某个位置相对应的8个显示ram区的8个字节,并且可以使每个字节的不同位分别命名为"1",其余分别命名为"0",为"1"亮起,"0"的不亮。这样便形成了一定的性格。但是对于一些本身就带有特殊的字符符号信息发生器的文字控制器而言,字符的符号表示就相当简单。你也或许可以通过选择或是让一个排列控制器在一种新的文本显示模式下,根据列alcd各列所需要显示的行和行与列之间的所有关系,以及各行之间的行和列之间有关系,找出相应或对应的文本显示模式ram。地址,设置为一个光标,发送这里的每个字符相当于对应的文件源代码。汉字的图形显示,汉字的图形显示一般也都是直接采用各种文本或者其他图形,预先从一台汉字微机中直接进行提取并自动输入显示出来的所需要直接显示的英文汉字的显示点阵矩形码(一般也都是直接使用各种文本或者其他字体的图形提取代码处理软件),每个英文汉字的显示点形矩阵码一般占32b,分为两半,各半都有16b,左边分别是1、3、5,右边分别是2、4、6根据显示lcd上需要显示的每个汉字文件行数及列数和每一个行的汉字列数,可以快速直接找到与放在显示屏上ram相同或对应的一个汉字文件地址,设置时放好光标,发送时你需要将每个汉字放在光标的起始位置依次添加1,发送第二个行的字节,换行依次对齐后再按列,发送第三个行的字节,依次进行循环发送直到放在显示屏上32b,你才有机会更快速有效的可能在显示lcd上直接快速查看并找到一个完整的英文汉字简体中文。LCD1602液晶的显示模块仅能使用D4-D7管脚来作为四位数据的传输口,并分两次进行传输。这样做就可以节省单片机的I/O口的资源。LCD1602可以显示2行16个字符的内容,总共有8条数据总线分别是D0-D7,三个控制端口分别是RS、R/W、EN,其工作的电压为5V,带有字符的对比度调节功能和背光亮度调节功能。LCD1602液晶电视显示器的模块通常能够直接和电路AT89C52单片机的各个i/o设备相互连接,电路上的相互连接简易,如电路图3.10所示:图3.10LCD1602和51单片机的连接图按键电路设计根据任务要求,时钟需具备以下功能按键:设置键、选择键、加1按键、减1按键、农历切换显示键。按照连接键盘和数字cpu的不同连接键盘方式,可将它们进行划分分别为两种独立的连接键盘及矩阵式连接键盘。独立式触控键盘所指的一个主要特点是每个设备的按键彼此相互独立,每个设备的按键都单独地占用了一条按键i/o口线,每条按键i/o口线上的每个按键都并没有直接移动,从而影响其他一个i/o口上各个设备按键的正常运行和工作以及系统运行管理的状态。独立数字键盘操作电路硬件配置灵活,软件架构简单,但每一个键盘的按钮都必须分别被占用一个大的i/o口。当一个按键点击次数多时,i/o口线上的资源消耗浪费大,电路元件组合结构复杂。矩阵式的智能键盘主要比较适合在一个按键组件数量比较多的应用场合。由于原来我们设计的一个键盘电子式时钟最多每次只能至少需要5个键盘按键,使用矩阵式的机械键盘将可能会严重造成每个按键的能量浪费,因此我们采用了一个独立的键盘按键。该智能键盘的自动控制电路软件框图结构如下文本表3.11所示。图3.11键盘电路k1、k2、k3及一个k4键分别为自动的按键复位控制按键。每次我们点击这个按下后,它的页都会自动地重新弹出。单片机的引脚仅在按钮上下一个手动按钮时才被自动称为一个低电平,按钮被自动弹出后再次自动恢复时达到一个高电平。具体按键的功能和属性见表3.8。表3.8按键功能表按键功能属性K1农历切换/减键自动复位K2加减自动复位K3选择键自动复位K4设置键自动复位按键操作说明如下:K1键:这个按钮是一个自动复位按钮,在初始显示界面下,按下该键,LCD液晶将显示的公历日期变为农历;再次按下,重新显示公历日期;在设置状态下,该键为数值减一键。K2键:这个按钮是一个自动复位按钮,在初始显示界面下,该键没有作用,在设置状态下,该键为数值加一键。K3键:这个按钮本身就是一个自动的复位按钮,在初始启动和显示的界面下,该按钮无任何作用,在系统设置的状态下,开始进行校对小时,以后每次按下该键都会分别打开并进入相应的分、秒、周、年、月、日、闹钟开关、闹钟时、闹铃分的校对工作。K4键:这个按钮是一个自动复位按钮,在初始显示界面下,按下该按钮会进入时间、日期设置状态,在按一次该按钮会进入闹钟设置状态,再次按下该按钮会退出设置状态回到时间显示界面。闹铃电路设计报警音乐可以直接使用蜂鸣器报警,如果当前时间与报警时间相同,单片机向蜂鸣器发送高电平,蜂鸣器鸣响。蜂鸣器的结构简单,易于被控制,但是报警音响较少。。也就是我们可以在自己进行编程的这个时候来写一个音乐应用程序,闹钟一旦到了,把音乐程序调用到音箱上,音乐就会响起。但是这样的方法仅仅可以用来制作一些简易的音乐,而且在音乐编辑器中会占有很多mcu来存储数据资源。另一个方法是在系统中使用一个录音回放芯片1420作为一个报警器,先将某一段音乐录入到该记忆体的回放装置,当记忆体到达所规定的时间,由单片机自动控制该记忆体的播放。它采用了录音直接播放的电路,钟声也可以说是预先设置好的一首自己喜欢的歌曲,满足了对于电器设备操作的人性化需求。并且1420芯片既可以进行分段录音,又具有自动语音和报时的功能。另外,也有人表示可以自由选择自己购买一个用于音乐盒的集成电路,摆放在一个单片式耳机和一个蜂鸣器之间。例如,当与音乐报警控制电路接口相连的一个单片硅耳机引脚向一个蜂鸣器前端发出一个特殊高电平时,音乐控制集成电路就可能会给予该蜂鸣器一个特殊的信号脉冲,使得这个蜂鸣器可以停止继续发声。该种类型的音频集成电路虽然在设计上具有器件体积小,使用方便等诸多的优点,但它的这些缺点主要表现是播放音乐简单单一。闹钟的音乐不是本次设计的重点,所以采用最简单的方法,占用单片机的一个I/O口P3.7接蜂鸣器。P3.7脚为低电平时,蜂鸣器鸣响。如图3.12。图3.12闹铃电路复位电路设计这种复位方式就是对单片机的初始化运算进行操作,使得系统中的cpu等零部件在某个特定的初始状态下,从此开始对其进行工作。除了为了保证单片机系统能够进行正常的初始化,当整个单片机系统在高速运行时或者由于操作失败而导致的系统陷入死锁状态,也就是我们可以通过按下复位键来重新进行启动。复位后,pc的每个单元复位回到单元的时间内容被原来初始数位化单元时间中的值进行改变后成为0000h,使得整个复位单片机从0000h的每一个单元复位回到单元中重新进行开始化并继续执行该复位程序。mcu复位后,除了使用pc外,还需要可以直接使用影响输入到整个芯片上的一些特殊控制功能的信号寄存器。它们的运动复位器在运动时的状态结构如下表见图3.9所示。微控制器在内部带有ram的元件被重新复位后,内部元件ram的正常工作和系统状态就不再因此而受到任何影响[17]。89c52单片机的电源复位控制信号接收到输入端口的是一个rst引脚,高电平有效。其有效的分钟时间周期可分为持续永久不超过24个月的机器时钟周期。rst端子的自动外部复位操作控制电路主要实现有自动上下行供电自动外部复位操作控制与自动按键外部移动控制手动外部复位两种主要操作控制方式。上电自动控制复位原理是由一个电容内部的一个存储器上电来自动实现,如波形图3.13(a)所示。在上次充电瞬间,rct的电路就会进行一次充电,rst端子会出现一个正常的脉冲。随着电池充电电流的不断增加而逐渐减少,rst的可充电位数也会逐步趋向下降。手动方式复位主要方式有两种:一种就是无线电平式手动复位,二种则是脉冲式手动复位。按键高电平差分式的复位原理就是说泛指在一个按键rst端的触点通过差分式的复位电阻和触点互相连接形成正的高电平,如如下图3.13(b)所示;控制按键电平脉冲的差分复位原理是指指利用按键rc端的差分控制电路来进行控制按键产生的正电平脉冲,如如下图3.13(c)所示。图3.13上电复位和按键复位电路为了保证设计方便,本次硬件设计主要采用手动控制按键的定时电源水平自动复位作为控制器的一种操作控制方式。具体的实际复位工作以及电路配置详情我们可以直接参见下面的软件附录和图c,复位后的两个按键分别是k和k5。表3.9单片机寄存器的复位状态表寄存器复位状态寄存器复位状态PC0000HTCON00HACC00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP1、P3FFHSCON00HIP××000000BSBUF不定IE0××00000BPCON0×××××××B(NMOS)TMOD00H0×××0000B(CHMOS)红外遥控电路设计红外遥控校时系统主要包括红外信号的发射和接收两个部分。采用编解码器的专用集成电路的芯片执行控制。本设计中,编解码芯片均采用AT89C52进行。红外远程遥控监测系统遥控控制系统的基本设计电路框图结构如下如本表3.14所示。红外信号的音频发射单元部件主要组成有矩阵式音频按键、编码音频调制、ledd等红外信号音频发射器;音频接收调制单元部件组成的开关电子音频信号电路包括光电信号转换器和放大器,解调及音频解码调制电路。图3.14红外遥控系统框图红外发射装置红外信号图像发射控制设备主要组成包括矩阵式的红外键盘控制电路、红外信号编码控制芯片、电源及其他红外信号图像发射器等部分,如图3.15所示:根据任务要求,红外遥控装置需要具备以下功能按键:设置键、选择键,加1操作键,减1操作键,农历显示切换键。由于现在市场上通用的红外遥控器大多采用的都是矩阵式键盘,故本次红外发射器装置中所采用的都是矩阵式键盘。键盘的电路结构如图3.15所示。图3.15红外发射电路rst端的外部自动操纵复位动作控制电路主要分别实现了同时有两种按键动作运行的自动动作操纵手工复位控制模式:采用按键上下动作供电的自动动作操纵手工复位与采用按键下部动作移动复位模式的按键手工动作操纵自动复位。按键式手动按按脉冲电式复位也因为就是这种操作方法将它可以再一次细化地进行划分而成为手动按键脉冲电平式和手动按键脉冲电式复位两种操作方法。本系统控制电路中主要用户采用的控制方法之一就是首先按下一个复位键指手动电平复位其中的一个单键电平复位方式后再进行手动复位,其中的一个单键手动复位方式控制电路具体结构如软件图3.15所示。例如,在按住了下一个遥控发射机的关键按钮后,就有机会向它的人发出一个与机相应的按键遥控码,不同手握按键的人向发射机发出遥控码也是不同的。这种基于二进制射频遥控脉冲编程的代码主要在设计上具有以下几个基本特点:它们分别是最先选择采用射频脉宽调制的一种基于二进制射频串行脉冲编程的代码,脉宽0.565ms、间距0.56ms、周期1.125ms的两个部分组合在一起来可以代表一个二进制"0";间隔脉冲波段的宽度分别是0.565ms,间隔脉冲长度分别为1.685ms与间隔脉冲长度周期2.25ms的两个脉冲波段如果组合一起来看就代表一个新的二进制"1",其中的脉冲调制信号源的波形基本结构如软件图3.16所示。图3.16遥控码的“0”和“1”为了提高传输效率,从而降低功耗,需要将上述由“0”和“1”组成的32位二进制码通过38kHz载波进行两次调制,然后红外发光二极管向外发射。红外信号编码产生的波形如图3.17所示。图3.17红外信号编码波形图例如,当我们按下一个数字电容器的按键时间相差不到36毫秒,振荡器就可能会自动激活一个数字芯片并同时产生一组108毫秒的数字编码信号脉冲。108ms的数据传输信号码由单位起始信号码(9ms)、结果信号码(4.5ms)、低8位的传输用户信号码(9ms~18ms)、高8位的传输用户信号码(9ms~18ms)、8位的传输用户信号码分别构成8位作为数据的传输信号码和传输起始码(9ms~18ms)和信号逆码(9ms~18ms)。如果上次移动按键键的长度已经超过108ms仍未完全自动松开,则使用下一次按键进行数据传输的一个代码(带有连续性的一个代码)将只至少能够同时包括带有开始性的一个代码(9ms)和带有终止性的一个代码(2.25ms)。红外接收装置红外接收器是一种采用集成型红外接收器,集红外接收和激光放大于一体。这种设备不再需要外部元件,能够直接实现从红外线上接收和发送至输入兼容ttl电平的全部操作,其体积大小与普通的塑料袋包装相同。三极管的尺寸相同,可以广泛地应用于各种红外遥控及其他红外信号的传输。接收机只有3个外部引脚:out、gnd、vcc和mcu接口十分方便,如下表所示,如图3.18所示。图3.18一体化红外线接收器该一体化红外线接收器管脚功能如下:OUT:脉冲信号输出接,直接接单片机的P3.2/INT0口;GND接系统的地线(0V);VCC接系统的电源正极(+5V);例如,当一个通用集成型红外信号接收机在其中间的一端需要接受38khz的一个红外信号,out的两端必须输出一个小的低电平,否则输出是一个高电平。因此,红外信号传感器向一台遥控电视发射机发出输入所有红外信号时,参考了图示如下框图3.17所示的红外信号传感器输出信号输入编码电路波形图,低电平时时可以直接发送38khz红外信号传感器,高电平时则可以发送没有红外信号传感器。电子时钟软件设计AT89C52单片机直接可以通过采用汇编语言或者c语言直接进行编程。汇编语言就是把它们统称为机器人的指令统称为汇编语言。因此,用汇编语言编制的程序比在单片机中操作更快,而且效率也更高。c++语言程序变得更具有可读性,更易于编写和理解。因此,本文的设计主要选择了一些采用java或c语言进行编程的应用软件。主程序设计当系统第一次接到电源是在此时进行了初始化。LCD显示的初始时间为“00:00:00”,初始日期为“2008-08-08”,初始温度为“00.0”。单片机会依次开始调用DS18B20子模块、DS1302子模块、键盘扫描子模块、报警子模块。一段时间延迟后,它返回给程序的启动开头并进行循环运作。主程序流程图如图4.1。图4.1多功能电子钟主程序流程图子程序设计实时时钟日历子程序设计本次流程主要目的是对ds1302的读、写保护及进行充电,年、月、日、时、分、秒等数据寄存器进行读、写保护操作。在进行串口通信的读写运算操作的子程序中,执行中断一个指令,因为进行串口通信时对于时序的控制要求比较高,而且中断需要使用i/o口软件来模拟串口的所有时钟和脉冲,所以尽量能够做到保证中断在串口通信的全部过程中所有传输的稳定和连续,不可能被允许。工作流程框图设计如下图4.2所示。图4.2实时时钟日历子程序流程图DS1302每次手机上网通电后或它都会自动地开始进入一个自动暂停计时状态,在自动时钟系统启动后或在开始进行计时前必须首先使用每毫秒信号寄存器将其中的第7位时间设定为0。若DS1302没有掉电出现任何掉电,则不会掉电是一种正常的掉电情况。当需要进行一个读写数据保护控制操作时,需要首先手动解除一个用于读写数据保护操作寄存器命令中的"禁止"。在一个多进位字节的内存模式下进行运算时,必须在其中依次写入8个进位数字。源程序信息详见本文档的附录章节。环境温度采集子程序设计ds18b20是一种双向单线式的对数据控制和传输的主机控制装置,在一条双向的数据线上主机可以同时进行多个数据的双向单线传输,需要一定的数据传输协议条件才能对于数据的读写和运算传送到的数据同时提出严格的传输时间和速度要求,而对at89c52单片上的主机则不同样也无法得到支持这种双向单线式数据传送方法。因此,必须考虑使用一种新型软件运行方法让它自动地进行其模拟单线通信协议运行时序。单片机操作DS18B20单线器件必须遵循以下顺序。初始化而且现在单线数据总线上所有的优化操作也必须是由初始的优化程序起步。初始化后的步骤一般如下:首先由模拟主机经过一次拉低释放一条小的单线480μs以上速度来使它产生一个小的复位信号脉冲,然后由主机释放出的电缆线直接使它进入一个rx的信号接收控制模式。例如,当一个虚拟主机向外自动释放一根上升总线,就主机会自动开始产生一个向内的主机上升总线路径。单线脉冲元器件ddDS18B20检测器得到这个响应电流的向右上升脉冲沿后,延迟15~60μs,通过把这个总线向右上下拉60~240μs作用来直接产生一个相应的电源响应电流脉冲。主站通信接收检测到现场来自该站的两个响应通信脉冲后,表明现场已经配备有了两台单线通信设备。数据处理DS18B20需要数据进行严格的排序计算机和时序,以便于保证数据的完整。在一个基于单线程的dq上,有几种复位信号的脉冲类型:同时复位输出脉冲、响应复位脉冲、写"0"、读"1"、输入"0"和同时输出"1"。其中,除了主机响应时的脉冲外,均由主机控制器以及主机上的传感器自动产生。而且对于一个数据位址在进行快速读写时也可以通过它来利用它的读取时隙。首先了解写时隙。例如,当一台主机把数据线由高到低拉至最下时,会使主机产生一个读写的时隙。有两种不同的类型书写间隙:分别是书"1"与书"0"。所有书写时隙必须严格控制在60μs以上(即也就是说,即由高拉低后需要长期持续60μs以上),并且每一个书写时隙之间都必须保证1μs的最短修正和恢复。dq线路温度变低后,ds18b20在15~60μs窗口内分别对dq进行了取样。如果字母是高就要大写"1";如果它是低的,它会写"0"。所以当一个虚拟主机想要发出一条有大写"1"这个字符的时隙,必须首先把这条数据线高度拉低之后才能进行释放。在整个书写时隙中在启动后15μs,允许把c和dq线拉高。对于在虚拟主机上需要书写"0"时隙的特殊应用情况,必须把它的dq线高度拉低并一直使它保持在最小的一个低电平。下面是时间段的解释。当两台主机从c和DS18B20中分别读取一条中的数据线时,将其中一条中的数据线由一个高电平方向拉低为其中一条,产生一个相应的数据读时隙。数据线上的dq必须能够保持一定时间的低电平至少1μs,DS18B20的数据输入和控制数据输出应该是在读时隙的电平下降幅度沿后15μs内有效。因此,在这15μs内,主机必须暂时启动中断停止把a和dq引脚的电压设置为一个小的低电平。当一个读时隙操作终了时,dq引脚很可能会经由外部上压下拉稳压电阻而被引脚自动拉回一个新的高电平。所有节点的读取时隙都应该能够至少保证每一点能够连续60μs,并且每一点的读取时隙之间也应该能够保证1μs的最长读取时隙能够得到恢复。所有的阅读时隙至少都是需要60μs,每两个独立的时隙之间至少都是需要1μs的修改和恢复。在第一根写入的序列中,主机会在将某一根总线拉低后15μs内再次从其中释放一根总线并向ds18b20写入"1"。若一台主机拉低了一根总线后仍然保证能够运行维持60μs的低电平,则向其他一台单总线设备上手写"0"。ds18b20只有在一个主机向ds18b20发送数据的一个读时隙时才向另一个主机发送命令,因此当一个主机向ds18b20发送一个读时隙命令时,必须马上地产生一个数据的读时隙,使ds18b20才真正可以开始进行这个数据的接收和传输。实现环境中的温度信号采集和转换及读取数据的过程流程框图见软件框4.3。源程序详见本文附录A。图4.3环境温度采集子程序流程图显示子程序设计LCD1602液晶模块中的内部电路和控制指令单元通常一般包含11个外部控制指令。LCD1602液晶模块的数据读取、显示屏及移动光标等相关操作均由一个单独的驱动指令集来进行手动编程并用来自动完成。(其中表示1为一个高电平,0为一个低电平)指令1:对该光标进行清除和重新显示,指令的执行代码01h,将复位光标重新删除复位至新的地址00h,指令2:重新再次复位一个光标,将其从复位光标中删除恢复至新的地址00h。指令2:光标和显示位置设置I/D,光标移动方向,高电平右移,低电平左移,S:屏幕上所有文字是否左移或右移,高电平有效,低电平无效。命令3:显示开关控制。D:控制整体显示的开和关,高电平表示开显示,低电平表示关显示。C:控制光标的开关,高电平有光标,低电平无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令4:显示高电平的文字光标或者直接显示保持移动的字体光标文字s/c:高于低电平时光标可以直接显示保持移动的光标文字,低于高电平时则是可以直接显示保持移动的文字光标指令5:功能设置命令DL:4位总线高电平,8位总线低电平N:低电平单行显示,高电平双行显示,F:低电平5X7点阵字符,5X10显示字符以高级别显示。命令6:对于一个字符串的发生器ram地址进行设定。命令8:ddram的地址被设定。命令7:读忙的信号和数据读出的光标数据地址命令bf:忙的信号是一个标志,高电平低则代表忙,此时控制模块很有可能不会无法正常接收或得到任何的命令或者读出的数据,低电平低则代表忙。关于每个子程序的框图显示操作流程以及框图信息请直接参见本章下文的流程图4.4。源程序的具体定义请参见下文中的附录章节A。图4.4显示子程序流程图键盘扫描及设置子程序单片机扫描可以对多个键盘文件进行自动扫描主要方式包括随机自动扫描、定时自动扫描、或者可以是键盘中断自动扫描。在随机自动扫描的操作模式下,cpuc在完成特定的扫描任务后,执行一个输入键盘上的扫描操作程序,判断该输入键盘上同时是否已经存在其他按键上的输入,然后根据该输入按键的主要功能位置进行方向转移作用来自动执行其他按键相应的扫描操作。当你在执行一个移动键盘上的某个按钮没有指定它的功能时,就经常会自动忽略了在该键盘的每个输入。定时自动扫描的操作方式和随机自动扫描的操作方法也是完全不一样的,只是我们分别利用了在cpu系列中的定时扫描中断器功能来定时地自动扫描一个有关键该键的按钮此时是否已经被随机按住。键盘的温度反馈操作速度也比较迅捷。在对一个按键干预功能组件进行键盘处理的操作过程中,可以通过使用一个新的键盘处理命令对其功能进行按键干预。例如活动取消或者活动暂停等。前两种的扫描方法会使cpu占用很多的时间。无论cpu是否执行key-in的操作,cpu都必须在规定的时间内才能进行扫描,这对于单片机的控制处理器和系统来说极为不利。因为在本次测试中所设计的操作系统中的dat89c52单片机的主要工作任务之一就是通过接收器获得从发到ds1302和接收器发到ds18b20的各种时钟数据并向其终端发出信号对其进行自动显示,完成了对所有显示时钟/各种时间日历的自动校准及对所有显示日期/各种时间温度的自动监控显表示功能实现自动控制。89c51单片机完全一样可以轻松地正常执行上述两种操作,所以它们也都采用了随机自动打印和按键盘的操作方式,系统也都一样能正常地工作运行。该应用程序的具体操作原理流程图可参见下文4.5。图4.5键盘扫描子程序单片机在电脑上扫描一下键盘后,获取相应的键值,并根据相应的键值来执行相应的操作,实现该键的功能。如果程序扫描到menu_1>2,则初始化LCD显示并返回主程序,否则继续扫描键盘。源程序见附录A。闹铃子程序设计闹钟子程序的主要任务是不断将设置的闹钟分钟(fen1)与时钟分钟(fen)和时间(shi)与闹钟小时(shi1)进行比较,只要fen等于fen1且shi等于到shi1,铃响1分钟,按外部按钮执行报警停止操作。程序流程图如图4.6所示。源程序见附录A。图4.6闹铃子程序流程图红外发射程序设计开始时,传输特定的识别码。对于接收端,低电平为9ms,高电平为4.5ms。这个识别码可以让程序知道它可以开始从这个识别码接收数据。要求是想有效提高可靠度,延时必须达到要求长度大于0.56ms,但是不一定能够延时长度超过1.12ms。否则,如果延时读出的有源电压水平延时值为低,表示此位延时为"0",否则此位为"1"。要求是要想有效地提高延时的可靠性,延时必须能够达到设计要求的长度大于0.56ms,但是并不一定要求延时的长度能够超过1.12ms。否则,如果此时间的位置被测器设定为"0",则我们就需要重新读取其中下方每一位的一个高电平。因此,延时选择(1.12ms+0.56ms)/2=0.84ms最为合适。一般采用上下水平取决于0.84ms。根据红外编码格式,程序进行需要先去等待9ms的开始码和4.5ms的结果码之间进行读写。源程序参考附录B红外发射程序。红外接收程序设计红外信号通过单片机外部电路中断口0来检测。如果传感器检测得到红外遥控信号,程序就会进入外部中断数据处理程序,在对数据进行处理的过程中要先关闭外部中断,直到传感器接受并输出数据,再重新开启外部中断。红外一体遥控器的脉冲信号接收主要原理就是在外部中断的频率函数中对其信号进行处理:这种脉冲信号处理技术的主要特点之一就是:比如,当一个遥控器经由按键的频率值向程序执行信号发送时,红外一体接收器的脉冲信号输出引脚就会有一定的频率下降沿着电平线的方向发生变化,外部中断的使用频率引脚的下降沿着程序开始运行的过程中也会发生导致发生外部中断的事件,程序就需要对进入外部中断的各种处理函数,首先就是自动关闭外部的中断,然后再根据频率的高低改变化地判断红外遥控器向接收机发送的数据采集和接受器脉冲信号的输出引脚。总计4个。收到4个字节的数据后,对其进行校验,校验完成后,将数据中的操作码对16取余得到其按键值(按键值为1-4,分别代表4个按键)。将按键值赋给初始化为0的变量key_hw,然后进行判断,如果key_hw!=0,就说明红外遥控器上有按键按下,并把key_hw的值赋给key_can,然后执行设置子程序。其程序框图如图4.7所示。图4.7外部中断接收数据流程图系统调试调试的工作主要包括了软件的调试和硬件的调试。调试的方法简要介绍如下:首先软硬件的功能性调试主要是先在软件上自己搭建一个软硬件的平台,然后再使用万用表等操作器进行检测和安装电路,最后再针对应用程序进行软硬件的功能性调试。软件的调试耗时费力,需要细心和耐心,还有可能是我们必须熟悉的电路机制。然后我们就可以直接考虑应用一些编辑或者仿真的软件,例如单片机c51编辑的软件keil。该软件提供了一个完全可以集成化的开发环境uvision,其中主要由c-rom编辑器、宏-编辑器、链路管理、库信息系统和强大的模拟仿真调试器等部分构成。您随时都可以通过程序的编译与运行检测程序的错误。但若我们想要实际地应用这种方法,您仍然必须需要明确知道如何使用此种类型组件的具体工作模式和引脚之间相互联系的方法。所以在进行软件的调试时一定要有较大的细心与耐心。即使你再写一两个数字,它也没有办法编译成功。有的情况下,在keil中编译单片机运行时并且可能不会在工作中产生任何错误,但是当被烧到了单片机上就有人会产生任何出错,很有可能就是编程时针对引脚或者是时序的编辑不正确。另外我们还有一种简单的解决办法,就是通过使用仿真和调试软件的方式来为其搭建一个集成化的电路软件平台,然后引入到应用程序中,进行仿真和调试。如果你的计算机控制电路中发生了问题,你也许就能够在手机上很容易地修改计算机的控制电路,如果应用程序出现了问题,你也许可以重新创建程序。这样做的优点是方式上省时、节能、省力、经济、便利。我使用的模拟仿真设计软件之一就是proteus。总之,调试的这个过程其实应该来说是一个将主机软件系统调试与其他硬件系统调试有机地相互结合处理起来的一个过程。硬件电路是基础,软件是检测硬件电路并实现其功能的关键。在进行调试的过程中,首先我们需要清楚地把握好调试的顺序。例如:本次设计主
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银川市永宁县2025-2026学年第二学期四年级语文期末考试卷(部编版含答案)
- 大庆市肇源县2025-2026学年第二学期三年级语文第八单元测试卷(部编版含答案)
- 凉山彝族自治州金阳县2025-2026学年第二学期三年级语文第七单元测试卷(部编版含答案)
- 威海市荣成市2025-2026学年第二学期五年级语文第八单元测试卷(部编版含答案)
- 项目三 任务二 语音交互在汽车中的典型应用场景
- 2026年预防转运意外考试试题及答案
- 2026年湖南长沙出租车考试试题及答案
- 2026年光缆线路维护员考试试题及答案
- 企业环境责任承诺书增补版4篇范文
- 工程品质全面保障承诺书范文5篇
- 2025福建省漳州市对外贸易有限责任公司招聘1人笔试历年备考题库附带答案详解
- 西南证券股份有限公司2026届春季校园招聘备考题库附答案详解(基础题)
- JJF1033-2023计量标准考核规范
- 病理学与病理生理学(第5版) 课件 丁运良 第七章 发热;第八章 炎症
- 专题37 八年级名著导读梳理(讲义)
- 神经科学研究进展
- 新课标语文整本书阅读教学课件:童年(六下)
- 【RCEP背景下中国对日本农产品出口贸易SWOT及发展对策10000字(论文)】
- CJ/T 124-2016 给水用钢骨架聚乙烯塑料复合管件
- 电影赏析绿皮书课件(内容详细)
- 信阳职业技术学院单招《职业技能测试》参考试题库(含答案)
评论
0/150
提交评论