ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:361.59KB ,
资源ID:3753535      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3753535.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电器课程设计电子钟.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电器课程设计电子钟.docx

1、电器课程设计电子钟一、 设计要求说明及设计方案介绍1.1 设计要求设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟的启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟的启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整按键再次进入时钟运行状态1.2 设计概要使用51单片机提供精确定时;使用8位7段数码管显示时、分、秒;采用24小时制,将第三块和第六块显示横杠使显示更美观;使用普通按键开关进行功能选择和时间调整。1.3 总体设计方案说明 数字电子钟的设计与制作可

2、采用数字电路实现,也可以采用单片机来完成。若用数字电路完成,所设计的电路相当复杂。若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低。本设计基于单片机技术原理,以单片机芯片AT89S52 作为核心控制器,通过硬件电路的制作及软件程序的编制,利用单片机的控制作用通过LCD来直接显示、时、分、秒,并能对其分别进行修改的功能,设计框图如图1.1。二、硬件系统设计方案21 AT89S52单片机介绍AT89S52是一款低功耗、高性能CMOS8位单片机,片内含4K Bytes ISP(In-system programmable)的可反复擦

3、写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,AT89S51在众多嵌入式控制应用系统中得到广泛应用。 AT89S52具有以下标准功能:4K字节ROM, 256字节RAM,32个外部双向输入/输出(I/O)口,5个中断优先级、2层中断嵌套,2个16位可编程定时器/计数器 2个全双工串行通信口, 看门狗(WDT)电路,片内晶振及时钟电路。其双列直插式封装芯片引脚排列参见图2.1。图2.1 AT89S52引脚图22 单片机最小系统221 电源电

4、路电源电路的设计采用USB或直流电源供电的形式。供电电路如图2.2 图2.2 电源供电图222 复位电路复位电路就是在RST端(9脚)外接的一个电路,目的是当单片机上电开始工作时,内部电路从初始状态开始工作,或者在工作中要想人为的让单片机重新从初始状态开始工作,在时钟工作的情况下,只要AT89S52的复位引脚高电平保持两个机器周期以上的时间,AT89S52便能完成系统重置的各项动作,使内部特殊功能寄存器之内容均被设成已知状态,并且从地址0000H处开始读入程序代码而执行程序。如图2.3所示,由C3和R1构成上电复位电路,S1实现开关复位。 图2.3 (上电)复位电路图223 晶振电路单片机本身

5、是一个复杂的同步时序电路,为保证同步工作方式的实现,必须提供时钟信号,以使其系统在时钟信号的控制下按时序协调工作。单片机的时钟电路由振荡电路和分频电路组成,其中振荡电路由反向器以及其并联外接的石英晶体和电容构成,用于产生振荡脉冲。而分频电路则用于把振荡脉冲分频,以得到所需要的时钟信号。具体见图2.4。224 程序加载电路在计算机中编写好的程序通过数据下载线连接到单片机实验电路插接口(ISP),实现从计算机将程序下载到单片机的程序存储器中完成单片机的程序写入工作。详见图2.5。图2.4 外部晶振电路图图2.5 程序加载模块23 键盘电路采用独立式键盘,独立式键盘的按键相互独立,每个按键接一根I/

6、O口线,一根I/O口线上的按键工作状态不会影响其它I/O口线的工作状态。因此,通过检测I/O口线的电平状态,即可判断键盘上哪个键被按下。键盘电路如图2.6。图2.6 独立式按键模块24 显示电路可以给出共同的正向电压,然后通过控制负极的电压来控制二极管的发光或者熄灭。要电器特性参数和芯片的驱动能力准许,完全可以通过控制负极的电压来控制二极管的发光或者熄灭。这种连接方式的数码管又叫做共阳极数码管。本次电路设计了一组数码管显示电路,8只数码管可以单只驱动也可动态显示8位数码管。通过上拉电阻及三极管的反相作用共同实现数码管的输出与控制信号。显示部分电路如图2.7。 图2.7 数码管显示电路25 总体

