本科毕业论文(设计)_第1页
本科毕业论文(设计)_第2页
本科毕业论文(设计)_第3页
本科毕业论文(设计)_第4页
本科毕业论文(设计)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、本科生毕业论文(设计)基于单片机实现电子时钟的设计 学 院电气信息工程学院专 业电气工程及其自动化班 级12级电气专升本 学 号0608120101学 生 姓 名胡卉 联 系 方 指 导 教 师王安梅职称:讲师 2014年3月 独 创 性 声 明本人郑重声明:所呈交的毕业论文(设计)是本人在指导老师指导下取得的研究成果。除了文中特别加以注释和致谢的地方外,论文(设计)中不包含其他人已经发表的研究成果。与本研究成果相关的所有人所做出的任何贡献均已在论文(设计)中作了明确的说明并表示了谢意。签名:_ _年_月_日授权声明本人完全了解许昌学院有关保留、使用本科生毕业论文(设

2、计)的规定,即:有权保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕业论文(设计)被查阅和借阅。本人授权许昌学院可以将毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编论文(设计)。本人论文(设计)中有原创性数据需要保密的部分为(如没有,请填写“无”): 学生签名: 年月日指导教师签名: 年月日基于单片机实现电子时钟的设计 摘 要 本次设计的题目是基于单片机实现电子时钟的设计,让单片机可以正常的显示年、月、日、时、分、秒。电子时钟具有稳定性高、成本低、精确度高以及实用、方便等特点,因此它特别适用于家庭、公司等场所,为人们的日

3、常生活带来了极大地方便,逐渐成为人们生活中不可或缺的一部分。本次设计包括两部分:硬件系统和软件系统。硬件部分包括:AT89C51单片机,D74LS154译码器,S12C887时钟芯片和ULN2003A驱动芯片。利用单片机将RC复位电路、动态显示电路、电源电路、去抖电路等,把这些电路正确无误的连接在一起,再通过给单片机编程来实现设计任务要求。关键词: 单片机;日历;位码;段码;显示English SubjectABSTRACT The topic of this design is the electronic calendar, can normal display date and time

4、, minutes and seconds. Electronic calendar has stable performance, high precision, low cost, easy to prod, and convenient, practical etc. Characteristics Applicable to family ,company ,authority and many other places. For People's Daily life, travel arrangement provides convenient, become the pe

5、ople daily life is an indispensable part of. This design can be divided into two parts: hardware system, software system. Hardware part includes: AT89C51 single-chip microcomputer, DS12C887 clock chip, 74 LS154 decoder, ULN 2003A drive chip. Using single chip computer will RC reset circuit, dynamic

6、display circuit, the power supply circuit, to shake circuit the connections right in together, and through the micro-controller programming realize the design requirements of the task. . Key words:single chip micro computer; calendar; a code section; code;display目录前 言21. 概 述211 单片机的组成及特点212 单片机的应用32

7、. 设计方案521 设计思路522 系统总体框图53. 硬件设计731 单片机的选择732 复位电路1033 晶振电路1134 时钟芯片DS12C887介绍12341 DS12C887主要功能简介12342 DS12C887引脚说明及原理13343 DS12C887的中寄存器的功能和作用14344 DS12C887的中断和更新周期15345 DS12C887初始化方法15 35 74LS154芯片介绍及ULN2003A的简介164. 软件设计185. 单片机应用系统的测试26 51 在伟福中的调试26 52 在Keil中的调试并连接实验箱27参考文献31致 谢32 基于单片机实现电子时钟的设计

8、前 言现在是一个电子数字发展时代,从家庭生活到工业发展都是以电子数字为基础,例如自动报警器,自动闹铃等自动控制设备,给人类生活带来极大的方便,因此研究电子时钟为基础再扩展其更深远的发展,是一项对社会非常有意义的课题。1. 概 述 11 单片机的组成及特点 单片机是微型机的一个主要的分支,在结构上的最大的特点是把存储器、CPU、多种输入/输出接口电和定时器路等集成在一块超大规模的电路芯片上,这就是说一块单片机芯片就相当于一台计算机。 单片机通过内部总线,计算机的各主要部件被接为一体,它的内部总线包括有:数据总线、地址总线及控制总线。地址总线是在进行数据交换时提供地址,CPU通过它们把地址输出到存

