多功能数字钟毕业论文.doc_第1页
多功能数字钟毕业论文.doc_第2页
多功能数字钟毕业论文.doc_第3页
多功能数字钟毕业论文.doc_第4页
多功能数字钟毕业论文.doc_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多功能数字钟毕业论文1.1 第一章引 言1.2 多功能电子时钟研究的背景和意义电子技术是十九世纪末、二十世纪初开始发展起来的新兴技术,二十世纪发展最迅速,应用最广泛,成为近代科学技术发展的一个重要标志。在其推动下,现代电子产品正在以前所未有的革新速度,向着功能多样化、体积最小化、功耗最低化的方向迅速发展,电子技术的发展有力的推动社会生产力的发展。 郭沫若先生曾说:时间就是生命,时间就是速度,时间就是力量。时间对我们来说总是那么宝贵,在我们的日常工作、学习、生活中,时间概念愈加显得重要。在高度发达信息化的21世纪,人们总是那么忙碌。生活工作中班车要准点,上班要准时,开会要有时间限制;工业生产中,每一道工序都要有严格的时间限制,这样才能做到井井有条;严谨的科技研究中,时间更是重中之重。能够准确的了解并且实时性的知道时间,是我们学习、工作、生活中不可或缺的。机械式钟表虽然也可以告知人们时间,也可以定时,显示日历。但是由于受到机械结构、动力和体积的限制,在功能、性能以及造价上都没办法与电子时钟相比。 电子钟是采用电子电路实现对时、分、秒进行数字显示的计时装置,广泛应用于个人家庭,室外广场,汽车站和火车站等公共场所,成为人们日常生活中不可少的必需品。由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、0按时自动打铃、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,更为先进的电子钟的研究有着良好的发展前景和市场潜力。随着社会的进步,人们越来越青睐功能多样化的产品。温度实时显示系统技术已经发展成熟,比如空调遥控器上当前室温的显示、热水器温度的显示等等。如果能够在电子钟上利用电子技术实时性的准确的显示环境温度,那将为我们的生活、工作、和工业生产中带来极大的便利,同时也可以让我们随时的了解周围环境的变化以及必要措施的施行。1.3 电子时钟的功能电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时间精确、体积小、界面友好、可扩展性能强等特点,被广泛应用于生活和工作当中。当今市场上的电子时钟品类繁多,外形小巧别致。也有体型较大的,诸如公共场所的大型电子报时器等。电子时钟首先是数字化了的时间显示或报时器,在此基础上,人们可以根据不同场合的要求,在时钟上加置其他功能,比如定时闹铃,万年历,环境温度、湿度检测,环境空气质量检测,USB扩展口功能等。本设计电子时钟主要功能为:1. 有计时及校时功能,具有24小时制、12小时制的切换功能;2. 能显示年、月、日、星期及重新设定功能;3. 具有启动/停止/保持显示/清除功能;4. 可以设定闹铃时间,具有整点报时功能;5. 显示现场环境温度等;6. 能够语音播报时间。7. 发挥部分:可遥控调时、校时,实现非接触式止闹等要求精度:时间:0.1秒 ; 温度:0.1度第二章 电子时钟设计方案分析电子闹钟既可以通过纯硬件实现,也可以通过软硬件结合实现,根据电子时钟里的核心部件秒信号的产生原理,通常有以下两种形式:2.1 NE555时基电路设计方案555定时器是美国Signetics公司1972年研制的用于取代机械式定时器的中规模集成电路,因输入端设计有三个5K的电阻而得名。一般用双极性工艺制作的称为 555,用 CMOS 工艺制作的称为 7555。目前,流行的产品主要有4种:BJT两个:555,556(含有两个555);CMOS两个:7555,7556(含有两个7555)。555 定时器的电源电压范围宽,可在 4.5V16V 工作,7555 可在 318V 工作,输出驱动电流约为 200mA,因而其输出可与 TTL、CMOS 或者模拟电路电平兼容。555定时器可以说是模拟电路与数字电路结合的典范。555 定时器成本低,性能可靠,只需要外接几个电阻、电容,就可以实现多谐振荡器、单稳态触发器及施密特触发器等脉冲产生与变换电路。它也常作为定时器广泛应用于仪器仪表、家用电器、电子测量及自动控制等领域5。采用NE555时基电路或其他振荡电路产生秒脉冲信号,作为秒加法电路的时钟信号或微处理器的外部中断输入信号,可构成电子钟。由555构成的秒脉冲发生器电路见图2.1。输出的脉冲信号V0的频率F为: 式(2.1)可通过调节式2.1中的3个参数,使输出V0的频率为精确的1Hz。图2.1 基于的秒脉冲发生器采用555定时器设计电子时钟,成本低,容易实现。但是受芯片引脚数量和功能限制,不容易实现电子时钟的多功能性。2.2 单片机设计方案单片机(常用英文字母的缩写MCU表示)是微型机的一个主要分支,它在结构上的最大特点使把CPU、存储器、定时器和多种输入/输出接口电路集成在一块超大规模集成电路芯片上。就其组成和功能而言,一块单片机芯片就是一台计算机。单片机具有如下特点:有优异的性能价格比;1 集成度高、体积小、有很高的可靠性;2 控制功能强;3 低功耗、低电压,便于生产便携式产品;4 外部总线增加了I2C、SPI等串行总线方式,进一步缩小了体积,简化了结构;5 单片机的系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。单片机广泛应于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域传统。利用单片机的智能性,可方便地实现具有智能的电子钟设计。单片机均具有时钟振荡系统,利用系统时钟借助微处理器的定时器/计数器可实现电子钟功能。然而系统时钟误差较大,电子钟的积累误差也可能较大,所以可以通过误差修正软件加以修正,或者在设计中加入高精度时钟日历芯片,以精确时间。另外很多功能不同的单片机是兼容的,这就更便于实现产品的多功能性。第三章 基于单片机的电子时钟硬件设计在比较了第二章的两种实现方案之后,考虑单片机具有体积小、质量轻、价格便宜、功耗低、控制能力强以及运算速度快速等优点,故采用单片机作为本设计的硬件基础。由于该部分是由另一同学负责完成,我将只在这部分介绍各器件选择和简单的电路,不进行详细的解释。3.1 主要IC芯片选择3.1.1 微处理器选择目前在单片机系统中,应用比较广泛的微处理器芯片主要为8XC5X系列单片机。该系列单片机均采用标准MCS-51内核,硬件资源相互兼容,品类齐全,功能完善,性能稳定,体积小,价格低廉,货源充足,调试和编程方便,所以应用极为广泛。AT89S52单片机是一款低功耗,低电压,高性能CMOS 8位单片机,片内含8KB(可经受1000次擦写周期)的FLASH可编程可反复擦写的只读程序存储器(EPROM),器件采用CMOS工艺和ATMEI公司的高密度、非易失性存储器(NURAM)技术制造,其输出引脚和指令系统都与MCS-51兼容。片内的FLASH存储器允许在系统内可改编程序或用常规的非易失性存储器编程器来编程。因此,AT89S52是一种功能强,灵活性高且价格合理的单片机,可方便的应用在各个控制领域6。AT89S52具有以下主要性能:1. 8KB可改编程序Flash存储器;2. 全静态工作:024Hz;3. 2568字节内部RAM;4. 32个外部双向输入/输出(I/O)口;5. 8个中断优先级; 3个16位可编程定时计数器;6. 可编程串行通道;7. 片内时钟振荡器。此外,AT89S52是用静态逻辑来设计的,其工作频率可下降到0Hz,并提供两种可用软件来选择的省电方式空闲方式(Idle Mode)和掉电方式(Power Down Mode)。在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,只保存片内RAM中的内容,直到下一次硬件复位为止。图3.1 AT89S52芯片PDIP封装引脚图AT89S52为适应不同的产品需求,采用PDIP、TQFP、PLCC三种封装形式,本系统采用双列直插PDIP封装形式,如图3.1。3.1.1.1常用时钟日历芯片比较在电子时钟设计中,常用的实时时钟芯片有DS12887、DS1216、DS1643、DS1302。每种芯片的主要时钟功能基本相同,只是在引脚数量、备用电池的安装方式、计时精度和扩展功能等方面略有不同。DS12887与DS1216芯片都有内嵌式锂电池作为备用电池; X1203引脚少,没有嵌入式锂电池,跟DS1302芯片功能相似,只是相比较之下,X1203与AT89S52搭配使用时占用I/O口较多。DS1643为带有全功能实时时钟的8K8非易失性SRAM,集成了非易失性SRAM、实时时钟、晶振、电源掉电控制电路和锂电池电源,BCD码表示的年、月、日、星期、时、分、秒,带闰年补偿。同样,DS1643拥有28只管脚,硬件连接起来占用微处理器I/O口较多,不方便系统功能拓展和维护。故而从性价比和货源上考虑,本设计采用实时时钟日历芯片DS1302。3.1.1.2 DS1302简介DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。有主电源和备份电源双引脚,而且备份电源可由大容量电容(1F)来替代。需要强调的是,DS1302需要使用32.768KHz的晶振。3.1.1.3 DS1302引脚说明DS1302引脚如图3.2。图3.2 DS1302芯片引脚图其的引脚功能参照表3.1。表3.1 DS1302引脚功能说明引脚号名称功能1VCC1备份电源输入2X132.768KHz晶振输入3X232.768KHz晶振输出4GND地5RST控制移位寄存器/复位6I/O数据输入/输出7SCLK串行时钟8VCC2主电源输入3.1.2 环境温度传感器选择3.1.2.1 常用温度传感器比较在日常生活中和工农业生产中常要用到温度检测及控制,传统的测温元件有热电偶和热电阻,一般用来测量中高温,输出的是电压,将其转换成对应的二进制温度码值,需要较多的硬件支持,硬件电路复杂,软件调试较为复杂,制作成本高。另外,采集环境的温度也可采用IC化的温度传感器。常用的此类温度传感器有AD590和DS18B20。AD590测量到不同温度之后,将把应温度转化为线性电流输出,为1A/K,正比于热力学温度。该传感器宽量程,为-55+150;精度高,激光校准精度到0.5;电源范围宽:+4+30V。AD590优点很多,但是由于它只能将采集来的温度转化为电流输出,所以在实际应用中,需要先将AD590输出的电流转化为电压,再利用A/D转换元件进行模/数转换,将模拟量转化为数字量,最后送入单片机中12。与AD590不同的是,DS18B20数字温度传感器能直接将被测温度转化成串行数字信号,以供单片机处理,既节省了硬件,又有效避免了模拟方式的干扰问题。它还具有微型化、低功耗、高性能、等优点。通过编程,DS18B20可以实现912位温度读数,信息经过单线接口送入DS18B20或从DS18B20送出,因此从单片机到DS18B20仅需要连接一条线。读、写和完成温度变换所需的电源可由数据线本身提供,而无需外部电源。测量范围为-55+125,增量值为0.5。电源电压范围为+3.0+5.5V。通过编程,用户还以自行设定告警上下限温度,告警寻找命令可以识别和寻址那些温度超出预设告警界限的器件。3.1.2.2 DS18B20简介 DS18B20是美国Dallas公司生产的基于单线(1-wire)技术的数字温度传感器芯片。其管脚分布如图3.3。VCC3DQ2GND1DS18B20图3.3 DS18B20引脚分布图每片DS18B20在出厂时都设有唯一的产品序列号,此序列号存放在它的内部ROM中,微处理器通过简单协议,就能识别这些序列号,因此多个DS18B20可以挂接于同一条单总线上,这允许在许多不同的地方放置温度传感器,特别适合于构成多点温度测控系统。所以DS18B20多应用与HVAC环境控制,建筑物、设备或机械内的温度检测,以及过程监视和控制中的温度检测。管脚功能描述参见表3.2。表3.2 DS18B20详细引脚功能描述序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚;开漏单总线接口引脚;当被用在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚;当工作于寄生电源时,此引脚必须接地。3.1.2.3 DS18B20内部结构 DS18B20的内部结构主要由4部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。配置寄存器为高速暂存存储器中的第5个字节。DS18B20在工作时按此寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如表3.3所示。其中,TM为测试模式标志位,出厂时被写入“0”,不能改变;R0、R1是温度计分辨率设置位。表3.3 DS18B20配置寄存器结构表BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0TMR1R011111MSB LSB其对应四种分辨率如表3.4所示,出厂时R0、R1被置为“1”,默认设置是12位分辨率,用户可根据需要给写配置寄存器以获得合适的分辨率。表3.4 配置寄存器与分辨率关系表R0R1温度计分辨率/bit最大转换时间/ms00993.750110187.5010113751112750温度信息的低位、高位字节内容还包括了符号位S(是正温度还是负温度)和二进制小数部分,其具体形式如图3.4。图3.4 DS18B20温度值格式表图3.3所示是12位分辨率的情况,如果配置为低分辨率,则其中无意义位为“0”。在DS18B20完成温度变换之后,温度值与存储在TH和TL内的告警触发值相比较。由于这些是8位寄存器,所以912位在比较时忽略。TH或TL的高位直接对应于16位温度寄存器的符号位。如果温度测量的结果高于TH或低于TL,那么器件内告警标志将置位,每次温度测量都会更新此标志位。只要告警标志置位,DS18B20就将响应告警搜索命令,这也就允许单线上多个DS18B20同时进行温度测量,即使某处温度越限,也可以识别出正在告警的器件。3.1.3 显示器选择3.1.3.1 常用显示方式比较时钟的显示方式有两种,即LCD液晶显示和LED数码管显示。其中,数码管虽通过设置可以完成制作任务,但显示不够直观、提供信息量少,所以不采用此方式。液晶LCD12864具有汉字显示功能的液晶显示器,来实现显示功能,能实现基本的显示信息,可以显示丰富的符号信息及文字提示信息。3.1.3.2 LCD12864简介LCD12864是一种图形液晶显示器,它主要由行驱动/列驱动和128*64全点阵液晶显示器组成。可完成图形显示,也可显示8*4个(16*16点阵)汉字。具有以下特点:1、电源:VDD+5V,模块内自带-10V负压,用于LCD的驱动。2、显示内容:128(列)*64(行)点。3、七种指令。4、与CPU接口采用8位数据总线并行输入输出和8条控制线。5、工作温度:0-60,3.2 电子时钟硬件电路设计设计中以AT89S52芯片作为控制核心,采用LCD12864作为显示介质,DS1302实时时钟日历芯片完成时钟、日历的基本功能,ISD4004完成语音报时功能,同时利用DS18B20温度传感器测量环境温度;另外,系统中还引用了红外遥控技术对相关参数进行控制。整体框图参照图3.5。图3.5 多功能电子时钟硬件系统框图3.2.1 时钟电路设计如图3.6,AT89S52单片机P2.6直接接DS1302的RST端,上电后,AT89S52的P2.6脚自动输出高电平。P2.4作为串行时钟接口,P2.5作为时钟数据的I/O。特别需要注意X1和X2两端连接的晶振Y1,该晶振频率为32.768KHz。图3.6 系统时钟电路3.2.2 环境温度采集电路设计本设计中使用DS18B20温度传感器进行环境温度采集和转化。如图3.7所示,AT89S52单片机的P2.7脚接DS18B20的I/O脚,作为数据的读入和写出口。电阻R7作为DS18B20的I/O口的上拉电阻,在读时隙结束时,I/O引脚将通过此上拉电阻拉回至高电平。图3.7 系统环境温度采集电路3.2.3 显示电路本设计中采用了LCD12864液晶显示屏为介质进行各种显示功能。如图3.8。图3.8显示电路图 3.2.4 按键电路设计根据功能需要,本时钟需要设置以下功能键:设置键,加1操作键,减1操作键,退出键。由于本设计中最多需要5个按键,若采用矩阵式键盘时会有按键浪费,故采用的是独立式键盘其中K1、K2、K7为带自锁按键,每次按下后,其对应的P2.7、P2.6、P2.1管脚接地,从高电平被拉至低电平。只有再次按下,按键弹出,与之连接的单片机管脚才会重新被拉回高电平。K3、K4、K5、K6键为自动复位按键。每次按下后,会自动弹出。单片机管脚只有在按键按下时为低电平,按键弹出后重新恢复高电平。按键功能参见表3.5。表3.5 按键功能表按键键名功能属性K1SET功能选择设置自动复位K2UP数值加一操作自动复位K3DOWN数值减一操作自动复位K4OUT退出自动复位按键操作说明如下:K1键:在正常显示时间状态下,第一次按下后,开始校对秒,以后每次按下都会分别进入对分、时、闹铃分、闹铃时、日、月、年的校对状态。K2键:在校对状态下,每次按动该键,都会使相应校对位进行加1操作。例如:校对小时状态,每按一下,小时位加1,当加至小时最高值23时,再按K4键,小时位回0。调分、秒、年、月、日与皆之相同,只是各位最高值不同。K3键:与K4键类似,不同之处是该键每次按下将使相应校对位进行减1操作。K4键:按下该键,返回时间显示状态并且不做任何改变。3.2.5 报时电路设计该模块采用了ISD4004语音芯片。电路如图3.9。图3.9 报时电路3.2.6 闹铃电路设计闹铃音乐可以直接采用蜂鸣器闹铃,如当前时刻与闹铃时间相同,单片机向蜂鸣器送出高电平,蜂鸣器发声。采用蜂鸣器闹铃结构简单,控制方便。3.2.7 复位电路设计复位是单片机的初始化操作,以便使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。除了进入系统的正常初始化之外,当单片机系统在运行出错或操作错误使系统处于死锁状态时,也可按复位键重新启动。RST端的外部复位电路有两种操作方式:上电自动复位和按键手动复位。上电自动复位是利用电容储电来实现的,如图3.10(a)所示。上电瞬间,RC电路充电,RST端出现正脉冲,随着充电电流的减少,RST的电位逐渐下降。按键手动复位有电平方式和脉冲方式两种。按键电平复位是相当于RST端通过电阻接高电平,如图3.10(b)所示;按键脉冲复位,利用RC微分电路产生正脉冲,如图3.10(c)所示。出于应用方便,本设计采用按键电平复位电路。实际电路请参见附录,复位按键为K5。表3.6 单片机寄存器的复位状态表寄存器复位状态寄存器复位状态PC0000HTCON00HACC00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP1、P3FFHSCON00HIP000000BSBUF不定IE000000BPCON0B(NMOS)TMOD00H00000B(CHMOS)a、上电复位 b、按键电平复位 c、按键脉冲复位图3.13 上电复位和按键复位电路第四章 电子时钟软件设计C51单片机可以应用汇编语言和C语言进行编程。,汇编语言与机器指令一一对应所以用汇编语言编写的程序在单片机里运行起来效率较高。C语言程序可读性高,更便于理解。本设计应用C语言进行编程。该部分设计由我负责完成。电子时钟的系统软件设计采用模块化设计方法。整个系统由主模块、实时时钟模块、环境温度采集模块、显示模块、键盘扫描模块、红外遥控模块、语音报时模块和闹钟模块等各种功能模块组成。4.1 主程序设计第一次上电,系统先进行初始化, LCD12864显示主画面初始画面问日期为“2007年07月10日 星期三”,初始时间“23:59:30”,并开始走时。主程序流程图如图4.1。图4.1 多功能电子钟主程序流程图4.2 子程序设计4.2.1 实时时钟日历子程序设计该程序主要实现对DS1302写保护、充电,对年、月、日、时、分、秒等寄存器的读写操作。在读写操作子程序中都执行了关中断指令,因为在串行通信时对时序要求比较高,而且在此是用I/O口软件模拟串行时钟脉冲,所以在通信过程中最好保证传输的连续性,不要允许中断。其流程图如图4.2。 图4.2 实时时钟日历子程序流程图DS1302每次上电时自动处于暂停状态,必须把秒寄存器的位7置位0,时钟才开始计时。如果DS1302一直没有掉电,则不存在此问题。在进行写操作时,需要先解除写保护寄存器的“禁止”状态。当用多字节模式进行操作时,必须写够8字节。在编写此段程序前,必须对DS1302的控制字和读写时序,以及片内寄存器进行了解。4.2.1.1 DS1302的控制字和读写时序说明在编程过程中要注意DS1302的读写时序。DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。要想与DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如表4.1。表4.1 DS1302控制字(即地址及命令字节)BIT7BIT6BIT5BIT4BIT 3BIT 2BIT 1BIT 01RAMA4A3A2A1A0RD控制字的作用是设定DS1302的工作方式、传送字节数等。每次数据的传输都是由控制字开始。控制字各位的含义和作用如下:1. BIT7:控制字的最高有效位,必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。2. BIT 6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;3. BIT 5至BIT 1(A4A0):用A4A0表示,定义片内寄存器和RAM的地址。定义如下:当BIT 6位=0时,定义时钟和其他寄存器的地址。A4A0=06,顺序为秒、分、时、日、月、星期、年的寄存器。当A4A0=7,为芯片写保护寄存器地址。当A4A0=8,为慢速充电参数选择寄存器。当A4A0=31,为时钟多字节方式选择寄存器。当BIT 6=1时,定义RAM的地址,A4A0=030,对应各子地址的RAM,地址31对应的是RAM多字节方式选择寄存器。4. BIT 0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。DS1302的数据读写方式有两种,一种是单字节操作方式,一种是多字节操作方式。每次仅写入或读出一个字节数据称为单字节操作,每次对时钟/日历的8字节或31字节RAM进行全体写入或读出的操作,称其为多字节操作方式。当以多字节方式写时钟寄存器时,必须按数据传送的次序依次写入8个寄存器。但是,当以多字节方式写RAM时,不必写所有31字节。不管是否写了全部31字节,所写的每一个字节都将传送至RAM。为了启动数据的传输,CE引脚信号应由低变高,当把CE驱动至逻辑1的状态时,SCLK必须为逻辑0,数据在SCLK的上升沿串行输入。无论是读周期还是写周期,也无论送方式是单字节传送还是多字节传送,都要通过控制字指定40字节中的哪个将被访问。在开始8个时钟周期把命令字(具有地址和控制信息的8位数据)装入移位寄存器之后,另外的时钟在读操作时输出数据,在写操作时输入数据,所有的数据在时钟的下降沿变化。所有写入或读出操作都是先向芯片发送一个命令字节。对于单字节操作,包括命令字节在内,每次为2个字节,需要16个时钟;对于时钟/日历多字节模式操作,每次为7个字节,需要72个时钟;而对于RAM多字节模式操作,每次则为32字节,需要多达256个时钟。这里仅给出单字节读写时序,如图4.3。多字节操作方式与其类似,只是后面跟的字节数不止一个。图4.3 DS1302数据读写时序4.2.1.2 DS1302的片内寄存器通过控制字对DS1302片内寄存器进行寻址之后,即可就所选中寄存器的各位进行操作。片内各寄存器及各位的功能定义如表4.2。表4.2 DS1302有关日历、时间的寄存器读寄存器写寄存器BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0范围81H80HCH10秒秒00-5983H82H10分分00-5985H84H010时时1-120-23AM/PM87H86H0010日日1-3189H88H0010月月1-128BH8AH00000周日1-78DH8CH10年年00-998FH8EHWP0000000DS1302有关日历、时间的寄存器共有10个,时钟/日历包含在其中的7个写/读寄存器内,这7个寄存器分别是秒、分、小时、日、月、星期和年。小时寄存器(85H、84H)的位7用于定义DS1302是运行于12小时模式还是24小时模式。当为12小时制式时,位5为“0”表示AM;为“1”表示PM。在24小时制式下,位5是第二个10小时位(2023时)。 秒寄存器(81H、80H)的位7定义为时钟暂停标志(CH)。当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。一般在设置时钟时,可以停止其工作,设定完之后,再启动其工作。控制寄存器(8FH、8EH)的位7是写保护位(WP),其它7位均置为0。在任何片内时钟/日历寄存器和RAM,在写操作之前,WP位必须为0,否则将不可写入。当WP位为1时,写保护位防止对任一寄存器的写操作。因此,通过置写保护位,可以提高数据的安全性。另外,还有慢速充电控制寄存器和RAM寄存器。如表4.3。表4.3充电控制寄存器和RAM寄存器各位定义BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0充电控制寄存器TCSTCSTCSTCSDSDSRSRSRAM寄存器慢速充电寄存器控制着DS1302的慢速充电特性。寄存器的BIT4BIT7(TCS)决定是否具备充电性能:仅在编码为1010的条件下才具备充电性能,其他编码组合不允许充电。BIT2和BIT3选择在VCC2和VCC1之间是一个还是两个二极管串入其中。如果编码DS是01,选择一个二极管;如果编码是10,选择两个二极管;其他编码将不允许充电。该寄存器的BIT0和BIT1用于选择与二极管相串联的电阻值。其中编码RS=01为2 K,RS=10为4 K,RS=11为8 K,而RS=00将不允许进行充电。因此,根据慢速充电寄存器的不同编码可得到不同的充电电流。其具体计算如公式4.1: I充电=(V0-VD-VE)/R (4.1)式中:V0所接入的5.0V工作电压;VD二极管压降,一个按0.7V计算;R慢速充电控制寄存器0和1位编码决定的电阻值;VEVCC1脚所接入的电池电压。RAM寄存器寻址空间一次排列的31字节静态RAM可为用户使用,备用电源位RAM提供了掉电保护功能。寄存器和RAM的操作通过命令字节的BIT6加以区别。当BIT6为“0”时对RAM区进行寻址;否则将对时钟/日历寄存器寻址。其操作方法与前述相同。4.2.2 环境温度采集子程序设计DS18B20是一种单线器件,它在一根数据线上实现数据的双向传输,这就需要一定的协议来对读写数据提出严格的时序要求,而AT89S52单片机并不支持单线传输。因此,必须采用软件的方法来模拟单线的协议时序。主机操作单线器件DS18B20必须遵循下面的顺序。1. 初始化单线总线上的所有操作均从初始化开始。初始化过程如下:主机通过拉低单线480s以上,产生复位脉冲,然后释放该线,进入RX接收模式。主机释放总线时,会产生一个上升沿。单线器件DS18B20检测到该上升沿后,延时1560s,通过拉低总线60240s来产生应答脉冲。主机接收到从机的应答脉冲后,说明有单线器件在线。2. ROM操作命令一旦总线主机检测到应答脉冲,便可以发起ROM操作命令。共有5位ROM操作命令。如表4.4。表4.4 DS18B20的ROM操作命令命令类型命令字节功能说明Raed Rom33H此命令读取激光ROM中的64位,只能用于总线上单个DS18B20器件的情况,多挂则会发生数据冲突Match Rom(匹配ROM)55H 此命令后跟64位ROM序列号,寻址多挂接总线上的DS18B20。只有序列号完全匹配的DS18B20才能响应后面的内存操作命令,其他不匹配的将等待复位脉冲。此命令可用于单挂接或者多挂接总线。Skip Rom(跳过ROM)CCH此命令用于单挂接总线系统时,可以无需提供64位ROM序列号皆可运行内存操作命令。如果总线上接多个DS18B20,并且在此命令后执行读命令,将会发生数据冲突。Search Rom(搜索ROM)F0H 主机调用此命令,通过一个排除法过程,可以识别出总线上所有器件的ROM序列号。Alarm Search(告警搜索)ECH 此命令流程图和Search Rom命令相同,但是DS18B20只有在最近的一次温度测量时满足了告警触发条件,才会响应此命令。3. 内存操作命令在成功执行了ROM操作命令之后,才可以使用内存操作命令。主机可以提供6种内存操作命令,如表4.5。表4.5 DS18B20内存操作命令命令类型命令字节功能说明Write Scratchpad(写暂存器)4EH此命令写暂存器中地址24的3个字节(TH、TL和配置寄存器)在发起复位脉冲之前,3个字节都必须要写。Rrad Scratchpad(读暂存器)BEH 此命令读取暂存器内容,从字节0一直读取到字节8。主机可以随时发起复位脉冲以停止此操作。Copy Scratchpad(复制暂存器)48H 此命令将暂存器中的内容复制进E2RAM,以便将温度告警触发字节存入非易失内存。如果在此命令后产生读时隙,那么只要器件在进行复制就会输出0,复制完成后,再输出1。Convert T(温度转换)44H 此命令开始温度转换操作。如果在此命令后主机产生读时隙,那么只要器件在进行温度转换就会输出0,转换完成后再输出1。Recall E2(重调E2存储器)B8H 将存储在E2RAM中的温度告警触发值和配置寄存器值重新拷贝到暂存器中。此重调操作在DS18B20加电时自动产生。Read Power Supply(读供电方式)B4H 主机发起此命令后的每个读数据时隙内,DS18B20发信号通知它的供电方式:0为寄生电源方式,1为外部供电方式。4. 数据处理DS18B20要求有严格的时序来保证数据的完整。在单线DQ上,存在复位脉冲、应答脉冲、写“0”、写“1”、读“0”和读“1”几种信号类型。其中,除了应答脉冲之外,均由主机产生。而数据位的读和写则是通过使用读、写时隙实现的。首先了解写时隙。当主机将数据线从高电平拉至低电平时,产生写时隙。有2种类型的写时隙:写“1”和写“0”。所有写时隙必须在60s以上(即由高拉低后持续60s以上),各个写时隙之间必须保证最短1s的恢复时间。DS18B20在DQ线变低后的1560s的窗口对DQ进行采样,如果为高电平,就为写“1”;如果为低电平,就为写“0”。对于主机产生写“1”时隙的情况,数据线必须先被拉低,然后释放,在写时隙开始后的15s,允许DQ线拉至高电平。对于主机写“0”时隙的情况,DQ线必须被拉至低电平且至少保持低电平60s。再来了解读时隙。当主机从DS18B20读数据时,把数据线从高电平拉至低电平,产生读时隙。数据线DQ必须保持低电平至少1s,来自DS18B20的输出数据在读时隙下降沿之后15s内有效。因此,在此15s内,主机必须停止将DQ引脚置低。在读时隙结束时,DQ引脚将通过外部上拉电阻拉回至高电平。所有的读时隙最短必须持续60s,各个读时隙之间必须保证最短1s的恢复时间。所有的读写时隙至少需要60s,且每两个独立的时隙之间至少需要1s的恢复时间。在写时序中,主机将在拉低总线15s内释放总线,并向DS18B20写“1”。若主机拉低总线后能保持60s的低电平,则向单总线器件写“0”。DS18B20仅在主机发出读时隙时才向主机传输数据,所以,当主机向DS18B20发出读数据命令后,必须马上产生读时隙,以便DS18B20能传输数据。实现环境温度采集转换并读取数据的程序流程图参见图4.4。图4.4 环境温度采集子程序流程图4.2.3 显示子程序设计本设计中显示模块采用LCD12864显示。4.2.3.1 内部结构1. 指令寄存器(IR)IR是用来寄存指令码,与数据寄存器寄存数据相对应.当D/I=1 时,在E信号下降沿的作用下,指令码写入IR。2. 数据寄存器(DR)DR是用来寄存数据的,与指令寄存器寄存指令相对应.当D/I=1时,在E信号的下降沿作用下,图形显示数据写入DR,或在E信号高电平作用下由DR读到DB7DB0 数据总线.DR 和DDRAM之间的数据传输是模块内部自动执的。3. 忙标志:BFBF标志提供内部工作情况.BF=1表示模块在进行内部操作,此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可接受外部指令和数据。利用STATUS READ 指令,可以将BF读到DB7总线,从而检验模块之工作状态。4. 显示控制触发器DFF此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示(DISPLAY ON),DDRAM的内容就显示在屏上,DDF=0为关显示(DISPLAY OFF)。DDF 的状态是指令DISPLAY ON/OFF和RST信号控制的。5. XY地址计数器XY地址计数器是一个9位计数器。高三位是X地址计数器,低6位为Y地址计数器,XY地址计数器实际上是作为DDRAM的地址指针,X地址计数器为DDRAM的页指针,Y地址计数器为DDRAM的Y地址指针。X地址计数器是没有记数功能的,只能用指令设置。Y地址计数器具有循环记数功能,各显示数据写入后,Y地址自动加1,Y地址指针从0到63。6. 显示数据RAM(DDRAM)DDRAM是存贮图形显示数据的。数据为1表示显示选择,数据为0表示显示非选择。7. Z地址计数器Z地址计数器是一个6位计数器,此计数器具备循环记数功能,它是用于显示行扫描同步。当一行扫描完成,此地址计数器自动加1,指向下一行扫描数据,RST复位后Z地址计数器为0。Z地址计数器可以用指令DISPLAY START LINE 预置。因此,显示屏幕的起始行就由此指令控制,即DDRAM的数据从哪一行开始显示在屏幕的第一行。此模块的DDRAM共64行,屏幕可以循环滚动显示64行。4.2.3.2 指令系统说明该类液晶显示模块的指令系统总共有七种。其指令见表4.6。表4.6 指令表1 显示开关控制(DISPLAY ON/OFF)D=1:开显示(DISPLAY ON) 意即显示器可以进行各种显示操作D=0:关显示(DISPLAY OFF) 意即不能对显示器进行各种显示操作2 设置显示起始行(DISPLAY START LINE)前面在Z地址计数器一节已经描述了显示起始行是由Z地址计数器控制的。A5A0 6位地址自动送入Z地址数器,起始行的地址可以是063的任意一行。3 设置页地址(SET PAGE “X ADDRESS”)所谓页地址就是DDRAM的行地址,8行为一页,模块共64行即8页,A2A0表示07页。读写数据对地址没有影响,页地址由本指令或RST信号改变复位后页地址为0。4 设置Y地址(SET Y ADDRESS)此指令的作用是将A5A0送入Y地址计数器,作为DDRAM的Y地址指针。在对DDRA M进行读写操作后,Y地址指针自动加1,指向下一个DDRAM单元。5 读状态(STATUS READ)当R/W=1 D/I=0时,在E信号为“H”的作用下,状态分别输出到数据总线(DB7DB0)的相应位。BF: 前面已叙述过(见BF标志位一节)。ON/OFF: 表示DFF触发器的状态(见DFF触发器一节)。RST: RST=1表示内部正在初始化,此时组件不接受任何指令和数据。6 写显示数据(WRITE DISPLAY DATE)D7D0为显示数据,此指令把D7D0写入相应的DDRAM单元,Y地址指针自动加1。7 读显示数据(READ DISPLAY DATE)此指令把DDRAM的内容D7D0读到数据总线DB7DB0,Y地址指针自动加1。4.2.3.3读写操作时序1. 写操作时序 2. 读操作时序实现LCD12864显示的程序流程图参见图4.5。各种数据要显示之前,将先转化为相应的字符串,再发送给LCD12864实现显示。图4.5 12864显示子程序流程图4.2.4 键盘扫描子程序1 按键抖动消除当按键按下时会产生前沿抖动,按键弹起时会产生后沿抖动,波形图如图4.6。这是所有机械触点式按键在状态输出时的共性问题。因此,在按键处理设计中,对按键信号进行去抖是必不可少的一个步骤。 图4.6 按键抖动波形按键消抖有两种方式:硬件消抖和软件消抖。由于硬件消抖将会使电路复杂,成本升高,所以在本设计中采用软件消抖的方式。 键盘识别 有键按下? 去抖动 确认按键物理位置 记录对应功能 等待释放 返回YN软件消抖的基本原理:当检测有按键按下时,先执行一个延时子程序产生数毫秒的延时(一般为1020ms),待接通时间的前沿抖动消失再判别是否有按键按下。当按键释放时,也要经过数毫米的延时,待后延抖动消失后再判别按键是否释放。按键识别流程如图4.7。图4.7 按键识别流程图2 按键扫描单片机对键盘扫描的方法有随机扫描方式、定时扫描方式和中断扫描方式。在随机扫描方式中,CPU完成某特定任务后,即执行键盘扫描程序,以确定键盘有无按键输入,然后根据按键功能转去执行相应的操作。在执行键盘按键规定的功能中不理睬键盘输入。定时扫描方式与随机扫描方式基本相同,只是利用CPU内的定时中断,每隔一定时间扫描有无按键被按下,键盘反应速度较快,在处理按键功能过程中,可以通过键盘命令进行干预,如取消、暂停等操作。前两种扫描方式均会占用CPU大量时间。不管有没有键入操作,CPU总要在一定的时间内进行扫描,这对于单片机控制系统是很不利的16。由于本设计中AT89S51单片机在系统中的主要任务是接受DS1302和DS18B20的数据并送出显示,完成时钟/日历校对和时间/温度显示控制。AT89S51单片机完全有能力完成以上工作,所以采用随机扫描键盘方式,系统也能够正常运行。3 按键功能调时选择按键K1对年、月、日、星期、时、分、秒及闹钟设置进行选择,按第一次则时间显示保持不变,同时秒显示处光标闪烁,此时可通过上调按键K2 和下调按键K3 对秒进行上下调节。按第二次则光标在分钟处闪烁,此时可通过上调按键K2和下调按键K3 对分钟进行上下调节。其他依

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论