7、电路图 详见附录A 三、软件系统设计方案3.1系统主程序图3.1 数字电子钟主程序流程图主程序流程图如上图3.1所示,初始化后显示“P. ”准备状态,然后调键盘扫描程序判断启动键(键A)是否按下,若按下则定时器、中断初始化,开启中断,调键盘扫描程序,判断启动(键A)是否按下,未按则等待中断,进入开始计时即显示时间开始;若开启按键(键A)再次按下,则时、分、秒按键可以调整时间了。调整完毕再按启动按键时间开始正常计时。3.2中断服务程序 图3.2 中断服务程序流程图中断服务程序主要功能是进行计时操作。当定时器计满一秒后发生定时器0中断,秒值加一。判断是否计满60s,满则分值加一,否则返回。同理对时

8、进行判断。中断服务程序流程如图3.2所示。3.3加一子程序加1子程序用于完成对秒、分、时的加1操作,中断服务程序中在秒、分、时共有三处调用此子程序,在秒、分、时调整是也有三处调用此子程序。程序流程图如图3.3所示。图3.3 加一程序流程图3.4键扫描及键处理子程序独立式键盘的程序设计一般把键盘扫描程序设计成子程序,以便其它各程序调用。程序设计采用查询法。包括判断有无键按下子程序与键盘扫描子程序,程序流程图见图3.4。图3.4 键扫描子程序流程图3.5显示程序为了存放显示的数字或字符,在内部RAM中开辟显示数据缓冲区,其单元个数与显示器数码管的位数相同。显示缓冲区8个显示缓冲单元地址依次为30H

9、37H,则显示缓冲单元与LED显示器数码管对应关系为:LED7LED6LED5LED4LED3LED2LED1LED037H36H35H34H33H32H31H30H 动态扫描从右向左进行,则缓冲区首地址应为30H。LED显示器动态显示过程为:从P0口输出字形代码,字形代码通过LED数码管的dpa端加到8个LED上,从P2口输出位控代码,位控代码通过LED数码管的位控端(LED数码管的公共极)加到8个LED上。显示程序流程图如图3.5。图3.5 显示子程序流程图四、设计总结41 设计结果及误差分析将程序导入单片机后,上电或按键复位数码管显示准备状态提示符“P.”;能通过按键对电子钟进行时间调整

10、并能正常运行显示时间。通过一段时间的正常运行后发现该电子钟存在一定的误差,误差的产生有以下几个方面的原因:首先,此次设计虽说是采用软件的方法产生1s的基本时间,然而定时器/计数器并不能进行标准的1s定时,而是产生一个基准时间后进行循环计数来得到1s,但CPU执行代码需要12us的时间,因此实际产生的1秒、1分、1小时都会略大于理论时间,此外,单片机也会受硬件系统的影响,而且也易受到外界因素的影响,比如温度、湿度等的干扰。42 心得体会 本次设计从前期硬件电路的制作到后期程序的编写最终实现电子钟计时前后历时一个星期。不管是制板还是编程其间都遇到了不少挫折与困难。第一次制PCB板就因为绘制PCB图

11、时设置的导线太细加上转印缺乏经验和腐蚀时间掌握不好,导致板子报废。第二次制板当然因为第一次制作失败心有余悸,但由于是第二次做,制作程序和小技巧都轻车熟路了,完成了让自己比较满意的电路板的制作,很有成就感。后期编程同样不顺利。首先是对整个设计感到很茫然,设想的很简单,可就是不知道从哪里下手。后来朱老师在课堂上对程序设计思路的讲解提醒了我,可以将整个程序分成多个子程序,这样主程序主要是子程序的调用就变得简洁清楚了。通过查阅资料和请教同学,我终于理清了整个程序流程,然后着重进行子程序编写。在写程序的过程中经常会对一些指令功能感到陌生,通过翻阅课本和上网查阅,使我对指令和常用程序的功能有了更清楚的了解

12、。譬如说十进制调整指令。在课堂上没听明白,因为在平时编写小程序基本上不用,所以一直也没想要弄清楚。但在设计过程中必须用到DB指令对要显示的数据进行处理,所以上网把指令的具体操作过程弄清了。设计过程中,遇到问题就得解决问题。解决的过程有时兴奋有时烦躁,但解决之后都是特别有满足感的。参考文献1李广弟,朱月秀,冷祖祁.单片机基础M.第三版.北京:航空航天大学出版社,2007.6.2清源计算机工作室.Protel 99SE原理图与PCB及仿真.北京:机械工业出版社,20043阎石.数字电子技术基础.北京:高等教育出版社,20064康华光等.电子技术基础(模拟部分).北京:高等教育出版社,2006 辞

