《毕业论文基于单片机教室忙闲显示系统的毕业设计毕业论文.doc》由会员分享,可在线阅读,更多相关《毕业论文基于单片机教室忙闲显示系统的毕业设计毕业论文.doc(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、吉 林 农 业 大 学本 科 毕 业 设 计论文题目: 综合楼教室忙闲显示系统 学生姓名: 专业年级: 电子信息科学与技术 指导教师: 职称 讲师 2008年6月3日I 目 录题目I摘要I1 前言11.1 题目的来源与开发意义1 系统功能概述12 方案的提出及论证13 系统硬件设计23.1 系统硬件总体设计概述23.2 系统各个模块的设计23.2.1 教室状态显示模块23.2.2 时间显示模块33.2.3 按键模块33.3 芯片介绍4 AT89C51单片机的简介43.3.2 DS1302时钟93.3.3 8位串入/并出移位寄存器74HC164124 系统软件设计134.1 系统软件总体设计思想
2、134.2 Keil开发软件的介绍144.2.1 Keil 软件开发的流程154.2.2 Keil软件的使用154.3 各功能模块程序设计174.3.1 数据模块174.3.2 时钟模块204.3.3 功能模块245 系统调试315.1 硬件电路调试315.2 各功能模块软件调试316 结论31参考文献31致谢32附录一:系统总体硬件原理图33附录二:系统程序流程图34附录三:系统程序37吉林农业大学本科毕业设计综合楼教室忙闲状态显示系统 学 生:左 晨 专 业:电子信息科学与技术 指导教师:宫鹤摘 要:本设计实现了综合楼教室忙闲状态显示的功能。综合楼教室忙闲显示系统是建立在单片机的基础上的电
3、子监控系统,它主要是用来查询和显示综合楼各个教室在某一时间段的忙闲状态,显示当前年月日等等。信息存储调用系统是综合楼教室忙闲状态显示系统中非常重要的一部分,而时钟又是时间系统必不可少的。本设计就是以信息存储调用系统和时钟系统作为研究对象,主要介绍了信息存储的基本概念,时钟设置和编程的基本步骤等等,信息存储系统是在C+环境下进行串行通信编程的。我们这次研究的信息存储系统是为了实现综合楼各个教室信息的存储,数据的调用。通过写入程序来实现存储和调出查询功能,存储系统和时间系统紧密结合,把从存储调出的数据经过对比分析,最后显示出所需要的数据,可以实现对数据库的更新。另外,数据还包括对时间的查询。通过时
4、间的查询获得相应时间教室的状态信息。存储系统和时钟系统的有效结合,使系统工作更加准确。关键词: 存储系统;单片机;C+;时钟系统Comprehensive Building Blassroom Busy Idle Condition Display SystemName:ZuoChenMajor:Electronic information science and technologyTutor:GongHeAbstract: This design has realized the synthesis building classroom busy idle condition demons
5、tration function. The comprehensive building classroom busy idle display systems are the establishment in SCMs foundation electron supervisory system, it is mainly uses for to inquire and demonstration synthesis building each classroom in some time section busy idle condition, demonstration current
6、year, month and day and so on. The information storage transfer system synthesizes in the building classroom busy idle condition display system a very important part, but the clock is also the time system is essential. This design is takes the object of study by the information storage transfer syst
7、em and the clock system, mainly introduced information storages basic concept, clock establishment and programming basic step and so on, the information storage systems are carry on the serial communication programming under the C+ environment. Our researchs information storage system is to realize
8、the synthesis building each classroom information memory, the data transfer. Through reads in the procedure to realize saves and assigns out the inquiry function, the memory system and the time system unifies closely, data which assigns out from the memory after contrastive analysis, finally demonst
9、rated needs the data, may realize to the database renewal. Moreover, the data also includes to the time inquiry. Obtains the corresponding time classroom the pass time passage period inquiry the status messages. The memory system and clock systems effective union, causes the system work to be more a
10、ccurate.Keywords: memory system;SCM;C+;clock system 47 1前言1.1 题目的来源与开发意义自20世纪90年代以来,单片机已进入了一个高速发展的阶段,世界上著名的半导体厂商都注重新型单片机的研制、生产和推广。单片机的应用已经深入到国民经济的各个领域中,由单片机控制的微型电脑产品比比皆是。单片机正朝着面向多层次用户的多品种多规格方向发展。随着电子技术的发展, 现在的忙闲显示系统功能越来越强, 可靠性和准确性的要求也越来越高。以前的忙闲显示系统大部分都是基于数字电路组成的,其功能比较单一,使用起来也不够理想,制作过程复杂, 而且准确性与可靠性不高
11、, 成品面积大, 安装, 维护困难。由于近年来单片机发展迅速, 逐渐出现用单片机制作忙闲显示系统, 制作过程简单, 而且安装, 维护简单。综合楼教室空闲状态显示系统主要是由存储系统、时钟系统和显示系统三部分组成。本次毕业设计,我主要研究的是存储系统和显示系统两部分。它的主要功能是将预先输入的信息数据通过对应时间调用方式将信息通过二级管亮灭状态显示出来,并能对数据库进行及时的更新。教室忙闲显示系统的开发工具KEIL。 本设计以单片机AT89C51为核心,通过一片AT89C51单片机控制综合楼各个教室在某一时间忙闲状态的显示及键盘和各显示终端。利用74164使本系统具有了显示查询时间和北京时间以及
12、年月日的功能,并且能够设置和查询特定的时间。在实际的学习生活中,如果应用到此系统,必然要考虑到它的实用性,所以本设计采用并排显示,它主要功能是显示和查询在某一个特定的时间里,从存储系统中调出相应时间段所对应的综合楼各个教室当前空闲或繁忙的状态,通过发光二极管的亮、灭状态来显示。可以直观的看到每一层楼各个教室在当前时间的忙闲状态,还有年月日时间的显示,大大方便了同学查询。简单、实用、廉价是本设计的创新之处,可以轻松的实现对综合楼各个教室忙闲状态的显示和查询的功能。2 方案的提出及论证方案一:系统采用点阵做显示,显示年月日时间。用LS273做锁存器,DS1302时钟I2C总线模式,24CXX系列做
13、存储,利用单片机进行连接。经过多次试验尝试,均不能成功。且系统成本较高,时间反应速度缓慢,不能实现预期的效果。因此放弃了本方案。方案二:系统软件处理部分采用AT89C51芯片,用DS1302建立时钟电路,利用主控单片机的两个I/O口作为新的串行口,利用74164做的静态显示模块,使本系统具有了显示回答时间和北京时间的功能,考虑到实际的应用,利用2个大数码管显示层数,方便同学查询。设置S1,S2,S3按键年月显示查询北京时间 P3 P18 0 5 1 P2 P0教室显示时钟数码管Fig 2.1 Project two principle frame diagram3 系统硬件设计3.1 系统硬件
14、总体设计概述综合楼教室忙闲状态显示系统就是用来准确的实时的显示出当前在综合楼里面每一个教室的状态,以及查询各个时间段教室空闲状态。本着这个原则,可以利用单片机控制其工作,将楼层信息教室状态显示出来为了使系统更人性化,功能更加完善,同学可以按照自己的需求进行查询某一个教室在某一个时间里是否有课。为了使同学能够清楚的看到查询的信息,利用数码管进行动态显示。本设计的硬件系统分为七个模块:处理模块,时钟模块,晶振模块,按键模块,复位模块, 时间显示模块,教室状态显示模块。3.2 系统各个模块的设计3.2.1 教室状态显示模块教室状态显示模块中有一层教学楼的40个教室所一一对应的发光二极管,其显示方式为
15、亮、灭两种,状态亮为教室有课,状态灭为教室没有课。本功能模块的设计采用一起显示单独查询的方式,具有显示当前时刻教室状态的功能。译码器输出驱动数码管显示。电源范围为318伏,本设计采用5V电源输出驱动电流可达到10MA以上,可直接驱动LED数码管,而不需要其他的接口电路。1其电路图如3.1 所示。Fig 3.1 Classroom condition module circuit diagram3.2.2 时间显示模块 在同学没有查询的时候,系统显示当前年月日时间和楼层数,在同学进行时间查询的时候显示查询时间。此显示模块是采用动态显示。由 P2.0和P2.1口进行串行送数据,经过串并转换器74L
16、S164并行输出数据。2采用串行输出可以大大节省单片机的内部资源,串并转换器采用74LS164,低电平时允许通过8MA的电流,无需添加其他的驱动电路,采用较小的驱动电流就可以得到较高的显示亮度,其电路图如图3.2所示。Fig 3.2 Time the circuit module.3 按键模块 按键模块连接到P2口,通过软件来判断哪个按键执行哪个功能,是否按下。通过按键可以调整时间,达到查询时间的作用。电路如图3.3所示。 图3.3按键模块电路图Fig 3.3 Key module circuit diagram3.3 芯片介绍3.3.1 AT89C51单片机的简介AT89C51是一种带4K字
17、节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的单片机。3单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且
18、价廉的方案主要特性:与MCS-51 兼容 4K字节可编程闪烁存储器 ,寿命:1000写/擦循环,数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原
19、码,此时P0外部必须被拉高。5 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收6。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出
20、地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号7。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故6。 P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD (串行输入口)P3.1 TXD (串行输出口)P3.2 /INT0 (外部中断0)P3.3 /I
21、NT1(外部中断1)P3.4 T0 (记时器0外部输入)P3.5 T1 (记时器1外部输入)P3.6 /WR (外部数据存储器写选通)P3.7 /RD (外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将
22、跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此
23、引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。定时器0和1的操作7定时和计数功能由特殊功能寄存器TMOD的控制位C/T进行选择。这两个定时/计数器有4种操作模式,通过TMOD的M1和M0选择。两个定时/计数器的模式0、1和2都相同,模式3不同。如下所述:模式0将定时器设置成模式0时类似8048定时器,即8位计数器带32分频的预分频器。此模式下,定时器寄存器配置为13位寄存器。当计数从全为“1”翻转为全为“0”时,定时器中断标志位TFn置位。当TRn=1同时GATE=0或INTn=1时定时器计数。置位GATE时
24、允许由外部输入INTn控制定时器,这样可实现脉宽测量。TRn为TCON寄存器内的控制位。该13位寄存器包含THn全部8个位及TLn的低5位。TLn的高3位不定,可将其忽略。置位运行标志(TRn)不能清零此寄存器。模式0的操作对于定时器0及定时器1都是相同的。两个不同的GATE位(TMOD.7和TMOD.3)分别分配给定时器0及定时器1。模式1模式1除了使用了THn及TLn全部16位外,其它与模式0相同。模式2此模式下定时器寄存器作为可自动重装的8位计数器(TLn)。TLn的溢出不仅置位TFn,而且将THn内容重新装入TLn,THn内容由软件预置。重装时THn内容不变。模式2的操作对于定时器0及
25、定时器1是相同的。模式3在模式3中,定时器1停止计数,效果与将TR1设置为0相同。此模式下定时器0的TL0及TH0作为两个独立的8位计数器。TL0占用定时器0的控制位:C/T,GATE,TR0,INT0及TF0。TH0限定为定时器功能(计数器周期),占用定时器1的TR1及TF1。此时TH0控制“定时器1”中断。模式3可用于需要一个额外的8位定时器的场合。定时器0工作于模式3时,80C51看似有3个定时器/计数器,当定时器0工作于模式3时,定时器1可通过开关进入/退出模式3,它仍可用作串行端口的波特率发生器,或者应用于任何不要求中断的场合。串行口851单片机内部有一个全双工的串行通信口,即串行接
26、收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址为99H。这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。如果在传行口的输入输出引脚上加上电平转换器,就可方便地构成标准的RS-232接口串行数据通信两种形式异步通信 在这种通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:一个起始位,仅接着是若干个数据位。同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步通信中,每传输一帧字符都必须
27、加上起始位和停止位,占用了传输时间,在要求传送数据量较大的场合,速度就慢得多。同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头(字符)标志即可。 同步传输方式比异步传输方式速度快,这是它的优势。但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所以它的设备也较复杂。串行数据通信的传输速率 串行数据传输速率有两个概念,即每秒转送的位数bps(Bit per second)和每秒符号数波特率(Band rate),在具有调制解调器的通信中,波特率与调制速率有关。9串行口和控制寄存器单片机串行口寄存器结构如图3.5所示。SBUF为串行口的收发缓冲器,它是一个可寻
28、址的专用寄存器,其中包含了接收器和发送器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址(99H)。10MCS-51的串行数据传输很简单,只要向发送缓冲器写入数据即可发送数据。而从接收缓冲器读出数据即可接收数据。移位时钟TI发送中断TXD串行输出接受SBUF输入移位寄存器RXD串行输入RI接受中断发送SBUF系统总线图3.5 串行口寄存器结构图Fig 3.5 The string goes to deposit machine knot composition串行口控制寄存器:SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如表3.1所
29、示.表3.1 SCON寄存器结构Table 3.1 The SCON deposits machine structureSCON寄存器结构SCOND7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH8DH9CH9BH9AH99H98H SM0、SM1:串行口工作方式控制位。SM0,SM1工作方式00方式001方式110方式211方式3 SM2:多机通信控制位。 多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF
30、,且置位RI发出中断申请,否则会将接受到的数据放弃。11当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。 工作于方式0时,SM2必须为0。 REN:允许接收位。 REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。 TB8:发送接收数据位8。 在方式2和方式3中,TB8是要发送的即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。 RB8:接收数据位8。 在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。 TI:发送中断标志位。 可寻址标志
31、位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。 RI:接收中断标志位。 可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。电源管理寄存器PCON PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如表3.2所示。Table 3.2 The PCON power supply management deposits machine structurePCON电源管理寄存器结构PCOND7D6D5D4D3D
32、2D1D0位符号SMOD-GF1GF0PDIDL 在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。系统复位默认为SMOD=0。3.3.2 DS1302时钟 DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品
33、,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。12DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST
34、提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。 DS1302 的控制字如图2所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)
35、如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字。此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄
36、存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 时钟是单片机系统中不可或缺的。时钟可以通过软件实现,当时钟只是系统的辅助功能时,用大量的软件来实现时钟功能,会影响主要功能的实现或使软件复杂化。本文介绍串行实时时钟芯片DS1302,采用该芯片,单片机只需定时读出芯片的时钟,其余时间可作别的工作。DS1302的实时时钟包括秒、分、小时、日、月、星期、年等信息,与单片机采用串行通信。时钟可选2
37、4小时制或12小时制,可自动调整闰年及月份、日期。读写命令字节的格式及读写操作方式如图1。最高位为“1”,允许写操作,为“0”,禁止写操作。RAM/CK为“0”,表示读写时钟/日历数据,为“1”,表示读写RAM数据。A4A0为数据读写的地址。R/W为“0”,表示可进行写操作,为“1”则进行读操作。单字节操作需16个时钟,前8个时钟写命令字,后8个时钟读写数据。多字节突发模式读写,其命令字的地址A4A3A2A1A0=11111即可。其命令字的格式及操作方式如图2。DS1302的时钟/日历数据格式为BCD码,秒、分、小时、日、月、星期、年的地址分别为00H、01H、02H、03H、04H、05H、
38、06H。写保护寄存器的地址A4A3A2A1A0=00111,格式如图3。WP为“0”,可对时钟或RAM进行写操作。WP为“1”,禁止写任何寄存器。LED数码显示用MC14499四位七段译码驱动器,输入为BCD码,译码输出直接驱动LED的各段。当使能信号EN为“0”时,在时钟CLK的作用下,串行数据输入端接收20位串行数据,然后使EN为“1”,将移位寄存器中的内容装入锁存器。其数据格式如图4。前4位数据为小数点,后16位是4位数码显示器显示的数据。MC14499级联使用时,小数点显示无效,小数点代码锁存器需装入全“1”。单片机选用Microchip公司的PIC16C63A,电路如图5。本例中只显
39、示年、月、日、小时、分、秒等,不显示星期,但对DS1302的读、写采用突发模式。为了保证读、写时地址的连续性,在操作中设有星期的读、写。程序中小数点位用“1111”填充,先输入的第一字节是秒的BCD码,第二字节是分的BCD码,第三字节的低四位是小数点填充位“1111”,第三字节的高四位及第四字节的低四位是小时的BCD码,依此类推,显示年、月、日、小时、分、秒需输入8字节数据,PIC16C63A发送了88=64位数据,三片MC14499实际接收60位,第八字节的高四位“1111”被移出,实现了MC14499的级联。DS1302数据的读取采用中断方式,0.1秒读取1次数据。时间/日历的显示每变化0
40、.05秒显示1次。实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。只要占用CPU一个口线即可。 LCD还可以换成LED,还可以使用北京卫信杰科技发展生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有34线串行接口,可与任何单片机、IC接口。功耗低,显示状态时电流为2A (典型值),省电模式时小于1A,工作电压为2.4V3.3V,显示清晰。DS1302 与微处理器进
41、行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入), D0=1,指定读操作(输出)。 在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单
42、元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。 要特别说明的是备用电源B1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100 F就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。 1.每次上电,必须把秒寄存器
43、高位(第7位)设置为0,时钟才能走时。2.如果需要写入数据和时钟日历信息,必须把“写保护”寄存器设置成为0;内存数据定义。BitCnt data 30h ; 数据位计数器ByteCnt data 31h ; 数据字节计数器Command data 32h ; 命令字节地址RcvDat DATA 40H ; 接收数据缓冲区XmtDat DATA 50H ; 发送数据缓冲区;端口位定义IO_DATA bit P1.1 ; 数据传送总线SCLK bit P1.0 ; 时钟控制总线RST bit P1.2 ; 复位总线RS EQU P1.3;确定具体硬件的连接方式 RW EQU P1.4 ;确定具体硬
44、件的连接方式E EQU P1.5 ;确定具体硬件的连接方式ORG 0000HLJMP START ;* ;main program ORG 0030HSTART: CLR RST MOV SP,#2AH 现在流行的串行时钟电路很多,如DS1302、 DS1307、PCF8485等。这些电路的接口简单、价格低廉、使用方便,被广泛地采用。本文介绍的实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32.768kHz晶振。 图3.6 DS1302时钟流程图Fig3.6 DS1302 clock flow chart3.3.3 8位串入/并出移位寄存器74HC16474 HC164 利用先进的矽-门的互补型金属氧化半导体技术。它有标准互补型金属氧化半导体集成电路的高噪音免疫和低功耗。8位串入/并出移位寄存器的引脚如图3.9所示,它的功能表如表3.5所示。图3.7 8位串入/并出移位寄存器74HC164的引脚图 74HC164 the pin map表3.3 8位串入/并出移位寄存器74HC164的功能表Table 3.3 74HC164 logic Menu输入输出/MRCLOCKA BQ0 Q1 。 Q7