电子日历设计

上传人:时间****91 文档编号:121992300 上传时间:2022-07-19 格式:DOC 页数:37 大小:1.13MB
返回 下载 相关 举报
电子日历设计_第1页
第1页 / 共37页
电子日历设计_第2页
第2页 / 共37页
电子日历设计_第3页
第3页 / 共37页
点击查看更多>>
资源描述
济源职业技术学院 毕 业 设 计题目电子日历设计系 别机电系专业电气自动化技术班级电气0601姓名孙浩杰学号06040111指引教师孟慧霞日期11月设计任务书设计题目:电子日历设计设计规定:通过在图书馆和网上查找资料,整顿和总结内容,独立的完毕自己的设计内容。并且对所设计内容理解原理,可以发目前设计中浮现的问题并一一解决。并完毕如下几点规定:可以显示年、月、日和时间;电子日历的设计主芯片用单片机、走时用时钟芯片实现;用按键实现省电和正常显示之间切换。设计进度规定:第一周:选定毕业设计题目; 第二周:收集和查找有关资料;第三周:硬件的分析和设计;第四周:软件的分析和编译程序;第五周:上机调试并验证成果;第六周:撰写毕业设计论文;第七周:定稿毕业设计论文;第八周:准备毕业答辩。指引教师(签名): 摘 要日历的功能可实现年、月、日、时、分、秒的显示。随着社会的发展日历的功能越来越强大,精确度越来越高。本次设计的日历采用DS12C887时钟芯片,该芯片精确度高,性能可靠。本设计总体分为硬件部分和软件部分。硬件部分可分为:时钟芯片DS12C887、AT89C51等。根据论文规定显示需要用到16个数码管,并且采用动态显示,需要对位码进行扩展。通过考虑采用74LS154作位码选择器。74LS154是一种4入16出的译码器,只需用单片机的I/O口就可以控制16个数码管的位码。为了达到省电的目的可采用一种按键来控制数码管的亮灭。当按键按下后,数码管正常显示时间,不按的状况下数码管自动进入省电模式。本设计非常适合家庭使用。电源采用5V电压供电。走时精确,是现代家庭必备的设备之一。核心词:单片机,日历,DS12C887,时钟芯片,AT89C51。目录摘 要II1 单片机的发展及应用21.1 单片机的发展21.2 单片机的应用领域32 设计思路及总体框图42.1 设计思路42.2 系统总体框图53 硬件的选择63.1 时钟电路63.2 AT89C51133.3 ULNA及74LS154174 软件设计204.1设计程序有:主程序、读取时间的子程序和显示刷新程序204.2 系统调试28致 谢30参照文献31附 录A321 单片机的发展及应用1.1 单片机的发展单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。作为微型计算机的一种重要分支,应用面很广,发展不久。自单片机诞生至今,已发展为上百种系列的近千个机种。目前,单片机正朝着高性能和多品种方向发展,其趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几种方面发展。自1976年9月Intel公司推出MCS-48单片机以来,有关公司都争相推出各自的单片机。如GI公司推出PIC1650系列单片机,Rockwell公司推出了与6502微解决器兼容的R6500系列单片机。1978年下半年Motorola公司推出M6800系列单片机,1980年Intel公司在MCS-48系列基本上又推出了高性能的MCS-51系列单片机。此类单片机均带有串行I/O口,定期器/计数器为16位,片内存储容量(RAM,ROM)都相应增大,并有优先级中断解决功能,单片机的功能、寻址范畴都比初期的扩大了,它们是当时单片机应用的主流产品。1982年Mostek公司和Intel公司先后又推出了性能更高的16位单片机MK68200和MCS-96系列,NS公司和NEC公司也分别在原有8位单片机的基本上推出了16位单片机HPC16040和PD783系列。1987年Intel公司又宣布了性能比8096高两倍的CMOS型80C196,1988年推出带EPROM的87C196单片机。由于16位单片机推出的时间较迟、价格昂贵、开发设备有限等多种因素,至今尚未得到广泛应用。而8位单片机已能满足大部分应用的需要,因此,在推出16位单片机的同步,高性能的新型8位单片机也不断问世。如:Motorola公司推出了带A/D和多功能I/O的68MC11系列。目前国际市场上8位、16位单片机系列已有诸多,但是,在国内使用较多的系列是Intel公司的产品,其中又以MCS-51系列单片机应用尤为广泛,二十几年经久不衰,并且还在更进一步发展完善,价格越来越低,性能越来越好。1.2 单片机的应用领域 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大体可分如下几种范畴:1.在智能仪器仪表上的应用;单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用以便等长处,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,多种分析仪)。2.在工业控制中的应用;用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、多种报警系统,与计算机联网构成二级控制系统等。 3.在家用电器中的应用;可以这样说,目前的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其她音响视频器材、再到电子秤量设备,五花八门,无所不在。4.在计算机网络和通信领域中的应用;现代的单片机普遍具有通信接口,可以很以便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,目前的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控互换机、楼宇自动通信呼喊系统、列车无线通信、再到平常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。5.单片机在医用设备领域中的应用。单片机在医用设备中的用途亦相称广泛,例如医用呼吸机,多种分析仪,监护仪,超声诊断设备及病床呼喊系统等等。此外,单片机在工商,金融,科研、教育,国防航空航天等领域均有着十分广泛的。例如说本次设计的电子万年历可用于千家万户,现已是每个家庭和个人不可缺少的一部分。2 设计思路及总体框图2.1 设计思路解决器程序用作非易失内存,在更新周期也可访问。RTC 实时时钟加RAM向解决器提供三个独立的,自动的中断源。定闹中断的发生率可编程,从每秒一次到每天一次,周期性中断的发生率可从500ms到122s选择。更新结束中断于向程序批示一种更新周期完毕。中断控制和状态位在寄存器B和C中,本文的其他部分将具体描述每个中断发生条设计的题目是电子万年历,根据设计规定所设计的日历要实现年、月、日、时、分、秒的正常显示。要想显示年、月、日、时、分、秒的正常显示必须有硬件和软件的结合。硬件重要波及到:AT89C51、DS12C887等。软件通过框图编写出程序。AT89C51重要功能是存储程序、根据程序的内容对各个端口进行判断并做出相应的解决。DS12C887重要的功能是实现年、月、日、时、分、秒的显示效果。根据设计的规定日历要显示年、月、日、时、分、秒的显示就需要16个显示数码管。如(01月01日即显示为0101、12点30分30秒即显示为12-30-30),数码管采用7段共阴极数码管。由于数码管数量较多,需要采用动态显示。在本设计中重要是实现时钟日历的正常显示。DS12C887时钟芯片具有年、月、日、时、分、秒计时功能,将DS12C887记忆的时间送给AT89C51单片机进行存储通过解决之后从P0口把段码送给LED数码管显示;AT89C51的P1.0P1.3做位码输出给74LS154译码器,单片机每个端口有8根线,而要控制16个数码管的显示就需要单片机的16根线来做位码端口,因此用416译码器来扩展位码输出端口,这样只需要单片机的4根线就可以控制16个数码管。当送出第一种段码时,单片机输出的位码是0001,而通过416译码器后就是1111 1111 1111 1110,这时就选中了第一种数码管显示;当送出第十六个段码时,单片机输出的位码是1111,416译码器输出0111 1111 1111 1111,这时就选中了第十六个数码管显示。由于发光二极管从导通到发光有一定的延时。导通时间太小,发光太弱人眼无法看清,因此在段码和位码每送出一次后,应保持2ms左右,这个时间也不能太大,如果太大数码管就会闪烁,并且占用CPU时间也越多。根据设计规定,用按键来实现省电和正常显示的切换。当按键按下时进入正常显示模式,否则进入省电模式。2.2 系统总体框图设计电路采用ATMEL的AT89C51芯片来做CPU,用AT89C51的内部EPROM作为程序存储器。显示部分位码的扩展采用74LS154,七段数码管的驱动采用ULNA,控制部分采用一般独立按键。在拟定系统的大体形式之后,画出本系统的总框图如图2.1所示。 图2.1 系统总框图系统总框图涉及:单片机、复位电路、控制电路、显示电路、电源部分单片机即AT89C51芯片的重要功能是:存储程序、对存储程序进行相应的解决从I/O口输出。复位电路:在单片机上有一输入复位引脚RST,在单片机外部用电容和电阻控制RST。控制电路:是用一种按键控制日历的省电和正常显示。显示电路:重要用以实现日历的显示成果。电源部分:采用5V的电源供电。3 硬件的选择本次设计的万年历中其硬件电路重要涉及:时钟芯片、单片机、显示电路、译码器以及电源等几部分。1.时钟芯片选择:选用DS12C887实时芯片。2.单片机的选择:选用AT89C8051单片机,配备11.0592MHz晶振。P1.0-P1.4作数码管的位选口,P0.0-P0.6作数码管的段选口。3.显示电路选择:采用软件译码动态显示,共阴极LED数码管。4.电源选择:采用直流5V电源供电。5.译码器的选择:采用4线16线译码器74LS154。3.1 时钟电路本次设计采用实时时钟芯片是DS12C887,这种实时时钟芯片具有年、月、日、时、分、秒计时功能和多点定期功能,计时数据的更新每秒自动进行一次,不需程序干预。此外,事实上时钟芯片多数带有锂电池做后备电源,具有永不断止的计时功能;具有可编程方波输出功能,可用做实时测控系统的采样信号等;有的实时时钟芯片内部还带有非易失性RAM,可用来寄存需长期保存但有时也需变更的数据。LED数码管电子时钟电路采用24小时记时方式,日期和时间用6位数码管显示,采用AT89C51单片机,5V电池供电,只要使用一种按键开关即可以进入省电( 显示LED 数码管)和正常显示两种状态。显示范畴:年份可走99年,如-2099;日、月正常显示,能辨认闰年闰月;时间采用24小时制。显示格式:日期按照年、月、日排列,如12月20日显示为:051220;时间准时、分、秒排列,如12点30分55秒显示为12-30-55。显示位数:6位七段LED数码管作正常和节电显示。时钟误差:24小时误差35秒。DS12C887时钟芯片采用CMOS技术制成,该芯片带有内部晶体振荡器并内置有锂电池,因此断电后仍可运营十年以上且不丢失数据。时间、日历和定闹具有二进制码和BCD码两种形式,并可设定12小时或24小时制式以及Motorola和Intel总线时序。DS12C887内含128字节RAM,其中有10个时钟寄存器、4个控制寄存器和114字节通用RAM,所有RAM单元都具有掉电保护功能,因此可被用作非易失性RAM。DS12C887内部具有定闹中断、周期性中断、时钟更新周期、结束中断等,且三个中断源可分别由软件屏蔽。3.1.1 DS12C887重要功能简介(1)内含一种锂电池,断电后运营十年以上不丢失数据。(2)计秒、分、时、天、星期、日、月、年、并有闰年补尝功能。(3)二进制数码或BCD码表达时间,日历和定闹。(4)12小时或24小时制,12小时时钟模式带有PM和AM批示,有夏令时功能。(5)Motorola和Intel总线时序选择。(6)有128个字节RAM单元与软件接口,其中14个字节作为时钟和控制寄存器,114字节为通用RAM,所有RAM单元数据都具有掉电保护功能。(7)可编程方波信号输出。(8)中断信号输出(IRQ)和总线兼容、定闹中断、周期性中断、时钟更新周期、结束中断可分别由软件屏蔽,也可分别进行测试。3.1.2 DS12C887引脚阐明及原理DS12C887管脚图如图3.1所示: 图3.1 DS12C887管脚排列图VCC:直流电源+5V电压。当5V电压在正常范畴内时数据可读写;当VCC低于4.25V,读写被严禁,计时功能仍继续;当VCC下降到3V如下时,RAM和计时器被切换到内部锂电池。MOT(模式选择):MOT管脚接到VCC时,选择MOTOROLA时序;当接到GFND时,选择INTEL时序。SQW(方波信号同):SQW管脚能从实时时钟内部15级分频器的13个抽头中选择一种作为输出信号,其输出频率可通过对寄存器A编程变化。AD0AD7(双向地址/数据复用线):总线接口即MOTOROLA微机系列和INTEL微机系列接口。AS(地址选通输入):用于实现信号分离,在AD/ALE的下降沿把地址锁入DS12C887。DS(数据选通或读输入):DS/RD客脚有两种操作模式,取决于MOT管脚的电平,当使用MOTOROLA时序时,DS是一正脉冲,出目前总线周期的后段称为数据选通;在读周期DS批示DS12C887驱动双向总的时刻,在写周期DS的后沿使DS12C887锁存写数据。选择INTEL时序时DS称作(RD),RD与典型存储器的容许信号(OE)的定义相似。R/W(读/写输入):R/W管脚也有两种操作模式。选MOTOROLA时序时,R/W是一电平信号,批示目前周期是读或写周期;DSO为高电平时,R/W高电平批示读周期,R/W低电平批示写周期;选INTEL时序,R/W信号是一低电平信号,称为WR。在此模式下,R/W管脚与通用RAM的写容许信号(WE)的含义相似。CS(片选输入):在访问DS12C887的总线周期内,片选信号必须保持为低。IRQ(中断申请输入):低电平有效,可作微解决的中断输入。没有中断条件满足时,IRQ处在高阻态。IRQ线是漏极开路输入,规定外接上接电阻。RESET(复位输出):当该脚保持低电平时间不小于200ms,保证DS12C887有效复位。DS12C887内部由振荡电路、分频电路、周期中断/方波选择电路,14字节时钟和控制单元,114字节顾客非易失RAM,十进制/二进制累加器,总线接口电路,电源开关写保护单元和内部锂电池等部分构成。Vcc:直流电源+5V电压。当5V电压在正常范畴内时,数据可读写;当Vcc低于4.25V,读写被严禁,计时功能仍继续;当Vcc下降到3V如下时,RAM和计时器供电被切换到内部锂电池。3.1.3 地址分派DS12C887的地址由114字节的顾客RAM寄存。10字节的寄存实时时钟时间、日历和定闹RAM及用于控制和状态的4字节特殊寄存器构成,几乎所有的128个字节直接读写。3.1.4 时间、日历和定闹单元时间和日历信息通过读相应的内存字节来获取时间、日历和定闹通过写相应的内存字节设立或初始化,其字节内容可以是二进制或BCD形式。时间可选择12小时制或24小时制,当选择12小时制时,小时字节的高门为逻辑“1”代表PM。时间、日历和定闹字节是双缓冲的,总是可访问的。每秒钟这10个字节走时1 秒,检查一次定闹条件,如在更新时,读时间和日历也许引起错误,三个字节的定闹字节有两种使用措施。第一种,当定闹时间写入相应时、分、秒、定闹单元,在定容许闹位置高的条件下,定闹中断每天准时起动一次。第二种,在三个定闹字节中插入一种或多种不关怀码。不关怀码是任意从O0到FF的16进制数。当小时字节的不关怀码位置位时,定闹为小时发生一次;同样,当小时和分钟定闹字节置不关怀位时,每分钟定闹一次;当三个字节都置不关怀位时,每秒中断一次。(1)非易失RAM在DS12C887中,114字节通用非易失RAM不专用一任何特殊功能。(2)晶振控制位DS12C887出厂时,其内部晶振被关掉,以避免锂电池在芯片装入系统前被消耗。寄存器A的BIT4-BIT6的其他组合都是使晶振关闭。(3)方波输出选择15级分频抽头中的13个可用于15选1选择器,选择分频器抽头的目的是在SQW引脚产生一种方波信号,其频率由寄存器A的RS0-RS3位设立。SQW频率选择器与周期中断发生器共有15选1选择器,一旦频率选择好,通过用程序控制方波输出容许位SQWE来控制SQW引脚输出的开关。(4)周期中断选择周期中断可在IRQ脚产生500ms一次到每122s一次的中断,中断步率同样由寄存A拟定,它的控制位为寄存器B中的PIE位。(5)更新周期DS12C887每一秒执行一次更新周期,保证时间、日历的精确。更新周期还比较每一定闹字节与相应的时间字节,如果匹配或三个字节都是不关怀码,则产生一次定闹中断。(6)状态控制寄存器DS12C887有4个控制寄存器,它们在任何时间都可访问,虽然更新周期也不例外。(7)寄存器AUIP:更新周期正在进行位。当UIP为1,更新转换将不久发生,当UIP为0,更新转换至少在244s内不会发生。DV0、DV1、DV2:用于开关晶振和复位分频链。这些位的010唯一组合将打开晶振并充许RTC计时。RS3、RS2、RS1、RS0:频率选择位,从15级频率器13个抽头中选一种,或严禁分频器输入。选择好的抽头用于产生方波(SQW引脚)输出和周期中断,使用时可以:用PIE位容许中断;用SQWE位容许并用相似的频率。寄存器的功能和作用如下: DS12C887内部RAM和专用寄存器地址功能如表3.1所示,地址00H03H单元取值范畴是00H3BH(10进制为059);04H05H单元按12小时制取值范畴是上午(AM)01H0CH(112),下午(PM)81H8CH(8192)按24小时制取值范畴是00H17H(123);06H单元取值范畴是00H07H(07);07H单元取值范畴01H1FH(131);08H单元取值范畴是01H0CH(112);09H单元的取值范畴是00H63H(099)。DS12C887的RAM和各专用寄存器的访问如下实现,若片选地址DS=#0DDXXH,则芯片内部RAM 和寄存器和地址为#0DD00H#0DD7FH。应指出的是,尽管DS12C887的专用时标年寄存器只有一种,但通过软件编程可运用其内部的不掉电的RAM区的一种字节实现年度的高两位显示。表3.1 DS12C887内部RAM和各专用寄存器地址地址单元用途地址单元用途地址00H秒地址01H秒闹地址02H分地址03H分闹地址04H时地址05H时闹地址06H星期地址07H日(两位数)地址08H月(两位数)地址09H年(两位数)地址0AH寄存器A地址0BH寄存器B地址0CH寄存器C地址0CH寄存器D0EH7EH不掉电RAM区,共114字节寄存器A各位不受复位的影响,UIP位为只读位,其他各位均可读写,寄存器的控制字的格式如表3.2所示。 表3.2 DS12C887控制寄存器A各布尔位定义 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0 A、UIP位:更新周期标志位。该位为“1”时,表达芯片正处在或将开始更新周期,此时程序不准读写时标寄存器;该位为“0”时,表达至少在244us后才开始更新周期,此时程序可读芯片内时标寄存器。该位是只读位。 B、DV0、DV1、DV2:芯片内部振荡器RTC控制位。当芯片解除复位状态,并将010写入DV0、DV1、DV2后,另一种更新周期将在500ms后开始。因此,在程序初始化时可用这三位精确地使芯片在设定的时间开始工作。这与MC146818不同的是,DS12C887固定使用32 768Hz的内部晶体,因此,DV0=“0”,DV1=“1”,DV2=“0”,即可启动RTC。表3.3 DS12C887控制寄存器A输出速率选择定位寄存器A输出速率选择位32768Hz时基RS3RS2RS1RS0中断周期SQWF输出频率0000无无00013.96625ms256Hz00107.8125ms128Hz0011122.07us8.192kHz0100244.141us4.096kHz0101488.281us2.048kHz0110976.562us1.024kHz01111.953125ms512Hz10003.90625ms256Hz10017.812ms128Hz101015.625ms64Hz101131.25ms32Hz110062.5ms16Hz1101125ms8Hz1110250ms4Hz1111500ms2HzC、RS3、RS2、RS1、RS0:周期中断可编程方波输出速率选择位。多种不同的组合可以产生不同的输出。程序可以通过设立寄存器B的SQWF和PIE位控制与否容许周期中断方波输出。其寄存器A输出速率选择位如表3.3所示。3.1.5 DS12C887的中断和更新周期 DS12C887处在正常工作状态时,每秒钟将产生一种更新周期,芯片处在更新周期的标志是寄存器A中的UIP位为“1”。在更新周期内,芯片内部时标寄存器数据处在更新阶段,故在该周期内,微解决器不能读芯片时标寄存器的内容,否则将得到不拟定数据。更新周期的基本功能重要是刷新各个时标寄存器中的内容,同步秒时标寄存器内容加1,并检查其她时标寄存器内容与否有溢出。如果有溢出则相应进位日、月、年。此外一种功能是检查三个时、分、秒报警时标寄存器的内容与否与相应时标寄存器的内容相符,如果相符则寄存器C中的AF位置“1”。如果报警时标寄存器的内容为C0H到FFH之间的数据,则为不关闭状态。 为了采样时标寄存器中的数据,DS12C887提供了两样种避开更新周期内访问时标寄存器的方案:第一种是运用更新周期结束发出的中断。它可以编程容许在每次更新周期结束后发生中断申请,提示CPU将有998ms左右的时间去获取有效的数据,在中断之后的998ms时间内,程序可先将时标数据读支芯片内部的不掉电静态RAM中。由于芯片内部的静态RAM和状态寄存器是可随时读写的,在离开中断服务子程序前应清除寄存器C中的IRQF位。另一种是:运用寄存器A中的UIP位来批示芯片与否处在更新周期。在UIP位从低变高244us后,芯片将进行更新周期,因此检测到UIP位为低电平时,则运用224us的间隔时间去读取时标信息。如检测到UIP位为“1”,则可暂缓读数据,等到UIP变成低电平再去读数据。 3.1.6 DS12C887初始化措施 DS12C887采用持续工作制,一般不必每次都初始化,虽然是系统复位时也如此。但初始化时,一方面应严禁芯片内部的更新周期操作,因此先将DS12C887状态寄存器B中的SET位置“1”,然后初始化00H09H时标参数寄存器和状态寄存器A,此后再通过读状态寄存器C、清除寄存器C中的周期中断标志位PF、报警中断标志位AF、更新周期结束中断标志位UF。通过读寄存器D中的VRT位,读状态寄存器后VRT位将自动置“1”,最后将状态寄存器B中的SET位置“0”,芯片开始计时工作。3.2 AT89C51 3.2.1 AT89C51单片机简介由于在单片机学习中对AT89C51接触最多较熟悉因此在这里选择AT89C51芯片AT89C51是一种低功耗、高性能的片内具有4KB快闪可编程/擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的8位COMS微控制器,使用高密度,非易失存储技术制造,并且与AT80C51引脚和指令系统完全兼容。芯片上的FPEROM容许在线编程或采用通用的非易失存储编程器对存储器反复编程。AT89C51具有多种功能的8位CPU与FPEROM结合在一种芯片上,为诸多嵌入式控制应用提供了非常灵活而又便宜的方案,其性能价格比远高于AT87C51。由于片内带EPROM的AT87C51价格偏高,而片内带FPEROM的AT89C51价格低且与INTEL80C51兼容,这就显示出了AT89C51的优越性。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业原则的MCS-51指令集和输出管脚相兼容。 由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为诸多嵌入式控制系统提供了一种灵活性高且价廉的方案。3.2.2 AT89C51性能及特点(1)与MCS-51微控制器产品系列兼容。(2)片内有4KB可在线反复编程的快闪擦写存储器(Flash Memory)。(3)存储器可循环写入/擦除1000次。(4)存储数据保存时间为。(5)宽工作电压范畴:Vcc可为2.7V-6V。(6)全静态工作:可从0HZ到16MHZ。(7)程序存储器具有3级加密保护。(8)128*8位内部RAM。(9)32条可编程I/O线。(10)两个16位定期器/计数器。(11)中断构造具有5个中断源和2个优先级。(12)可编程全双工串行通道。(13)空闲状态维持低功耗和掉电状态保存存储内容。3.2.3 片内快闪存储器(Flash Memory)由于EPROM具有在线改写,并且在掉电状态保存存储数据的特点,可为顾客的特殊应用提供便利。但是擦除和写入对于规定数据高速吞吐的应用还显得时间过长,这是EPROM芯片的重要缺陷。3.2.4 AT89C51的引脚及管脚阐明AT89C51的内部硬件构造中除了程序存储器由FPEROM取代了AT87C51的EPROM外,其他部分完全相似。AT89C51的引脚与AT87C51的引脚完全兼容。如图3.2所示为AT89C51的引脚图:图3.2 AT89C51的引脚图管脚阐明:VCC:供电电压GND:接地P0口:P0口为一种8位漏级开路双向I/O口,每脚可吸取8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0可以用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,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)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:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配备为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一种二分频触发器,因此对外部时钟信号的脉宽无任何规定,但必须保证脉冲的高下电平规定的宽度。芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过对的的控制信号组合,并保持ALE管脚处在低电平10ms来完毕。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被反复编程此前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定期器、计数器、串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,严禁所用其她芯片功能,直到下一种硬件复位为止。为了满足某些应用系统的特殊规定,如在某些工业控制系统中,有时要进行某些系统的扩展设计以弥补单片机内部资源的局限性。单片机的扩展系统通过并行I/O接口或串行I/O接口做总线,在外部扩展程序存储器、数据存储器或输入输出接口及其她功能部件以满足某些控制系统的特殊规定。3.3 ULNA及74LS154 本设计要用到16个七段数码管,单片机的P0端口只有8根线,主线不够用,因此用74LS154来扩展,74LS154是416译码器,只用单片机的四根线就可以接16个数码管的位码端,由于74LS154是一种4入16出的译码器,在本设计中共有16个显示数码管,因此一种74LS154译码器的输出端刚好用完。LED数码管采用共阴极。3.3.1 74LS154简介,管脚图及真值表1.74LS154简介:2.74LS154管脚图如图3.3所示:A0A1A2Y0Y15A3A0A1A2Y0Y0Y1Y1Y15Y15A3图3.3 74LS154管脚图3.74LS154真值表如图3.4所示:图3.4 74LS154真值表3.3.2 ULN管脚图及功能表1.ULN简介:2.ULNA管脚图如下:图3.5 ULNA管脚图3.ULNA的功能图如下所示:图3.6 ULNA功能框ULNA 是高耐压、大电流达林顿陈列,由七个硅NPN 达林顿管构成。该电路的特点如下:ULNA的每一对达林顿都串联一种2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接解决原先需要原则逻辑缓冲器来解决的数据。ULNA工作电压高,工作电流大,灌电流可达500mA,并且可以在关态时承受50V 的电压,输出还可以在高负载电流并行运营。ULN 采用DIP16 或SOP16 塑料封装。4 软件设计完毕了硬件设计之后,我们就开始进行软件设计,软件是一种系统的心脏,因此它的设计也是非常重要的,在本次设计中我们需要设计的软件重要有主程序、读取时间的子程序和显示刷新程序。4.1设计程序有:主程序、读取时间的子程序和显示刷新程序4.1.1 主程序的框图及程序如下:主程序框图如图4.1所示:图4.1 主程序框图主程序如下所示: ORG 0000HLJMP START ORG 0030HSTART:MOV 30H,#0SETB P1.1 SECOND EQU H MINUNTE EQU H ;时钟芯片寄存器HOUR EQU H WEEK EQU H ;它们代表秒、分钟、时、日期DATE EQU H ;年、月 MONTH EQU H YEAR EQU H ;可以变化实际连线,地址也相应变化TREGA EQU 200AH ; 四个控制寄存器TREGB EQU 200BHTREGC EQU 200CH TREGD EQU 200DH TUPDATE EQU 80H ;如果TREGA.7=1,时钟芯片更新TBHALT EQU 10000010B ;24/12=1,采用24小时计时制 将TBHALT写入TREGB,停止计时TBSALT EQU 00000000B ;将TBSTART写入TREGB,继续计时F32K EQU 20HMOV A,#TBHALT ;SET=1,PIE,AIE,UIE,SQWE=0,DM=0MOVX DPTR,A ;24/12=1,24HOURS,DSE=0MOV DPTR, #TREGDMOV A,#32H ;设立控制寄存器,开晶振。MOV DPTR,AMOV DPTR,BHALTMOV A,DPTRMOV DPTR,AMOV A,DPTRMOV A,#TBHALT ;开始计时MOVX DPTR,ASS1:LCALL TIMERECJNB P1.4,SS1LCALL DSPLAYLJMP SS1读取时间子程序框图如图4.2所示:图4.2 读取时间的子程序框图读时间子程序如下所示:TIMEREC:PUSH ACCMOV ACC,IECLR ET0 MOV R0,DPL ;将指针存入R0、R1 MOV R1,DPH MOV DPTR,#TREGA ;如果DS12887正在更新则等待TIMEWALT:MOVX A,A+DPTR JB ACC.7,TIMEWALT, 否则,读取秒数、分钟等数值MOV DPTR,#SECONDMOVX A,A+DPTRMOV R6,A ;先将数据保存、备用MOV DPL,R3MOV DPH,R1MOVX A,DPTR ;取出本来的秒数CLR CSUB A,R6 ;如果时间未变化则退出JNZ GETTIMERETGETTIME:INC R0INC R0 ;指向“:”所指单元MOV A,R0CPL A ;将“:”取反,每秒变化一次MOV R0,A ;以控制亮和灭,形成闪烁效果MOV A,R6 ;恢复时间值MOVX DPTR,AINC DPTRMOV R3,DPLMOV R1,DPHMOV DPTR, #MINUTE ;读取并存储分钟MOVX A,DPTRMOV DPL,R3MOV DPH,R1MOVX DPTR,AINC DPTRMOV R3,DPLMOV R1,DPH MOV DPTR,#HOUR ;读取并存储小时 MOVX A,DPTRMOV DPL,R3MOV DPH,R1MOVX DPTR,AINC DPTRMOV R3,#DPLMOV R1,#DPH MOV DPTR,#DATA ;读取并存储日期MOVX A,DPTRMOV DPL,R3MOV DPH,R1MOVX DPTR,AINC DPTRMOV R3,#DPLMOV R1,#DPH MOV DPTR,#TONTH ;读取并存储月份MOVX A,DPTRMOV DPL,R3MOV DPH,R1MOVX DPTR,AINC DPTRMOV R3,DPLMOV R1,DPH MOV DPTR,#HOUR ;读取并存储年号MOVC A,DPTRMOV DPL,R3MOV DPH,R1 MOVX DPTR,A ;寄存器恢复保护POP ACCMOV IE,ACCPOP ACCRET显示刷新子程序框图如图4.3所示:图4.3 显示刷新子程序框图显示刷新子程序如下所示:MOV 40H,R3PUSH ACCDISPLAY:MOV A,R0 MOV R6,A ;显示指针首址保护,存入R6 INC DPTR ;先将指针指向分钟单元 MOVX A,DPTR MOV R3,A ;保护寄存器A数据ANL A,#0F0H SWAP A ;得到小时的十位MOV R0,AINC R0 ;显示指针加一MOV A,R3 ANL A,#0F0H ;得到小时的个位MOV R0,A ;存入显示缓冲区INC R0 ;跳过度号的显示单元INC R0DEC DPTRMOVX A,DPTR SWAP A ;得到分钟的十位MOV R0,A INC R0 ;显示指针加一MOV A,R3 ANL A,#0F0H ;得到分的个位 MOV R0,A ;存入显示缓冲区DIS:MOV A,B MOV DPTR,#4003 ;指向PC口 MOVX DPTR,A ;A、C口均为输出,方式0MOV R4,#1FH ;位选字 MOV A,R4 ;送位选字中间变量LD0:MOV DPTR,#4002H ;指定PC口MOVX DPTR,A ;送位选字入(采用共阴接法全灭)DEC DPTR ;指向PA口DEC DPTRMOV A,R0 ;查段码ADD A,#0DH MOVC A,A+PCMOVX DPTR,A ;段选码送PB口ACALL DL1 ;延时1毫秒INC R0 ;指向显示缓冲区下一单元MOV A,R4JNB ACC.0,LD1 ;判断16位显示完RR A ;未显示完,变为下一位位选字MOV A, R4AJMP LD0 ;转显示下一位POP ACCLD1:RETDSGE:DB 3FH,06H,5BH,4FH,66H,6DH,7D,07H,7FH,67H,77H,7CH;“0”“1”“2”“3”“4”“5”“6”“7”“8”“9”“A”“B”39H,5EH,79H,71H;“C”“D”“E”“F”DL1:MOV R7,#02H ;延时子程序DL:MOV R6,#0FFHDL6:DJNZ R6,DL6DJNZ R7,RET4.2 系统调试完毕了硬件的设计、制作和软件编程之后,要使系统可以按设计意图正常运营,必须进行系统调试。但是,作为一种单片机系统,其运营是软硬件相结合的,因此,软硬件的调试也是绝对不也许分开的。程序的调式应一种模块一种模块地进行,单独调试各功能子程序,检查程序与否可以实现预期的功能,接口电路的控制与否正常等;最后逐渐将各个子程序连接起来总调。联调需要注意的是,各程序模块间能否对的传递参数,特别要注意各子程序的现场保护与恢复。调试的基本环节如下:一方面打开伟福6000进行进行仿真器设立,具体细节如图4.4所示:图4.4 仿真器设立对话框设立完之后,点击如下按钮结束设立如图4.5所示:图4.5 伟福仿真器设立对话框完毕伟福6000设立后将所要调试的程序输入道伟福6000中,然后进行编译,根据系统的提示查找因素将出错的地方调节对的,例如:有的时标号未定义,有的时少标点符号等。最后以ASM扩展名保存。编译通过之后就开始连接实验箱验证效果了,其环节如下:1.用扁平线连接实验箱的单片机最小应用系统P1.1口.2.用串型数据通信线连接计算机与仿真器,把访真器插到模块的锁紧插座中3.打开KEIL软件,建立本实验的项目文献,接着添加刚刚伟福里面编译好的源程序进行编译4.进行软件设立,选择ATMEL公司的AT89C51芯片,选择硬件仿真,选择串行口COM1波特率为38400,具体设立如图4.6图4.7所示: 图4.6 芯片选择窗口 图4.7 波特率选择窗口5打开实验箱电源与摸块电源,点击开始调试按钮,点击RUN运营程序观测效果并记录。 点击运营之后我们所设计的万年历就开始工作了,当我们按下控制键P1.4时万年历就进入省电模式,当不准时正常显示。致 谢在这篇毕业论文完毕之际,借此机会我想向在我做毕业设计的过程中给我协助和支持的教师以及同窗们表达衷心的感谢!通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为后来成为合格的应用型人才打下良好的基本。在设计中也发现了自己的不少缺陷也为我在后来的学习中有方向有目的猕补自己的局限性。孟教师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,并且教我做人,虽历时三载,却给以终身受益无穷之道。对孟教师的感谢之情是无法用言语体现的。在此,我还要感谢在一起快乐的度过大学生生活的机电系全体教师和同门,正是由于你们的协助和支持,我才干克服一种一种的困难和疑惑,直至本文的顺利完毕。特别要感谢的是我的父母和家人!感谢父母在我成长的道路上予以的无私的爱,她们的理解和全力支持使我的毕业论文得以顺利完毕。衷心的感谢所有关怀和协助过我的人!最后,衷心感谢在百忙之中抽出时间审视本论文的各位领导和教师,祝各位领导和教师工作顺利,身体健康!谢谢你们! 孙浩杰
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!