9、储器或I/O接口里;数据总线在CPU与存储器或I/O接口之间或存储器与外设之间来进行交换数据;而控制总线包括CPU发出的控制信号线以及外部送入CPU的应答信号线等。单片机中的CPU和存储器等部件,在后面章节一一介绍。 单片机的结构形式及其所采取的半导体工艺使其具有很多鲜明的特点,因此它在各个领域都得了迅速而猛烈的发展,从而使它占有很重要的地位。单片机主要有如下特点: (1)它有着优异的性能价格比。 (2)它不但体积小、而且还具有很高的可靠性能。单片机的各种功能部件被集成在一块小芯片上,内部的总线结构使各芯片间连线减少了,这就在很大程度上提高了单片机的可靠性能及其抗干扰的能力。而单片机的体积小,

10、使强的磁场环境能更好的采取措施去屏蔽它,从而使它特别适合在及其的恶劣的环境下展开工作。 (3)为了满足生活及工业控制的要求,大多数单片机的指令系统中都含有极其丰富的转移指令、I/O口的各种逻辑操作功能以及位的处理功能。单片机的各种逻辑控制功能与它的运行速度较同一档次的微机而言更高更快。 (4)电压低,便于生产,便于携带和使用。 (5)内部总线增加了I C(Inter-Integrated Circuit)串行总线方式及SPI(Serial Peripheral Interface)串行总线方式等,这就再一步缩小了单片机的体积和简化了单片机的结构。 (6)单片机的系统扩展及其系统配置比较典型规范

11、容易构成各种规模的应用系统。 单片机是计算机发展的一个全新重要领域,根据目前发展情况,应有一个较科学的分类方法,从角度上可以大致将单片机分为通用型/专用型、总线型/非总线型及工控型/家电型。1. 通用型/专用型 按单片机适用范围来区分通用型/专用型。例如,89C51是通用型单片机的,它不是为某种专用途设计的,专用型单片机是针对同一类产品甚至是某一个产品设计生产的,比如,为了使电子体温计达到测体温的要求,可以在片内集成ADC接口等功能,组成一个温度测量控制电路。 2. 总线型/非总线型 按单片机提供并行总线与否来区分总线型/非总线型。总线型单片机一般都会设置有并行地址总线。 控制总线、数据总线,

12、它们的引脚用来扩展并行外围短路器件,且通过串行口与单片机连接。另外,要用的外围器件和外设的接口已经被许多单片机已经集成一个芯片内,所以很多情况下并不需要并行扩展总线,这就在极大程度上节省了各种封装的成本和减小了芯片体积,此类单片机为非总线型单片机。 3. 控制型/家电型 按照单片机的应用的范围可区分控制型/家电型。一般来说工控型单片机的寻址范围很大,运算的能力也强;专用型的多用于家电单片机,通常是低价格、小封装,它的许多外围器件与外设接口都有着较高的集成度。 显然,以上的分类不是很严格的、惟一的。如,89C51单片机既可以为通用型又可以是总线型的,还可以在工控上用到。 12 单片机的应用 由于

13、单片机具有这么显著的优点,使它成为科技领域的有力的工具和人类生活的得力助手。它的应用遍及各个领域,主要表现有下面几个方面: 1.单片机在仪器仪表智能化中的应用 单片机大范围地用于各种仪器仪表中使仪器仪表智能化,还可提高测量的自动化精度和程度,以及简化仪器仪表中的硬件结构使其性能价格比不断提高。 2单片机在机电一体化中的应用 械工业发展的方向是机电一体化,机电一体化产品是指微电子技术、集成机械技术以及计算机技术于一体具有智能化特征的机电产品,如,钻床、微机控制的车床等。单片机在此充分发挥它的高可靠性、小体积和强功能等优点,很大程度上提高机器的自动化和智能化程度。 3单片机在实时控制中的应用 单片

14、机普遍广泛地被用在各种实时控制系统中。例如,在工业测控,航空航天,尖端武器,机器人等各种可以用单片机作为其控制器实时控制系统中。单片机的实时数据处理功能和控制能力让系统保持工作在最佳状态,从而提高系统的产品质量和工作效率。 和4. 单片机在分布式多机系统中的应用 单片机通常采用分布式多机系统在一般比较复杂的系统中。多机系统的构成一般由若干台的且功能各异的单片机组成,它们通过串行通信互相联系和协调工作各自完成特定的工序。单片机在这种系统中往往在系统的某些节点上作为一个终端机安装,来进行实时现场信息的测量控制。单片机的强抗干扰能力和高可靠性可以让它在恶劣环境的前端工作。 5单片机在人类生活中的应用

