电子钟-单片机课程设计_第1页
电子钟-单片机课程设计_第2页
电子钟-单片机课程设计_第3页
电子钟-单片机课程设计_第4页
电子钟-单片机课程设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机课程设计-电子钟单片机课程设计电子钟学 校:华东交通大学学 院:电气学院班 级: 设计者: 指导老师: 目录摘要 3一、设计目标 4二、设计要求及指标 4三、电路原理分析3、1单片机最小系统 5 3、2复位电路 63、3时钟电路 73、4 按键电路 8 3、5显示部分 8四、总电路图 11五、软件设计 12六、系统流程图 13七、总程序 14八、仿真调试 18九、心得体会 19十、器件清单 20XX一、参考文献 21摘要:数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。数字钟从原理上讲

2、是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。目前,数字钟的功能越来越强,并且有多种专门的大规模集成电路可供选择。从有利于学习的角度考虑,这里主要介绍以中小规模集成电路设计数字钟的方法。单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。经过了数字

3、电路设计这门课程的系统学习,特别经过了关于组合逻辑电路与时序逻辑电路部分的学习,我们已经具备了设计小规模集成电路的能力,借由本次设计的机会,充分将所学的知识运用到实际中去。本次课程设计要求设计一个数字钟,基本要求为数字钟的时间周期为24小时,数字钟显示时、分、秒,数字钟的时间基准一秒对应现实生活中的时钟的一秒。供扩展的方面涉及到定时自动报警、按时自动打铃、定时广播、定时启闭路灯等。因此,研究数字钟及扩大其应用,有着非常现实的意义。一 设计目的1掌握数字钟的设计、组装与调试方法。2熟悉集成元器件的选择和集成电路芯片的逻辑功能及使用方法。3熟悉仿真软件的使用。二 设计要求及指标21基本功能1)时钟

4、显示功能,能够正确显示“时”、“分”、“秒”。2)具有快速校准时、分、秒的功能。3)可增加设置三个以上闹钟的功能。三、电路原理分析键盘单片机锁存显示3.1 单片机最小系统单片机STC89C52简介ST89C52是低电压、高性能的CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存储数据存储器(RAM),器件采用高密度、非易失性存储技术生产,与标准MCS-51指令系统及8051产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash 存储单元,功能强大。ST89C52适合于许多较复杂控制应用场合。ST89C51单片机为40引脚双列直插

5、芯片,有四个I/O口P0、P1、P2、P3,每一条I/O线都能独立地做输出或输入。ST89C52 PDIP 管脚封装,如图所示:STC89C52包含以下部分(1)1个8位微处理器CPU(2)片内数据存储器(RAM)和特殊功能寄存器SFR(3)片内数据存储器(ROM)(4)两个定时/计数器T0、T1,可用作定时器,也可对外部脉冲进行计数(5)四个8位的可编程的并行I/O端口,每个端口既可以作输入,也可以作输出(6)一个串行端口,用于数据的串行通信(7)中断控制系统(8)内部时钟电路3.2复位电路MCS-51单片机的复位是由外部的复位电路来实现的,复位引脚ret通过一个施密特触发器和复位电路相连,

6、施密特触发器用来抑制噪声,在每个机器周期的s5p2,施密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作需要的信号。上电复位:上电复位电路是一个简单的复位电路,只要在RET复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到RET复位引脚一个短暂的高电平信号,这个信号随着VCC对电容的充电过程而回落,所以RET引脚复位的高电平的维持时间取决于电容的充电时间。为了保证系统安全员可靠的复位,ret复位引脚的高电平信号必须维持足够长的时间。电路图如下:3.3时钟电路时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的

7、一拍一拍的工作,因此,时钟频率直接影响单片机工作的速度,时钟电路的质量也直接影响单片机工作的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式,该课设采用的是内部时钟方式。MCS-51单片机内部有一个用于构成放大器的高增益反向放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2.这两个引脚接石英晶体振荡器的微调电容,就构成一个稳定的自激振荡器。3.4按键电路按键的开关状态通过一定的电路转换为高、低电平状态,按键闭合过程在相应的I/O端口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程处于高低电平只见的不稳定状态,称为抖动,

8、抖动持续时间的长短与机械特性有关,一般为510ms,为了避免CPU多次处理按键的一次闭合,应采取措施消除抖动,该课设采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生相互影响。电路图如下:3、5显示部分显示部分设计 (1)、静态显示方式:LED显示器工作在静态工作方式时,各位的共阴(或共阳)极连接在一起并接地(或接电源),这样显示器的亮度较高。但是这种显示方式占用口线太多且功耗很大;(2)、动态扫描方法 :动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码

