1龙岩学院温度万年历毕业论文(设计)题目:基于51单片机的电子万年历的制作专业:电子信息工程作者:兰添英指导教师(职称):任志山(副教授)二00八年四月二十六日2基于51单片机的电子万年历制作物理与机电工程学院电子信息工程专业200402125兰添英指导老师:任志山【摘要】本次设计就是设计一款万年历,以AT89S52单片机为核心,配备数码管显示模块、按键等功能模块。分别采用A/D转换器TLC1549和温度传感器LM35来实现的。万年历采用24小时制方式显示时间,在数码管上显示年、月、日、小时、分钟、秒等功能。设计的核心主要包括硬件设计和软件编程两个方面。硬件电路设计主要包括中央处理单元电路、时钟电路、执行电路等几部分。软件用汇编语言来实现,主要包括主程序、键盘扫描子程序、时间设置子程序等软件模块。【关键词】单片机万年历温度传感器LM35A/D转换器TLC15493【绪论】万年历,就是记录一定时间范围内(比如100年或更多)的具体阳历与阴历的日期的年历,方便有需要的人查询使用。万年只是一种象征,表示时间跨度大。这次设计通过对万年历系统的设计,详细介绍了51单片机应用中的按键处理、数码管显示原理、动态和静态显示原理、定时中断、A/D转换等原理。该系统能够显示年、月、日、小时、分钟、秒、星期、农历、温度,通过按键可以修改时间和设定闹钟等功能。此系统结构简单、功能齐全,具有一定的推广价值。1.系统说明1.1方案选择方案一:采用日历时钟芯片DS12887来产生时间,数据经单片机处理后送到数码管显示。DS12887内部有晶体振荡器、振荡电路、充电电路和可充电锂电池。此外,片内有114B的RAM。方案二:采用纯单片机制作。方案一中因为有了日历时钟芯片,这就使得单片机的软件部分简单很多。但是考虑到芯片成本高,因此采用方案二。1.2系统方框图:如图1-1所示:图1-1系统方框图1.3说明系统由51系列单片机AT89S52、按键、温度采集、数码管显示、闹钟报时,电源等部分构成。单片机部分包括时钟电路、复位电路;按键部分能够实现对时间的调整和定时时间的设定。四个按键的功能分别为:退出、闹钟、设置、修改。温度采集部分包括温度传感器、A/D转换。传感器采样进来的信号经A/D转换后送给单片机,经软件处理后送至7段共阳数码管显示。一旦定时时间到,外接电路中的音乐芯片就会发出响声。电源部分共输出2个电压,9V和5V。9V电压给TL431提供电源,5V电压给各个芯片提供电源。2.电路模块说明2.1单片机电路2.1.1时钟电路4时钟系统是单片机的心脏,在本次设计中,包括中央处理器在内的所有单片机都是时钟系统所提供的节拍工作的。时钟电路由外接谐振器的时钟振荡器、时钟发生器及关断控制信号等组成。时钟振荡器是单片机的时钟源,时钟发生器对振荡器的输出信号进行二分频。CPU的时钟振荡信号有两个来源:一是采用内部振荡器,此时需要在XTAL1和XTAL2脚连接一只频率范围为0—33MHZ的晶体振荡或陶瓷振荡器及两只30pf电容。二是采用外部振荡,此时应将外部振荡器的输出信号接至XTAL1脚,将XTAL2脚浮空。利用单片机内部的定时功能来实现时钟的走时,通过编程实现每50毫秒产生一次中断,中断20次后,秒单元加1,秒单元加到60时,跳回到零再继续加,同时分单元加1。以次类推,从而实现秒、分、小时、年的走时。本次设计中采用的是内部振荡器,频率为12MHZ的晶体振荡器及30pf的瓷片电容。如图2-1所示。图2-1时钟电路2.1.2复位电路复位是指在规定的条件下,单片机自动将CPU以及与程序运行相关的主要功能部件、I/O口等设置为确定初始状态的过程。如果电路参数不符合规定的条件或干扰导致单片机不能正确的复位,系统将无法进行正常的工作,因此,复位电路除了要符合厂家规定的参数外,还要滤除可能的干扰。AT89S52单片机内部有一个由施密特触发器等组成的复位电路。复位信号是从其9脚,即RST脚输入的。AT89S52单片机规定,当其处于正常工作状态,且振荡器工作稳定后,在RST端有从高电平到低电平,且高电平时间大于两个机器周期的复位信号时,CPU将完成对系统的复位。有两点需要注意:一、复位信号是高电平有效,二、高电平的保持时间必须大于两个机器周期,可见高电平保持时间与振荡频率有关。本次设计中采用上电复位电路,上电复位是指在系统上电时,RST端自动产生复位所需要的信号将单片机复位,本次设计中的上电复位电路如图所示。上电时,RST端高电平的维持时间取决于R(1k)和C(22uF)的值。要使单片机可靠的复位,设计中使其维持的时间足够长。如图2-2所示。图2-2复位电路52.2温度采集电路2.2.1温度传感器该系统采用LM35作为温度传感器,LM35系列是精密集成电路温度传感器,其输出的电压线性地与摄氏温度成正比。因此,LM35比按绝对温标校准的线性温度传感器优越得多。LM35系列传感器生产制作时已经过校准,输出电压与摄氏温度一一对应,使用极为方便。灵敏度为10.0mV/℃,精度在0.4℃至0.8℃(-55℃至+150℃温度范围内),重复性好,低输出阻抗,线性输出和内部精密校准使其与读出或控制电路接口简单和方便,可单电源和正负电源工作。图2-3LM35的管脚图2-4LM35的电路特性:1、在摄氏温度下直接校准2、+10.0mV/℃的线性刻度系数3、确保0.5℃的精度(在25℃)4、额定温度范围为-55℃至+150℃5、适合于远程应用6、工作电压范围宽,4V至30V7、低功耗,小于60uA8、在静止空气中,自热效应低,小于0.08℃的自热9、非线性仅为±1/4℃10、输出阻抗,通过1mA电流时仅为0.1Ω极限参数:电源电压输出电压输出电流+35V~0.2V+6V~1.0100mA2.3.2A/D转换方案一:采用AD0809AD0809是一种8路模拟输入8位数字输出的逐次逼近法A/D器件,可以测量多路的模拟输入,但也占用比较多的I/O资源。方案二:采用TLC1549TLC1549是一种1路模拟输入带串行控制的10位模数转换器,转换精度高,由于采用串行输入方式占用比较少的I/O资源。这次设计只需一路的模拟输入,转换精度高要求比较高,因此选用方案二。从温度传感器采集进来的电压信号进入到A/D转换器以形成单片机便于处理的数字信号。在该设计中,采用了美国TI公司生产的10位模数转换器TLC1549。它采用CMOS工艺,具有内在的采样和保持,采用差分基准电压高阻输入,抗干扰,可按比例量程校准转换范围,总不可调整误差达到(±)1LSBMax(4.8mv),占地面积小等特点。其引脚图见图2-5。6图2-5TLC1549的管脚排列其工作原理为:在芯片选择(/CS)无效情况下,I/OCLOCK最初被禁止且DATAOUT处于高阻状态。当串行接口把/CS拉至有效时,转换时序开始允许I/OCLOCK工作并使DATAOUT脱离高阻状态。串行接口然后把I/OCLOCK序列提供给I/OCLOCK并从DATAOUT接收前次转换结果。I/OCLOCK从主机串行接口接收长度在10和16个时钟之间的输入序列。开始10个I/O时钟提供采样模拟输入的控制时序。在/CS的下降沿,前次转换的MSB出现10个时钟长度,那么在10个时钟的下降沿,内部逻辑把DATAOUT拉至低电平以确保其余位的值为零。在正常进行的转换周期内,规定时间内/CS端高电平至低电平的跳变可终止改周期,器件返回初始状态(输出数据寄存器的内容保持为前次转换结果)。由于可能破坏输出数据,所以在接近转换完成时要小心防于止/CS被拉至低电平。时序图如图2-6所示。图2-6TLC1549工作时的时序图由于它采用串行输出的方式,占地面积小,方便灵活,与单片机的接口简单,所以应用非常广泛。电路如图2-7所示。图2-7A/D转换电路72.3按键电路方案一:采用阵列式键盘此类键盘是采用行列扫描方式,当按键较多时可以减少占用单片机的I/O口数目。方案二:采用独立式按键电路每个键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。但是当按键较多时占用单片机的I/O数目较多。本系统只需四个按键,因此选择方案二。如果按键采用中断的话,可以使单片机工作更加灵活、效率更高。由于该系统要用到4个按键,考虑到单片机的中断资源不够,所以就只用外部INT0和INT1中断,另外2个按键接P1.0和P1.1口。电路如图2-8所示。图2-8按键电路2.4显示电路方案一:采用动态显示这种工作方式是分时轮流选通数码管的公共端,使得各个数码管轮流导通。当所有数码管依次显示一遍后,软件控制循环,使每位显示器分时点亮。这种方式不但能提高数码管的发光效率,并且由于各个数码管的字段线是并联使用的,因而大大简化了硬件线路。各个数码管虽然是分时轮流通电,但由于发光数码管具有余辉特性及人眼具有视觉暂留作用,所以适当选取循环扫描频率时,看上去所有数码管是同时点亮的,察觉不出有闪烁现象。方案二:采用静态显示数码管工作在静态显示方式下,共阴极或共阳极点连接在一起接地或高电平。每位的段选线与一个8位并行口相连。只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。该工作方式常采用串行口设定方式0输出,外接74LS164移位寄存器构成显示电路。由于该系统用到的数码管很多,要分3行显示,如果采用动态显示的话,单片机的I/O口资源明显不够。而采用静态显示的话,一个数码管就要对应一片74LS164芯片,这使得成本要花费很多。综合考虑后,决定采用动态显示和静态显示相结合的方法。采用3片74LS164级联的方法来带动21个数码管显示。第一行中年、月、日的段选线串接在一起接到第一片74LS164,第二行中小时、分钟、秒、星期的段选线串接在一起接到第二片74LS164,第三行中农历月、日、温度的段选线串接在一起接到第三片74LS164。第一片的A、B脚由单片机的RXD脚输入,第二片的A、B脚接到第一片的QH,第三片的A、B脚接到第二片的QH。三片的CLK脚共同接到单片机的TXD。位选通信号用8个三极管来控制。千年与十时、农历十月相连接至W1;百年与时、农历月相连接至W2;十年与十分、农历十日相连接至W3;年与分、农历日相连接至W4;十月与十秒、温度十位相连接至W5;月与秒、温度个位相连接至W6;十日与星期相连接至W7;日个位接至W8。发送第1个数据时,数据暂存在第一片164芯片中;发送第2个数据时,第1个数据就移到第二片164芯片,而第2个数据就存在第一片芯片中;发送第3个数据时,第1个数据就移到第三片芯片,第2个数据移到第二片芯片,而第3个数据就存在第一片芯片中。当连续发送完3个数据后,把W1打开,这时就显示第1列的3个8数;当第2次发送完3个数据后,把W2打开,就显示第2列的3个数;依此下去就可以显示全部的数据。W1-W8由P2口来控制选通,当选通速度很快时,肉眼就看不出有闪烁现象。电路如图2-9所示。图2-9显示电路2.5电源电路该部分有2个输出电压,9V和5V。220V交流市电通过电源变压器变换成交流12V低压,再经过桥式整流电路D1~D4和滤波电容2200uf的整流和滤波,在固定式三端稳压器LM7809的Vin和GND两端形成一个并不十分稳定的直流电压(该电压常常会因为市电电压的波动或负载的变化等原因而发生变化)。此直流电压经过LM7809的稳压和100uf电容的滤波后,便在稳压电源的输出产生了精度高、稳定度好的直流输出9V电压。9V电压给可调分流基准芯片TL431提供电源。TL431的主要作用是给A/D转换芯片TLC1549提供比较精确的参考电压。9V电源再经过LM7805稳压后,给各个芯片提供电源。电路见图2-10。三端稳压器是标准化、系列化的通用线性稳压电源集成电路,以其体积小、成本低、性能好、工作可靠性高、使用简捷等特点,成为目前稳压电源中应用最为广泛的一种单片式集成稳压器件。三端稳压器的工作原理(以78系列为例)如下:它与一般分立元件组成的串联式稳压电路基本相似。不同的