




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题 目:数字电子钟设计55内蒙古科技大学毕业设计说明书(毕业论文)数字电子钟设计摘 要以at89c51单片机芯片为核心,辅以必要的外围电路,设计了一个简易的电子钟。可实现时间、日期的显示以及闹钟响铃等功能。详细论述了数字电子钟的硬件电路设计以及c语言程序的编写。其中硬件电路包括时钟芯片ds1302模块、键盘控制模块、显示模块、响铃模块。通过时钟芯片ds1302计时的方法实现了以24小时为一个周期同时显示小时和分钟的要求,并在计时过程中具有响铃提示功能,当时间到达闹钟定时时间进行蜂鸣提示。该电子钟设有三个按键:模式切换按键、加一按键、闹钟调整按键键,使之具备了校对时间和日期以及定时功能。最终通过
2、电路板的焊接以及 c语言程序的编写,并通过keil软件编译生成了hex文件,应用stc-isp 单片机烧写软件将程序烧录到单片机中,使led数码管正确显示出时间及日期,可实现时间及日期的调整,得到了设计预期的结果,证明了设计的可行性。关键词:单片机;电子钟;时钟芯片内蒙古科技大学毕业设计说明书(毕业论文)the design of digital electronic clockabstractthis article designs a simple electronic clock,and the core is at89c51 singlechip (mcu) supplemented
3、by the necessary peripheral circuits. the electronic clock can achieve the time, date display as well as features such as alarm clock ringing.the design discuss the digital electronic hardware circuit design as well as the preparation of c programming language in detail. the hardware includes the ds
4、1302 clock chip module, the keyboard control module, display module and ringing module. with clock chip ds1302 timekeeping, the clock can display hour and second at the same time in a 24-hour cycle. it can give ringing tips with a buzzer when it is on the time of setting alarm clock. this kind of el
5、ectron clock is equipped with three keys, the key-press of mode switching, the key-press of addition and the key-press of alarm clock regulation, which enable the clock to adjust to keep accurate time and date , and to buzz at the set time.the electronic clock can show the date and time through the
6、soldering circuit board and preparing c language program, and through keil compiler generated the file of hex. then the file is downloaded to single-chip (mcu) by the sortware which named stc-isp. time and date were display accurately by led digital tube, and they can be adjusted. we achieved the an
7、ticipated result, and the feasibility of the design is proved at the end.key words: singlechip; electronic clock; clock chip 目 录摘 要iabstractii第一章 引 言11.1 课题研究背景及意义11.2 电子钟的发展及现状1第二章 数字电子钟的原理及设计方法32.1 数字电子钟常用设计方法32.2 基于时钟芯片ds1302的设计方法5第三章 主要芯片简介63.1 at89c51单片机简介63.2 ds1302时钟芯片简介133.3 max232芯片简介15第四章
8、硬件电路设计184.1 系统组成184.2 时钟芯片ds1302部分184.2.1 ds1302工作原理194.2.2 电源控制194.3 键盘控制模块204.4 显示模块22第五章 软件设计245.1 主程序245.2 ds1302部分设计255.3 键盘控制部分程序295.4 led显示部分程序30第六章 调试326.1 硬件调试326.1.1 硬件静态调试326.1.2 显示部分调试336.2 软件调试33结 论34参考文献35附录a 系统硬件原理图37附录b 单片机c语言程序38致 谢55内蒙古科技大学毕业设计说明书(毕业论文)第一章 引 言1.1 课题研究背景及意义伴随着电子技术与计
9、算机技术的不断发展,以单片机为核心的测量控制系统层出不穷。当然,无论什么控制系统都离不开时间参数。而传统的机械钟表显然是不能直接参与到各种自动控制系统中的,数字式电子钟表就应运而生了。电子钟表是一种用电能为动力,液晶显示或led显示数字式和石英指针式的计时器。数字式电子钟是一种用数字显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,它在工业自动控制系统中起到了不可或缺的作用。单片机(又称为微控制器)的出现是计算机发展史上的一个重要的里程碑,它以体积小、功能全、性价比高等诸多优点而独具特色,在工业控制、尖端武器、通讯设备、信息处理、家用电器等嵌入式应用
10、领域中独占鳌头。单片机的主要特点有: cpu抗干扰性强、可靠性高、电磁辐射小、控制能力强,指令系统简单,程序可读性强,操作性强。作为一名测控技术与仪器专业的学生,应熟练掌握检测与过程控制及相关学科领域的基础知识和基本技能,毕业后能够从事测量与控制领域内仪器与系统的设计制造、科研开发、应用研究、运行与管理等方面的工作。而单片机技术作为计算机技术的一个重要分支,广泛应用于工业控制、智能化仪器仪表、家用电器,甚至电子玩具等各个领域,熟练掌握单片机技术尤其自己亲手制作一个单片机系统对测控专业学生具有非常重要的意义。1.2 电子钟的发展及现状钟表是计时器的一种。在钟表发明以前,我们的先辈已经在不同的时期
11、利用各种方法来度量时间。比如,依据太阳光线的位置判断时间的日晷、圭表,使用沙子的流动记录时间的沙漏,也有人把它们叫做“太阳钟”和“沙钟”,利用水滴计时的“铜壶滴漏”。但是这些不属于“钟表”概念的范畴,因为钟表计时的原理是通过能够产生振荡周期的装置来计算时间。而近现代的计时技术越来越先进,出现了真正意义上的机械式、电子式“钟表”,甚至出现了更为先进的原子钟。电子钟是随着近代电子工业迅速发展而发展起来的新兴工业产品。按照其振荡元件的不同,大体上可分为摆轮游丝式电子钟、音片式电子钟、音叉式电子钟、晶体管摆钟、电子数字钟和石英电子钟。还有一些钟表,虽然直接驱动机芯运转式由电来完成,但电的来源却是由其他
12、能源供给的,如光电钟、以人体手臂摆动的动能为能源的电子表、依靠人体体温产生电能的电子表。本文所设计的基于单片机的数字电子钟即为较精密的计量和指示时间的仪器。第二章 数字电子钟的原理及设计方法2.1 数字电子钟常用设计方法数字电子钟的设计方法有多种,例如,可用中小规模集成电路(如利用集成计数电路芯片74ls160、74ls163等)组成电子钟;也可以利用专用的时钟芯片(如时钟芯片ds1302、ds12c887等)配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机内部定时/计数器t0/t1计数来实现电子钟等等。(1)利用集成计数电路芯片74ls163计数:该方案电子钟逻辑电路由秒计时电路
13、、分计时电路和小时计时电路组成。秒、分计时电路由六十进制计数电路组成,而小时计时采用二十四进制计数电路,有时也习惯采用十二进制计数电路组成。秒、分计时电路可以由两个四位二进制集成计数芯片组成,它采用同步清零。加人60个脉冲后,数码管个位显示09十个数,十位显示05六个数,合计显示0059,完成六十进制计数。小时计时采用二十四进制计数电路时,设计电路由一个十进制计数芯片和二个jk触发器组成。设计该电路时应注意,它的十位应显示02;个位前二次应显示09,第三次应显示03,此后两位都需清零,所以均采用直接清零法连接。将秒计时电路、分计时电路、小时计时电路分别级联起来,则构成小时为二十四进制的电子钟计
14、时电路,当电路计时到235959时,计时电路自动回零,即变为000000,之后再开始重复计时。如果小时计时采用十二进制计数电路时,需要解决的特殊问题是不回零问题,也就是当计时到125959时,应翻转为010000,即小时的计时不能回零。不回零的特殊问题决定了小时计时电路不适宜用十进制或四位二进制集成计数芯片实现,因为由它们组成的各种计数电路都需要回零后再重复计数。这样,在设计十二进制的小时计时电路时,就需采用触发器的直接置0、置1端,使触发器按要求置0或置1,达到计数电路不回零的目的。(2)利用单片机内部定时/计数器t0计数:该方案计数功能由at89c51单片机内部定时/计数器t0完成。由于单
15、片机的晶振频率为12mhz,使得t0的最大定时时间远远小于1秒,因此,在设计时采用了硬件计数与软件计数相结合的方式,即通过t0产生0.1秒的时基信号,然后再利用软件进行计数,从而产生1秒钟的时间信号。在设计中,定时器t0采用中断方式。当定时时间到时,定时器向cpu申请一次中断,cpu响应中断后转入中断服务程序,在t0的中断服务程序中实现时、分、秒的累加,即每产生一次中断,0.1秒时基单元的内容加1,当0.1秒时基单元的内容等于10时,便产生l秒信号,使秒计数单元的内容加1,并将0.1秒时基单元的内容清0;当秒计数单元计满60后,向分计数单元进位,使分计数单元的内容加1,并将秒计数单元的内容清0
16、;当分计数单元计满60后,向时计数单元进位,使时计数单元的内容加1,并将分计数单元的内容清0;时计数单元计满24后清0,从而完成24小时制计数。(3)利用专用的时钟芯片:时钟芯片多种多样,其中并行接口的时钟芯片如mc1468,ds12c887等。它们已能完全满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂、占用地址/数据总线接线多、芯片体积大、占用空间多。而串行接口的各种芯片在单片机系统中应用愈来愈多,串行接口的实时时钟芯片也出现了不少,ds1302便是一个综合性能较好且价格便宜的串行接口实时时钟芯片。本设计所用方法就是利用专用的时钟芯片ds1302,具体工作原理请见下文。2.2
17、基于时钟芯片ds1302的设计方法本设计课题为基于单片机的数字电子钟的设计。在设计中,以at89c51单片机作为系统的主控部件,实现整个系统的信号控制、数据读写和处理等功能。设计采用涓流充电串行时钟芯片ds1302实现时间、日期等时钟数据的计数。其中硬件电路包括时钟芯片ds1302模块、键盘控制模块、显示模块、响铃模块。使用可读性强、移植性好、具有浮点运算等功能的c51语言进行程序的编写。在时钟芯片ds1302内部含有一个实时时钟/日历和31字节静态ram。实时时钟/日历电路提供秒、分、时、星期、日、月、年等时间信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过am/pm标志位的设定以采
18、取24或12小时时间格式。只要对时钟芯片ds1302初始化后,其便可以按照程序中设定的时间、星期、日期、年等信息开始工作。时钟芯片ds1302与单片机之间采用简单的同步串行的方式进行通信,其预设时间信息即通过单片机对其的写操作来完成。而单片机通过对时钟芯片ds1302内部寄存器的读操作即可完成时间、星期、日期、年等时钟信息的读取,继而送入led显示模块进行显示。led显示模块为四位七段led数码管,由三极管驱动,其扫描方式为动态扫描。键盘控制模块设定为三个按键,其分别为模式切换按键、加一按键、闹钟调整按键。同过按键可完成时间、日期、闹钟时间的调整。作为系统的核心部件的at89c51单片机,在其
19、上电复位后首先对时钟芯片ds1302初始化以启动时钟芯片,随后既要实现对时钟芯片ds1302读写操作以完成对时钟的时间、日期、闹钟时间的显示以及调整,还要在到达闹钟时间时控制闹铃模块的蜂鸣器进行响铃报警。第三章 主要芯片简介3.1 at89c51单片机简介at89c51是美国atmel公司生产的低电压、高性能cmos 8位单片机,片内含4k字节可反复擦写的只读程序存储器(eprom)和128bytes的随机存取数据存储器(ram),器件采用atmel公司的高密度、非易失性存储技术生产,与标准mcs-51指令系统兼容,片内置通用8位中央处理器(cpu)和flash存储单元。由于将多功能8位cpu
20、和闪烁存储器组合在单个芯片中,atmel的at89c51适合于许多较为复杂的控制应用场合,是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。其引脚图如图3.1,内部方框图见图3.2:图3.1 at89c51引脚图(1) 主要性能参数:·与mcs-51 产品指令完全兼容·4k字节可重复擦写flash闪速存储器·寿命:1000次擦写周期·全静态工作:0hz24hz·三级加密程序存储器·128×8字节内部ram·32可编程i/o口线·2个16位定时器/计数器·6个中断源·
21、;可编程串行uart通道·低功耗的空闲和掉电模式图3.2 at89c51内部方框图(2)功能特性概述:at89c51提供以下标准功能:4k字节flash闪速存储器,128字节内部ram,32个i/o口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,at89c51可降至0hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止cpu的工作,但允许ram、定时/计数器、串行通信口及中断系统继续工作。掉电方式保存ram中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。(3) 引脚功能说明:·vcc:
22、电源电压·gnd:接地·p0口:p0口是一组8位漏极开路双向i/o口,即地址/数据总线复用口。作为输出口使用时,每位能以吸收电流的方式驱动8个ttl逻辑门电路。对端口写“1”可作为高阻抗输入端使用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在flash编程时,p0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。·p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高
23、电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。在flash编程和校验期间,p1口作为低8位地址接收。·p2口:p2口是一个带有内部上拉电阻的8位双向i/o口,p2口的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为那边存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行movx dptr指令)时,p2口送出高8位地址数据。在访问8位地址的外部数据存储器(例如
24、执行movx ri指令)时,p2口线上的内容(即特殊功能寄存器(sfr)区中r2寄存器的内容)在整个访问期间不改变。在flash编程和校验期间,p2口也接收高位地址和其他控制信号。·p3口:p3口是一组带有内部上拉电阻的8位双向i/o口。p3口输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对p3口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,被外部拉低的p3口将用上拉电阻输出电流(iil)。p3口除了作为一般的i/o口线外,更重要的用途是它的第二功能,p3口管脚备选功能如下所示:·p3.0 rxd(串行输入口)·p3.1
25、txd(串行输出口)·p3.2 /int0(外部中断0)·p3.3 /int1(外部中断1)·p3.4 t0(记时器0外部输入)·p3.5 t1(记时器1外部输入)·p3.6 /wr(外部数据存储器写选通)·p3.7 /rd(外部数据存储器读选通)p3口还接收一些用于flash闪速存储器编程和程序校验的控制信号。·rst:复位输入。当振荡器复位器件时, rst引脚出现两个机器周期以上的高电平将使单片机复位。·ale/prog:当访问外部存储器时,ale(地址锁存允许)的输出电平用于锁存地址的低8位字节。在flash
26、编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。·/psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。·/ea/vpp
27、:当/ea保持低电平时,则在此期间只访问外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间只访问内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。·xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。·xtal2:来自反向振荡器的输出。 (4) 振荡器特性:xtal1和xtal2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2应不接。由于输入至内部时钟信号要通过一个二
28、分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 振荡电路如图3.3所示:图3.3 at89c51振荡电路 (5) 芯片擦除:整个perom阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ale管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,at89c51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,cpu停止工作。但ram,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存ram的内容并且冻结振荡器,禁止所用其他芯片功
29、能,直到下一个硬件复位为止。(6)复位方式:复位可以保证单片机的cpu及其他功能部件都从一个确定的初始状态开始工作。复位信号从rst引脚输入,高电平持续2个机器周期以上有效。若单片机时钟频率为12mhz,则复位脉冲宽度至少为2微秒。单片机复位后,内部各寄存器状态如表3.1所示。这时,各p口及ale、/psen引脚均为高电平,片内ram中内容不变。表3.1 复位后单片机内部寄存器状态寄 存 器 名地址内 容注释*acce0h00h累加器*bf0h00h乘法寄存器*pswd0h00h程序状态字sp81h07h堆栈指针dpl82h00h数据存储器指针低8位dph83h00h数据存储器指针高8位*ie
30、a8h0××00000h中断允许控制器*ipd8h×××00000h中断优先控制器*p080hffh端口0*p190hffh端口1*p2a0hffh端口2*p3b0hffh端口3pcon87h00h电源控制及波特率选择*scon98h00h串行口控制器sbuf99h不定串行数据缓冲器*tcon88h00h定时器控制tmod89h00h定时器方式选择tl08ah00h定时器0低8位tl18bh00h定时器1低8位th08ch00h定时器0低8位th18dh00h定时器1高8位单片机复位有自动上电复位和人工按钮复位两种,电路如图3.4、3.5所示:
31、图3.4 自动上电复位电路图3.5 手动复位电路3.2 ds1302时钟芯片简介串行时钟芯片ds1302是dallas公司推出的涓流充电时钟芯片,内部含有移位寄存器、控制逻辑、振荡器、实时时钟/日历以及31字节静态ram,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、星期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过am/pm指示决定采用24或12小时格式。ds1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:(1)res复位,(2)i/o(数据线),(3)sclk(串行时钟)。时钟/ram的读/写数据以一个字节或多达31个
32、字节的字符组方式通信。ds1302工作时功耗很低,保持数据和时钟信息时功率小于1mw。其引脚图如图3.6:图3.6 ds1302引脚图ds1302是由ds1202改进而来,增加了以下的特性:双电源管脚用于主电源和备份电源供应,vcc1为可编程涓流充电电源,附加七个字节存储器。它广泛应用于电话、传真、便携式仪器以及电池供电的仪器仪表等产品领域。(1)ds1302管脚说明·x1,x2: 32.768khz 晶振管脚·gnd: 地·rst:复位脚·i/o:数据输入/输出引脚·sclk:串行时钟·vcc1,vcc2:电源供电管脚(2) ds1
33、302主要的性能指标:·实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力·31×8位暂存数据存储ram·串行i/o口方式使得管脚数量最少·宽范围工作电压:2.05.5v·工作电流:2.0v时,小于300na·读/写时钟或ram数据时,有两种传送方式:单字节传送和多字节传送·8脚dip封装或可选的8脚soic封装(根据表面装配)·简单3线接口·与ttl兼容(vcc = 5v)·可选工业级温度范围:4085·与ds1202兼容
34、3;在ds1202基础上增加的特性对vcc1有可选的涓流充电能力双电源管用于主电源和备份电源供应备份电源管脚可由电池或大容量电容输入附加的7字节暂存存储器(3)复位和时钟控制:数据传输的启动是由/rst置为高电平开始的,/rst启动控制逻辑,允许地址/命令序列进入移位寄存器,一个时钟周期是一个下降沿跟随一个上升沿。数据输入时,在时钟上升沿数据必须有效,如果/rst变低,所有数据传送即被终止,i/o引脚到一个高阻状态。在电源上电过程中,/rst必须保持逻辑0,直到vcc大于2.0v。在/rst由0变1的过程中,sclk必须是逻辑0。(4)数据输入:输入写命令字节8个时钟周期之后,在下8个时钟周期
35、的上升沿输入数据,若有额外的sclk周期是不予理睬的,数据输入开始位是位0。(5)数据输出:输入读命令字节8个时钟周期之后,在下8个时钟周期的下降沿数据被送出。注意:第一个数据位被送出发生在写命令字节最后一位的第一个下降沿,数据输出开始位为位0。3.3 max232芯片简介max232芯片是美信公司专门为电脑的rs-232标准串口设计的接口电路,使用+5v单电源供电。max232就是用来进行电平转换的,该器件包含2驱动器、2接收器和一个电压发生器电路提供tia/eia-232-f电平。其引脚图如图3.7:图3.7 max232引脚图(1)内部结构基本可分三个部分:第一部分是电荷泵电路。由1、2
36、、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给rs-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(r1in)、12脚(r1out)、11脚(t1in)、14脚(t1out)为第一数据通道。8脚(r2in)、9脚(r2out)、10脚(t2in)、7脚(t2out)为第二数据通道。ttl/cmos数据从t1in、t2in输入转换成rs-232数据从t1out、t2out送到电脑db9插头;db9插头的rs-232数据从r1in、r2in输入转换成ttl/cmos数据后从r1out、r2out
37、输出。第三部分是供电。15脚gnd、16脚vcc(+5v)。(2)max232主要性能指标:·单5v电源工作·linbicmostm工艺技术·两个驱动器及两个接收器·±30v输入电平·低电源电流:典型值是8ma·符合甚至优于ansi标准eia/tia-232-e及itu推荐标准v.28·可与maxim公司的max232互换·esd保护大于mil-std-883(方法3015)标准的2000v(3)特性:·输入电源电压范围, vcc :-0.3v至6v·正输出电源电压范围,vs+ :vc
38、c-0.3v至15v·负输出电源电压范围,vs :-0.3v至-15v·输入电压范围,vi :驱动器: -0.3v至vcc+0.3v 接收器:±30v·输出电压范围,vo :t1out,t2out :vs0.3v至vs+0.3v r1out,r2out :-0.3v至vcc+0.3v·短路持续时间:t1out,t2out : 未限制·工作温度(自然通风)范围,ta:max232 : 0至70 max232i :-40至85·存储温度范围,tstg :-65至150·引线温度,离外壳1.6mm(1/16英寸),10秒
39、 :260第四章 硬件电路设计4.1 系统组成本设计的核心部件为at89c51单片机和时钟芯片ds1302。整个系统在硬件上可分为时钟芯片ds1302模块、键盘控制模块、led显示模块、响铃模块四个部分。所有时钟信息包括秒、分、小时、星期、日、月及年信息均由时钟芯片ds1302产生,每月的天数和闰年的天数可自动调整。在at89c51单片机对时钟芯片ds1302的读写操作下可完成时钟信息的读取和写入,单片机将每次读入的时钟信息送入led数码管进行显示,而单片机每次写入到时钟芯片ds1302内的时钟信息可存储在ds1302的内部存储器中,以实现的时钟信息的调整。键盘控制模块可通过3个按键完成时间和
40、日期的调整以及闹钟时间的调整。led显示模块实现时间、日期的显示。响铃模块通过蜂鸣器可实现闹钟时间的响铃。系统框图如图4.1所示。具体硬件原理图见附录a :图4.1 系统框图4.2 时钟芯片ds1302部分串行接口的时钟芯片ds1302相比于并行接口的时钟芯片,可以完全满足单片机系统对实时时钟的要求,而且其与单片机接口简单、占用地址/数据总线接线少、芯片体积小、占用空间少。时钟芯片ds1302综合性能较好且价格便宜。时钟芯片ds1302与at89c51单片机的接口电路如图4.2所示,用单片机p1口的3根口线p1.0、p1.1、p1.2分别与ds1302串行总线的sclk引脚、i/o引脚、/rs
41、t引脚相连。其中p1.1需规定为双向口线,负责单片机与ds1302之间数据的读取和写入。x1、x2之间接一只32768hz的晶振即可。 图4.2 ds1302与单片机接口电路4.2.1 ds1302工作原理串行时钟芯片ds1302内部主要由移位寄存器、控制逻辑、振荡器、实时时钟/日历以及31字节静态ram构成。为了实现数据传送,单片机首先把/rst置为高电平,然后单片机以一定的时序产生sclk移位时钟,把地址和命令字节信息通过i/o口线传送给ds1302的移位寄存器。数据在sclk的上升沿串行输入。无论是读周期还是写周期,开始的8位指定ram字节中的哪位被访问。在开始的8个时钟周期把命令输入移
42、位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时输入数据。8位的地址/命令字节所代表的具体含义将在表5.1中介绍。4.2.2 电源控制时钟芯片ds1302的gnd引脚接电源地,vcc2引脚接系统电源vcc,vcc1引脚接可充电电池或超大容量电容器,启动ds1302的涓流充电器功能。根据充电电流的大小选择充电二极管为一只或两只,选择限流电阻为1k、4k或8k,根据充放电时间选择电容器容量或电池容量。充电二极管和限流电阻为ds1302内置,只需规定充电控制寄器相应各位即可。本设计中未用vcc1的涓流充电器功能,而是由usb接口供电,直接为vcc2提供+5v电压。4.3 键盘控制模块键盘接
43、口电路如图4.3所示。键盘控制命令通过单片机对键盘按键状态的扫描,完成按键功能。当有按键按下时单片机将由与键盘按键连接的p1.3p1.5引脚读取低电平,在由单片机执行相应的程序完成按键功能。在程序正常运行时单片机会将键盘按键与其连接的p1.3p1.5引脚置为高电平,所以当没有按键按下时单片机将会由键盘控制模块读入高电平。图4.3 键盘接口电路由于本设计所需键盘按键只有3个,故采用以上键盘接口电路即可完成相应的按键功能。如果所需键盘按键较多,为减少键盘电路占用的i/o口数目,一般可以采用以下的矩阵键盘形式,如图4.4所示:图4.4 矩阵键盘接口电路在矩阵键盘电路中,一般以行线作为输入引脚,列线作
44、为输出引脚(当然也可以行线作为输出引脚,而列线作为输入引脚)。在以上矩阵键盘电路中,以单片机的p1口作为矩阵键盘的行、列线。其中p1.3p1.0作为行线,输入;p1.7p1.4作为列线,输出。由于单片机p1口引脚内置了上拉电阻,因此无需外接上拉电阻。在矩阵键盘电路工作时,单片机对p1.7p1.4引脚四条列扫描线轮流输出低电平,然后读取p1.3p1.0引脚,如果没有按键被按下,则p1.3p1.0引脚均为高电平;如果其中有某一个按键被按下,则p1.3p1.0中就有一个引脚为低电平。例如,当p1.7p1.4输出为1110时,即p1.4引脚输出低电平,如果输入的p1.2引脚为低电平,则肯定是p1.4列
45、线与p1.2行线交叉点对应的按键被按下。图中输出引脚所接的二极管起保护作用,可防止同一行上两个或两个以上按键被同时按下时,输出引脚通过行线形成“线与”,损坏单片机i/o引脚输出级电路。4.4 显示模块本设计中的显示方式为软件译码的led动态扫描显示,如图4.5所示,使用动态显示方式可节省硬件资源。动态显示即每次只有一个led被选中,只要刷新频率不小于25hz,即同一led数码管相邻两次被点亮的时间间隔要小于40ms利用人体视觉惰性特征, 4个led数码管看起来是同时点亮的。而为了保证一定的亮度,在驱动电流取30ma的情况下,每位led数码管的点亮时间不能小于1ms。 图4.5 显示模块电路显示
46、模块由4个七段led数码管组成。其字型码由单片机p0口输出,led片选由单片机p2.0p2.3引脚控制以选通每位led数码管。由于负责片选的每个引脚最多时将同时启动7段led数码管,每段led数码管正常点亮时以30ma计算(动态显示时led工作电流为2035ma),单片机p2口引脚不足以驱动7段led数码管,所以要加入驱动电路,本设计采用4只中功率的三极管。当然,led数码管还有静态显示驱动电路。led静态显示驱动电路由笔段代码锁存器、笔段译码器(采用软件译码的led静态显示驱动电路无需笔段译码器)和驱动器等部件组成。常用笔段译码芯片有74249、cd4511等,而由于软件译码灵活、方便,在单
47、片机系统中常采用软件译码方式。相比于led动态显示驱动电路,静态显示方式显示驱动程序简单,cpu占用率低,但每一位led数码管需要一个8位锁存器来锁存笔段码,硬件开销大,仅适用于显示位数较少(4位以下)的场合。第五章 软件设计软件设计是相对于硬件电路的设计而言的,主要是针对于at879c51单片机程序设计。单片机的程序主要有以下几个子程序组成(具体程序见附录b):5.1 主程序图5.1 主程序流程图系统上电复位以后,单片机内部首先开始执行的是时钟芯片ds1302初始化程序。时钟芯片ds1302初始化以后,将系统预设的时间、日期信息写入时钟芯片ds1302。继而单片机将读取ds1302内部的时钟
48、信息并将其送入led数码管进行显示。在led数码管上将显示时间,几秒的延时以后将显示日期,时间与日期循环显示。在显示时间或日期时即可按下模式切换按键切换到调整模式,按下加一按键实现时间或日期的调整。在设置闹铃的情况下到达设定时间将会响铃。如果没有按键按下或响铃,单片机将重新读取并显示ds1302的时钟信息进行显示。主程序流程图如图5.1所示。5.2 ds1302部分设计图5.2 时钟信息读写程序流程图当单片机上电复位后,对串行时钟芯片ds1302初始化,同时将程序中预设的时间及日期信息写入时钟芯片,ds1302将秒、分、时、星期、月、年等时钟信息存入到秒、分、时、星期、月、年等寄存器中,并将以
49、此为初始时间及日期开始计数。单片机与时钟芯片ds1302可以以一个字节或多达31个字节的字符组方式通信,单片机通过对时钟芯片的内部的地址/命令字节操作控制,可以完成对ds1302的时钟寄存器或ram的数据的读/写操作,读取或写入时钟信息。时钟信息读写程序流程图如图5.2所示: 图5.3 读/写ds1302一字节程序流程图读写ds1302一字节需要一个简单的驱动程序,初始化要求/rst为低电平,sclk为低电平,/rst再被设置为高电平就启动了一个数据传送的过程。sclk的16个方波完成一次数据传送,前8个方波用于输入命令字节,后8个方波用于数据的输出(读ds1302)或数据的输入(写ds130
50、2)。在sclk的上升沿,i/o线上数据被送入ds1302,在sclk下降沿ds1302输出数据在i/o线上。注意对单片机口线p1.1(接ds1302 i/o引脚)输入输出功能的控制。读写操作各用一个驱动程序,读/写ds1302一字节程序流程图如图5.3所示:ds1302读数据传送时序如图5.4所示,ds1302写数据传送时序如图5.5所示:图5.4 ds1302读数据传送时序图5.5 ds1302写数据传送时序每次数据传输由命令字节开始,最高有效位msb(位7)必须是逻辑1,若该位是0,则禁止操作ds1302,位6为0时选择实时时钟/日历数据,位6为1时选择ram数据,位51选择操作的寄存器
51、,lsb(位0)选择写操作(逻辑0)或读操作(逻辑1)。ds1302地址/命令字节如图5.6,寄存器分配见表5.1:图5.6 ds1302地址/命令字节表5.1 ds1302时钟/日历寄存器详表寄存器名命令字取值范围各位内容写操作读操作765430秒寄存器80h81h0059ch10secsec分寄存器82h83h0059010minmin时寄存器84h85h0112或002312或24010am/pmhrhr日寄存器86h87h0128,29,30,310010日日月寄存器88h89h011200010月月周寄存器8ah8bh01070000周年寄存器8ch8dh019910年年写保护寄存器
52、8eh8fhwp0000慢充电寄存器90h91htcstcstcstcsdsdsdsds时钟突发寄存器behbfh其中特殊位说明如下:ch:时钟暂停位,当此为设置为1时,振荡器停止,ds1302处于低功耗的备份方式;当此为变为0时,时钟开始启动。12/24:12或24小时方式选择位,为1时选择12小时方式。在12小时方式下,第5位是am/pm选择位,此位为1表示pm。在24小时方式下,第5位是第2个小时位(2023时为1),即在019点时第5位为0;在2023点时第5位为1。wp:写保护位,写保护寄存器的开始7位(06)置为0,在读操作时总是读出0。在对时钟或ram进行写操作之前,第7位(wp
53、)必须为0,当它为高电平时,写保护位防止对任何其他寄存器进行写操作。tcs:控制慢充电的选择位,为了防止偶然因素使ds1302工作,只有1010模式才能使慢速充电工作。ds:二极管选择位,如果ds为01,那么选择一个二极管;如果ds为10,则选择两个二极管;如果ds为11或00,那么充电器被禁止,与tcs无关。5.3 键盘控制部分程序在本设计中键盘按键共有3个,分别为模式切换按键、加一按键、闹铃调整按键。其基本功能是在显示时间、日期或闹铃时间时,当模式切换按键按下时,即进入调整模式的分钟调整或者日调整,此时如果有加一按键按下时,即对当前调整内容进行加一;再按下模式切换按键则调整小时或者月份,此
54、时如果有加一按键按下时,即对当前调整内容进行加一;而再次按下模式调整按键时,则退出调整模式。具体流程图如图5.7所示:图5.7 按键功能执行流程图在按下闹铃调整按键时,即显示闹钟时间,当有加一按键按下时,即对闹铃的分钟进行加一;再次按下闹铃调整按键时,如果有加一按键按下,则对闹铃的小时进行调整;再次按下闹铃调整按键则退出闹铃调整模式。关于键盘扫描方式可以分为以下3种:(1)随机扫描方式。在随机扫描方式中,cpu完成某一特定任务后,执行键盘扫描程序,以确定键盘有无按键按下,然后根据按键功能执行相应的工作。(2)定时扫描方式。定时扫描方式与随机扫描方式基本相同,通过定时中断方式,每隔一定的时间(如
55、1030ms,由于按键动作较慢,为提高cpu利用率,实践表明每隔30ms对键盘扫描一次较为合理)扫描键盘有无按键被按下,然后根据按键功能执行相应的工作。(3)中断检测方式。在不需要经常监控键盘有无按键按下时,随机扫描方式和定时扫描方式会由于空扫描而降低cpu的利用率,为此可采用在中断检测方式来检测键盘有无按键输入。其方法可以简单地在键盘电路的键盘输入线上增加与门电路,将与门电路的输出接至/int1中断输入至单片机。本设计由于键盘按键较少,故采用随机扫描方式进行键盘扫描。5.4 led显示部分程序本设计显示部分为软件译码的led动态扫描显示,由4只led数码管构成。笔段码和位扫描均采用软件译码的
56、方式。由于动态扫描显示每次只有一只led被选中,所以可将每一位要显示的数通过查字型表转换为字型码后同时送入p0口,而通过p2口输出每一位数字相应的片选选通对应的led数码管。其流程图如图5.8所示:图5.8 led显示流程图动态扫描显示即每次只有一个led被选中,只要刷新频率不小于25hz,即同一led数码管相邻两次被点亮的时间间隔要小于40ms,利用人体视觉惰性特征,4个led数码管看起来是同时点亮的。所以在编写显示部分程序时应注意led的刷新频率。第六章 调试调试过程分为硬件调试和软件调试。调试的目的有两个:一是实现软硬件的匹配,达到预期的运行效果;二是在此基础上,尽量增强硬件的可靠性,软件程序的精练。为了使系统排错、调试顺利进行,在硬件电路焊接时要分模块进行。如先焊接电源、开关以及单片机(构成最小系统),再依次焊接led显示模块、串口下载模块、时钟芯片ds1302部分、键盘按键部分、蜂鸣器响铃部分等。如此焊接顺序可以将系统分为多个部分分步检查、排错,可大大减少排错工作量。6.1 硬件调试6.1.1 硬件静态调试(1)排除逻辑故障这类故障往往是由于硬件的设计和焊接过程中的错误造成的。主要包括错线、开路、短路。排除的方法是首先将电路板上的连接认真的对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,必要时利用数字万用表的短路测试功能,可以缩短
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年山西体育职业学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 2025年安徽汽车职业技术学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 气管插管患者管道护理
- 2025年天津海运职业学院高职单招职业适应性测试历年(2019-2024年)真题考点试卷含答案解析
- 2025年天津城市职业学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 物流运输总结汇报模板
- 6岁小学生音乐课件
- BJ20养护知识课件
- 简约清新毕业答辩
- 6S相关知识课件
- 书店接待礼仪培训
- 骨折病人的中医饮食护理
- 小学生理性消费课件
- 内蒙古科技馆新馆展陈创新方案
- 村级公墓规划设计方案
- 山东省济南市(2024年-2025年小学六年级语文)统编版小升初真题(下学期)试卷及答案
- 大模型原理与技术-课件 chap6 大模型微调
- 单层轻钢结构施工方案
- 中医药文化节活动方案
- 深度学习及自动驾驶应用 课件 第9、10章 生成对抗网络及自动驾驶应用、强化学习理论及自动驾驶应用实践
- 浙江省【高等职业技术教育招生考试】-商业类(电子商务)-职业技能理论知识(一)(答案版)
评论
0/150
提交评论