15、 自单片机诞生后迅速走进了人类的生活,如电子玩具、洗衣机、电冰箱、收录机。 自从家用电器与单片机合作后,大大提高了智能化程度增加了功能倍受人们喜爱。单片机将使人类生活更加方便和丰富多彩。 综合所述,以前必须由模拟电路或数字电路才能加以实现的一大部分控制功能,现在已经大部分能用单片机软调试方法来实现了,这种软件控制替代纯硬件控制的技术也称为微控制技术,为传统控制技术带来一次新革命。本设计主要以单片机为主,单片机已成为计算机发展和应用的一个重要方面,单片机的应用的重要意义还在于它从根本上改变了传统的控制系统设计思想和设计方法。2. 设计方案21 设计思路设计的题目是基于单片机实现电子时钟的控制。根

16、据设计要求时钟显示正常的年、月、日、时、分、秒。要想实现上述功能,就必须将硬件系统和软件系统有机的结合在一起,才可以实现我们设计任务中的各项要求。硬件系统主要有单片机AT89C51、DS12C887、74LS154 等。AT89C51 主要功能是存储程序,根据程序的内容对各个端口进行判断并做出相应的处理。DS12C887主要的功能是控制年、月、日、时、分、秒并显示出效果。根据设计要求,电子日历要显示年、月、日、时、分、秒就需要16个显示数码管,由于数码管的数量较多,必须采用动态显示扫描。例如,07-12-01,首先日分为个位和十位,个位显示到09时,应向日的十位自动进位,即个位清0,十位置1,

17、显示为10,继续累计;当显示为31时,日的十位就应自动向月的个位进位,显示为01,当月显示到09时,月的个位自动向月的十位进位,个位清0,十位置1,即为10,当月至12时,月向年的个位进位,即显示08,同时月、日开始从01月01日继续显示,依次周而复始的循环运行。根据按键电路可实现年、月、日、时、分、秒的调整,当K1键按下时,可以调整时间,K2、K3键分别对时间进行加或减,K4键可以切换正常模式与省电模式。利用单片机将RC复位电路、动态显示电路、电源电路、去抖电路等正确的连接在一起,并通过单片机的编程来实现本次设计任务中的要求。22 系统总体框图设计电路采用ATMEL的AT89C51芯片来做C

18、PU,用AT89C51的内部EPROM作为程序存储器,显示部分位码的扩展采用74LS154,七段数码管的驱动采用ULN2003A,控制部分采用普通独立按键。在确定系统的大体形式之后,画出系统的总框图如图2.1所示。图2.1 系统总框图系统总体框图包括:单片机、控制电路、复位电路、显示电路、电源等部分。单片机AT89C51芯片的主要功能:存储程序,对存储程序进行相应的处理从I/O口输出。复位电路:在单片机上有一个复位引脚RST,在单片机外部,用电容和电阻控制RST。控制电路:是用一个按键控制数码管的省电及正常显示。显示电路:主要用于显示数码管的结果。电源电路:采用+5V的直流电源供电。3. 硬件

19、设计硬件电路主要包括:单片机、时钟芯片、译码器、显示电路以及电源等几部分。时钟芯片选择:选用DS12C887实时芯片。单片机的选择:选用AT89C8051单片机,配备11.0592MHz晶振。P1.0P1.4作数码管的位选口,P0.0P0.6作数码管的段选口。显示电路的选择:采用软件译码器动态显示和共阴极LED数码管。复位电路的选择:RC复位电路。译码器的选择:采用4线16线译码器74LS154。电源电路的选择:采用直流+5V电源供电。31 单片机的选择单片机实质上是一个芯片,所以在实际应用中必须外加各种扩展接口电路、外部设备等相关硬件和软件,才能构成一个单片机系统。尽管单片机种类很多,但无论

