《基于C51单片机的实用电子时钟设计_Protel课程设计(27页).docx》由会员分享,可在线阅读,更多相关《基于C51单片机的实用电子时钟设计_Protel课程设计(27页).docx(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于C51单片机的实用电子时钟设计_Protel课程设计-第 23 页设计任务书题 目: 基于C51单片机的实用电子时钟设计初始条件1.一台装有PROTEL软件或以上版本的电脑及使用PROTEL软件绘制电路原理图和印刷电路板的基本技能;2.模拟、数字、高频、单片机、或者一个具有完备功能的电子电路系统。要求完成的主要任务:1.绘制具有一定规模、一定复杂程度的电路原理图*.sch(自选)。可以涉及模拟、数字、高频、单片机、或者一个具有完备功能的电子电路系统。2.绘制相应电路原理图的双面印刷版图*.pcb,对电路原理图进行仿真,给出仿真结果(如波形*.sdf、数据)并说明是否达到设计意图。参考书目
2、:1. 谢自美.电子线路设计实验测试(第三版).武汉:华中科技大学出版社2. 康华光. 电子技术基础模拟部分.高等教育出版社,2005时间安排查阅资料2天Protel设计2天电路仿真 2天报告撰写 1天指导教师签名:2013年 月 日系主任(或责任教师)签名:2013年 月 日摘要Altium Designer 是业界第一款一体化电子产品设计解决方案,它将设计流程、集成化PCB设计、可编程器件(如FPGA)设计和基于处理器的嵌入式软件开发功能整合在一起的产品,是一种能同时进行原理图、PCB和FPGA设计及嵌入式设计的解决方案,具有将设计方案从概念转变为最终产品所需的全部功能。作为电子专业的学生
3、,掌握EDA软件是十分重要的,熟练使用各种EDA软件对以后的学习研究、工作都很有帮助。本次课程设计主要是设计一个基于C51单片机的实用电子时钟。通过课程设计,掌握Altium Designer的基本使用方法,学会画原理图,进行PCB制作,并给予必要的仿真。关键词:Altium Designer;原理图;PCB制作;电子时钟AbstractAltium Designer is the industrys first unified electronics design solutions that will design flow, integrated PCB design, programm
4、able devices (eg FPGA) design and processor-based embedded software development capabilities integrated products, is the one kind can simultaneously schematic, PCB and FPGA design and embedded design solutions with the design from concept to final product all the necessary functions.As electronics m
5、ajors, master EDA software is very important, skilled use of a variety of EDA software for future study and research work are very helpful.The course design is to design a practical C51 microcontroller based electronic clock. Through curriculum design, master the basics of using Altium Designer, lea
6、rn drawing schematics for PCB production and give the necessary simulation.Keywords:Altium Designer; schematic; PCB design; Electronic clock.目录摘要IAbstractII1 Altium Designer简介21.1 Altium Designer特性21.2 Altium Designer的组成21.3 Altium Designer改进方面22 电子时钟系统设计22.1 MCU控制器简介22.2 单片机最小系统22.3 独立键盘22.4 LCD160
7、2模块22.5 DS12C887时钟芯片22.6 电源模块23 原理图绘制23.1 创建新的PCB工程文件23.2 添加新的原理图空文件23.3 安装元件库23.4 放置电路元器件并绘制连线23.5 完善原理图23.6 检查电路原理图23.7 输出元件清单24 PCB版图设计24.1 导入原理图设计数据24.2 PCB板型设计及元件布局24.3 PCB网络布线24.4 设计规则DRC检查24.5 覆铜编辑及补泪滴处理24.6 PCB的3D显示25 仿真分析26 小结体会2参考文献2附录部分程序21Altium Designer简介1.1 Altium Designer特性Altium Desi
8、gner是美国Altium公司开发的设计电路板软件Protel的升级版本,其沿袭了Protel以前版本方便易学的特点,内部界面与Protel DXP大体相同,为了适应目前高密度和信号高速度的要求新增加了一些功能模块。在元件库中,整合了以前Protel DXP版本和Protel99版本等各个版本的库文件,使得用户尤其是初学者使用起来更加方便和容易。Altium Designer 6.0是业界首例将设计流程、集成化PCB设计、可编程逻辑器件(如FPGA)设计和基于处理器设计的嵌入式软件开发功能整合在一起的产品,一种同时进行PCB和FPGA设计以及嵌入式设计的解决方案,具有将设计方案从概念转变为最终
9、产品所需的全部功能。Altium Designer 6.0除了全面继承包括Protel 2004在内的先前一系列版本的功能和优点以外,还增加了许多高端功能。Altium Designer 6.0拓宽了板级设计的传统界限,全面继承了FPGA设计功能和SOPC设计实现功能,从而允许工程师能将系统设计中的FPGA与PCB设计以及嵌入式设计集成在一起。Altium Designer 6.0以强大的设计输入功能为特点,在FPGA的板级设计中,同时支持原理图输入和VHDL硬件描述输入模式;同时支持基于VHDL的设计仿真、混合信号电路仿真、布局前后信号完整性分析;Altium Designer 6.0的布局
10、布线采用完全规则驱动模式,并且在PCB布线中采用了无网络的SitusTM拓扑逻辑自动布线功能;同时,将完整的CAM输出功能编辑结合在一起。1.2 Altium Designer的组成Altium Designer 6.0提供了一套完全集成的设计,这些工具让开发者很容易地将设计从概念形成最终的板设计。Altium Designer 6.0主要是由以下四大部分组成。1)原理图设计系统(schematics):它主要用于电路原理图的设计,为印制电路板的制作进行前期的准备工作,主要表现了电路的原理链接,相对比较直观。2)印制电路板设计系统(PCB):这部分系统则主要用于印制电路板的设计,印制电路板的生
11、产车间就是根据由它生成的PCB文件进行PCB板的生产的。3)FPGA系统:用户可以用它进行可编程逻辑器件的设计,将设计完成后生成的熔丝文件烧录到逻辑器件中,就可以制作具备特定功能的元器件了。4)VHDL系统:主要用来进行硬件的编程工作。1.3Altium Designer改进方面Altium Designer 6.0解决了大量历史遗留的工具问题。新版本中更关注于改进测试点的分配和管理、精简嵌入式开发、软设计中智能化调试和流畅的License管理功能。增强了图形化ERC违规显示。改进了DirectX图形重建速度。PCB板机械层设定增加到32层。可以为FPGA仪器编写脚本等等。2电子时钟系统设计本
12、次课程设计目的是设计一个电子时钟,利用廉价的STC89C52作为主控芯片,以Dallas生产的DS12C887作为时钟芯片,其最大的特点是不需要外接晶振。设计3个独立按键用于设置时间。使用LCD1602作为显示器显示时间。电源部分采用LM7805作为稳压源输出5V电压,另设一个插座可以从USB接口供电,实现了两路供电,加一个开关用于选择。以下是系统的原理框图。单片机独立键盘LCD1602DS12C887稳压电源电源图1系统框图2.1 MCU控制器简介STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可
13、编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,2个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。2
14、.2 单片机最小系统单片机最小系统包括振荡器电路,复位电路,单片机EA端接高电平(Vcc),P0口需要接上拉电阻(10K)。振荡器电路选用12MHz晶振,两个30pf电容,振荡器电路接单片机XTAL1和XTAL2引脚。单片机最小系统原理图如下。图2 单片机最小系统2.3独立键盘独立键盘的原理是:单片机的I/O口既可以作为输出也可以作为输入使用,当检测按键时用的是它的输入功能,我们把按键的一端接地,另一端与单片机的某个I/O口相连,开始时先给该I/O口赋一高电平,然后让单片机不断的检测该I/O口是否为低电平,当按键闭合时,即相当于该I/O口通过按键与地相连,变成低电平,程序一旦检测到I/O口变为
15、低则说明按键被按下,然后执行相应的指令。本次设计采用3个独立按键,分别用来实现设置调节位数,时间加和时间减三种功能。图3独立按键2.4LCD1602模块1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。在单片机系统中应用晶液显示器作为输出器件有以下几个优点:1) 显示质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此
16、,液晶显示器画质高且不会闪烁。2) 数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。3) 体积小4) 重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。5) 功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。1602液晶模块内部的控制器共有11条控制指令,如表1所示:表1控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001
17、DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容图4LCD16022.5DS12C887时钟芯片DS12C887时钟芯片能够自动产生世纪、年、月、日、时、分、秒等时间信息,其内部有世纪寄存器,从而利用硬件电路解决“千年”问题。DS12C887中自带锂电池,外部掉电时,其内部时间信息还能够坚持10年之久。对于一天内的时间记录,有12小时制和24小
18、时制两种模式。在12小时制模式中,用AM和PM区分上午和下午;芯片内部时间的存储方式也有两种,一种用二进制数表示,另一种是BCD码表示。DC12C887时钟芯片中带有128B RAM,其中11B RAM用来存储时间信息;4B RAM用来存储DS12C887的控制信息,称为控制寄存器;113B通用RAM供用户使用。此外,用户还可以对DS12C887进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。该芯片内部有一个精密的温度补偿电路用来监视VCC的状态,如果检测到主电源故障,该器件可以自动切换到备用电源供电。Vbackup引脚用于支持可充电电池或超级电容,内部包括一个始终有效的涓
19、流充电器。DS12C887可以通过一个多路复用的单字节接口访问,该接口支持Intel模式和Motorola模式。DS12C887将它自己与石英晶体和电池集成在一起。图5DS12C887芯片2.6电源模块图6电源电路该电路采用变压器与三端稳压器7805相结合。使220V电压经220V12V变压器变压,降为12V。经过桥式整流并利用两个容量较大的电容滤波,从而得到较为稳定的直流电压。通过7805型号的三端稳压器稳压之后,输出一个电压为5V的直流稳压电源。3 原理图绘制Altium Designer电路原理图的设计流程如图7所示:图7设计流程3.1 创建新的PCB工程文件启动Altium Desig
20、ner,依次执行菜单命令【File】、【New】、【Project】、【PCB Project】,新建一个PCB工程文件,单击保存,命名为“SHIZHONG”,设置合适的保存路径。3.2添加新的原理图空文件依次执行菜单命令【File】、【New】、【Schematic】,在项目“SHIZHONG.PrjPCB”中创建一个原理图空文件。执行菜单命令【File】、【Save】,在弹出的保存文件对话框中输入文件名“shizhong”,点击保存按钮。此时工程面板中的“SHIZHONG.PrjPCB”工程下面将出现名称为“shizhong.SchDoc”的文件。按照类似的方式建立一个PCB文件,文件名为
21、“shizhong.PcbDoc.”。如图8为Altium Designer项目面板。图8项目面板3.3安装元件库在原理图图纸上放置元件前,必须先打开其所在的元器件库(也称为加载元器件库)。执行菜单命令【Design】、【Add Remove Library】,弹出“Available Library”对话框,点击“Install”按钮,添加要添加的库文件。图9添加库文件3.4放置电路元器件并绘制连线点击右侧的“Library”,弹出一个面板,利用库文件面板放置元器件。搜索需要的元件,选中,拖动到左边原理图编辑区合适的位置,单击放置。导线是指元器件电气连接点之间的连线(Wire)。Wire具有
22、电器特性,而绘图工具中的Line不具有电气特性,这一点特别重要,不能混淆。下图为绘制好的电源模块。图10绘制原理图3.5完善原理图依次执行菜单命令【Tools】、【Annotate Schematics】、【Schematic】,在弹出的对话框中点击“Update Changes List”按钮,弹出“Information”对话框,单击“OK”确认后,再单击“Accept Changes (Creat ECO)”创建ECO文件,关闭对话框,所有元件标号完成。3.6检查电路原理图带电路原理图绘制完成后,需要对整个工程进行电器检查。电器规则检查ERC,指利用软件对用户设计的电路进行电器检查。执行
23、菜单命令【Project】、【Compile PCB Project】来进行ERC检测。当完成编译参数设置后,就可以对项目进行编译了。编译后系统都会通过信息面板给出一些错误信息或警告。没有错误信息或者是放置了“NO ERC”标志,信息面板是空的。如果出现了错误信息,可以通过单击错误信息指针,弹出编译错误面板,双击面板上的错误选项,系统会自动定位错误元件。3.7输出元件清单最后可点击执行菜单命令【Reports】、【Bills of Materials】出现“Bills of Materials”对话框,点击“Export”可以将材料清单输出成*.xls文件。图11元件清单图12 完整的电子时钟
24、原理图4 PCB版图设计4.1导入原理图设计数据当设计好原理图后,打开之前建立好的PCB文件。点击【Design】、【Import Changes From shizhong.PrjPcb】。选择“Validate Changes”,系统会对所有的元件信息和网络信息进行检查。点击“Execute Changes”,如果没有错误,所有的元件和连线会自动加入到PCB文件中的元件空间中。若有错误,则需要进行相应的改正。4.2PCB板型设计及元件布局点击“Keep out layer ”然后用line工具画一个框,即为电路板的大小。当布线超出这框时,元器件即变为绿色,表面违法规则。把网表和元器件封装更
25、新到PCB文件上后,所有元器件便全部更新到PCB上了,但是此时元器件分布过密,甚至出现重叠现象。合理的元器件布局是PCB布线的关键。元器件布局是将元器件封装按一定的规则排列、摆放在电路板中。布局的方式有两种,一种是交互式布局,另一种是自动布局。一般采用在自动布局的基础上用交互式布局进行调整。4.3 PCB网络布线在PCB板上走线的首要任务就是要在PCB板上走通所有的导线,建立起所有需要的电气连接,这在高密度的PCB设计中很具有挑战性。在能够完成所有走线的前提下,布线的要求有:走线长度尽量短和直,在这样的走线上电信号完整性较好;走线中尽量少地使用过孔;走线的宽度要尽量宽;输入输出端的边线应避免相
26、邻平行,平行则容易产生耦合。自动布线是一个优秀的电路设计辅助软件所必需的功能之一。对于散热、电磁干扰及高频等要求较低的大型电路设计来说,采用自动布线操作可以大大地降低布线的工作量,同时,还能减少布线时的漏洞。如果自动布线不能够满足实际工程设计的要求,可以通过手动布线进行调整。完成元件布局后,点击【Auto Route】,选择自动布线的策略。对于双层电路板,单击“All”进入自动布线状态,可以看到PCB上自动布线的全过程,同时显示相应的信息框。制作出的PCB板如下图。图13 设计好的PCB4.4 设计规则DRC检查点击【Tools】、【Design Rules Check】,单击对话框中的“El
27、ectrical”选项,弹出在线检查一并检查对话框。勾选相应的选项,单击运行,即可进行DRC检查,其结果或反映在信息面板中。如果选中了生成报告文件,设计检查结束后,会生成一个有关短路检测、断路检测、安全间距检测、一般线宽检测、过孔内径检测等项目情况报表。生成报表如下:图14 设计规则验证报告4.5 覆铜编辑及补泪滴处理为了增强PCB的抗干扰能力,要对各布线层中的底线网络进行覆铜。在焊盘或过孔与布线的连接处补泪滴,可以有效加大布线和焊盘之间的连接强度。以下是经过覆铜和补泪滴处理的PCB板。图15 进一步处理后的PCB板4.6 PCB的3D显示首先按下键盘数字键“3”,显示无元件的PCB板。图16
28、 PCB板3D显示点击【View】、【Legacy 3D View】,系统产生一幅带有元件3D模型的PCB板图。图17 完整的3DPCB模型5仿真分析Proteus是世界上著名的EDA工具(仿真软件),它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051。在编译方面,它支持IAR、Keil和MPLAB等多种编译器。图18 仿真原理图启动仿真后,液晶显示屏出现日期及时间显示
29、。图19 仿真结果1按下第一个按键,光标依次在年、月、日、时、分、秒下移动。图20 仿真结果2按下第二个键,光标对应位置的数字增加。图21 仿真结果3按下第三个键,光标对应位置的数字减小。图22 仿真结果4仿真分析:由仿真结果得出,系统设计正确地实现了设定的全部功能。设计是有效的。6 小结体会作为电子专业的学生,掌握EDA软件是十分重要的,熟练使用各种EDA软件对以后的学习研究、工作都很有帮助。本次课程设计我们重点掌握了Altium Designer的使用方法。之前用Protel时候,感觉可操作性不是那么强悍,换句话说就是有点老,Altium Designer这个软件应该说是继承了Protel
30、的许多优点,并且拥有更好的人机交互界面。最吸引我的是多种PCB3D显示,它可以让我更直观的看到自己设计的产品。通过一个星期的学习,我基本掌握了原理图的画法,掌握了画元件封装图的方法。学会了画PCB的基本方法以及一些高级技巧。在制作PCB的过程中,通过对布线学习使我认识到PCB虽然可以采用自动布线,但是自动布线有许多缺点,看起来不是太美观。采用手动布线,不仅使电路美观了许多,而且也锻炼了自己的动手能力。由于自己经验的不足,采用自动布线与手动布线结合的方式。在摆放器件时,使一些插件放在板子边缘,一些芯片放在板子中间,相应的原件尽量靠近,这样减少了许多线路,也适用于实际。对我而言,此次课程设计的过程
31、中我遇到了许多挫折,如软件使用中的很多问题,但我认为挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆。此次课程设计也使我懂得了把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,以及其中很多功能应用还未有深刻理解,要通过不断的实用和查找资料来完善自己此方面的能力。参考文献1 谢自美.电子线路设计实验测试(第三版).华中科技大学出版社2 康华光.电子技术基础模拟部分.高等教育出版社,200
32、53 三恒星科技. Altium Designer6.0易学通.人民邮电出版社,20064 穆秀春等.轻松实现从Protel到Altium Designer.电子工业出版社,20115郭天祥.新概念51单片机C语言教程.电子工业出版社,20096 李群芳.单片微型计算机与接口技术(第4版).电子工业出版社附录 部分程序1. DS12C887读写子程序ucharDS_read(ucharaddr)uchards_data;DS_DS = 1;DS_RW = 1;DS_AS = 1;DS_CS = 0;P0 = addr;DS_AS = 0;P0 = 0xff;DS_DS = 0;ds_data
33、= P0;DS_DS = 1;DS_AS = 1;DS_CS = 1;return ds_data;void DS_write(ucharaddr, ucharWdata)DS_DS = 1;DS_RW = 1;DS_AS = 1;DS_CS = 0;P0 = addr;DS_AS = 0;P0 = Wdata;DS_RW = 0;DS_RW = 1;DS_AS = 1;DS_CS = 1;2. LCD显示程序#include #include lcd_display.h#include char_lcd.huchar code dis4 = 0123456789;uchar code ini
34、tdisp = Date:2000-00-00 Time:00:00:00;/uchar code DT_place = 7,10,13,21,24,27;uchar code DT_lcdplace = 0x07,0x0a,0x0d,0x45,0x48,0x4b;uchar code DTdata_addr = 9,8,7,4,2,0;ucharDTdata_tab = 0,0,0,0,0,0;uchar code chars86 = set , , year , month, day , hour ,minute,seconduchardata_h,data_l;void data_wr(
35、)uchari;for(i=5; i=0; i-)*(ds_addr+(DTdata_addri)=DTdata_tabi;void data_pro()uchari;for(i=0; i6; i+)DTdata_tabi=*(ds_addr+DTdata_addri);data_hl();void data_hl()uchari;for(i=0; i6; i+)if(i=3)if(DTdata_tabi&0x80)!=0)DTdata_tabi=(DTdata_tabi&0x7f)&0x7f;data_h=DTdata_tabi/16;data_l=DTdata_tabi%16;lcd_po
36、s(DT_lcdplacei);lcd_wdat(data_h+48);/0=48lcd_wdat(data_l+48);/0=48void date_init(void)/diaplay date:uchari;lcd_pos(0x00);for(i=0; i15; i+)lcd_wdat(initdispi);lcd_pos(0x40);for(i=16; i29; i+)lcd_wdat(initdispi);3. 主函数void main(void)*(ds_addr+10)=0x20;*(ds_addr+11)=0x22;lcd_init();date_init();while(1)data_pro();/datapro();data_hl();key();本科生课程设计成绩评定表姓名性别专业班级课程设计题目:基于C51单片机的实用电子时钟设计课程设计答辩或质疑记录:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字:年月日