




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子时钟设计与制作摘要本论文的研究对象主要是基于单片机的电子时钟设计,以实现基本的显示时间、日期等功能。随着当代技术越来越受到重视,单片机开始在各大产业上被大范围运用。而电子时钟作为生活中的一个必备品,与单片机设计结合,能够更好的理解单片机,并且检验所学的基础知识和动手能力。这次制作主要是运用AT89C51为处理器,通过DS1302作为时钟电路,MAX7219来操控八位7段LED数码管显示,来完成显示日期和时间等功能。论文将会对硬件及软件方面的设计原理进行叙述。对于设计中运用到的重要元器件,论文将会以较小的篇幅说明其概念与选择的理由,而会以较大的篇幅描述其管脚功能、特性及原理。这主要是为了之后进行的硬件设计和程序编写做好相应的准备。关键词:单片机;AT89C51;DS1302;MAX7219;电子时钟Electronic clock design and productionABSTRACTThe main subject of the present paper is a electronic clock based on Micro Controller Unit, in order to achieve basic display time, date and other functions. With modern technology more and more attention, the Micro Controller Unit to begin being used in a wide range of major industries. The electronic clock as the life of an essential product, design with the Micro Controller Unit, allow for a better understanding of the Micro Controller Unit, and test the basic knowledge and ability.The production is to use AT89C51 as the main processor, a clock circuit using DS1302 and MAX7219 use to control eight 7-segment LED digital display, in order to complete the date and time and other functions. Papers will be on hardware and software design principles will be explained.For the design applied to the important components, the paper will be devoted to smaller explain the concept and Choose reasons, and will be described in greater length their pin functions, features and principles. This is mainly to hardware design and programming prepare accordingly.Key Words: Micro Controller Unit; At89C51; DS1302; MAX7219; electronic clock目 录第一章 绪论11.1 单片机概况11.2 电子时钟简述11.3 设计要求1第二章 设计方案论证22.1 单片机芯片的选择22.2 时钟模块的选择22.3 复位模块的选择22.4 输入模块的选择22.5 显示模块的选择2第三章 元器件的特性33.1 AT89C5133.2 DS130253.3 MAX72196第四章 硬件设计84.1 电路设计框图84.2 时钟电路84.3 复位电路94.4 控制模块电路104.5 显示模块电路104.6 主电路图设计12第五章 软件设计135.1 设计规划135.2 主模块135.3 显示模块155.4 键盘模块175.5 章结23第六章 仿真与调试246.1 Keil C51 uVision3246.2 Proteus7.8的操作246.3 仿真的结果24第七章 总结25参考文献26附录27致 谢37天津理工大学2015届本科毕业设计说明书(毕业论文)第一章 绪论1.1 单片机概况单片机是一种运用大规模集成电路技术将中央处理器(CPU)和数据存储器(RAM)、程序存储器(ROM)及一些其他I/O通信口集成于一块芯片中。它具有携带方便、小巧轻便、价钱实惠等优点,能够帮助我们深入了解其应用和开发提供方便。现在单片机的运用领域已经非常普遍,如生活中的洗衣机、电风扇等家庭器件,工业上的各种仪表等等都运用着单片机,这使单片机在现在越来越不可或缺。1.2 电子时钟简述电子时钟是通过运用半导体制成的数字逻辑电路来得到准确时间的设备。电子时钟除了基本的显示时间功能外,人们还能够依据各种需求在电子时钟原有功能的前提下添加其他的功能,例如夜光、温度检测、湿度检测、噪音检测等等,使得其在人们的生活中占据重要的地位。它比传统的时钟具有走时更精准、显示更清楚、使用寿命更长的优点,因而在日常生活中运用得越来越广泛。1.3 设计要求1、可以实时显示时间/日期2、操作简单3、液晶显示屏显示清楚第二章 设计方案论证2.1 单片机芯片的选择AT89C51是学习单片机经常使用到的。它具有指令简单,易学易懂,操作简单,价格便宜的优点,所以在此设计中选择AT89C51作为单片机芯片。2.2 时钟模块的选择设计主要是电子时钟,需要一个时钟芯片来调节时间或者日期。由于DS1302芯片功耗低、体积小、接口简单、功能易扩展、应用广泛,所以选择DS1302作为时钟模块控制时间。不仅如此,还必须对AT89C51外接一个晶振电路来实现时钟信号。2.3 复位模块的选择由于AT89C51外接电路即可有复位功能,故设计复位模块运用AT89C51自身的RES(复位)引脚来实现。2.4 输入模块的选择在这次设计中运用了独立式按键作为输入模块,独立式按键在按键组成、软件设计和实际操作时都比较方便简单。2.5 显示模块的选择此设计要求能够显示时间及日期,则需要一个8位7段LED数码显像管。而控制LED的芯片是具有编程简易、功能强大、价格低等优点的MAX7219芯片。第三章 元器件的特性3.1 AT89C51AT89C51是美国ATMEL公司出品的一种带4K字节Flash存储器。AT89C51是一种低电压、高性能的高效微控制器,采用MCS-51指令系统和输出管脚相兼并。管脚图如图3.1.1,管脚功能说明图如图3.1.2。图3.1.1 AT89C51管脚图Fig.3.1.1 AT89C51s pin diagram图3.1.2 AT89C51管脚功能说明图Fig.3.1.2 AT89C51s pin function description figure图3.1.3 AT89C51 P3的第二功能说明图Fig.3.1.3 The second function description figure of AT89C51 P3 port3.2 DS1302DS1302是由美国DALLAS公司出品的实时时钟芯片。它能够对年月日时分秒周准确计时。管脚图如图3.2.1,管脚功能说明图如图3.2.2。图3.2.1 DS1302管脚图Fig.3.2.1 DS1302s pin diagram图3.2.2 DS1302管脚功能说明图Fig.3.2.2 DS1302s pin function description figure 3.3 MAX7219MAX7219是美国MAXIM公司设计的集成电路。MAX7219能够将中央处理器与8位7段数字LED显示连接起来,运用16位数据串行移位的接收方式。它能够选择每一个数据是BCD译码还是不译码。管脚图如图3.3.1,管脚功能说明图如图3.3.2。图3.3.1 MAX7219管脚图Fig.3.3.1 MAX7219s pin diagram图3.3.2 MAX7219管脚功能说明图Fig.3.3.2 MAX7219s pin function description figure第四章 硬件设计4.1 电路设计框图根据要求,可以画出的电路框图如图4.1。AT89C51主控制模块时钟电路复位电路显示模块控制模块图4.1 电路框图Fig.4.1 Circuit diagram4.2 时钟电路时钟电路是中央处理器的心脏,假如没有能够驱动AT89C51的时钟电路,AT89C51是不能够运行的。对于AT89C51单片机来说,外接晶振就能够产生时钟信号,时钟电路一般由晶体振荡器、晶震控制芯片和电容组成,如图4.2.1。但是由于此次设计是电子时钟,还需要能够对显示在LED上的时间进行调整的时钟芯片,即外接一个DS1302时钟芯片,如图4.2.2。图4.2.1 外接时钟电路图Fig.4.2.1 External clock circuit diagram图4.2.2 DS1302电路图Fig.4.2.2 DS1302s circuit diagram4.3 复位电路由于单片机运行时,会发生程序失去控制或者出现死循环的状况,此时便要用到复位的功能。复位的作用是把单片机内的部件全部回到一个确切的初始时刻,然后由此时刻重新进行运作。AT89C51的复位功能主要靠外接电路来实现,此处使用的是手动复位电路。具体电路如图4.3。图4.3 复位电路图Fig.4.3 Reset circuit diagram4.4 输入控制模块电路电子时钟需要按键来调整时间,输入模块由8个按键组成,分别可对年、月、日、时、分、秒、星期进行调整,除外还有时间/日期切换键和调整控制键。时间/日期切换主要用在将LED显示屏上的时、分、秒切换到年、月、日,而调整控制键则在需要调整时间或日期时按下。具体电路如图4.4。图4.4 输入控制模块电路图Fig.4.4 Input control module circuit diagram4.5 显示模块电路此设计需要除了显示时间及日期外,还需要显示星期。所以在电路图中除了运用8位共阴极数码显像管(如图4.5.1)外,还运用一个2位的共阴极数码显像管来显示星期(如图4.5.2)。控制8位共阴极数码显像管和2位共阴极数码显像管的芯片是MAX7219,具体电路如图4.5.3;此外,P0口需要连接一个排阻RESPACK-8为了上拉电阻,主要是P0口不能输出高电平且输出电流达不到1mA,无法为其接的负载提供电流。具体电路如图4.5.4。图4.5.1 8位共阴极数码显像管电路图Fig.4.5.1 Eight common cathode LED tubes circuit diagram图4.5.2 2位共阴极数码显像管电路图Fig.4.5.2 Two common cathode LED tubes circuit diagram图4.5.3 MAX7219电路图Fig.4.5.3 MAX7219s circuit diagram图4.5.4 RESPACK-8电路图Fig.4.5.4 RESPACK-8s circuit diagram4.6 主电路图设计整体设计好的电路图如图4.6。图4.6 完整电路图Fig.4.6 Complete diagram第五章 软件设计5.1 设计规划设计主要运用C语言来进行编程,程序主要分为三个部分,分别是:主模块、显示模块和输入模块。主模块程序主要是初始化设置,并且处理所输入的按键。显示模块程序主要进行读写指令,以控制数码显像管的显示。键盘模块程序主要是与DS1320时钟芯片结合,读取调整时间按键的情况。5.2 主模块主模块流程图如图5.2。开始初始化显示读取按键处理按键按键输入是否图5.2 主程序流程图Fig.5.2 the main program flow chart根据流程图完成主模块的程序。void Write(uchar addr,uchar num) rst=0; clk=0; rst=1; InputByte(addr); /写地址 InputByte(num); /写数据 clk=1; rst=0; void WriteSec(uchar num) Write(0x80,num); void WriteMin(uchar num) Write(0x82,num); void WriteHr(uchar num) Write(0x84,num); void WriteDay(uchar num) Write(0x86,num); void WriteMn(uchar num) Write(0x88,num); void WriteWe(uchar num) Write(0x8a,num); void WriteYs(uchar num) Write(0x8c,num); void DisableWP(void) /write data,read 0 Write(0x8e,0x00); void Read(uchar addr) rst=0; clk=0; rst=1; InputByte(addr); OutputByte(); clk=1; rst=0; /初始化设置时间 08年5月27号,23点58分00秒5.3 显示模块显示模块程序流程图如图5.3。初始化读取数据显示图5.3 显示模块程序流程图Fig.5.3 The display module program flow chart根据流程图完成该部分程序。ready(); /初始化 for(i=0;i222;i+); for(i=0;i=4; nian=fen3*10+fen2; nianh=nian/10; nianl=nian%10; Read(0x89);/读月数据 fen1=dd; fen2=fen1&0x0f; fen3=fen1&0xf0; fen3=4; yue=fen3*10+fen2; yueh=yue/10; yuel=yue%10; Read(0x87);/读日数据 fen1=dd; fen2=fen1&0x0f; fen3=fen1&0xf0; fen3=4; ri=fen3*10+fen2; rih=ri/10; ril=ri%10; Read(0x85);/读小时数据 fen1=dd; fen2=fen1&0x0f; fen3=fen1&0xf0; fen3=4; xiaoshi=fen3*10+fen2; xiaoshih=xiaoshi/10; xiaoshil=xiaoshi%10; Read(0x83);/读分数据 fen1=dd; fen2=fen1&0x0f; fen3=fen1&0xf0; fen3=4; fen=fen3*10+fen2; fenh=fen/10; fenl=fen%10; Read(0x81);/读秒数据 fen1=dd; fen2=fen1&0x0f; fen3=fen1&0xf0; fen3=4; miao=fen3*10+fen2; miaoh=miao/10; miaol=miao%10;5.4 输入模块输入模块程序流程图如图5.4。图5.4 输入模块程序流程图Fig.5.4 Input module program flow chart根据流程图,完成输入模块的程序。 if(flagh) c=1; x=1; for(i=0;i=8) xingqi=1; WriteWe(xingqi);/星期 while(p30=0); if(p31=0) /nian if(flag) Read(0x8d);/读数据 fen1=dd; fen2=fen1&0x0f; /这是因为proteus提供的显示方式用的bcd进制,所以就要这种方法转十进制 fen3=fen1&0xf0; fen3=4; nian=fen3*10+fen2; nian+; if(nian=51) nian=0; WriteYs(tab1nian); /这里是用查表的方法显示bcd ,也可以用十进制转bcd while(p31=0); if(p32=0) /yue if(flag) Read(0x89);/读数据 fen1=dd; fen2=fen1&0x0f; fen3=fen1&0xf0; fen3=4; yue=fen3*10+fen2; yue+; if(yue=13) yue=1; WriteMn(tab1yue); while(p32=0); if(p33=0) /ri if(flag) Read(0x87);/读数据 fen1=dd; fen2=fen1&0x0f; fen3=fen1&0xf0; fen3=4; ri=fen3*10+fen2; ri+; if(ri=32) ri=1; WriteDay(tab1ri);/ri while(p33=0); if(p34=0) /xiaoshi if(flag) Read(0x85);/读数据 fen1=dd; fen2=fen1&0x0f; fen3=fen1&0xf0; fen3=4; xiaoshi=fen3*10+fen2; xiaoshi+; if(xiaoshi=24) xiaoshi=0; WriteHr(tab1xiaoshi); while(p34=0); if(p35=0) /fen if(flag) Read(0x83);/读数据 fen1=dd; fen2=fen1&0x0f; fen3=fen1&0xf0; fen3=4; fen=fen3*10+fen2; fen+; fen4=0; if(fen=60) fen=0; WriteMin(tab1fen); while(p35=0); if(p37=0)/调整标志 flag=flag; if(flag) WriteSec(0x80); else WriteSec(0x00); while(p37=0); if(p36=0)/调整标志 flagh=flagh; while(p36=0); 5.5 章结结合以上几个流程图,可以画出最终简化的流程图,如图5.5。否开始初始化设置显示是否调时结束调时是图5.5程序流程图Fig.5.5 Program flow chart第六章 仿真与调试本次设计用keil C51 uVision3编写程序,用proteus7.8进行仿真与调试。6.1 Keil C51 uVision3Keil C51是美国Keil Software公司推出的51系列兼容单片机C语言软件开发系统。具体步骤:1、启动Keil C51 uVision3。2、建立新的工程项目文件,并保存。3、选择所需要的CPU器件,即AT89C51。4、编写源程序,并把源程序文件加入刚刚新建立的工程项目里。5、把源程序文件开始编译,假如有偏差,再重新调试。6、生成可执行文件6.2 Proteus7.8的操作Proteus是英国Lab Center E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论