20、是从世界范围或是从全国范围来看,使用最为广泛的还是MCS-51单片机。单片机是指集成在一个微型计算机,是把组成微型计算机的各种功能部件包括CPU、只读存储器ROM、随机存储器RAM、定时器/计数器、基本输入/输出接口电路等部件都集合在一块集成芯片上,来构成一个完整的能实现微型计算机的基本功能微型计算机。89C51单片机正是把CPU、定时器/计数器、存储器和多种功能的I/O线等集成一块芯片中的一台计算机,它具有所需的基本功能。89C51单片机主要包括1个8位CPU,1个片内振荡器及时钟电路,128B RAM,4KB ROM,2个16位定时器计数器,32条可编程的I/O线和一个可编程的全双工串行接

21、口,5个中断源,2个中断优先级套中断结构。其内部结构示意图如图3.1:图3.1 单片机内部结构示意图1、中央处理器 :CPU是单片机的内部核心部件,是一个8位二进制数的中央处理单元,主要由运算器、控制器和寄存器阵列构成。2、控制器:控制器是单片机内部各部件按一定时序协调工作的控制核心,是分析和执行指令的部件。控制器主要由程序计数器、指令寄存器、指令译码器、振荡和定时控制逻辑电路等构成。3、寄存器阵列:寄存器阵列式单片机内部的临时存储单元或固定用途单元,它包括通用寄存器组和专用寄存器组。4、存储器:程序存储器是可读不可写的,它用于存放编号的程序和表格常数。5、数据存储器是既可读的也可写的用于存放

22、运算的中间结果,进行数据暂存及数据缓冲等。6、定时器计数器:89C51内部有2个16位可编程定时器和计数器简称为定时器0(T0)和定时器1(T1),T0和T1在定时器控制寄存器TCON和定时器方式选择寄存器TMOD的控制下,可工作在定时器模式或计数器模式下,每种模式又有不同的工作方式。89C51有两个16位的可编程定时/计数器,用来实现定时或计数产生中断用于控制程序转向。7、并行输入输出(I/O)口:89C51共有4组8位I/O口(P0、 P1、P2或P3)用于对外部数据的传输。89C51单片机内部总线是单总线结构,即数据总线和地址总线是公用的。 89C51有40条引脚, 与其他51系列单片机

23、引脚是兼容的,这40条引脚可分为I/O接口线、电源线、控制线、外接晶体线4部分。 另外,89C51单片机为双列直插式封装结构, 如图3.2所示。图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门电流,

24、P1口写入1时,被内部上拉为高,可用作输出,P1口被外部下拉为0时,输出电流,这是因为内部上拉。在FLASH编程和校验时,P1口可作为第八位地址接收。P2口:P2口是一个内部上拉电阻的8位双向I/O口。P2口缓冲器可以接收、输出4个TTL门电流。当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入,因此作为输入时,P2口的管脚被外部拉低,将输出电流,这就是内部上拉的原因。当P2口用于外部程序存储器或16位地址外部数据存储器进行存取时,输出地址的高八位。在给出地址“1”时,它利用内部上拉的优势;当P2口对外部八位地址数据存储器进行读写时,输出其特殊功能寄存器的内容。P2口在FLASH编程和

25、校验时,接收八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口。可以接收输出4个TTL门电流。当P3口写入“1”时,全部被内部上拉为高电平用作输入。作为输入,由于外部下拉为低电平;P3口将输处电流(ILL),这就是上拉的缘故。P3口也可以作为AT89C51的一些特殊功能口,如下所示:P3.0: RXD (串行输入口,串行数据接收)P3.1: TXD (串行输出口,串行数据发送)P3.2: (外部中断0申请)P3.3: (外部中断1申请)P3.4:T0 (定时/计数器0)P3.5: T1 (定时/计数器1)P3.6: (外部数据存储器写选通)P3.7: (外部数据存储器

26、读选通)P3口同时为闪烁编程、编程校验去接收一些控制信号。RST复位输出:当振荡器复位时,保持RST脚两个机器周期的高电平时间有效。XTAL1:反向振荡器的输入,内部时钟工作电路的输入。当用外部时钟时,用于接入外部时钟脉冲信号;XTAL2:反向振荡器的输出。振荡器特性:XTAL1为反向放大器的输入,XTAL2为反向放大器的输出,该反向放大器可作为片内振荡器,可外接石英振荡器(陶瓷振荡器)和微调电容。如果采用外部时钟源驱动器件,XTAL2不连接,有余的输入至内部时钟信号要通过一个二分频触发器,因此没有任何严格的要求外部时钟信号的脉冲,但脉冲的高低电平要求的宽度必须保证。32 复位电路在这种情况下

