收藏 分销(赏)

基于单片机的多功能电子日历的设计.doc

上传人:天**** 文档编号:10595934 上传时间:2025-06-04 格式:DOC 页数:62 大小:577.54KB 下载积分:16 金币
下载 相关 举报
基于单片机的多功能电子日历的设计.doc_第1页
第1页 / 共62页
基于单片机的多功能电子日历的设计.doc_第2页
第2页 / 共62页


点击查看更多>>
资源描述
郑重申明 本人呈交毕业实习报告(设计),是在导师指导下,独立进行实习和研究工作所取得成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用内容外,本毕业实习报告(设计)成果不包含他人享有著作权内容。对本毕业实习报告(设计)所涉及实习和研究工作做出贡献其他个人和集体,均已在文中以明确方式标明。本毕业实习报告(设计)知识产权归属于作者及培养单位。 学生签名[签字盖章] 日期0000.00 摘要 本文介绍了基于AT89C51单片机多功能电子万年历硬件结构和软硬件设计方法。系统以AT89C51单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。万年历采用直观数字显示,可以在LED上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔市场前景。 关键字:AT89C51;电子万年历;DS1302 目 录 1 绪论 4 1.1课题研究背景 4 1.2课题研究目及意义 4 1.3课题解决主要内容 4 2 系统总体设计 6 2.1系统方案构想及确定 6 2.2 器件选用 6 2.2.1单片机选择 6 3 系统硬件设计 8 3.1系统硬件电路设计 8 3.1.1系统硬件框图 8 3.1.2 AT89C51单片机 8 3.1.3 8位移位寄存器74LS164(串行输入,并行输出) 12 3.1.4 ds1302 13 4 系统软件设计 20 4.1 主程序 20 4.2 从1302读取日期和时间程序 21 5 PROTEUS使用 22 5.1编程环境PROTEUS 22 5.2用PROTEUS ISIS对电子万年历硬件电路设计 22 5.3用PROTEUS ISIS进行电子万年历仿真测试 26 结论 29 致谢 30 参考文献 30 附录 31 附录1 31 第一章 绪论 1.1 课题研究背景 随着科技快速发展,时间流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302使用寿命长,误差小。对于数字电子万年历采用直观数字显示,可以同时显示年、月、日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89C51单片机作为核心,功耗小,能在3V低压工作,电压可选用3~5V电压供电。   此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表发展趋势,具有广阔市场前景。 1.2课题研究目及意义 二十一世纪是数字化技术高速发展时代,而单片机在数字化高速发展时代扮演着极为重要角色。电子万年历开发及研究在信息化时代今天亦是当务之急,因为它应用在学校、机关、企业、部队等单位礼堂、训练场地、教学室、公共场地等场合,可以说遍及人们生活每一个角落。所以说电子万年历开发是国家之所需,社会之所需,人民之所需。 由于社会对信息交换不断提高要求及高新技术逐步发展,促使电子万年历发展并且投入市场得到广泛应用。 1.3课题解决主要内容 本课题所研究电子万年历是单片机控制技术一个具体应用,主要研究内容包括以下几个方面: (1)选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低功耗、抗断电器件。 (2)根据选用电子万年历芯片设计外围电路和单片机接口电路。 (3)在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。 (4)根据硬件电路图,在开发板上完成器件焊接。 (5)根据设计硬件电路,编写控制AT89C51芯片单片机程序。 (6)通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计功能。 (7)在硬件电路和软件程序设计时,主要考虑提高人机界面友好性,方便用户操作等因素。 (8)软件设计时必须要有完善思路,要做到程序简单,调试方便。 第二章 系统总体设计 单片机电子万年历制作有多种方法,可供选择器件和运用技术也有很多种。所以,系统总体设计方案应在满足系统功能前提下,充分考虑系统使用环境,所选结构要简单使用、易于实现,器件选用着眼于合适参数、稳定性能、较低功耗以及低廉成本。 2.1系统方案构想及确定 系统功能往往决定了系统采用结构,经过成本,性能,功耗等多方面考虑决定用三个8位74LS164串行接口外接LED显示器,RESPACK-8对单片机AT89C51进行供电,时间芯片DS1302连接单片机AT89C51。从而实现电子万年历功能。 2.2 器件选用 单片机AT89C51 电容RESPACK-8 三个74LS164串行接口 传感器DS1302 2.2.1单片机选择 单片机自70年代问世以来以微处理器(MPU)技术及超大规模集成电路技术发展为先导,用广泛应用领域拉动得到蓬勃发展,单片机功能正日渐完善。单片机应用,使许多领域技术水平和自动化程度大大提高,可以说当今世界正在经受一场以单片机技术为标志新技术革命浪潮冲击。主要单片机类型如下: (1)MCS-51系列单片机 MCS-51系列单片机主要是指Intel公司生产以51位内核单片机芯片,具有8位CPU、4K字节ROM、128字节RAM、可扩展外部64K字节RAM和ROM、2个16位定时器/计数器、4个8位并行I/O口、1个全双工串行I/O口、21字节专用寄存器、5个中断源、片内自带振荡器、片内单总线等功能部件。 (2)AT89C51单片机 AT89C51单片机主要特性如下: l 及MCS-51产品指令系统完全兼容 l 4K字节在线编程Flash存储器,1000次擦写周期 l 4.0~5.5V工作电压范围 l 全静态工作模式:0~33MHz l 三级程序存储器锁 l 128×8字节内部RAM l 32个可编程I/O口线 l 2个16位定时/计数器 l 6个中断源 l 全双工串行UART通道 l 低功耗空闲和掉电模式 l 中断可从空闲模式唤醒系统 l 看门狗(WDT)及双数据指针 l 掉电标识和快速编程特性 l 具有掉电状态下中断恢复功能 l 灵活在系统编程(ISP字节或页写模式) 由于AT89C51单片机片内有4K字节在线编程Flash存储器,可以擦写1000次,具有掉电模式,而且具有掉电状态下中断恢复功能,对设计开发非常实用。所以选用AT89C51单片机作为电子万年历芯片控制单片机。 第三章 系统硬件设计 根据上述所确定系统方案构想,下面进行系统硬件电路具体设计,系统总体结构框图如图所示。 3.1系统硬件电路设计 3.1.1系统硬件框图 系统硬件框图如图3-1 时钟芯片DS1302 串口 AT89C51 P2口 LED显示器 驱动电路 图3-1 系统硬件框图 3.1.2 AT89S51单片机 本系统采用是美国ATMEL公司生产AT89C51单片机,首先我们来熟悉一下AT89C51单片机外部引脚和内部结构。 1.单片机引脚功能 AT89C51单片机有40个引脚。 l Vcc:电源电压+5V l GND:接地 l P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线服用,在访问期间激活内部上拉电阻。 在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时要求外接上拉电阻。 l P1口:P1口是一个带内部上拉电阻8位双向I/O,P1输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。 Flash 编程和程序校验期间,P1接收低8位地址。 l P2口:P2口是一个带内部上拉电阻8位双向I/O,P2输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。 在访问外部程序存储器或16位地址外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址外部数据存储器(MOVX @Ri指令)时,P2口线上内容(也即特殊功能寄存器(SFR)区中P2寄存器内容),在整个访问期间不改变。 Flash 编程和程序校验期间,P2亦接收低高位地址和其他控制信号。 l P3口:P3口是一组带内部上拉电阻8位双向I/O,P3输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低P3口将用上拉电阻输出电流。P3口除了作为一般I/O口线外,更重要用途是它第二功能,见表3-1所示: P3口还接收一些用于Flash闪速存储器编程和程序校验控制信号。 表3-1 P3口第二功能图 端口引脚 第二功能 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(外部数据存储器读选通) l RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使引脚输出高电平,设置SFR AUXRDISRT0(地址8EH)可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。 l ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存器允许)输出脉冲用于锁存地址低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率1/6输出固定正脉冲信号,因此它可对外输出时钟或用于定时目。要注意是:每当访问外部数据存储器时将跳过一个ALE脉冲。 对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 如有必要,可通过多特殊功能寄存器(SFR)区中8EH单元D0位置,可禁止ALE操作。该位置后,只有一条MOVX和MOVC指令ALE才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。 l PSEN:程序存储允许(PSEN)输出是外部程序存储器读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效PSEN信号。 l EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需要注意是:如果加密位LB1被编程,复位时内部会锁存EA端状态。 如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中指令。 Flash存储器编程时,该引脚加上+12V变成电压Vpp. l XTAL1:振荡器反相放大器及内部时钟发生器输入端。 l XTAL2:振荡器反相放大器输出端。 AT89C51单片机内部结构 2.AT89C51单片机及MCS-51完全兼容 l 看门狗(WDT):WDT是一种需要软件控制复位方式。WDT 由13位计数器和特殊功能寄存器中看门狗定时器复位存储器(WDTRST)构成。WDT 在默认情况下无法工作;为了激活WDT,用户必须往WDTRST 寄存器(地址:0A6H)中依次写入01EH 和0E1H。当WDT激活后,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。当WDT溢出,它将驱动RSR引脚输出一个高电平。 l 可编程串口(UART)在AT89C51中,UART 操作及AT89C51 和AT89C52 一样。AT89C51系列单片机串行通信口可以工作于同步和异步通信方式。当工作于异步方式时,它具有全双工操作功能,也就是说,它可以同时进行数据发送和接收。串行口内接收器采用是双缓冲结构,能够在接收到第一个字节从接收寄存器读走之前就开始接收第二个字节(当然,如果第二个字节接收完毕,而第一个字节仍然没有被读走,那将会丢掉一个字节)。串行口发送和接收操作都是通过特殊功能寄存器中数据缓冲寄存器SBUF进行,但在SBUF内部,接收寄存器和发送寄存器在物理结构上是完全独立。如果将数据写入SBUF,数据会被送入发送寄存器准备发送。如果执行SBUF指令,则读出数据一定来自接收缓存器。因此,CPU对SBUF读写,实际上是分别访问2个不同寄存器。这2个寄存器功能决不能混淆。 l 振荡电路:AT89C51系列单片机内部振荡器,由一个单极反相器组成。XTAL1反相器输入,XTAL2为反相器输出。可以利用它内部振荡器产生时钟,只要XTAL1和XTAL2引脚上一个晶体及电容组成并联谐振电路,便构成一个完整振荡信号发生器,此方式称为内部方式。另一种方式由外部时钟源提供一个时钟信号到XTAL1端输入,而XTAL2端浮空。在组成一个单片机应用系统时,多数采用这种方式,这种方式结构紧凑,成本低廉,可靠性高。在电路中,对电容C1和C2值要求不是很严格,如果使用高质晶振,则不管频率为多少,C1、C2通常都选择30pF。 l 定时/计数器:AT89C51单片机内含有2个16位定时器/计数器。当用于定时器方式时,定时器输入来自内部时钟发生电路,每过一个机器周期,定时器加1,而一个机器周期包含有12个振荡周期,所以,定时器技术频率为晶振频率1/12,而计数频率最高为晶振频率1/24。为了实现定时和计数功能,定时器中含有3种基本寄存器:控制寄存器、方式寄存器和定时器/计数器。控制寄存器是一个8位寄存器,用于控制定时器工作状态,方式寄存器是一个8位寄存器,用于确定定时器工作方式,定时器/计数器是16位计数器,分为高字节和低字节两部分。 l RAM:高于7FH内部数据存储器地址是8位,也就是说其地址空间只有256字节,但内部RAM寻址方式实际上可提供384字节。直接地址访问同一个存储空间,高于7FH间接地址访问另一个存储空间。这样,虽然高128字节区分及专用寄器 ,即特殊功能寄存器区地址是重合,但实际上它们是分开。究竟访问哪一区,存是通过不同寻址方式加以区分。 l SFR:SFR是具有特殊功能所有寄存器集合,共含有22个不同寄存器,它们地址分配在80H~FFH中。虽然如此,不是所有单元都被特殊功能寄存器占用,未被占用单元,其内容是不确定。如对这些单元进行读操作,得到是一些随机数,而写入则无效,所以在编程时不应该将数据写入这些未确定地址单元中,特殊功能寄存器主要有累加器ACC、B寄存器、程序状态字寄存器PSW、堆栈指针SP、数据指针DPTR、I/O端口、串行口数据缓冲器SBUF、定时器寄存器、捕捉寄存器、控制寄存器。 l 中断系统:AT89C51单片机有6个中断源,中断系统主要由中断允许寄存器IE、中断优先级寄存器IP、优先级结构和一些逻辑门组成。IE寄存器用于允许或禁止中断;IP寄存器用于确定中断源优先级别;优先级结构用于执行中断源优先排序;有关逻辑门用于输入中断请求信号。在整个中断响应过程中CPU所执行操作步骤如下: (1)完成当前指令操作 (2)将PC内容压入堆栈 (3)保存当前中断状态 (4)阻止同级中断请求 (5)将中断程序入口地址送PC寄存器 (6)执行中断服务程序 (7)返回 3.1.3 8位移位寄存器74LS164(串行输入,并行输出) 74LS164为8位移位寄存器,其主要电特性典型值如表3-2: 表3-2 74LS164主要电特性典型值 型号 fm Pn 54/74164 36MHz 185mW 54/74LS164 36 MHz 80mW 当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。 串行数据输入端(A,B)可控制数据。当A、B任意一个为低电平时停止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0为低电平。当有一个为高电平,则另一个就允许输入数据,并在CLOCK上升沿作用Q0状态。 引出端符号 CLOCK 时钟输入端 CLEAR 同步清除输入端(低电平有效) A,B 串行数据输入端 QA-QH 输出端 逻辑及封装图,如3-2,3-3 图3-2 逻辑图 图3-3 封装图 极限值 电源电压…………………………………7V 输入电压…………………………………5.5V 工作环境温度 54164……………………………………-55~125℃ 74164……………………………………-0~70℃ 储存温度……………………………………-65℃~150℃ 表3-3真值表 H-高电平L-低电平X-任意电平↑-低到高电平跳变 QA0,QB0,QH0-规定稳态条件建立前电平 QAn,QGn-时钟最近↑前电平 时序图如下3-4 图3-4 时序图 推荐工作条件如表3-4: 表3-4推荐工作条件 静态特性(TA为工作环境温度范围)如表3-5 表3-5工作环境温度范围 [1]:测试条件中“最小”和“最大” 用推荐工作条件中相应值。 动态特性(TA=25℃)如表3-6 表3-6动态特性 [2]:fmax最大时钟频率。tPLH输出由低电平到高电平传输延迟时间tPHL输出由高电平到低 电平传输延迟时间 3.1.4 ds1302 现在流行串行时钟电路很多,如DS1302、 DS1307、PCF8485等。这些电路接口简单、价格低廉、使用方便,被广泛地采用。本文介绍实时时钟电路DS1302是DALLAS公司一种具有涓细电流充电能力电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程充电功能,并且可以关闭充电功能。采用普通32.768kHz晶振。 DS1302 是美国DALLAS公司推出一种高性能、低功耗、带RAM实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口及CPU进行同步通信,并可采用突发方式一次传送多个字节时钟信号或RAM数据。DS1302内部有一个31×8用于临时性存放数据RAM寄存器。DS1302是DS1202升级产品,及DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电能力。 DS1302引脚排列,其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭情况下,也能保持时钟连续运行。DS1302由Vcc1或Vcc2两者中较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据传送手段。当RST为高电平时,所有数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。 DS1302 控制字节最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 在控制指令字输入后下一个SCLK时钟上升沿时,数据被写入DS1902,数据输入从低位即位0开始。同样,在紧跟8位控制指令字后下一个SCLK脉冲下降沿读出DS1302数据,读出数据时从低位0位到高位7。 DS1302有12个寄存器,其中有7个寄存器及日历、时钟相关,存放数据位为BCD码形式,其日历、时间寄存器及其控制字见表1。 此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及及RAM相关寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外所有寄存器内容。 DS1302及RAM相关寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下RAM寄存器,此方式下可一次性读写所有RAM31个字节,命令控制字为FEH(写)、FFH(读)。 DS1302及CPU连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。DS1902及89C2051连接图,其中,时钟显示用LED。 DS1302及CPU连接,实际上,在调试程序时可以不加电容器,只加一个32.768kHz 晶振即可。只是选择晶振时,不同晶振,误差也较大。另外,还可以在上面电路中加入DS18B20,同时显示实时温度。只要占用CPU一个口线即可。 LED还可以换成LCD,还可以使用北京卫信杰科技发展有限公司生产10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有3-4线串行接口,可及任何单片机、IC接口。功耗低,显示状态时电流为2μA (典型值),省电模式时小于1μA,工作电压为2.4V~3.3V,显示清晰。 DS1302实时时间流程。根据流程框图,不难采集实时时间。下面对DS1302基本操作进行编程: 根据本人在调试中遇到问题,特作如下说明 DS1302 及微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入), D0=1,指定读操作(输出)。 在DS1302时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期上升沿输入数据字节,或在下8个SCLK周期下降沿输出数据字节。 DS1302及RAM相关寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下RAM寄存器,在此方式下可一次性读、写所有RAM31个字节。 要特别说明是备用电源B1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小普通电解电容器代替。100 μF就可以保证1小时正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。 DS1302 存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。DS1302可以用于数据记录,特别是对某些具有特殊意义数据点记录,能实现数据及出现该数据时间同时记录。这种记录对长时间连续测控系统结果分析及对异常数据出现原因查找具有重要意义。传统数据记录方式是隔时采样或定时采样,没有具体时间记录,因此,只能记录数据而无法准确记录其出现时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机资源,而且,某些测控系统可能不允许。但是,如果在系统中采用时钟芯片DS1302,则能很好地解决这个问题。 电子万年历功能是在程序控制下实现。该系统软件设计方法及硬件设计相对应,按整体功能分成多个不同程序模块,分别进行设计、编程和调试,最后通过主程序将各程序模块连接起来。这样有利于程序修改和调试,增强了程序可移植性。 第四章 单片机主程序 4.1 主程序开始 读年、月、日 送第一块LED显示 读星期、闰、年、日 送第二块LED显示 读时、分、秒 送第三块LED显示 返回 主程序如图4-1所示: 4.2 从1302读取日期和时间程序 系统初始化 开 始 需要调整时间吗? 读1302日期和时间 调整时间和日期 Y N 图4-2 从1302读取程序 第五章 PROTEUS使用 5.1编程环境PROTEUS PROTEUS软件是由英国LabCenter Electronics 公司开发EDA工具软件,由ISIS和ARES两个软件构成,其中ISIS是一款便捷电子系统仿真平台软件,ARES是一款高级布线编辑软件,它集成了高级原理布线图、混合模式SPICE电路仿真、PCB设计以及自动布线来实现一个完整电子设计。 5.2用PROTEUS ISIS对电子万年历硬件电路设计 通过PROTEUS ISIS软件VSM(虚拟仿真技术),用户可以对模拟电路、数字电路、模数混合电路,以及基于微控制器系统连同所有外围接口电子元器件一起仿真。 用PROTEUS ISIS设计硬件电路过程 ① 选择设计图纸到小 根据设计所使用到元器件多少,选择合适大小设计图纸,操作是单击菜单栏上System→Set Sheet Size ,然后弹出如图5-1所示对话框,从中选择合适大小图纸,也可以选择User进行图纸自定义设置。在设计过程中也可以通过此方法调整图纸大小。 图 5-1 ② 选取仿真所需元器件 选取元器件方式是,单击如图5-2所示按钮“P”。会弹出如图5-3所示窗口。 图 5-2 图 5-3 从此窗口左上角“Keywords”中输入电子万年历设计用到器件,如输入“AT89C51”,在中间会列出带有输入关键字元器件,选择合适元器件并双击它,则已经选择好了该元器件。然后再在“Keywords”中输入其他所需元器件,用同样方法进行操作。最后选择好所有元器件如图5-4所示。 图 5-4 所用器件 其中74LS174表示三个串行接口,AT89C51代表单片机会,DS1302代表时钟芯片,RESPACK-8代表八排电阻。 ③ 把元器件放到图纸合适位置,进行布线 单击如图5-4所示元器件AT89C51,再在右边图纸上单击,就把元器件放入到了图纸上。再用同样方法把ds1302放入到图纸合适位置。如果元器件放置错误,这可通过两次右击删除所放置元器件,如果位置放得不理想,可以先右击该器件,然后按住左键进行移动。在布线之前,如果觉得元器件引脚方向不好布线,则可以通过单击这四个按钮进行调整,这四按钮意思分别是:顺时针旋转90°,逆时针旋转90°,沿Y轴对称,沿X轴对称。通过这样调整,可以使整个布局合理一些。接着进行布线,由于PROTEUS ISIS有自动布线功能,比如要把AT89C51P2口连到74LS164OUT8口,只要先在P2引脚上单击一下,再在OUT8引脚上单击,则ISIS自动将两个引脚连上线。 图 5-5 at89c51及ds1302连接 ISIS还提供了网络布线,即不使用线连接也可以把两个引脚虚拟连接了起来。具体操作是:单击要连线一个引脚,连出适当距离后双击,另一个引脚也同样操作,在单击如图6-5所示“LBL”按钮,再在图中P0.1引脚A处单击,在弹出窗口中“String”中填入名称,如“A” ,对OUT7引脚进行同样操作,在“String”中也填入名称“A”,这样就完成了P3.4引脚及RES引脚网络连接,这个好处避免两个距离比较远器件进行真实线连接,使布线美观。 ④ 编辑窗口连接端子 要让最后设计成功仿真时,必须放置并连接端子。选择,从中可以选择电路原理中两个通用端子,一个是接地,一个是电源。如图5-6所示。 图 5-6连接端子 在PROTEUS ISIS中最终设计图如图5-7所示 图 5-7仿真图 最后分别对各元器件属性值进行设置,单击按钮,进行电气检测,查看接线是否合理,说明硬件电路已经顺利完成。 5.3用PROTEUS ISIS进行电子万年历仿真测试 ① 添加Keil中编写代码文件 单击工具栏中Source→Add/Remove Source files...,弹出一个对话框,分别单击“New” ,然后选择在Keil中编写数字电压表.ASM汇编语言程序,单击“OK” ,完成添加代码文件。 ② 编译源程序,生成.HEX目标代码文件 单击Source→Build All。如果编译结果没有错误,会出现如图5-8所示结果。 图5-8 ③ 加载.HEX目标代码文件 通过如图5-9所示对话框,选择刚才编译生成.HEX文件。设置使单片机运行频率为6MHz 。 图5-9 ④ 单击按钮,进行对电子万年历仿真测试,运行结果如图5-10所示 图5-10仿真测试 ⑤ PROTEUS调试功能 由于使用是汇编语言编写程序,如果在测量时候测量值显示错误,说明程序中存在问题,这个问题只用在仿真测量时候才能被发现,这时可以使用PROTEUS对程序进行调试。单击按钮,再单击菜单栏中Debug,可以在最下面选择打开内存观察窗口,寄存器值观察窗口,汇编语言源代码窗口等等。在汇编语言源代码窗口中,也可以在所需要设置断点语句前双击设置断点,当设置断点时候,程序运行到所设断点处停止,从而可以在内存、寄存器等值变化,从而找出程序出错地方。 结论 本课题从理论到实际应用,用AT89C51单片机及8位模数转换芯片74LS164等一些电路组合,成功设计出了一个电子万年历。而且所设计电子万年历设计也按当初要求能够在PROTEUS中进行仿真,并且能够很精确显示年历。可以说该电子万年历具有很高实用价值。 在软件设计过程中,利用了Keil这个软件在程序录入和调试时候优越性,让我能够在编写软件时候很方便发现软件中错误,现在已经能够使用Keil对所设计程序进行调试。对于PROTEUS这款软件,也能熟练掌握电路设计仿真。由于平时没有接触过这两个软件,加上毕业设计时间有限,对于他们连接调试程序,未能熟练掌握,但以后有机会话会再好好学习。 本次设计电子万年历也存在不足地方,有待于以后改进。 致谢 经过三个多月时间,毕业设计按照预期完成了,由于本人知识水平有限,论文和设计中有遗漏和缺陷地方恳请指正。 感谢我导师高玉芹老师给了我莫大帮助,在她悉心指导和严格要求下,作品和论文顺利完成了。论文从选题和最终完成,凝结着导师辛勤汗水,她不辞劳苦教导、严谨作风使我终生受益。在此毕业设计完成之际,谨向导师和所有帮助过我老师致以崇高敬意和衷心感谢。 还有感谢家人、朋友还有宿舍里所有室友,是他们给我创造了良好学习氛围,在学习和生活中给了我支持和帮助。在以后学习生活中我会时时敦促自己更加努力,不辜负师长、亲人、朋友对我期望。 参考文献 [1] 赵长德.微型计算机原理及接口技术[M].北京:机械工业出版社,1999:98-350. [2] 苏平.单片机原理及接口技术[M].北京:电子工业出版社,2006:1-113. [3] 王忠民.微型计算机原理[M].西安:西安科技大学出版社,2003:15-55. [4] 胡戴明.计算机组成原理[M].北京:经济科学出版社,2005:43-56. [5] 纪宗南.单片机外围器件使用手册[M].北京:北京航空航天大学出版社,622-655. [6] 周雪.模拟电子技术[M]西安: 西安电子科技大学出版社,2005:81-95. [7] 左金生.电子及模拟电子技术[M].北京:电子工业出版社,2004:105-131. [8] 尹勇.单片机开发环境μVision2开发指南[M]. 北京:北京航空航天大学出版社,2004:173-199. [9] 张斌武.单片机系统Proteus设计及仿真[M]. 北京:电子工业出版社,2005:52-89. 附录 附录1 源代码 DELAY.C #define DELAY_C #include”includes.h” #define XTAL 12 void delay_lus(void) { asm(”nop”): } void delay_nus(unsigned int n) { unsigned int i=0; for(i=0;i<n;i++) delay_lus(); } void delay_ims(void) { unsigned int i; for(i=0:i<(unsigned int)(XTAL*143-2);i++); } void delay_nms(unsigned int n) { unsigned int i=0; for(i=0;i<n;i++) { delay_ims(); } } DSl302.C #include”includes.h” #define DSl302_C unsigned char bflag; unsigned char bpm; unsigned char get_hours(void) { unsigned char i; unsigned char R_Byte; unsigned char TmpByte; reset(); write(0x85); ddr_set_io(); R_Byte=0x00; Prt_clear_io(); ddr_clear_io(); for(i:0;i<4;i++) } TmpByte=0; if((pinp&(1<<io))) TmpByte=1; TmpByte<<=7; R_Byte>>=1; R_Byte I=TmpByte; Prt_set_clk(); d
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服