13、谢 首先我要感谢我的指导老师朱老师。上学期他教授我们单片机基础这门课程,他对理论知识清楚细致的讲解让我具备了完成本次课程设计必需的理论基础。同时他严谨务实,敦促我认真完成每一次作业和实验,这些都为我的设计的顺利完成奠定了基础。 其次我要感谢给予我不同帮助的班上同学们,每次遇到问题都会就近找高手寻求解决,感谢你们的不吝赐教。很多时候你们都能为我解决疑团和困惑,衷心地觉得,你们真是太强了! 最后,感谢您对拙作的审阅。附录A总体电路图附录B程序清单 ORG 0000H AJMP MAIN ORG 000BH LJMP INTT0 ;计数器T0中断入口地址 ORG 0030HMAIN: MOV SP,

14、#60H ;栈顶地址确立堆栈区 MOV PSW,#00H ;选择当前通用寄存器第0组 MOV R0,#20H ;RAM区首地址 MOV R7,#5FH ;RAM区单元个数QL: MOV R0,#00H ;RAM(位寻址区和用户RAM区)清零 INC R0 DJNZ R7,QL MOV IP,#02H MOV IE,#82H ;中断初始化, MOV TMOD,#01H ;定时器0工作方式1 LCALL DP ;送P.显示编码NEXT: LCALL DISP ;调显示程序 LCALL KEY ;调键扫子程序 JB ACC.0,RUN ;A键按下运行 SJMP NEXTRUN: LCALL BUF

15、;调待显数据传送子程序 LCALL TIME ;调电子钟计时准备子程序JK: LCALL DISP ;调用显示子程序 LCALL KEY ;按键检测子程序 JZ JK LCALL ADJUST ;调键调整子程序 LCALL DISP ;调用显示子程序 SJMP JK;-P点显示编码 DP: MOV 37H,#17 ;P点编码送寄存器 MOV R0,#30H MOV R7,#07HDP1: MOV R0,#16 INC R0 DJNZ R7,DP1 ;30H36H 灭,37H P. RET ;-键扫子程序 KEY: LCALL KS ;调“判断有无键按下”子程序 JZ EXIT ;没有键按下转到

16、返回 LCALL DISP LCALL DISP ;调显示去抖动 LCALL KS JZ EXIT MOV B,A ;保存键值LK1: LCALL KS JZ LK2 ;键释放,转到恢复键值 LCALL DISP ;调显示子程序延时 AJMP LK1 ;继续查询等待键释放LK2: MOV A,B ;键值送回累加器返回EXIT: RET KS: MOV P1,#0FFH ; “判断有无键按下”子程序 MOV A,P1 ;P1口值送累加器A CPL A ;A值取反 ANL A,#0FH ;保存P1口的低4位 RET;-键调整程序 ADJUST: CLR EA ;关中断CHECK: JB TR0,J

17、R ;判断是否运行K0: CJNE A,#01H,K1 AJMP RUN1 ;A键按下转运行K1: CJNE A,#02H,K2 AJMP KEY1 ;转时调整K2: CJNE A,#04H,K3 AJMP KEY2 ;转分调整K3: CJNE A,#08H,OUT AJMP KEY3 ;转秒调整JR: JB ACC.0,STOP AJMP OUTKEY1: MOV R0,#45H ;时调整 LCALL ADD1 CLR C CJNE A,#24H,BUF ACALL CLR0 AJMP BUFKEY2: MOV R0,#43H ;分调整 LCALL ADD1 CLR C CJNE A,#60

18、H,BUF ACALL CLR0 AJMP BUFKEY3: MOV R0,#41H ;秒调整 ACALL ADD1 CLR C CJNE A,#60H,BUF ACALL CLR0;-显示数据送显示缓冲区 BUF: MOV 30H,40H ;秒显示单元41H-42H MOV 31H,41H ;秒十位 MOV 32H,#18 ; - MOV 33H,42H ;分显示单元43H-44H MOV 34H,43H MOV 35H,#18 ; - MOV 36H,44H ;时显示单元44-45H MOV 37H,45H RETSTOP: CLR TR0 ;关电子钟并跳出 RETRUN1: LCALL