27、都需要复位:一,单片机在开机时。二,在工作中因干扰而使程序失控。三,工作中程序处于某种死循环状态时. 复位的作用是使中央处理器CPU,以及其他功能部件都恢复到一个确定的初始状态并且从这个状态重新开始工作.89S51单片机的复位靠外部电路实现,信号由RESET(RST)引脚输入,高电平有效。在振荡器工作时,只要保持RST引脚两个以上的机器周期高电平,单片机复位. 复位后,PC程序计数器的内容为0000H,而片内RAM中内容不变. 复位电路一般有上电复位,手动开关复位,自动复位电路3种,如图3.3所示.a.上电复位电路 b. 手动复位电路 c. 自动复位电路图3.3 单片机复位电路33 晶振电路1

28、晶体振荡器的作用:石英晶体振荡器用来稳定频率和选择频率,也称石英晶体谐振器,它是一种可以取代LC谐振回路的晶体谐振元件。 2本次设计所用的晶体振荡电路如图3.4所示: 图3.4 晶体振荡电路此晶振电路所选用的石英晶振频率为12MHZ。时钟周期是单片机外接晶振的倒数,例如,12M的晶振,它的时间周期就是1/12us,这是计算机中最基本的、最小的时间单位。在一个时钟周期内CPU只能完成一个最基本的动作。对于某种单片机而言,要是采用了1MHZ的时钟频率,则时钟周期为1us;要是采用4MHZ的时钟频率,则时钟周期为250us。时钟脉冲是计算机的基本工作脉冲控制着计算机的工作节奏,使计算机的每一步都统一

29、到它的步调上来。对同一种机型的计算机时钟频率越高,计算机的工作速度就越快。但是由于不同的计算机硬件电路和器件的并不是完全相同,所以它所需要的时钟周频率范围也不一定相同。我们学习的51系列单片机的时钟范围是1.2MHz-12MHz。34 时钟芯片DS12C887介绍本次设计采用实时时钟芯片是DS12C887,DS12C887实时时钟芯片能够自动产生年、月、日、时、分、秒计时功能及多点定时功能,计时数据每秒自动更新进行一次,不需程序。而事实上时钟芯片多数是锂电池做后备电源,它可以永不停止的计时,信息可以保持十年之久;DS12C887还具有可编程方波输出功能,可用做实时测控系统的采样信号等;有的实时

30、时钟芯片内部还带有非易失性RAM,用来存放需长期保存,但有时也变更的数据。LED数码管电子时钟电路采用24小时记时方式,用16位数码管显示来日期和时间,采用AT89C51单片机,使用5V电池供电,只要使用一个按键开关就可以进入省电(显示LED数码管)和正常显示两种状态,十分快捷方便。显示范围:RTC计算秒、分、时、星期、日、月、年信息能识别闰年闰月,可使用年份为99年如正常显示20012099,且时间采用24小时制。显示格式:日期按照年、月、日排列,如2005年12月20日显示为05-12-20,时间按时、分、秒排列如12点30分55秒显示为12-30-55。显示位数:显示6位七段LED数码管

31、工作正常和节电显示。时钟误差:24小时误差保持在3-5秒。DS12C887时钟芯片采用CMOS技术制成,带有内部晶体振荡器且内置有锂电池,断电后仍可运行至少十年以上,并且数据不丢失。时间、数字和定闹钟都具有二进制码和BCD码两种形式,并可设定12小时制或24小时制式和Motorola和Intel总线时序。DS12C887内含128字节RAM,其中有4个控制寄存器,10个时钟寄存器和114字节通用RAM,所有RAM单元都具有掉电保护功能因此可把它用作非易失性RAM。DS12C887内部具有周期中断、定闹中断、时钟更新周期、结束中断等功能,且三个中断源可分别由软件屏蔽。341 DS12C887主要

32、功能简介(1) 内部含有一个锂电池,断电后可运行至少十年可以数据不丢失。(2) 不仅可以计秒、分、时、天、星期、日、月、年,而且具有闰年补偿的功能。(3) 用二进制数码或BCD码表示时间,数字以及定闹。(4) 12小时制或24小时制,而且12小时时钟模式带有PM和AM指示,具有夏令时功能。(5)可选择 Motorola和Intel总线时序选择。(6) 所有RAM单元数据都具有掉电保护功能,有128个字节RAM单元与软件接口,其中14个字节用于时钟和控制寄存器,114字节通用RAM。(7) 可编程的方波输出信号。(8) 总线兼容和中断信号输出(IRQ)、定闹中断、周期性中断、时钟更新周期、结束中

