




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于单片机的智能电脑钟(硬件) 东华理工大学长江学院毕 业 设 计题 目 基于单片机的智能电脑钟硬件 英文题目 single chip-based intelligent computer clock Hardware 学生姓名 学 号 08314314 专 业 电子信息工程 系 别 机械与电子工程系 指导老师 余颖 职称 讲师 二零一二年六月摘 要在当今竞争激烈的社会中信息的竞争占据着十分重要的地位而时间成为取胜的关键有时间观念的人才能在竞争中取得胜利智能时钟会给我们的工作和生活带来很大的便利因此本文利用AT89C52单片机设计了一款智能电子钟具有显示年月日时分秒信息及正确记时功能系统主要包
2、括主控模块显示模块键盘模块等部分本设计具有结构简单可靠性高成本低等特点关键词时钟电路 DS1302 AT89C52单片机 动态扫描AbstractNowadays our society is filled with competition while competition of information plays an important role in it Time is the key to win The people who have the concept of time can win in the competition Intelligent clock can brin
3、g great convenience in our work and life Therefore this paper designed a Intelligence electric clock which can not only shows the time information but also has the hour prompt functions The system includes master control moduledisplay modulealarm to strike the pinup module and so on This design has
4、a simple structure high reliability and low costKeywords目 录绪论101 本课题研究的目的和意义102 设计具体要求21 系统总体设计311 单片机芯片的选择方案和论证312 显示模块选择方案和论证313 时钟芯片的选择方案和论证414 控制按键的选择415 总体方案及确定42 系统硬件设计521 系统硬件框图5com 主控制模块5com 时钟电路模块6com 显示模块7com 键盘接口模块7com 电源模块822 部分重要元器件的介绍9com AT89C52芯片介绍9com DS1302时钟芯片12com 其他芯片介绍133 系统的软件
5、设计1531 程序软件框图1532 软件定义介绍15com 位定义15com 函数定义1633 部分函数功能介绍17com 键盘扫描函数17com 写读DS1302函数20com 将数据输入到LED23com 选择被调对象函数23com 读取年月日数据函数24com 将时分秒送到LED显示函数25com 退出调时函数2634 阳历阴历算法2735 外部中断0中断处理程序284 系统硬件调试29结论30致谢31参考文献32附录 原理图33绪论01 本课题研究的目的和意义单片机自20世纪70年代问世以来以其极高的性能价格比受到人们的重视和关注应用很广发展很快单片机具有体积小功能多价格低廉使用方便系
6、统设计灵活等优点因此它应用广泛前景美好它的实用性大大地提高了我对毕业设计的兴趣在我国单片机的开发应用已有15年左右已经形成一支庞大的技术开发队伍为我国单片机应用积累了丰富的经验随着电子技术计算机芯片技术和微电子技术的飞速发展促进了单片机技术一日千里的变化随着半导体技术的飞速发展以及移动通信网络技术多媒体技术在嵌入式系统设计中的应用单片机从4位8位16位到32位其发展历程一直受到广大电子爱好者的极大关注单片机功能越来越强大价格却不断下降的优势无疑成为嵌入式系统方案设计的首选同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中推动着单片机技术的创新进步然而传统的单片机系统开发除了需
7、要购置诸如仿真器编程器示波器等价格不菲的电子设备外开发过程也较繁琐来自英国Lab center Electronics公司的Proteus软件很好地诠释了利用现代EDA工具方便快捷开发单片机系统的优势它包括PROTEUS VSMVirtual System ModelingPROTEUS PCB DESIGN两大组成部分在PC机上就能实现原理图电路设计电路分析与仿真单片机代码级调试与仿真系统测试与功能验证以及形成PCB文件的完整嵌入式系统设计与研发过程单片机系统作为一种典型的嵌入式系统其系统设计包括硬件电路设计和软件编程设计两个方面其调试过程一般分为软件调试硬件测试系统调试3个过程如果采用单片
8、机系统的虚拟仿真软件Proteus则不用制作具体的电路板也能够完成以上工作数字钟是采用数字电路实现对时分秒数字显示的计时装置由于数字集成电路的发展和石英晶体振荡器的广泛应用使得数字钟的精度远远超过老式钟表钟表的数字化给人们生产生活带来了极大的方便而且大大地扩展了钟表的报时功能数字钟已成为人们日常生活中的必需品广泛应用于家庭车站码头剧院办公室等场所给人们的生活学习工作带来极大的方便不仅如此在现代化的进程中也离不开电子钟的相关功能和原理比如机械手的控制家务的自动化定时自动报警按时自动打铃时间程序自动控制定时广播自动起闭路灯定时开关烘箱通断动力设备甚至各种定时电气的自动启用等所有这些都是以钟表数字化
9、为基础的而且是控制的核心部分因此研究数字钟及扩大其应用有着非常现实的意义电子钟在工业控制和日常生活中是很重要的它不仅可以用于计时提醒又可用于对机器的控制在自动化的过程中必然有电子钟的参与因此电子钟的应用会越来越广泛而且向着精确低功耗多功能发展基于单片机设计的数字钟精确度较高因为在程序的执行过程中任何指令都不影响定时器的正常计数即便程序很长也不会影响中断的时间从而使数字钟的精度仅仅取决于单片机的产生机器周期电路和定时器硬件电路的精确度另外程序较为简洁具有可靠性和较好的可读性如果我们想将它应用于实时控制之中只要对上述程序和硬件电路稍加修改便可以得到实时控制的实用系统从而应用到实际工作与生产中去数字
10、电子钟的设计方法有多种例如可用中小规模集成电路组成电子钟也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟还可以利用单片机来实现电子钟等等这些方法都各有特点其中利用单片机实现的电子钟具有编程灵活便于功能扩充精确度高等特点所以利用单片机为控制核心制作智能电子时钟具有重要的意义和有广泛的应用空间102 设计具体要求这次设计的主要任务是使用单片机编程的方法很好的实现多功能钟的各项功能1 系统总体设计11 单片机芯片的选择方案和论证方案一用可编程逻辑器件设计可采用ALTERA公司的FLEX10K系列PLD器件设计起来结构清晰各个模块从硬件上设计起来相对简单控制与显示的模块间的连接也会
11、比较方便但是考虑到本设计的特点EDA在功能扩展上比较受局限而且EDA占用的资源也相对多一些从成本上来讲用可编程逻辑器件来设计也没有什么优势方案二用凌阳16位单片机设计凌阳16位单片机有丰富的中断源和时基方便本实验的设计它的准确度相当高并且C语言和汇编兼容的编程环境也很方便来实现一些递归调用IO口功能也比较强大方便使用用凌阳16位单片机做控制器最有特色的就是它的可编程音频处理可完成语音的录制播放和识别这些都方便对设计进行扩展使设计更加完善成本也相对低一些但是在控制与显示的结合上有些复杂显示模组资源相对有限而且单片机的稳定性不是很高方案三主控芯片使用51系列AT89C52单片机AT89C52算术运
12、算功能强软件编程灵活自由度大可用软件编程实现各种算法和逻辑控制并且由于其功耗低体积小技术成熟和成本低等优点使其在各个领域应用广泛综观上述三种方案的论证与比较我们采用AT89C52作为主控模块芯片612 显示模块选择方案和论证方案一使用液晶显示屏显示时间数字液晶显示屏LCD具有轻薄短小低耗电量无辐射危险平面直角显示以及影象稳定不闪烁等优势可视面积大画面效果好分辨率高抗干扰能力强等特点但是在显示时特别是使用秒表功能时扫描速度跟不上屏幕会有明显的闪烁另外由于液晶是以点阵的模式显示各种符号需要利用控制芯片创建字符库编程工作量大控制器的资源占用较多其成本也偏高在使用时不能有静电干扰否则易烧坏液晶的显示芯
13、片不易维护方案二相比液晶显示8段数码管虽然操作比液晶显示略显繁琐但可视范围十分宽而且经济实惠也不需要复杂的驱动程序所以最后选择LED数码管显示方案使用传统的LED数码管显示数码管具有低能耗低损耗低压寿命长耐老化防晒防潮防火防高低温对外界环境要求低易于维护同时其精度比较高称重轻精确可靠操作简单方案三采用LED数码管动态扫描显示价格低廉不仅减少了对IO口的浪费而且能够同时驱动多个数码管其驱动程序容易编写和理解经过三种方案的比较排除了前二种方案之后最后选择方案三LED数码管动态扫描显示13 时钟芯片的选择方案和论证方案一直接采用单片机定时计数器提供秒信号使用程序实现年月日星期时分秒计数采用此种方案虽
14、然减少芯片的使用节约成本但是实现的时间误差较大所以不采用此方案方案二采用DS1302时钟芯片实现时钟DS1302芯片是一种高性能的时钟芯片可自动对秒分时日周月年进行计数而且精度高位的RAM做为数据暂存区工作电压25V55V范围内25V时耗电小于300nA综观上述两种方案的论证与比较我们采用DS1302时钟芯片作为本设计的时钟芯片14 控制按键的选择方案一选取阵列式按键减少了IO口的使用且扫描M×N个按键只需占用MN个IO口即可实现但给编程带来了一定的困难虽然节省了很多的口线降低了成本但在此设计中所用的按键要尽量少因此排除此方案方案二独立式按键每个按键实现一个功能易于控制且编写程序简单
15、容易理解虽然会占用一定的单片机IO口资源但是题目中要求使用的按键要尽量少通过以上两种方案比较采用方案二815 总体方案及确定按照系统设计功能的要求初步确定系统由主控模块时控模块模块和键盘接口模块共个模块组成2 系统硬件设计21 系统硬件框图按照系统设计功能的要求确定系统由主控模块时控模块模块和键盘接口模块共个模块组成图2-2 系统主控制模块com 时钟电路模块图2-3示出DS1302的引脚排列其中Vcc1为后备电源Vcc2为主电源在主电源关闭的情况下也能保持时钟的连续运行DS1302由Vcc1或Vcc2两者中的较大者供电当Vcc2大于Vcc102V时Vcc2给DS1302供电当Vcc2小于Vc
16、c1时DS1302由Vcc1供电X1和X2是振荡源外接晶振RST是复位片选线通过把RST输入驱动置高电平来启动所有的数据传送RST输入有两种功能首先RST接通控制逻辑允许地址命令序列送入移位寄存器其次RST提供终止单字节或多字节数据的传送手段当RST为高电平时所有的数据传送被初始化允许对DS1302进行操作如果在传送过程中RSTS置为低电平则会终止此次数据传送IO引脚变为高阻态上电运行时在Vcc大于等于25V之前RST必须保持低电平只有在SCLK 为低电平时才能将RST置为高电平IO为串行数据输入端双向SCLK始终是输入端图2-3 时钟电路原理图com 显示模块由单片com动数码管的abcde
17、fgDP并且加上上拉电阻因此用P0口送数码管的段码数码管的位码同样是由P0口控制由于P0口不能同时送段码和位码因此在数码管的共阳端与单片机P0口之间使用一片锁存器74LS373所以由74LS373输出P0口输出来的位码显示部分采用普通的共阳数码管显示采用动态扫描以减少硬件电路6显示电路原理图如图2-4所示图2-4 显示电路原理图com 键盘接口模块键盘的工作过程可分为两步第一步是CPU首先检测键盘上是否有键按下第二步是识别是哪一键按下检测键盘上有无键按下可采用查询工作方式定时扫描工作方式和中断工作方式由于按键只有5个用普通按钮接10K上拉电阻用查询法完成读键功能查询工作方式键盘中有无键按下是由
18、列线送出全扫描字然后读入行线状态来判别的其方法是P1口输出00H即所有的列线置成低电平然后将行线电平状态读入累加器A中如果有键按下总会有一根行线电平被拉至低电平从而使行输入状态不全为1电路模块本系统设置了5个按键分别为k1k2k3k4k5依次接到单片机的P13P14P15P16P17通过给P口高电平来实现不同的功能 K1键进入调时并选择被调对象K2键在调时时增一功能下降沿有效非调时时显示阳历日期K3键在调时时减一功能下降沿有效非调时时显示阴历日期K4键在调时时用来确认调时完成并保存数据K5建实现跑表功能3键盘电路原理图如图2-5所示图2-5 键盘电路原理图com 电源模块本课题采用的电源电路为
19、直流稳压电源电路稳压电源一般由变压器整流器和稳压器三大部分组成变压器把市电交流电压变为所需要的低压交流电然后通过桥式整流电路和滤波电容后得到近似为直流的电信号并将直流电信号经过一个稳压管7805得到一个稳定的5V电压它的特点是性能好工作稳定体积小制作安装简单方便7电源电路原理图如图2-6所示图2-6 电源电路原理图22 部分重要元器件的介绍com AT89C52芯片介绍AT89C52是一个低电压高性能CMOS 8位单片机片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器RAM器件采用ATMEL公司的高密度非易失性存储技术生产兼容标准MCS-51
20、指令系统片内置通用8位中央处理器和Flash存储单元AT89C52单片机在电子行业中有着广泛的应用主要功能特性 兼容MCS51指令系统 8k可反复擦写 1000次Flash ROM 32个双向IO口 256x8bit内部RAM 3个16位可编程定时计数器中断 时钟频率0-24MHz 2个串行中断 可编程UART串行通道 2个外部中断源 共8个中断源 2个读写中断口线 3级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能单片机是一种超大规模集成电路在该集成电路内有成千上万个晶体管或场效应管因此要单片机正常运行就必须为其提供能量即为片内的晶体管或场效应管供给电源使其能工作在相应的状态与任何微处
21、理器一样51单片机的运作是有节奏的因此就需要一个节拍发生器时钟以控制CPU的运行速度步进执行各种操作其最大时钟速变为4MHz降低时钟频率可节省能源并使其执行速度减慢当时钟频率为30kHz时只耗电01mA51单片机最常用的时钟信号由外部振荡电路产生51单片机的内部时钟电路再从外部接上确定时钟频率的元件即电阻R和电容C三种不同阻值的电阻它们和100pF的电容配用可产生15MHz600kHz或100kHz三种不同的时钟频率利用片内振荡电路但外接石英晶体因而能产生更精确更稳定的时钟信号但石英晶体通常比电阻电容贵若利用电视机上常用的晶体 如358MHz晶体 则价格仍较低廉单片机的引脚结构如图2-7所示图
22、2-7 AT89C52单片机的引脚图P0口P0 口是一组8 位漏极开路型双向IO 口也即地址数据总线复用口作为输出口用时每位能吸收电流的方式驱动8 个TTL逻辑门电路对端口P0 写1时可作为高阻抗输入端用在访问外部数据存储器或程序存储器时这组口线分时转换地址低8 位和数据总线复用在访问期间激活内部上拉电阻在Flash 编程时P0 口接收指令字节而在程序校验时输出指令字节校验时要求外接上拉电阻P1口P1 是一个带内部上拉电阻的8 位双向IO 口P1 的输出缓冲级可驱动吸收或输出电流4 个TTL 逻辑门电路对端口写1通过内部的上拉电阻把端口拉到高电平此时可作输入口作输入口使用时因为内部存在上拉电阻
23、某个引脚被外部信号拉低时会输出一个电流 IIL 与AT89C51 不同之处是P10 和P11 还可分别作为定时计数器2 的外部计数输入P10T2和输入P11T2EXFlash 编程和程序校验期间P1 接收低8 位地址com功能如表2-1所示表2-1 com功能引脚号功能特性P10T2时钟输出P11T2EX定时计数器2P2口P2 是一个带有内部上拉电阻的8 位双向IO 口P2 的输出缓冲级可驱动吸收或输出电流4 个TTL 逻辑门电路对端口P2 写1通过内部的上拉电阻把端口拉到高电平此时可作输入口作输入口使用时因为内部存在上拉电阻某个引脚被外部信号拉低时会输出一个电流 IIL 在访问外部程序存储器
24、或16 位地址的外部数据存储器例如执行MOVX DPTR 指令时P2 口送出高8 位地址数据在访问8 位地址的外部数据存储器如执行MOVX RI 指令时P2 口输出P2 锁存器的内容Flash 编程或校验时P2亦接收高位地址和一些控制信号P3口P3 口是一组带有内部上拉电阻的8 位双向IO 口P3 口输出缓冲级可驱动吸收或输出电流4 个TTL 逻辑门电路对P3 口写入1时它们被内部上拉电阻拉高并可作为输入端口此时被外部拉低的P3 口将用上拉电阻输出电流IILP3 口除了作为一般的IO 口线外更重要的用途是它的第二功能P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号RST复位
25、输入当振荡器工作时RST引脚出现两个机器周期以上高电平将使单片机复位ALEPROG当访问外部程序存储器或数据存储器时ALE地址锁存允许输出脉冲用于锁存地址的低8 位字节一般情况下ALE 仍以时钟振荡频率的16 输出固定的脉冲信号因此它可对外输出时钟或用于定时目的要注意的是每当访问外部数据存储器时将跳过一个ALE 脉冲对Flash 存储器编程期间该引脚还用于输入编程脉冲PROG如有必要可通过对特殊功能寄存器SFR区中的8EH 单元的D0 位置位可禁止ALE 操作该位置位后只有一条MOVX 和MOVC指令才能将ALE 激活此外该引脚会被微弱拉高单片机执行外部程序时应设置ALE 禁止位无效PSEN程
26、序储存允许PSEN输出是外部程序存储器的读选通信号当AT89C52 由外部程序存储器取指令或数据时每个机器周期两次PSEN 有效即输出两个脉冲在此期间当访问外部数据存储器将跳过两次PSEN信号EAVPP外部访问允许欲使CPU 仅访问外部程序存储器地址为0000HFFFFHEA 端必须保持低电平接地需注意的是如果加密位LB1 被编程复位时内部会锁存EA端状态如EA端为高电平接Vcc端CPU 则执行内部程序存储器中的指令Flash 存储器编程时该引脚加上12V 的编程允许电源Vpp当然这必须是该器件是使用12V 编程电压VppXTAL1振荡器反相放大器的及内部时钟发生器的输入端XTAL2振荡器反相
27、放大器的输出端单片机振荡电路与整体系统工作速度有直接的关系例如同步异步串行传输定时器等都与振荡频率有关不同系列单片机有不同振荡频率根据产品资料手册振荡频率最高可到20MHz在图中振荡电路接于Pin13 OSC1CLKIN 与Pin14 OSC2CLKOUT 而振荡电路有以下四种形式LP使用低功率振荡晶体 Low Power Crystal XT使用振荡器谐振器 CrystalResonator HS使用高速振荡器 High Speed CrystalResonator RC使用电阻电容 ResisterCapacitor 一般常用振荡晶体或是谐振器作为单片机振荡源外接电路及内部电路说明如图所示
28、图2-8 振荡源电路图com DS1302时钟芯片DS1302是美国DALLAS公司推出的一种高性能低功耗带RAM的实时时钟电路芯片如图2-9所示它可以对年月日周日时分秒进行计时具有闰年补偿功能工作电压为25V55V采用三线接口与CPU进行同步通信并可采用突发方式一次传送多个字节的时钟信号或RAM数据DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器DS1302是DS1202的升级产品与DS1202兼容但增加了主电源后备电源双电源引脚同时提供了对后备电源进行涓细电流充电的能力图2-9 DS1302芯片DS1302 的控制字节的最高有效位 位7 必须是逻辑1如果它为0则不
29、能把数据写入DS1302中位6如果为0则表示存取日历时钟数据为1表示存取RAM数据位5至位1指示操作单元的地址最低有效位 位0 如为0表示要进行写操作为1表示进行读操作控制字节总是从最低位开始输出在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302数据输入从低位即位0开始同样在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据读出数据时从低位0位到高位7DS1302有12个寄存器其中有7个寄存器与日历时钟相关存放的数据位为BCD码形式其日历时间寄存器及其控制字如表2-2所示表2-2 日历时间寄存器及其控制字寄存器名称命令字取值范围各位内容写操作读操作76
30、543210秒寄存器80H81H00-59CH10SECSEC分寄存器82H83H00-59010MINMIN时寄存器84H85H01-12或00-231224010HRHR日寄存器86H87H01-282930310010DATEDATE月寄存器88H89H01-1200010MMONTH周寄存器8AH8BH01-0700000DAY年寄存器8CH8DH01-9910YEARYEAR此外DS1302 还有年份寄存器控制寄存器充电寄存器时钟突发寄存器及与RAM相关的寄存器等时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容DS1302与RAM相关的寄存器分为两类一类是单个RAM单元共
31、31个每个单元组态为一个8位的字节其命令控制字为C0HFDH其中奇数为读操作偶数为写操作另一类为突发方式下的RAM寄存器此方式下可一次性读写所有的RAM的31个字节命令控制字为FEH 写 FFH 读 com 其他芯片介绍7805芯片电子产品中常见的三端稳压集成电路有正电压输出的78 ×× 系列和负电压输出的79××系列顾名思义三端IC是指这种稳压用的集成电路只有三条引脚输出分别是输入端接地端和输出端它的样子象是普通的三极管TO- 220 的标准封装也有9013样子的TO-92封装用7879系列三端稳压IC来组成稳压电源所需的外围元件极少电路内部还有过流过
32、热及调整管的保护电路使用起来可靠方便而且价格便宜该系列集成稳压IC型号中的78或79后面的数字代表该三端集成稳压电路的输出电压如7806表示输出电压为正6V7909表示输出电压为负9V因为三端固定集成稳压电路的使用方便电子制作中经常采用7805是一个输出正5V直流电压的稳压电源电路IC采用集成稳压器7805C1C2分别为输入端和输出端滤波电容RL为负载电阻当输出电流较大时7805应配上散热板图2-10 7805实物图如图2-10所示其中左引脚接整流器输出的电压中间引脚为公共地 也就是负极 右引脚就是我们需要的正5V输出电压3 系统的软件设计31 程序软件框图按照系统设计功能的要求确定系统由模块
33、模块和模块共个模块组成图3-1 系统软件框图32 软件定义介绍com 位定义位定义sbit rst P10 ds1302的复位口sbit clk P11 ds1302的时钟口sbit io P12 ds1302的数据口sbit k1 P13 开关S1调时按键sbit k2 P14 开关S2增一或显示阳历日期按键sbit k3 P15 开关S3减一或显示阴历日期按键sbit k4 P16 开关S4退出按键sbit k5 P17 开关S5显示星期按键sbit sc P20 所存使能口sbit yl P21 阴历标志位sbit rn P22 闰年标志位sbit acc0 ACC0 移位时用的第0位s
34、bit acc7 ACC7 移位时用的第7位com 函数定义函数申明void delay unsigned char ms 延时函数void writebyte unsigned char wdat 写一字节到ds1302unsigned char readbyte 从ds1302中读一字节unsigned char readdat 读ds1302某地址数据void writedat unsigned char waddrunsigned char x ds1302的某地址void protect flag 是否写允许void wrcom unsigned char com 选取LCD的位选v
35、oid wrdat unsigned char addunsigned char dat lcdvoid lcdinit lcd初始化void scanmenu menu扫描void funcmenu menu功能void scaninc 扫描加能函数void scandec 扫描减一函数void scanquit 扫描退出函数void funcinc 加一功能函数void funcdec 减一功能函数void funcquit 退出功能函数void readtime 读时间函数void tsdisplay 调时时间时的显示函数33 部分函数功能介绍com 键盘扫描函数按键函数流程图如图3-2
36、所示图3-2 按键函数流程图此按键模块采用的是依次扫描端口的高电平来确认是否有按键按下当有按键按下时然后延时即延时消抖再次确认是否有按键按下如果有则进入到对应按键的功能函数com 写读DS1302函数秒寄存器81H80H寄存器的第7位CH位置零和置一分别为允许DS1302工作和停止DS1302工作小时寄存器85H84H7位置零和置一分别为DS1302工作在12时制和24小时制控制寄存器8F8E7位WP为写DS1302的允许位当WP 0时允许修改DS1302寄存器中的数值当WP 1时不能修改寄存器中的任何值且时分秒年月日星期的寄存器中的低四位为时分秒年月日星期的个位高四位为十位当我们要修改DS1
37、302中的数值时数据写入到写寄存器中读数据时从读寄存器中读取数据写一字节到DS1302函数流程图如图3-3所示图3-3 写一字节到DS1302函数流程图写允许函数流因为WP的值决定是否能写寄存器所以当我们要写寄存器时我们将WP 0的数据写到控制寄存器中要关写功能时将WP 1的数据写到控制器寄存器中流程图如图3-4所示图3-4 允许函数流函数图从DS1302中读一字节数据流程图如图3-5所示图3-5 从DS1302中读一字节数据流程图这里将用到上面的写DS1302一字节函数和从DS1302读取一字节函数读DS1302某地址数据流程图如图3-6所示图3-6 读DS1302某地址数据流程图com 将
38、数据输入到LED当我们要将数据写到指定的数码管时首先我们要将要显示数码管的地址发送出去让锁存器所存住地址然后再发送要显示的数据流程图如图3-7所示图3-7 将数据输入到LED流程图com 选择被调对象函数这里将用到两个标志位count和breakcuont的数值从1到7表示要要调哪个对象1到7分别代表调年月日时分秒星期break为1时表示进入调时模式为0时表示没进入调时模式流程图如图3-8所示图3-8 选择被调对象函数流程图com 读取年月日数据函数这里的读取年月日函数和程序中的读取时分秒函数还有读取星期函数一样只是读取的地址不同和将读取到的数据附值给的对象不同这里将调用上面的读取DS1302
39、某地址数据函数流程图如图3-9所示图3-9 读取年月日数据函数流程图com 将时分秒送到LED显示函数这个函数功能和年月日显示星期显示一样分别将时分秒送到LED的时显示位分显示位秒显示位做出显示只是送的数据和送的地址不一样这里会调用上面的将数据送到LED指定地址函数和读取时分秒函数流程图如图3-10所示图3-10 将时分秒送到LED显示函数流程图com 退出调时函数在退出调时函数时主要就是将调时标志位breakcount和调时用到的其他变量置零将break置零是为里让系统正常的读取时间和显示时间而count置零是为了方便下次进入调时模式时从新从年开始调时流程图如图3-11所示图3-11 退出调
40、时函数流程图34 阳历阴历算法阴历日期主要靠阳历日期来推算要根据根据阳历来推算阴历首先要设计算法推算方法是根据阳历当前日期在一年中的天数来计算阴历日期阳历一个月不是30天就是31天2月除外闰年为29天平年为28天阴历一年有12个月或13个月含闰月一个月为30天或29天如果把一个只有29天的月称为小月用1标志把30天的月称为大月用0标志那么12位二进制就能表示一年12个月的大小如果有闰月则把闰月的月份作为一字节的高4位低4位表示闰月大小大月为0小月位1这样一字节就包含了所有闰月的信息阴历春节和阳历元旦相差的天数也用以字节别是方法先把阳历日期为当年的第几天算出来先减去阴历春节和阳历元旦相差的天数在
41、依次减去当年阴历月的天数直到不够减为止减去月的天数的次数计数阴历的月份剩下下的值就是阴历的号35 外部中断0中断处理程序这段程序相对比较简单用于实现跑表功能INTO中断处理程序流程图如图3-12所示2YNYNYN图3-12 INTO中断处理程序流程图4 系统硬件调试系统的调试与运行分为离线仿真与调试阶段和在线调试与运行阶段对于各种标准功能模块按照说明书检查主要功能比如主板机CPU板上RAM区的读写功能ROM区的读出功能复位电路时钟电路等的正确性调试LED数码管是否损坏等进行硬件调试程序存储器ROMIO口与IO设备译码电路晶振与复位电路等的测试ROM测试采用累加和的方法检测IO测试通过观测输入与
42、输出数据来完成译码器通过运行循环检测程序来检验观察晶振复位电路能否产生所需信号以确定其工作是否正常为了使其成为产品还需要使用生产正规的芯片并设计美观实用的外壳将其组装检验和装箱结论过去人们应用时钟仅仅是为了明确当前时间随着生产力的发展社会的进步生产生活对时钟的需求越来越大对时钟的体型功能的要求也各有不同所以多功能电子时钟在今后的应用也会越不越广泛基于单片机实现电子时钟仅仅是众多方法之一并且市场上的实时时钟日历芯片品类繁多IC化的传感器各种各样显示方式也愈趋于人性化所以多功能电子时钟有多种实现方案能够实现的功能也很多笔者已经通过仿真和调试实现了时间日历显示和校对闹铃等功能由于笔者能力有限提供的程序还可以进一步优化并且还可以根据需求为电子时钟增设新功能致 谢在论文完成之际我要特别感谢余老师的热情关怀和悉心指导
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 图书发行合同3篇
- 预交保证金租房合同2篇
- 琵琶课件教学课件
- 甘孜建设工程检测方案(3篇)
- 福州净化工程方案(3篇)
- 理想信念课件
- 电网工程签证方案实例(3篇)
- 安全整改教育培训课件
- 农业温室智慧农业技术在国际市场的应用与发展研究报告
- 地质工程策划方案模板(3篇)
- 《网店装修与美工》课程标准
- 转岗申请表(标准样本)
- 正性肌力药物在心力衰竭中的应用-课件-幻灯-ppt
- 北京师范大学心理学学术学位研究生培养方案(2023版)
- 部编新教材小学五年级语文上册全册同步练习课堂作业课课练课时练
- 基层群众自治制度课件
- GA 568-2022警服夏执勤短袖衬衣
- 上肢主要神经损伤诊断
- GB/T 38381-2019新闻出版知识服务知识元描述
- GB/T 24600-2009城镇污水处理厂污泥处置土地改良用泥质
- GB/T 1839-2008钢产品镀锌层质量试验方法
评论
0/150
提交评论