电子日历设计毕业设计_第1页
电子日历设计毕业设计_第2页
电子日历设计毕业设计_第3页
电子日历设计毕业设计_第4页
电子日历设计毕业设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

摘要本次设计的题目是电子日历,可以正常的显示年、月、日、时、分、秒。电 子日历具有性能稳定、精确度高、成本低、易于产品化,以及方便、实用等特点。 适用于家庭、公司、机关等众多场所。为人们的日常生活、出行安排提供了方便, 成为人们日常生活中不可缺少的一部分。本次设计可分为两部分:硬件系统、软件系统。硬件部分包括:AT89C51单片机、DS12C887时钟芯片、74LS154译码器、 ULN2003A驱动芯片。利用单片机将RC复位电路、动态显示电路、电源电路、去抖电路等正确的 连接在一起,并通过单片机的编程来实现本次设计任务中的要求。关键词:单片机,日历,位码,段码,显示摘要II目录I1概述11. 1单片机的组成及特点11. 2单片机的应用22设计方案42. 1设计思路42. 2系统总体框图43硬件设计63. 1单片机的选择63. 2复位电路93.3晶振电路103.4时钟芯片DS12C887介绍113.574LS154芯片介绍及ULN2003A的简介154软件设计185单片机应用系统的测试265. 1在伟福中的调试265. 2在Ke订中的调试并连接实验箱27致谢31总结32参考文献331. 1单片机的组成及特点单片机是微型机的一个主要分支,在结构上的最大特点是把CPU、存储器、定 时器和多种输入/输出接口电路集成在一块超大规模集成电路芯片上。就其组成和功 能而言,一块单片机芯片就是一台计算机。单片机通过内部总线把计算机的各主要部件接为一体,其内部总线包括地址总 线、数据总线和控制总线。其中,地址总线的作用是在进行数据交换时提供地址, CPU通过它们将地址输出到存储器或I/O接口: /数据总线的作用是在CPU与存储器 或I/O接口之间,或存储器与外设之间交换数据:控制总线包括CPU发出的控制信 号线和外部送入CPU的应答信号线等。单片机中的CPU、存储器等部件将在后而章 节陆续介绍。由于单片机的这种结构形式及它所采取的半导体工艺,使其具有很多显著的特 点,因而在各个领域都得到了迅猛的发展。单片机主要发如下特点:(1) 有优异的性能价格比。(2) 高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上, 内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干 扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下 工作。(3) 为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指 令、I/O 口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于 同一档次的微机。(4) 低电压,便于生产便携式产品。(5) 部总线增加了 I C (Inter-Integrated Circuit)及 SPI (Serial Peripheral Interface)等串彳亍总线方式,进一步缩小了体积,简化了结构。(6) 单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系 统。单片机作为计算机发展的一个重要领域,应用一个较科学的分类方法。根据目 前发展情况,从不同角度单片机大致可以分为通用型/专用型、总线型/非总线型及 工控型/家电型。1. 通用型/专用型这是按单片机适用范围来区分的。例如,89C51是通用型单片机,它不是为某 种专用途设计的:专用型单片机是针对一类产品甚至某一个产品设计生产的,例如 为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。2. 总线型/非总线型这是按单片机是否提供并行总线来区分的。总线型单片机普遍设置有并行地址 总线。数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片 机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在 许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称 为非总线型单片机。3. 控制型/家电型这是按照单片机大致应用的领域进行区分的。一般而言,工控型寻址范围大, 运算。能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和 外设接口集成度高。显然,上述分类并不是惟一的和严格的。例如,89C51类单片机既是通用型又 是总线型,还可以作工控用。1. 2单片机的应用由于单片机具有显著的优点,它已成为科技领域的有力工具,人类生活的得力 助手。它的应用遍及各个领域,主要表现在以下几个方面:1. 单片机在智能仪表中的应用单片机广泛地用于各种仪器仪表,使仪器仪表智能化,并可以提高测量的自动 化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。2. 单片机在机电一体化中的应用机电一体化是械工业发展的方向。机电一体化产品是指集成机械技术、微电子 技术、计算机技术于一体,具有智能化特征的机电产品,例如微机控制的车床、钻 床等。单片机作为产品中的控制器,能充分发挥它的体积小、可靠性高、功能强等 优点,可大大提高机器的自动化、智能化程度。3. 单片机在实时控制中的应用单片机广泛地用于各种实时控制系统中。例如,在工业测控、航空航天、尖端 武器、机器人等各种实时控制系统中,都可以用单片机作为控制器。单片机的实时 数据处理能力和控制功能,可使系统保持在最佳工作状态,提高系统的工作效率和 产品质疑。4. 单片机在分布式多机系统中的应用在比较复杂的系统中,常采用分布式多机系统。多机系统一般由若干台功能各 异的单片机组成,各自完成特定的任务,它们通过串行通信相互联系、协调工作。 单片机在这种系统中往往作为一个终端机,安装在系统的某些节点上,对现场信息 进行实时的测量和控制。单片机的高可靠性和强抗干扰能力,使它可以置于恶劣环 境的前端工作。5. 单片机在人类生活中的应用自从单片机诞生以后,它就步入了人类生活,如洗衣机、电冰箱、电子玩具、 收录机。等家用电器配上单片机后,提高了智能化程度,增加了功能,倍受人们喜爱。 单片机将使人类生活更加方便、舒适、丰富多彩。综合所述,从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单 片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是 传统控制技术的一次革命。本设计主要以单片机为主,单片机已成为计算机发展和应用的一个重要方面。 单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计 方法。32设计方案2. 1设计思路设计的题目是电子日历的控制。根据设计要求日历显示正常的年、月、日、时、 分、秒。要想实现上述功能,就必须将硕件系统和软件系统有机的结合在一起,方 可实现我们设计任务中的各项要求。硬件系统主要有单片机AT89C51, DS12C887. 74LS154等。AT89C51主要功能是存储程序、根据程序的内容对各个端口进行判断并做出相 应的处理。DS12C887主要的功能是控制年、月、日、时、分、秒的显示效果。根据设计要求,电子日历要显示年、月、日、时、分、秒就需要16个显示数码 管,由于数码管的数量较多,必须采用动态显示扫描的方法。例如07-12-0L首先 日分为个位和十位,个位显示到09时,应向日的十位自动进位,即个位淸0,十位 置1,显示为10,继续累计:当显示为31时,日的十位就应自动向月的个位进位, 显示为01,当月显示到09时,月的个位自动向月的十位进位,个位淸0,十位置1, 即为10,当月至12时,月向年的个位进位,即显示08,同时月、日开始从01 月01日继续显示,依次周而复始的循环运行。根据按键电路可实现年、月、日、时、分、秒的调整,当K1键按下时,可以调 整时间,K2、K3键分别对时间进行加或减,K4键可以切换正常模式与省电模式。利用单片机将RC复位电路、动态显示电路、电源电路、去抖电路等正确的连接 在一起,并通过单片机的编程来实现本次设计任务中的要求。2. 2系统总体框图设计电路采用ATMEL的AT89C51芯片来做CPU,用AT89C51的内部EPROH作为程序存 储器。显示部分位码的扩展采用74LS154,七段数码管的驱动采用ULN2003A控制部分 采用普通独立按键。在确定系统的大体形式之后,画出系统的总框图如图2. 1所示。图2. 1系统总框图系统总体框图包括:单片机、控制电路、复位电路、显示电路、电源部分。单片机AT89C51芯片的主要功能是:存储程序,对存储程序进行相应的处理从 I/O 口输出。复位电路:在单片机上有一个复位引脚RST,在单片机外部用电容和电阻控制 RSTo控制电路:是用一个按键控制日历的省电和正常显示。显示电路:主要用于显示日历的结果。电源电路:采用+5V的直流电源供电。3硬件设计硬件电路主要包括:时钟芯片、单片机、显示电路、译码器以及电源等几部分。时钟芯片选择:选用DS12C887实时芯片。单片机的选择:选用AT89C8051单片机,配备11. 0592MHz晶振。P1.0P1.4作数 码管的位选口,P0. 0P0. 6作数码管的段选口。显示电路的选择:采用软件译码器动态显示,共阴极LED数码管。复位电路的选择:RC复位电路。译码器的选择:采用4线一16线译码器74LS154。电源电路的选择:采用直流+5V电源供电。3. 1单片机的选择单片机实质上是一个芯片,在实际应用中,必须外加各种扩展接口电路、外部 设备等相关硬件和软件,才能构成一个单片机系统。尽管各类单片机很多,但无论 是从世界范围或是从全国范围来看,使用最为广泛的应属MCS-51单片机。单片微型计算机市指集成在一个芯片上的微型计算机,也就是把组成微型计算 机的各种功能部件,包括CPU、随机存储器RAM、只读存储器ROH、基本输入/输出 接口电路、定时器/计数器等部件都制作在一块集成芯片上,构成一个完整的微型计 算机,从而实现微型计算机的基本功能。89C51单片机是在一块芯片中集成了 CPU、存储器、宦时器/计数器和多种功能 的I/O现等一台计算机所需的基本功能部件。主要包括1个8位CPU、1个片内振荡 器及时钟电路、128B RAM. 4KB ROM. 2个16位定时器计数器、32条可编程的I/O 线和一个可编程的全双工串行接口、5个中断源、2个中断优先级套中断结构。其内 部结构示意图如图3.1:1INI定时器/计数器中断系统PD-3并行e接口1存储器 1一并行!/接口TXDRXD图3.1单片机内部结构示愆图1、中央处理器 CPU是单片机的内部核心部件,是一个8位二进制数的中央处 理单元,主要由运算器,控制器和寄存器阵列构成。2、控制器控制器是单片机内部各部件按一左时序协调工作的控制核心,是分 析和执行指令的部件。控制器主要由程序计数器、指令寄存器、指令译码器、振荡 和定时控制逻辑电路等构成。3、寄存器阵列寄存器阵列式单片机内部的临时存储单元或固定用途单元,包 括通用寄存器组和专用寄存器组。4、存储器程序存储器是可读不可写的,用于存放编号的程序和表格常数。5、数据存储器是即可读也可写的,用于存放运算的中间结果,进行数据暂存及 数据缓冲等。6、定时器计数器89C51内部有2个16位可编程定时器计数器,简称为定时器0(T0)和定时器1仃1), TO和T1在宦时器控制寄存器TCON和定时器方式选择寄 存器THOD的控制下,可工作在定时器模式或计数器模式下,每种模式又有不同的工 作方式。89C51有两个16位的可编程怎时/计数器,以实现定时或计数产生中断用 于控制程序转向。7、并行输入输出(I/O) 口 89C51共有4组8位I/O 口(PO、 Pl、P2或P3), 用于对外部数据的传输。89C51单片机内部总线是单总线结构,即数据总线和地址总线是公用的。89C51有40条引脚, 与其他51系列单片机引脚是兼容的。 这40条引脚可分为 I/O接口线、电源线、控制线、外接晶体线4部分。89C51单片机为双列直插式封8装结构,如图3. 2所示。P0OP01器器P06P07P20P21醫P24P25P26P27皿P10P11器P14P15P16P17般 nTO顾X1X2曲顒图3.2 89C51引脚分配图Pin40:电源脚。工作电压为+5VPin20:接地端P0 口: P0 口为一个8位漏极开路的双向I/O 口,每脚可以吸收8TTL门电流。当P0 口的管脚第一次写“1”时,被定义为高阻输入,P0 口能够用于外部数据存储 器,它可以被定义为数据/地址的第八位,在FLASH编程时,P0 口作为原码输入口, 当FLASH进行校验时,P0 口输岀原码,此时,P0外部必须被拉高。P1 口: P1 口是一个内部提供上拉电阻的8位双向I/O 口,P1 口缓冲器能接收 输出4TTL门电流,P1 口管脚写入1时,被内部上拉为高,可用作输出,P1 口被外 部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验 时,P1 口作为第八位地址接收。P2 口: P2 口为一个内部上拉电阻的8位双向I/O 口,P2 口缓冲器可以接收、 输出4个TTL H电流,当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: INTO (外部中断0)P3.3: 而i (外部中断1)P3.4: T0(定时/计数器0)P3. 5: T1(定时/计数器1)P3.6:匝(外部数据存储器写选通线)P3. 7:商(外部数据存储器读选通线)P3 口同时为闪烁编程和编程校验接收一些控制信号RST复位输出:当振荡器复位时,要保持RST脚两个机器周期的高电平时间。XTAL1:反向振荡器的输入及内部时钟工作电路的输入:XTAL2:来自反向振荡器的输出。振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出,该反向放大器可以配置为片内振荡器,石英振荡器和陶瓷振荡器均可采用,如果采用外部时钟源 驱动器件,XTAL2应不连接,有余的输入至内部时钟信号要通过一个二分频触发器, 因此对外部时钟信号的脉冲没有任何严格的要求,但必须保证脉冲的高低电平要求 的宽度。3. 2复位电路单片机在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循 环状态,在这种情况下都需要复位.复位的作用是使中央处理器CPU以及其他功能 部件都恢复到一个确定的初始状态,并从这个状态重新开始工作.89S51单片机的复位靠外部电路实现,信号由RESET(RST)引脚输入,高电平有效, 在振荡器工作时,只要保持RST引脚高电平两个机器周期,单片机即复位.复位后,PC程序计数器的内容为0000H,片内RAM中内容不变.复位电路一般有上电复位、手动开关复位和自动复位电路3种,如图3. 3所示.+5VVCC8. 2KGNDC 10uFRST 39C51a. 上电复位电路b. 手动复位电路c. 自动复位电路图3. 3单片机复位电路3. 3晶振电路1. 晶体振荡器的作用:石英晶体振荡器也称石英晶体谐振器,它用来稳定频率 和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。2. 本次设计所用的晶体振荡电路如图3. 4所示:3_ T 7 715T7C133P3119T?P10POOP11P01P12P02P13P03P14P04P15P05P16P06P17P07DTT1P20DTIDP21P22T1P23IDP24P25EAAfPP26P27XIX2RESETRXDRDTXDALDTWRPSEN38373635343332212223242526272839101130图3.4晶体振荡电路此晶振电路所选用的石英晶振频率为12MHZ时钟周期就是单片机外接晶振的倒数,例如12H的晶振,它的时间周期就是 l/12us),是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个垠基本的动作。对于某种单片机,若采用 T 1MHZ的时钟频率,则时钟周期为lus:若采用4HHZ的时钟频率,则时钟周期为 250uso由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计 算机的每一步都统一到它的步调上来)。显然,对同一种机型的计算机,时钟频率越 高,计算机的工作速度就越快。但是,由于不同的计算机硬件电路和器件的不完全 相同,所以其所需要的时钟周频率范围也不一宦相同。我们学习的51系列单片机的 时钟范围是1.2MHz-12MHzo3. 4时钟芯片DS12C887介绍本次设计采用实时时钟芯片是DS12C887,这种实时时钟芯片具备年、月、日、 时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需程 序干预。此外,事实上时钟芯片多数带有锂电池做后备电源,具备永不停止的计时 功能:具有可编程方波输出功能,可用做实时测控系统的采样信号等;有的实时时 钟芯片内部还带有非易失性RAI,可用来存放需长期保存但有时也变更的数据。LED 数码管电子时钟电路采用24小时记时方式,日期和时间用16位数码管显示,采用 AT89C51单片机,5V电池供电,只要使用一个按键开关即可进入省电(显示LED数码 管)和正常显示两种状态。显示范围:年份可走99年,如20012099:日、月正常显示,能识别闰年闰 月:时间采用24小时制。显示格式:日期按照年、月、日排列,如2005年12月20日显示为:05-12- 20:时间按时、分、秒排列,如12点30分55秒显示为12-30-55o显示位数:6位七段LED数码管工作正常和节电显示。时钟误差:24小时误差3-5秒。DS12C887时钟芯片采用CMOS技术制成,该芯片带有内部晶体振荡器并内置有 锂电池,因此断电后仍可运行十年以上不丢失数据。时间、日历和定闹具有二进制 码和BCD码两种形式,并可设定12小时或24小时制式以及Motorola和Intel总线 时序。DS12C887内含128字节RAM,其中有10个时钟寄存器、4个控制寄存器和 114字节通用RAM,所有RAM单元都具有掉电保护功能,因此可被用作非易失性11RAM。DS12C887内部具有定闹中断、周期中断、时钟更新周期、结束中断等,且三 个中断源可分别由软件屏蔽。341 DS12C887主要功能简介(1) 内含一个锂电池,断电后运行十年以上不丢失数据。(2) 计秒、分、时、天、星期、日、月、年、并有闰年补偿功能。(3) 二进制数码或BCD码表示时间,日历和定闹。(4) 12小时或24小时制,12小时时钟模式带有PM和AM指示,有夏令时功能。(5) Motorola和Intel总线时序选择。(6) 有128个字节RAM单元与软件接口,其中14个字节作为时钟和控制寄存 器,114字节为通用RAM,所有RAM单元数据都具有掉电保护功能。(7) 可编程方波信号输出。(8) 中断信号输出(IRQ)和总线兼容、宦闹中断、周期性中断、时钟更新周期、 结束中断可分别由软件屏蔽,也可分别进行测试。34. 2 DS12C887引脚说明及原理DS12C887管脚图如图3. 5所示:DS12C887帧NCNCADOAD1AD2黑AD5AD6船图3. 5 DS12C887管脚排列图VCC:直流电源+5V电压。当5V电压在正常范围内时数据可读写;当VCC低于4. 25V,读写被禁止,计时功能仍继续:当VCC下降到3V以下时,RAM和计数器被 切换到内部锂电池。HOT (模式选择):【0T管脚接到VCC时,选择MOTORLA时序:当接到GFND时。 选择INTEL时序。SQW(方波信号同):SQW管脚能从实时时钟内部15级分频器的13个抽头中选择 一个作为输出信号,其输出频率可通过对寄存器A编程改变。ADOAD7(双向地址数据复用线):总线接口即MOROROLA微机系列和INTEL微机 系列接口。AS(地址选通输入):用于实现信号分离,在ADALE的下降沿把地址锁入 DS12C887。DS(数据选通或读输入):DSRD客脚有两种操作模式,取决于MOT管脚放的电平, 当使用MOTOROLA时序时,DS时一正脉冲,出现在总线周期的后段称为数据选通: 在读周期DS指示DS12C887驱动双向总的时刻,在写周期DS的后沿使DS12C887锁 存写数据。选择INTEL时序时DS称作(RD), RD与典型存储器的允许信号(0E)的 定义相同。R/W(读/写输入):R/W管脚也有两种操作模式。选MOTOROLA时序时,R/W是一 电平信号,指示当前周期是读或写周期:DSO为高电平时,R/W高电平指示读周期, R/W低电平指示写周期:选INTEL时序,R/W信号是一低电平信号,称为WR。在此 模式下,R/W管脚与通用RAM的写允许信号(WE)的含义相同。CS (片选输入):在访问DS12887的总线周期内,片选信号必须保持为低。IRQ (中断申请输入):低电平有效,可作微处理的中断输入。没有中断条件满 足时,IRQ处于高阻态。IRQ线是漏极开路输入,要求外接上接电阻。RESET (复位输出):当该脚保持低电平时间大于200ms,保证DS12C887有效 复位。DS12C887内部由振荡电路、分频电路、周期中断/方波选择电路,14字节时钟 和控制单元,114字节用户非易失RAM,十进制/二进制累加器,总线接口电路,电 源开关写保护单元和内部锂电池等部分组成。Vcc:直流电源+5V电压。当5Y电压 在正常范围内时,数据可读写,当Vcc低于4。25V,读写被禁止,计时功能仍继续: 当Vcc下降到3V以下时,RAM和计时器供电被切换到内部锂电池。3. 4. 3 DS12C887的中需存器的功能和作用DS12887内部RAM和专用寄存器地址功能,地址00H03H单元取值范围是 00H3BH(10进制059): 04H05H单元按12小时制取值范围是上午(AM)1301HOCH(112),下午(PM) 81H8CH(8192)按24小时制取值范围使00H17H(123); 06H单元取值范围使00H07H (07): 07H单元取值范围 01H1FH(131); 08H单元取值范围是01HOCH(112): 09H单元取值范围是 00H63H(099)。DS12C887的RAM和各专用寄存器的访问如下实现,若片选地址 DS=#ODDXXH,则芯片内部RAM和寄存器和地址为#ODDOOH:?0DD7FH。应指出的是, 尽管DS12C887的专用时标年寄存器只有一个,但通过软件编程可利用其内部的不掉 电的RAM区的一个字节实现年度的高两位显示。寄存器A寄存器A各位不受复位的影响,UIP位为只读位,其它各位可读写,寄存器的 控制字的格式。A、UIP位:更新周期标志位。该位为“1”时,表示芯片正处于或将开始更新 周期,此时程序不准读写师表寄存器:该位为“0”时,表示至少在244us后开始更 新周期,此时程序可读芯片内时标寄存器。该位是只读位。B、DVO、DV1、DV2:芯片内部震荡器RTC控制位。当芯片接触复位状态, 并将010写入DVO、DV1、DV2后,另一个更新周期将在500ms后开始。因此,在 程序初始化时可用这三各精确地使芯片在设左的时间开始工作。这与MC不同的使 DS12C887固定使用32768Hz的内部晶体,所以DV0= 0”、DV1= 1”、 DV2=“0”,即可启动RTC。C、RS3、RS2、RSI、RSO:周期中断可编程方波输出速率选择位。各种不同的组 合可以产生不同的输出。程序可以通过设置寄存器B的SQWF和PIE位控制是否允许 周期中断方波输出。其寄存器A输岀速率选择位。3. 4. 4 DS12C887的中断和更新周期DSC12C887处于正常工作状态时,每秒钟将产生一个更新周期,芯片处于更新周 期的标志是寄存器A中的CPU位为1。在更新周期内,芯片内部时标寄存器数据处于更 新阶段,故在该周期内,微处理器不能读芯片时标寄存器中的内容,同时秒时标寄 存器内容加1,并检査其他时标寄存器内容是否有溢出。如果有溢出则相应进位日、 月、年。另外一个功能是检查三个时、分、秒报警时标寄存器的内容是否与对应时 标寄存器的内容相符,如果相符则寄存器C中的AF位置1。如果报警时标寄存器的内 容为COH到FFH之间的数据,则为不关闭状态。为了采样时标寄存器中的数据,DS12C887提供了两种避开更新周期内访问时标 寄存器的方案:第一种是利用更新周期结束发出的中断。它可以编程允许在每次更 新周期结束后发生中断申请,提醒CPU将有998ms左右的时间去获取有效的数据,在 中断之后的998ms时间内,程序可先将时标数据读支芯片内部的不掉电静态RAH中。 因为芯片内部的静态RAM和状态寄存器是可随时读写的,在离开中断服务子程序前应 淸除寄存器C中的IRQF位。另一种是:利用寄存器A中的UIP位来指示芯片是否处于更 新周期。在UIP位从低变高244us后,芯片将进行更新周期,所以检测到UIP位为低电 平时,则利用224us的间隔时间去读取时标信息。如检测到UIP位为1,则可暂缓读数 据,等到UIP变成低电平再去读数据。3. 4. 5 DS12C887初始化方法DS12C887采用连续工作制,一般无须每次都初始化,即使是系统复位时也如此。 但初始化时,首先应禁止芯片内部的更新周期操作,所以先将DS12C887状态寄存器B 中的SET位置1,然后初始化00H09H时标参数寄存器和状态寄存器A,此后再通过读 状态寄存器C、淸除寄存器C中的周期中断标志位PE、报警中断标志位AF、更新周期 结束中断标志位UF。通过读寄存器D中的VRT位,读状态寄存器后YRT位将自动置1, 最后将状态寄存器B中的SET位置0,芯片开始计时工作。3. 5 74LS154芯片介绍及ULN2003A的简介本设计要用到16个七段数码管,单片机的P0端口只有8根线,根本不够用, 所以用74LS154来扩展,74LS154使416译码器,只用单片机的四根线就可以 接16个数码管的位码端,因为74LS154使一个4入16出的译码器,在本设计中共 有16个显示数码管,所以一个74LS154译码器的输出端刚好够用。LED数码管采用 共阴极。在设计中74LS154的输入端有单片机的P1. 0P1. 3 口提供段码控制信号,输出 端接数码管的段码管脚(既图中的0管脚)。74LS154管脚图如图3. 6所示,74LS154真值表如表3. 7所示:15匹Y1_Y2_Y3_Y4SY6辽Y8河一Y10YTTBEYT4YT574LS154A3A2A1A0图 3. 6 74LS154 管脚表3.7 74LS154真值表辙出A知九Y0 0 0 030 0 0 10 0 10 =00 0 11 =00 10 0Y, -00 10 1=00 1100 111Y- =010 0 0司10 0 110 1010 11110 02=0110 11110Yu-01111V7,=oULN2003A有美国Texas Instruments公司、美国Sprague公司生产,由7组 达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组 负载的能力,为单片双机型大功率高速集成电路。ULN2003A是一个驱动器,它的输入端接单片机的P0.0P0.7 口,输出接数码 管的位码端上,由于此设计中用到的数码管数量多,而单片机的输出不能一下驱动, 所以通过ULN2003A进彳亍驱动。ULN2003A管脚如图3. 8所示:IB1C2B2C3B3C4B4C5B5C6B6C7B7CECOM图3. 8 ULN2003A管脚图174软件设计软件设计分为:动态扫描、主程序、系统资源分配和软件模块几部分,在此设 计中采用定时器来完成动态扫描显示。用定时器TO定20ms的时间间隔,每次宦时 时间到时就输出一个LED信号,即显示一位。主程序初始化后,就开始进行对 DS12C887的读时间;读完后送显示缓冲区,同时并对定时时间进行判断比较。 DS12C887的地址由114字节的用户RAM存放。10字节的存放实时时钟时间日历和 定闹RAM及用于控制和状态的4字节特殊寄存器组成,几乎所有的128个字节直接 读写。设计程序有:主程序、读取时间的子程序和显示刷新程序。主程序框图如图4. 1所示:主程序如下所示:ORG 000HLJMP STARTORG 0030HSTART: MOV 30H, #0SETB Pl. 1SECONDEQU2000HMINUNTE EQU2001H:时钟芯片寄存器HOUREQU2004HWEEKEQU2006H:它们代表秒、分钟、时、日期DATEEQU2007H;年、月MONTHEQU2008HYEAREQU2009H:可以改变实际连线,地址也相应改变TREGAEQU200AH:四个控制寄存器TREGBEQU200BHTREGCEQU 200CIITREGDEQU200DHTUPDATE EQU80H:如果TREGA. 7=1,时钟芯片更新TBHALTEQUB;24/12=1,采用24小时计时制将TBHALT写入TREGB,停止计时TBSALTEQUB:将TBSTART写入TREGB继续计时F32KEQU20HMOVA, #TBHALTSET=1, PIE, AIE, UIE, SQWE=O,DM=0MOVX DPTR,A;24/12=b 24H0URS, DSE=OMOV DPTR,荐TREGDMOV A,#3211;设置控制寄存器,开晶振。MOV DPTR, AMOV DPTR, BHALTMOV A, DPTRMOV DPTR, AMOV A, DPTR:开始计时MOV A, #TBHALT19MOVX DPTR, ASSI: LCALL TIMERECJNB Pl. 4 , SSILCALL DSPLAYLJMP SSI读取时间子程序框图如图4. 2所示:MOV ACC, IE图4.2读取时间的子程序框图 读取时间程序如下所示:TIMEREC: PUSH ACCCLR ETOMOVRO, DPLMOVR1, DPHMOV DPTR , STREGATIMEWALT: MOVX A, A+DPTRJB ACC. 7, TIMEWALTMOV DPTR,存SECONDMOVX A, A+DPTRMOV R6 , AMOV DPL , R3MOV DPH , R1MOVX A, DPTRSUB A, R6JNZ GETTIMERETGETTIME: INC ROINC ROMOV A, EOCPL AMOV EO , AMOV A, R6MOVX DPTR , AINC DPTRMOV R3, DPLMOV Rl, DPHMOV DPTR ,制INUTEMOVX A, DPTRMOV DPL , R3:将指针存入RO、R1:如果DS12C887正在更新则等待:否则,读取秒数、分钟等数值:取出原来的秒数:如果时间未改变则退出:指向:所指单元:将:”取反,每秒变化一次:以控制亮和灭,形成闪烁效果:恢复时间值:读取并存储分钟MOVX A, DPTR, AMOV DPH, R122INC DPTRMOV R3, DPLMOV Rl, DPHMOV DPTR, #HOURMOVX A, DPTRMOV DPL, R3MOVDPH, R1MOVX DPTR, AINC DPTRMOV R3, #DPLMOV Rl, #DPHMOV DPTR , #DATAMOVX A, DPTRMOV DPL , R3MOV DPH , R1MOVX DPTR , AINC DPTRMOV R3 , #TONTHMOVX A, DPTRMOV DPL , R3MOV DPH , R1MOVX DPTR , A:读取并存储小时:读取并存储日期;读取并存储月份INC DPTRMOV R3, DPLMOV Rl, DPHINC DPTR, #HOURMOVC A, DPTR:读取并存储年号MOV DPH , RR1MOV DPL , R3MOVX DPTR , A:寄存器恢复保护23POP ACCMOV IE, ACCPOP ACCRET显示刷新子程序框图如图4. 3所示:图4. 3显示刷新子程序框图显示刷新子程序如下所示:MOV 4OH , R3PUSHACCDISPLAY: MOV A, ROMOVR6 , A:显示指针首址保护,存入R6INCDPTR:先将指针指向分钟单元MOVXA, DPTRMOVR3, A:保护寄存器A数据ANLA, #OFOHSWAPA:得到小时的十位MOVR0 , AINCRO;显示指针加一MOVA, R3ANLA, #OFOH:得到小时的个位MOVR0, A:存入显示缓冲区INCRO:跳过分号的显示单元INCRODECDPTRMOVXA, DPTRSWAPA:得到分钟的十位MOVRO, AINCRO:显示指针加一MOVA, R3ANLA, #OFOH:得到分的个位MOVR0 , A:存入显示缓冲区MOVXDPTR, A:AC 口均为输出,方式0MOVR4, #1FH:位选字MOVA, R4:送位选字中间变量MOVXDPTR, A:从位选字入(采用共阴接法全灭)DECDPTR:指向PADMOVA, RO:查段码ADDA, #ODHMOVCA, A+PCMOVXDPTR, A:段选码送PB 口ACALL,DLL延时一毫秒INCRO指向显示缓冲区下一单元MOVA, R4JNBACC .0, LD1:判断16位显示完RR A未显示完,变为下一位位选字MOVA, R4AJMPLDO转显示下一位POPACCLD1:RETDSGE:3FG, 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:延时子程序DEC DPTRDBDL: MOV R6, #OFFHNOPDL6: DJNZ R6, DL6DJNZ R7, DLRET265单片机应用系统的测试5. 1在伟福中的调试通过伟福仿真软件和Ke订软件来验证程序。首先打开伟福仿真软件的界而,对仿真器的参数值进行设置。其设置如图5.1所示:图5.1仿真器的选择我所选的是8751的仿真器,在目标生成文件中选择生成BIN和HEX文件(即二 进制和十六进制文件)其设置如图5.2所示,设置完成后点“好”就可以了。图5.2生成文件的设置然后在伟福里而输入我们的程序进行调试,刚开始有好几处错误,我们的程序没有通过编译,然后我就査找错误的所在,一一更改之后终于通过编译,其运行结果如图5. 3所示: i5niMICl A3isa0 4存h 15交伟八王王远 m mnn coc Okii0 0存目毎文住t 王工王Qt 9:M (DOOCMeopccoxh |ppm$qwcH Boom pt* och图5. 3编译通过后的界面5. 2在Ke订中的调试并连接实验箱1、打开项目在伟福内调试通过以后,再在Ke订中下载到实验箱上进行验证,显现出所要求的效 果。而在Ke订中也要进行一些参数的设置,首先打开Ke订仿真软件,首先要新建 个项目,点菜单Project-New Project,在弹出的对话框中选择保存的路径并输 入项目名称“ang”后保存,然后在弹出新的项目窗口中选择参数,其参数的设置 如下,由于我们使用的是Atmcl公司的芯片,所以要选Atmel后,点击确定。2、设置芯片在弹出的对话框中选择AT89C51这个芯片,点击确左。如图5. 4所示:27Select Device for Target r Target 1VendorDevice: AT89C51Yily CS-51Qatft bsO AT48801LJ AT87C51O3 匚I AT87F51D AT87F51RCD AT87F52 kLJ AT87F55W1RLJ AT89C1061O AT89C1051V口 AT89C2O51D AT89C40S1DescriptionAT89C51厂 Uzc Extended Linker (LX51) instead o BL51厂 Use Extended Asseffibler (AX51) instead o A518051 bsd Full Static CMOS controller with Thre-Lvl Pr32 I/O linesz 2 Tims/Countrs? 6 Interrupts sources4 K Flash Mzory, 128 Byts On-chip RAM确定 I 取消图5.4芯片选择3、设置参数值所设置的参数值如图5. 5所示:图5. 5参数设置4、设置频率在Xtal中输入频率为11. 0592MHz,然后再选Debug这个标签,选中第二个Use 复选框后点击Setting在弹出的对话框中选择Baudrate这一项,设置它的参数为38400o如图5. 6所示:Opt ions or Target #29Dwc | Target | Output | List me | C51| A5l | BL51 Local* | BL51 Disc| Vtil t tt |Vxe Sinulator ( Jls: Kil gilwSl Drir T SHtingi |彳 Lod Application InitiftlizfttionTarget SetupGo till ninDbu& StssiV Breakpoints P Yatehpointt & ! P Nwory DisplayCFU DLL.|S8051 DLLPftTttTitCoon Port SettingsErt:|COI1 3WS:|ActiveV|Budrt:|3MOO 3皿|

温馨提示

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

评论

0/150

提交评论