33、断可分别由软件屏蔽,也可分别进行测试。342 DS12C887引脚说明及原理DS12C887管脚图如图3.5所示:图3.5 DS12C887管脚排列图VCC接直流电源+5V电压,GND接地,当5V电压在正常范围内时,数据可读写;当VCC低于4.25V时,禁止读写,而计时功能仍继续;当VCC下降到3V以下时,RAM和计数器被切换到内部锂电池,保证内部的电路能够正常工作。MOT(模式选择):纵线操作时序选择端,MOT管脚接到VCC时,选择MOTORLA时序;当接到GFND时,选择INTEL时序。SQW(方波信号同):当供电电压VCC大于4.25V,SQW引脚可输出方波,此时,可通过对寄存器A编程改

34、变其输出频率。AD0AD7(复用地址数据总线):在总线周期的前半部分,出现在AD0AD7上的是地址信息,总线周期的后半部分出现在AD0AD7上的是数据信息。总线接口即MOROROLA微机系列和INTEL微机系列接口。AS(地址选通输入端):AS实现信号分离,在ADALE的上升沿的时候把地址锁存到DS12C887,下降沿清除口地址信息,不论CS是否有效。DS(数据选择或读输入脚):该引脚有两种工作模式,由MOT管脚放的电平决定,使用MOTOROLA时序时,总线周期的后段DS为高电平时,数据选通;在读周期DS指示DS12C887驱动双向总的时刻,在写周期DS的下降沿使DS12C887锁存写数据。当

35、MOT接GND时,选择INTEL工作模式,此时该引脚是读允许输入引脚。R/W(读/写输入):R/W管脚也有两种操作模式,选MOTOROLA时序时,R/W是一个电平信号,指示当前周期是读或写周期;DSO为高电平时,R/W高电平时为读操作,R/W低电平时为写操作;当选INTEL时序时,R/W信号是一个低电平信号,为写输入。CS(片选输入):低电平有效。IRQ(中断请求输出):低电平时有效,可作为微处理的中断申请输入,没有中断发生时,IRQ处在高阻态。IRQ线是漏极开路输入,外接上拉电阻必须与VCC相连。RESET(复位输出):低电平有效,时间大于200ms时,能保证DS12C887有效复位。343

36、 DS12C887的中寄存器的功能和作用DS12887内部RAM和专用寄存器地址功能,地址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和寄存器和地址为#0D

37、D00H#ODD7FH。但是,我们必须了解,尽管只有一个DS12C887专用时标年寄存器,但通过编程可使芯片内部的不掉电的RAM区其中的一个字节来实现年的高两位显示。寄存器A:寄存器A的各个位不受复位的影响,UIP位是一个只读位,其它各位可读写。A、UIP位:用来标志芯片是否即将进行更新,该位为“1”时,表示芯片更新周期即将开始,程序不准读写时标寄存器;该位为“0”时,表示至少在244us内不会更新周期,此时程序可读芯片内时标寄存器。且该位是只读位。B、DV0、DV1、DV2:芯片内部震荡器RTC控制位和复位分频器。当芯片接触复位状态,并将010写入DV0、DV1、DV2后,晶体振荡器开启且保

38、持时钟运行,另一个更新周期将在500ms后开始,当宝11X写入DV0、DV1、DV2,晶体整荡器开启,但是分频保持复位状态。所以,在程序初始化时可用这三各使芯片开始工作在设定的时间,DS12C887固定使用32768Hz的内部晶体,所以DV0=“0”、DV1=“1”、DV2=“0”时,可启动RTC。C、RS3,RS2,RS1,RS0:速率选择位。不同的组合产生不同的输出,程序可这样设置:通过设置寄存器B的SQWF;设置周期中断控制位PIE;设置两位同时有效;两者都禁止。344 DS12C887的中断和更新周期DSC12C887在正常的工作状态时,每秒钟产生一个更新周期,芯片处于更新周期时是有标