19、TIME ;运行电子钟OUT: SETB EA ;无键按下或完成功能跳出RET;-电子钟计时准备 TIME: SETB EA MOV TL0,#0B0H MOV TH0,#3CH MOV R4,#20 ;50ms,20次循环 SETB TR0 ;启动定时器0 RET;-定时中断 INTT0: PUSH ACC PUSH PSW CLR ET0 CLR TR0 MOV TL0,#0B0H ;重新设定定时初值 MOV TH0,#3CH SETB TR0 ;启动定时器0 DJNZ R4,BUF0 ;1秒到ADDS: MOV R4,#14H ;20次计数 MOV R0,#41H ;放置秒十位 ACAL

20、L ADD1 ;加1程序 CLR C CJNE A,#60H,ADDM ;1分到ADDM: JC BUF0 ACALL CLR0 MOV R0,#43H ACALL ADD1 ;加1程序 CLR C CJNE A,#60H,ADDH ;1小时到ADDH: JC BUF0 ACALL CLR0 MOV R0,#45H ACALL ADD1 ;加1程序 CLR C CJNE A,#24H,HOUR ;1天到HOUR: JC BUF0 ACALL CLR0BUF0: MOV 30H,40H ;秒显示单元41H-42H MOV 31H,41H MOV 32H,#18 ; - MOV 33H,42H ;

21、分显示单元43H-44H MOV 34H,43H MOV 35H,#18 ; - MOV 36H,44H ;时显示单元44-45H MOV 37H,45H POP PSW POP ACC SETB ET0 RETI;-时间清零子程序 CLR0: CLR A MOV R0,A DEC R0 MOV R0,A RET;-加一子程序 ADD1: MOV A,R0 ;取十位(存在41H低四位) DEC R0 SWAP A ORL A,R0 ;组合十位与个位 ADD A,#01H ;加1 DA A ;十进制调整 MOV R3,A ;暂存 ANL A,#0FH ;屏蔽十位 MOV R0,A ;放入个位单元

22、 MOV A,R3 ;取值 INC R0 SWAP A ANL A,#0FH ;屏蔽个位 MOV R0,A ;放入十位单元 MOV A,R3 ;数值放入A中等待判断 RET;-显示子程序 显示缓冲区30H37H DISP: PUSH DPH PUSH DPL PUSH ACC PUSH PSW CLR RS1 ;改变当前寄存器组为组1 SETB RS0 MOV R1,#30H ;显示缓冲存储单元首地址 MOV R2,#0FEH ;从右至左显示 MOV R5,#08H ;循环次数,即驱动数码管的位数DISP1: MOV A,R1 MOV DPTR,#TAB MOVC A,A+DPTR MOV P

23、0,A ;送段控 MOV P2,R2 ;送位控 LCALL DL ;延时1毫秒 MOV A,R2 ;位控码送A RL A ;获得新的位控码 MOV R2,A ;保存新的位控码 INC R1 ;获得新的显示缓冲单元地址 DJNZ R5,DISP1 ;循环没有结束则继续 POP PSW ;恢复当前寄存器组的组号 POP ACC POP DPL POP DPH RETDL: MOV R7,#02H ;延时1msDL1: MOV R6,#0FFHDL2: DJNZ R6,DL2 DJNZ R7,DL1 RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80

24、H ;显示0-8 DB 90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,0BFH ;显示9,A,B,C,D,E,F,灭,p.,- RET END附录CPCB图元器件布局图 附录D元器件清单Part TypeDesignatorFootprint 1KR12RES470RP7RES1KR13RES470R26RES1kR2RESBELLLS1BELL2kR01RESCCN2JX2JP2 10kJ5JP9 CCN2J1JP2 10kJ2JP9 CCN8JP2J8 12MHzY1JINZHENG CCN8JP1J8 22uFC3CAPACITOR CCN8JP3J8 3

25、3pFC1CAP CCN8JP4J8 33pFC2CAP LEDD6LED200R1RESLEDD5LED470R07RESLEDD4LED470R22RESLEDD8LED470R20RESLEDD9LED470R21RESLEDD7LED470R04RESLEDD3LED470R05RESLEDD1LED470R06RESLEDD2LED470R00RESLEDJ1DIP12470R02RESLEDJ2DIP12470R03RESPNPQ4 9012PNP470RP3RESPNPQ3 9012PNP470RP5RESPNPQ6 9012PNP470RP6RESPNPQ5 9012PNP470RP4RESPNPQ2 9012PNP

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1