9、的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。在进行数码显示的时候,要对显示单元开辟8个显示缓冲区,每个显示缓冲区装有显示的不同数据即可。 对于显示的字形码数据我们采用查表方法来完成,所以本次课设我们选用动态扫描法。将P1口作为段码显示,而P3口作为“位选”信号。数码管相关资料介绍图2.2数码管显示原理表2.1 部分8段LED段码显示字符共阳极段码共阴极段码0C0H3FH 1F9H06H2A4H5BH3B0H4FH499H66H592H6DH682H7DH7F8H07H880H7FH990H6FH四、总电路图五、软件设计5.1 KEILKEIL C51标准C编译器为8051微

10、控制器的软件开发提供了C语言环境,但是界面是英文的好多初学者看很多教程都是一头雾水。KEIL C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品,其效率已经达到了相当搞的程度。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。 Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。5.2 PROTEUSProteus软件是英国Labcenter

11、electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。六、系统流程图开始初始化 读日期、时间 写日期、时间 显示子程序 时间修改子程序日期修改子程序显示结果返回 开关控制子程序七、总程序ORG 0000H;主程序起始AdressLJMP START;主程序STARTORG 000BH;定时器T0中断起始AdressLJMP TIM0;定时器T0中断子程序TIM0START: MOV SP

12、,#70H;设置堆栈指针MOV 28H,#00H;设置显示位数扫描指针初值为0MOV 2AH,#12H;设置时钟显示寄存器初值为12HMOV 2BH,#00H;设置分钟显示寄存器初值为00HMOV 2CH,#00H;设置秒钟显示寄存器初值为00HMOV TMOD,#01H;设置定时器TO工作在方式1MOV TH0,#0F0H;定时器4ms的初值,即0F060HMOV TL0,#60H;初值的低8位MOV IE,#82H;定时器T0的中断允许MOV R4,#250;保证后面中断250次,即延时1秒SETB TR0;启动定时器;LOOP段为主程序中用于循环的扫描按键以检测外界输入对时、分、秒的设置

13、和修改LOOP: 0.0,N2;若没有秒键按下,就转去下一步检查分ACALL DELAY;延时5ms,键盘消抖MOV A,2CH;将秒寄存器的值载入累加器AADD A,#01H;A的内容加1DA A ;十进制调整MOV 2CH,A;A的值存入秒寄存器CJNE A,#60H,N1;看是否已经满60秒,若不是就继续检查MOV 2CH,#00H;满60秒就清空秒寄存器N1:JNB P0.0,$;秒键没有放开就继续循环等待ACALL DELAY;延时5ms,消除抖动N2:JB P0.1,N4;若分键没有按下就转去检查时钟ACALL DELAY;延时5ms,键盘消抖MOV A,2BH;将分存器的值载入累

14、加器AADD A,#01H;A的内容加1DA A ;十进制调整MOV 2BH,A;A的值存入分存器CJNE A,#60H,N3;看是否已经满60分,若不是就继续检查MOV 2BH,#00H;满60分就清空分寄存器N3:JNB P0.1,$;分键没有放开就继续循环等待ACALL DELAY;延时5ms,键盘消抖N4:JB P0.2,LOOP;若时没有按下,就转回去继续检查看是否有秒键按下ACALL DELAY;延时5ms,键盘消抖MOV A,2AH;将时寄存器的值载入累加器AADD A,#01H;A的内容加1DA A ;十进制调整MOV 2AH,A;A的值存入时寄存器CJNE A,#24H,N5

15、;看是否已经满24时,若不是就继续检查MOV 2AH,#00H;满24时就清空时寄存器N5:JNB P0.2,$;时键没有放开就继续循环等待ACALL DELAY;延时5ms,键盘消抖JMP LOOP;返回重新检查是否有键按下;定时器T0的中断子程序。每4毫秒中断一次,在该子程序中判断是否1秒计时到,并作相应的调整和处理,同时实现每4毫秒的显示更新TIM0:MOV TH0,#0F0H;重设初值MOV TL0,#60HPUSH ACC;现场保护PUSH PSWDJNZ R4,X2;计时一秒就退出继续中断MOV R4,#250;计时一秒ACALL CLOCK;调用计时子程序ACALL DISP;调

16、用显示子程序X2:ACALL SCAN;调用扫描子程序POP PSWPOP ACCRETI;中断返回;扫描子程序实现时分秒计时值在数码管上的输出和驱动显示,每一次只驱动显示6个数码管中的一个SCAN:MOV R0,#28HINC R0;显示扫描值加1 CJNE R0,#6,X3;扫描位数不为6就准备控制输出MOV R0,#00H;扫描位数为6,就令其置为0X3:MOV A,R0;扫描位数载入AADD A,#20XX;加上的20XX显示寄存器Adress)=各时间显示区AdressMOV R1,A;各时间显示区Adress存入R1MOV A,R0;扫描位数载入ASWAP A;将A的高低4位交换(