39、志的,即寄存器A中CPU位置为1。更新周期内,芯片内部时标寄存器数据一直处于更新阶段,所以这个时候微处理器不能读取芯片时标寄存器中的内容信息,于此同时秒时标寄存器内容会增加1,并检查其他时标寄存器内容有没有溢出。另一个功能就是要检查时、分、秒三个时标寄存器的内容是不是和报警时标寄存器的内容对应相符,要是相符,寄存器C中AF位置1。如果报警时标寄存器的内容在COH到FFH之内,则为不关闭状态。为采样到时标寄存器中的数据信息,DS12C887有两种的方案可避开在更新周期内访问时标寄存器:第一种,利用更新周期结束时发出的中断信息。编程允许发生中断申请在每次更新周期完毕后,警示CPU将有998ms的时

40、间去获取有效数据,在中断之后的998ms时间内,程序可先将时标数据读芯片内部的不掉电静态RAM中,因为,芯片内部的状态寄存器和静态RAM是可随时读写的,在离开中断服务子程序前清除寄存器C中的IRQF位。第二种,利用UIP位来判断芯片是否处于更新周期。在UIP位从低变高的244us之后,芯片将进行更新周期,当检测到UIP位为0时,则利用224us的间隔时间读取时标信息。如检测到UIP位为1,则暂时缓读数据信息,等到UIP变成低电平时再去进行。345 DS12C887的初始化方法DS12C887采用连续工作制,一般不用每次都初始化,系统复位时也不必要。但当初始化时,首先应禁止芯片内部的更新周期操作

41、,因此先把DS12C887状态寄存器B中的SET位置1,再把状态寄存器A和00H09H时标参数寄存器初始化,再通过读状态寄存器C、清除寄存器C中的周期中断标志位PF、更新周期结束中断标志位UF、报警中断标志位AF。通过读寄存器D中的VRT位自动置1,然后把状态寄存器B中的SET位置0,芯片就开始了计时工作。35 74LS154芯片介绍及ULN2003A的简介本设计要用到16个七段数码管,单片机的P0端口只有8根线,根本不够用,所以用74LS154来扩展,74LS154使416译码器,只用单片机的四根线就可以接16个数码管的位码端,因为74LS154使一个4入16出的译码器,在本设计中共有16个

42、显示数码管,所以一个74LS154译码器的输出端刚好够用。LED数码管选择采用共阴极。在设计中74LS154的输入端有单片机的P1.0P1.3口提供段码控制信号,输出端接数码管的段码管脚(既图中的0管脚)。74LS154管脚图如图3.6所示,74LS154真值表如表3.7所示:图3.6 74LS154管脚表3.7 74LS154真值表 ULN2003A由美国Texas Instruments公司和美国Sprague公司生产,由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,是一个单片双机型大功率高速集成电路。ULN2003A是一个驱动器,它的输入端接单片

43、机的P0.0P0.7口,输出接数码管的位码端上,由于本设计中用到的数码管数量多,而单片机的输出不能一下驱动,所以需要通过ULN2003A进行驱动。ULN2003A管脚如图3.8所示:图3.8 ULN2003A管脚图4. 软件设计软件设计分为:动态扫描、主程序、系统资源分配和软件模块几部分,在此设计中采用定时器来完成动态扫描显示。用定时器T0定20ms的时间间隔,每次定时时间到时就输出一个LED信号,即显示一位。主程序初始化后,就开始进行对DS12C887的读时间,读完后送显示缓冲区,同时并对定时时间进行判断比较。DS12C887的地址由114字节的用户RAM存放。10字节的存放实时时钟时间、日

44、历和定闹RAM及用于控制和状态的4字节特殊寄存器组成,几乎所有的128个字节直接读写。设计程序有:主程序、读取时间的子程序和显示刷新程序。主程序框图如图4.1所示:图4.1 主程序框图主程序如下所示:ORG 000HLJMP STARTORG 0030HSTART: MOV 30H,#0SETB P1.1SECOND EQU 2000HMINUNTE EQU 2001H ;时钟芯片寄存器HOUR EQU 2004H WEEK EQU 2006H ;它们代表秒、分钟、时、日期DATE EQU 2007H ;年、月MONTH EQU 2008HYEAR EQU 2009H ;可以改变实际连线,地址

