资源预览内容
第1页 / 共23页
第2页 / 共23页
第3页 / 共23页
第4页 / 共23页
第5页 / 共23页
第6页 / 共23页
第7页 / 共23页
第8页 / 共23页
第9页 / 共23页
第10页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
1 设计课题任务、功能要求说明及总体方案介绍1.1 设计课题任务 通过理论设计和实物制作解决相应的实际问题,巩固和运用在单片机技术中所学的理论知识和实验技能,掌握单片机应用系统的一般设计方法,提高设计能力和实践动手能力,为以后从事电子电路设计、研发电子产品打下良好的基础。1.2 功能要求说明设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。1.3 设计课题总体方案介绍及工作原理说明方案一:采用时钟芯片DS1302,该芯片可以进行时分秒的计数,DS1302通过串行方式与单片机进行数据传送,向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、闰年天数自动进行调整,但是需在单片机外部扩展,电路较复杂,成本较高。方案二:采用单片机内部定时器,用软件对其进行秒、分、时的计数,单片机无法产生1s的定时时间,但是可以用硬件定时和软件计数相结合的方法实现,采用中断方式,即通过中断服务程序进行计数器溢出次数的累计,把定时器/计数器设定为10ms,计数溢出100次就可以得到1s,计60次为1分,60分计60次则为1小时,然后通过数码管动态刷新显示出来,再设四个按键进行时间的调整,一个键用作启动/调整键,其余三个分别用于时、分、秒的调整。方案二不需要外部扩展芯片,电路较简单,成本较低,这里选用方案二。2 数字电子钟硬件系统的设计2.1 硬件总体设计 硬件系统总体设计如图2.1所示。USB接口电源 数码管显示电路 复位电路 A T 8 9 C 5 2 时钟电路数码管驱动电路 独立键盘图2.1 硬件系统总体设计2.2 数字电子钟硬件系统主要模块功能简要介绍(1) 功能芯片:本次设计采用ATMEL公司生产的AT89C52芯片,AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可提供许多较复杂系统控制应用场合。(2) 电源和复位模块:AT89C52需5V电压,所以可以采用USB接口的5V电源对其供电,复位电路可采用上电复位、按键电平复位、按键脉冲复位3种,本次采用按键电平复位。复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序,并使其它功能单元处于一个确定的初始状态。本复位电路采用的是按键复位,它是通过复位端经电阻与VCC电源接通而实现的,它兼具上电复位功能。因本系统的晶振的频率为12MHz,所以,复位信号持续时间应当超过2s才能完成复位操作。如电路原理图中的电源和复位模块。(3) 显示模块:系统采用动态显示方式,用P0口来控制LED数码管的段控线,而用P2口来控制其位控线。动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。8个欧姆电阻则起限流作用。电路结构采用动态扫描的方式,所有数码管的段控端公用单片机P0口的8根输出口线,数码管的段控端a、b、c、d、e、f、g、dp分别接到P0口的P0.0、P0.1、P0.2、P0.3、P0.4、P0.5、P0.6、P0.7口线上,每个数码管的位控线单独占用单片机P2口一根输出口线,8位数码管从高位到低位分别接P2.0P2.7引脚。段控码(低电平有效)由P0口输出经上拉电阻上拉电压后送到数码管的段控端,位控码由P2口输出经三极管S9050驱动后送到数码管的位控端。(4) 键盘模块:本系统采用的是独立式键盘结构,每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。它软件是采用查询式结构,首先逐位查询每根I/O口线的输入状态,如某一根I/O口线输入为低电平,则可确认该I/O口线所对应的按键已按下,然后,再转向该键的功能处理程序。(5) 时钟模块:在AT89C52芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。而在芯片内部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。如电路原理图中的晶振电路。2.3 数字电子钟电路原理图、PCB图、元器件布局图数字电子钟电路原理图见附录A。数字电子钟PCB图见附录B。数字电子钟元件布局图见附录C。2.4 数字电子钟元器件清单 数字电子钟元器件清单见附录D。3 数字电子钟软件系统的设计3.1 数字电子钟使用单片机资源的情况(1) 在AT89C52的P0口和P2口外接八个数码管,用P0口作数码管的段控码输出口(P0.0-P0.7对应于数码管的a-dp),P2.7-P2.0作数码管的位控码输出(P2.7-P2.0对应于LED7-LED0)。(2) 定时器0以中断方式工作,工作方式1。(3) 定时器控制寄存器TCON,通过设置该寄存器中TR0位的状态来控制定时/计数器0的启动/停止;中断允许寄存器IE,通过设置该寄存器EA/ET0位的状态来设置定时/计数器0中断允许/禁止;定时/计数器工作方式寄存器TMOD,设置定时/计数器0的工作方式。3.2 数字电子钟软件系统主要模块功能简要介绍(1) 主程序:主程序的主要功能是进行定时器/计数器,显示缓冲区的初始化,显示,以及判断是否有功能键按下,判断按下的键并调相应的键功能程序。(2) 键功能程序:键功能程序的主要功能是执行对应的功能,Menu键为启动/调整键,第一次按下则由待机状态进入运行状态启动时钟,从00-00-00开始显示,然后按下为奇数则暂停,进入调时状态,按下Sec键则秒加1,按下Min键则分加1,按下Hour键则时加1;若按下为偶数则进入时钟运行状态。(3) 中断服务程序:中断服务程序的主要功能是进行计时操作,程序开始先判断计数溢出是否满了100次,若不满100次则表明没有达到最小计时单位秒,则中断返回;若满100次表明已达到最小计时单位秒,则程序断续向下执行,进行分和时的计时。(4) 显示子程序:显示程序的主要功能是将显示缓冲区的段控码正确的显示在数码管上,采用动态显示,从右向左循环点亮每一位数码管。(5) 键扫子程序:键扫子程序的主要功能是判断是否有键按下,是哪个键按下。3.3 数字电子钟软件系统程序流程框图(1) 主程序流程框图如图3.1所示。(2) 计时1秒子程序流程框图如图3.2所示。(3) 键扫子程序流程框图如图3.3所示。(4) 显示子程序流程框图如图3.4所示。(5) 键监控子程序流程框图如图3.5所示。 图3.1 主程序流程框图 图3.2 计时1秒子程序流程框图 开始返回图3.3 键扫子程序流程框图 图3.4 显示子程序流程框图图3.5 键监控子程序流程框图3.4 数字电子钟软件系统程序清单程序清单见附录E4 设计结论、仿真结果、误差分析4.1 数字电子钟的设计结论及使用说明该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。S2键为启动/调整键,S3键为加一键,S4键为减一键,S5键转换调节内容。操作步骤如下:(1) 将+5V电源接到电子钟电源插口上,接通电源开关。(2) 把电子钟电路板上的ISP程序下载线连接到计算机USB接口,在计算机上通过avr_fighter软件把电子钟程序下载到单片机内。(3) 电子钟程序下载到单片机以后,电子钟进入命令状态,显示“P.”。(4) 按下S2键,电子钟从0开始运行,此时LED7、LED6、LED4、LED3、LED1、LED0分别显示时、分、秒。(5) 再次按下S2键,电子钟进入调时状态,此时通过S3键、S4键、S5键分别调整电子钟的时、分、秒。按一下对应的值加一。调整到想要的时间后,再次按下S2键,电子钟将以用户调整时间为起点进入运行状态。4.2 数字电子钟的仿真结果本次设计的数字电子钟有三种状态:待机显示“P.”状态,显示学号效果,时钟运行状态,时钟调整状态。它们分别如图4.1、图4.2、图4.3、图4.4所示。图4.1 待机显示“P.”状态仿真结果图4.2 学号显示效果图4.3时钟运行状态仿真结果图4.4 时钟调整状态仿真结果4.3 数字电子钟的误差分析虽说采用软件方式来产生1s的基本时间,然而定时器/计数器本身不能产生标准的1s定时,产生一个标准时间之后进行循环计数得到1s,但CPU执行代码需要1-2s的时间,因此产生的1s,1分,1小时,都会略大于标准的时间。此外,单片机也易受外界环境的影响,比如温度、湿度等干扰。故应该让单片机工作在适宜的环境下,同时采用实时时钟芯片,这样能将误差降低到最小。4.4 设计重点、难点,体会及不足之处重点:单片课程设计考察的是一个人理论与实践相结合的能力,要求设计者具有一定的理论知识及动手操作能力。比如用Proteus软件进行单片机系统电路的仿真设计、Protel软件的使用、PCB板的硬件制作,Keil软件编写和调试汇编程序。难点:硬件电路的故障检测和修复,原理电路图的仿真设计,汇编程序的编写和调试。体会:现在来回想单片机的课程设计,有许多感触,从最开始接触单片机和汇编语言,到现在能独立完成一个课程设计。在本学期初期做PCB板时因布局的不科学导致最后的制作使用出现了许多麻烦,还有焊接的经验不足导致了虚焊;在C语言编程时,书本上的很多知识又学的很不扎实,程序基本语句理解不够透彻,导致编一个简单程序都需要大量时间且过于复杂,真是耗时耗力耗单片机内存。 不足之处:数字电子钟的设计由于采用的是用硬件定时和软件计数的方式产生的1s,而忽略了CPU执行指令所需的时间,故时钟显示不是很精确。每尽管经过修改,每小时仍然有1到2 秒的误差参考文献1
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号