17、其高4位为扫描的位数,低4位为显示的数据值)ORL A,R1;将扫描值与显示数据结合MOV P1,A ;显示输出RET;计时子程序CLOCK:MOV A,2CH;秒寄存器值载入AADD A,#1 ;加1sDA A ;十进制调整MOV 2CH,A ;A的值存入秒寄存器CJNE A,#60H,X4;A不等于60秒就跳出程序去显示MOV 2CH,#00H;已经是60秒就清零MOV A ,2BH ;分寄存器值载入AADD A,#01H;加1分DA A MOV 2BH,A ;A的值存入分寄存器CJNE A,#60H,X4;A不等于60分就跳出程序去显示MOV 2BH,#00H;已经是60分就清零MOV

18、A,2AH;时寄存器值载入AADD A,#1;加1小时DA AMOV 2AH,A ;A的值存入寄存器CJNE A,#24H,X4;A不等于24就跳出程序去显示MOV 2AH,#00H;已经是24时就清零X4:RET;显示子程序,实现时分秒的计时值转换为BCD码并存储在以20XX起始Adress的显示输出数据存储单元里DISP:MOV R1,#20XX;20XX显示寄存器单元MOV A,2CH;将秒寄存器的内容存入AMOV B,#10H;设B累加器的值为10HDIV AB;A/B,商存入A ,余数存入BMOV R1,B;将显示的个位数存入20XX示寄存器单元INC R1 MOV R1,A;将显示

19、的十位数存入21H显示寄存器单元INC R1MOV A,2BH;将分寄存器的内容存入AMOV B,#10H;设B累加器的值为10HDIV AB;A/B,商存入A ,余数存入BMOV R1,B;将显示的个位数存入22H显示寄存器单元INC R1 MOV R1,A;将显示的十位数存入23H显示寄存器单元INC R1MOV A,2AH;将时寄存器的内容存入AMOV B,#10H;设B累加器的值为10HDIV AB;A/B,商存入A ,余数存入BMOV R1,B;将显示的个位数存入24H显示寄存器单元INC R1 MOV R1,A;将显示的十位数存入25H显示寄存器单元RET;延时5ms消除抖动DEL

20、AY:MOV R6,#60D1:MOV R7,#248D2:DJNZ R7,D2DJNZ R6,D1 RETEND八、仿真调试系统时钟误差分析时间是一个基本物理量,具有连续、自动流失、不重复等特性。我过的基准时间来自国家授时中心,人们日常使用的时钟都是以一定的精度与基准保持同步的。结合时间概念与误差理论,可以定义电子钟的走时误差S=S1-S2,S1表示程序实际运行计算所得的秒,S2表示客观时间的标准秒。S0时表示电子钟秒单元数值刷新滞后,即走时误差为“慢”,S0时表示电子钟秒单元数值刷新超前,即走时误差为“快”。本次设计的电子钟系统中,其误差来源主要包括晶振频率误差,定时器溢出误差,延时误差,

21、晶振频率产生震荡,容易产生走时误差;定时器溢出的时间误差,本应该在这一秒溢出,却在下一秒溢出,造成走时误差;延时时间过长或过短,都会造成与基准时间产生偏差,产生走时误差。软件调试问题及解决软件程序的调试一般可以将重点放在分模块调试上,统调试最后一环,软件调试可以采取离线调试和在线调试两种方式,前者不需要硬件仿真器。可以借助于软件仿真器即可,后者一般需要仿真系统的支持。本次课设,keil软件来调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。仿真不分采用protus软件,此软件功能强大,操作较为简单,可以很容易的实现各种系统的仿真。首先打开protus软件,在元件库中找到所有需要的元件,然后进行原理图的绘制,绘好后在选择已经编译好的文件,选择运行,观察运行结果,根据显示结果和课题要求再修改程序,再运行差错,知道满足要求为止。九、心得体会学贵以致用,通过几天的数字钟设计过程,将从书本上学到的知识应用于实践,学会了初步的电子电路仿真设计,虽然过程中遇到了一些困难,但是在解决这些问题的过程无疑也是对自己自身专业素质的一种提高。当最终调试成功的时候也是对自己的一种肯定。在当前金融危机大的社会背景下,能够增加自身砝码的不仅仅是一纸文凭证书,更为重要的是毕业生是否能够适应社会大潮流的需要,契合企业的要求即又较硬的动手操作及设计能力。此

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论