45、也相应改变TREGA EQU 200AH ;四个控制寄存器TREGB EQU 200BH TREGC EQU 200CHTREGD EQU 200DHTUPDATE EQU 80H ;如果TREGA.7=1,时钟芯片更新TBHALT EQU 10000010B ;24/12=1,采用24小时计时制 将TBHALT写入TREGB,停止计时TBSALT EQU 0000000B ;将TBSTART写入TREGB继续计时F32K EQU 20H MOV A,#TBHALT ;SET=1,PIE,AIE,UIE,SQWE=0,DM=0MOVX DPTR,A ;24/12=1,24HOURS,DSE=0

46、MOV 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 ETOMOVRO,DPL ;将指针存入RO、R1MOVR1,DPHMOV DPTR ,#TREGA ;如果

47、DS12C887正在更新则等待TIMEWALT:MOVX A,A+DPTRJB ACC.7,TIMEWALT ;否则,读取秒数、分钟等数值MOV DPTR,#SECONDMOVX A,A+DPTRMOV R6 ,AMOV DPL ,R3 MOV DPH ,R1MOVX A,DPTR ;取出原来的秒数SUB A, R6 ;如果时间未改变则退出JNZ GETTIMERETGETTIME: INC ROINC RO ;指向:所指单元MOV A, EOCPL A ;将“:”取反,每秒变化一次MOV EO , A ;以控制亮和灭,形成闪烁效果MOV A, R6 ;恢复时间值MOVX DPTR ,AINC

48、 DPTRMOV R3,DPLMOV R1,DPHMOV DPTR ,#MINUTE ;读取并存储分钟MOVX A,DPTRMOV DPL ,R3MOV DPH,R1MOVX A, DPTR,AINC DPTRMOV R3,DPLMOV R1,DPHMOV DPTR,#HOUR ;读取并存储小时MOVX A, DPTRMOV DPL,R3MOVDPH,R1MOVX DPTR,AINC DPTRMOV R3,#DPLMOV R1,#DPHMOV DPTR ,#DATA ;读取并存储日期MOVX A,DPTRMOV DPL ,R3MOV DPH ,R1MOVX DPTR ,AINC DPTRMOV

49、 R3 ,#TONTH ;读取并存储月份MOVX A, DPTR MOV DPL ,R3MOV DPH ,R1MOVX DPTR ,AINC DPTRMOV R3,DPLMOV R1,DPHINC DPTR,#HOUR ;读取并存储年号MOVC A,DPTRMOV DPL ,R3MOV DPH ,RR1MOVX DPTR ,A ;寄存器恢复保护POP ACCMOV IE,ACCPOP ACCRET 显示刷新子程序框图如图4.3所示:图4.3 显示刷新子程序框图显示刷新子程序如下所示:MOV 40H ,R3PUSH ACCDISPLAY: MOV A, ROMOV R6 ,A ;显示指针首址保护

50、,存入R6INC DPTR ;先将指针指向分钟单元MOVX A,DPTRMOV R3,A ;保护寄存器A数据ANL A, #OFOHSWAP A ;得到小时的十位MOV R0 ,AINC R0 ;显示指针加一MOV A, R3ANL A, #OFOH ;得到小时的个位MOV R0,A ;存入显示缓冲区INC R0 ;跳过分号的显示单元INC R0 DEC DPTRMOVX A, DPTRSWAP A ;得到分钟的十位MOV R0,AINC R0 ;显示指针加一MOV A,R3ANL A, #OFOH ;得到分的个位MOV R0 ,A ;存入显示缓冲区MOVX DPTR,A ;AC 口均为输出,

51、方式0MOV R4,#1FH ;位选字MOV A,R4 ;送位选字中间变量MOVX DPTR,A ;从位选字入(采用共阴接法全灭)DEC DPTR ;指向PA口DEC DPTR MOV A,R0 ;查段码ADD A,#0DHMOVC A,A+PCMOVX DPTR,A ;段选码送PB口ACALL DLL ;延时一毫秒INC R0 ;指向显示缓冲区下一单元MOV A, R4JNB ACC .0,LD1 ;判断16位显示完RR A ;未显示完,变为下一位位选字MOV A,R4AJMP LDO ;转显示下一位POP ACCLD1:RETDSGE: DB 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 ;延时子程序DL: MOV R6,#OFFH NOPDL6: DJNZ R6,DL6DJNZ R7,DL RET5. 单片机应用系统的测试51 在伟福中的调试通过伟福仿真软件和Keil软件来验证程序。首先打开伟福

温馨提示

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

最新文档

评论

0/150

提交评论