片机小系统电子钟的设计_第1页
片机小系统电子钟的设计_第2页
片机小系统电子钟的设计_第3页
片机小系统电子钟的设计_第4页
片机小系统电子钟的设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机技术与应用课程设计报告题 目: 单片机小系统电子钟的设计 院 (系): 信息科学与技术系 专业班级: 电子信息工程0901班 学生姓名: 王 海 毅 学 号: 20091186025 指导教师: 陈 青 20 12 年 6 月 11 日至2012 年 6 月 25 日华中科技大学武昌分校制 单片机技术与应用 课程设计任务书一、设计(调查报告/论文)题目课题一:单片机小系统电子钟的设计二、设计(调查报告/论文)主要内容设计制作要求:用80C51/52单片机编程控制显示的电子钟。1)要有8位LED显示器,分别显示 “年号:月份:日期”/“时:分:秒:毫秒”例如“2005。10。 20”表示“

2、2005年10月20日”/“10 52 49 99” 表示“10时52分49秒99毫秒”2)要有四位输入按键,功能分别是“移位”,“数字+”,“数字-”,“存储”即“SHIFT”,“NUM+”,“NUM-”,“SAVE”3)显示过程:实验板通电开机后,8位LED显示器显示“时:分:秒”按下“SHIFT”后第一位数字闪动,继续按下“SHIFT”后面数字闪动移位。再按“NUM+”数字增加,按“NUM-”数字减少,按“SAVE”储存修改结果。三、原始资料参看单片计算机原理课程设计指导书和教材。四、要求的设计(调查/论文)成果能够在制定的小系统板上成功演示,并通过验收回答相关问题,给出设计分数。五、进

3、程安排整个课程设计安排1周完成周一:1、讲解课题内容,2、同学自选课题,3、发放课题元器件,4、焊接电路板周二:1、完善电路板焊接,2、编写调试课题软件周三、四:编写调试课题软件周五:验收课题,回答课题程序内容。六、主要参考资料1 陈青.单片计算机原理课程设计指导书.华中科技大学武昌分校2012.1.82 姜志海.单片微机原理及应用.北京:电子工业出版社.2005.3 李群芳.肖看.单片机原理、接口及应用.北京:清华大学出版社.2005.指导教师(签名): 2012年 06月 11日目 录 TOC o 1-3 h z u HYPERLINK l _Toc297068452 1.课程设计的目的1

4、 HYPERLINK l _Toc297068453 2.课程设计题目描述和要求 1 HYPERLINK l _Toc297068454 3.课程设计报告内容 3 HYPERLINK l _Toc297068455 3.1 课题设计方案及基本原理3 HYPERLINK l _Toc297068456 3.2 硬件电路介绍 4 HYPERLINK l _Toc297068456 3.3 软件设计 4 HYPERLINK l _Toc297068457 3.4 调试过程4 HYPERLINK l _Toc297068457 3.5 遇到的问题及解决方法4 HYPERLINK l _Toc29706

5、8458 4.实验总结 5 HYPERLINK l _Toc297068459 参考资料5 HYPERLINK l _Toc297068461 附录1 硬件实物图7 HYPERLINK l _Toc297068462 附录2 源程序清单7课程设计的目的(1)单片机系统的整体设计流程。(2)能够正确安装和焊接硬件电路板。(3)单片机系统的硬件、软件调试方法及相关工具的使用。(4)各种常见元器件的选择及使用。2.课程设计题目描述和要求题目描述:电子钟的设计制作要求:用80C51/52单片机编程控制显示的电子钟。(1)要有8位LED显示器,分别显示“年号:月份:日期”/“时:分:秒:毫秒”先显示年份

6、再显示日期。(2)可以设置四个输入按键,功能分别是“移位”,“数字+”,“数字-”,“存储”,即“SHIFT”,“NUM+”,“NUM-”,“SAVE”。(3) 显示过程:实验板通电开机后,8位LED显示器显示“时:分:秒”。按下“SHIFT”后第一位数字闪动,继续按下“SHIFT”后面数字闪动移位。再按“NUM+”数字增加,按“NUM-”数字减少,按“SAVE”储存修改结果。(4)能够正确安装和焊接硬件电路板。拿到元器件后,用万用表对电子元器件进行参数测量、检查。焊接时,要焊点饱满、光洁,无虚焊、漏焊、错焊。(5)熟悉单片机系统的工作原理及调测方法。软硬件安装调测完成后根据系统的工作原理、过

7、程、测试数据及遇到的问题与处理情况、体会等完成课设报告。3.课程设计报告内容3.1课题设计方案及基本原理通过对单片机AT89C52软件编程来控制硬件使数码管显示年份与时间,并且可以通过按键来控制时间及年份的修改。基本原理:单片机AT89C52 P0.0P0.3来判断按键是否按下,当按键按下时,P0.0P0.3为低电平,单片机程序对应为00H。通过P1,0P1.3控制4511的4个输入端,进行译码输出,4511的输出端7段段码送数码管显示。P1.4P1.7控制4028的4个输入端进行位选输出9个状态,然后经过两个2003进行驱动让数码管能按按键要求显示。3.2 硬件电路介绍电路原理图:CD402

8、8 是BCD码410译码器,它由4个缓冲输入端口、译码逻辑门和10个缓冲器组成。加至四个输入端口A0A3的一个BCD码在十个十进制译码器输出十个相应的顺序脉冲,输出为高电平有效。同样,若A30,加在输出口具有高驱动能力,以在高输出应用中增强直流和动态性能。BCD十进制译码器4028的引脚图如上页原理图中所示。3.3 软件设计基本思路:(1)动态扫描显示LED电路程序: 设立8个内部RAM 显示缓冲区 ,将要显示的数据的BCD码送显示缓冲区,程序只需要将显示缓冲区的BCD码,送相应的端口即可。动态扫描显示 例如:将40H-48H 为“时:分:秒:毫秒”显示区 将49H-4FH 为“年:月:日”显

9、示区(2)动态扫描键盘程序: 循环扫描有无按键,有:判断是何按键,转入相应子程序处理。无:返回主程序执行。(3)定时器设置与时间处理的程序: 此段为该程序段的关键所在,它决定时间的准确性,和进位的正确性。定时器计数可用中断方式,也可以用软件查询方式进行。定时器中断定时方式的精确度高。采用软件延时方式要注意每条指令的机器周期的精确计算,否则会造成时间的不准。各项功能键的子程序模块:移位子程序:按下“SHIFT”后左边第一位数字闪动,继续按下“SHIFT”后面数字闪动移位。程序中可设置第二显示缓冲区,将移到要闪动的数字位设为不显示(黑)“0FFH/00H”,程序只需要将两组显示缓冲区的BCD码,分

10、时间间隔发送出去,就会产生数字闪动效果。数字+/-:将要显示的数据缓冲区的内容取出加一/减一,注意每个位都有自己的位限制,如“时”的位最大数23,“分、秒”最大数59,“月”最大数 12,“日” 最大数 31。两位数一起调整比较方便。还要注意的是计数后二/十进制之间的转换问题。“存储”:即将修改好的数值存储到显示缓冲区,并返回,进入主程序运行。软件设计流程图:开始 初 始 化 判断按键0是否按下是否判断40H的内容判断40H的内容为0为0为1为1显示日期显示时间否否判断按键1是否按下判断按键1是否按下是日闪烁毫秒闪烁再次按下按键1再次按下按键1按键2、3为加、减调整月闪烁秒闪烁再一次按下按键1

11、再一次按下按键1年闪烁分闪烁再一次按下按键1按下按键4时闪烁退出调整并保存3.4 调试过程(1)根据实验原理图焊接电路,然后进行硬件调试,用万用表点对点测量,看电路是否焊接好。特别是芯片的引脚,看是否连通,如:AT89C52芯片的18脚与信号连通的话,用示波器测量18脚时就会出现比较标准的正弦波。对按键进行测试时,如果按键没有按下,测量按键两端就会有大概5V的电压,如果按键两端没有电压,说明按键已经按下,按下后其已经接地。(2)然后进行软件编程,对其进行功能仿真,仿真时要对仿真器进行设置,不然会出现超出地址范围的错误。然后进行断点设置,观察运行状态,看外部寄存器中20H2AH中单元的变化,看是

12、否达到要求,编程时注意对于在后面将发生变化的寄存器单元要进行清零操作,不然会影响后面的结果,对于加操作后要进行十进制调整,并且DA A的指令只对寄存器A操作。(3)将编写好的程序用烧录器烧录到AT89C52芯片中,然后再安装到硬件电路板上,接通512V的电源后会先显示时间,按键切换以后将显示日期,再切换后毫秒会闪烁通过+按键可对其进行加操作,按键进行减操作。依次进行时间的修改,按保存后,再切换将进行从日到年对日期修改。3.5 遇到的问题及解决方法(1)当我把程序下载到AT89C52芯片中,然后再安装到硬件电路板上,接通512V的电源后,我发现LED数码管只有左边一半是亮的,我编的程序是让所有L

13、ED数码管都亮。解决方法:我用别人的硬件试了一下我的芯片所有LED数码管都亮了,这肯定是我的硬件电路的问题,我找老师帮忙,老师先用万用表检查控制显示的CD4028芯片是否接通,发现是好的,然后用示波器检查AT89C52左边引脚的波形,发现左边第三个引脚没有波形,其次又发现CD4028芯片有一个引脚也没波形,老师断定是我的CD4028芯片坏了,最后老师给我换了一个CD4028芯片,再测试后就好了。(2)编译后指令超出地址范围。解决方法:可以采用接力的方式先转到中间再转到所要转的地方,灵活运用指令就会解决一些问题。(3)按键不是很灵敏,按的太快没反应,或者按键反应太快了按一下跳好几下。解决方法:按

14、键延时时间太长或太短了,将延时时间调整到1020毫秒,就可以解决了。4.实验总结 对单片机AT89C52芯片内部结构以及各引脚功能有了进一步的了解,对硬件的焊接更加熟练,能基本做到不拖焊、虚焊,并且一次成功。第一次接触这么长程序的编写,思路开始很模糊,许多子程序不知道放哪里比较好,有时主程序也很模糊,通过参考别人的程序有了一定的思维,再根据自己的想法对别人的程序进行了一定的修改,就变为自己的东西,通过这次编写,我了解到思维逻辑性要在掌握程序的基础之上,这样才能做到有序,有条理。编写程序思路是很重要的,首先理清思路,画出程序流程图,根据流程图,一步步用指令实现。参考资料1 陈青.单片计算机原理课

15、程设计指导书.华中科技大学武昌分校2012.1.82 姜志海.单片微机原理及应用.北京:电子工业出版社.2005.3 李群芳.肖看.单片机原理、接口及应用.北京:清华大学出版社.2005.附录1 硬件实物图 ORG 0000H AJMP MAIN1 ORG 001BH AJMP T1INT ORG 0030HMAIN1: MOV SP,#70H ;初始化 CLR A CLR 20H.1 MOV TMOD,#20H MOV TH1,#06H MOV TL1,#06H SETB EA SETB ET1 SETB TR1 MOV 31H,#00H MOV 32H,#58H MOV 33H,#58H

16、MOV 34H,#23H MOV 35H,#27H MOV 36H,#02H MOV 37H,#12H MOV 38H,#20H MOV 40H,#0 ;标志位 MOV R0,#31H MOV R1,#32HLOPA:JNB 20H.1,NEXT1 CLR 20H.1 MOV A,#1 ADD A,31H ;到10毫秒 DA A MOV 31H,A CJNE A,#100H,NEXT1 MOV 31H,#0 MOV A,#1 ADD A,32H ;到一秒 DA A MOV 32H,A CJNE A,#60H,NEXT1 MOV 32H,#0 MOV A,#1 ADD A,33H ;到一分 DA

17、 A MOV 33H,A CJNE A,#60H,NEXT1 MOV 33H,#0 MOV A,#1 ADD A,34H ;到一时 DA A MOV 34H,A CJNE A,#24H,NEXT1 MOV 34H,#0 MOV A,#1 ADD A,35H ;到一天 DA A MOV 35H,A LCALL TIAO_TIAN MOV 35H,#01H MOV A,#1 ADD A,36H ;到一月 DA A MOV 36H,A CJNE A,#13H,NEXT1 MOV 36H,#01H MOV A,#1 ;到一年 ADD A,37H DA A MOV 37H,A CJNE A,#100H,

18、NEXT1 MOV 37H,#00H MOV A,#1 ADD A,38H DA A MOV 38H,A CJNE A,#100H,NEXT1 MOV 38H,#00H RET;-切换时间和年-NEXT1: JB P0.0,LOPB ;判断是否切换 JNB P0.0, $ MOV A,R0 CJNE A,#35H,LOPC MOV R0,#31H MOV R1,#32H LJMP LOPB LOPC: MOV R0,#35H MOV R1,#36H LOPB: LCALL DISP JB P0.1,LOP0;判断按键进入调整 JNB P0.1,$ LCALL LOP1 ;设置时间和日期LOP0

19、: LJMP LOPA;-调时间和日期-LOP1: JB P0.1,LOP2 ;判断是否退出调整 JNB P0.1,$ RETLOP2: JB P0.4,LOP3 ;判断是否移位 JNB P0.4,$ INC 40H ;指针加一 MOV A,40H CJNE A,#04H,LOP3 ;没有到最前两位 MOV 40H,#0LOP3: MOV A,40H ;判断是哪一位调整 CJNE A,#0,N_HAO_HUO_RI JB P0.2,LUOA ;进入加调整 JNB P0.2,$ MOV A,R0 ;调毫秒或者天数 CJNE A,#31H,AOP1 ;加毫秒 MOV A,#1 ADD A,31H

20、DA A MOV 31H,A CJNE A,#100H,LUOA MOV 31H,#0 LJMP LUOAAOP1: MOV A,#1 ;加天数 ADD A,35H DA A MOV 35H,A LCALL TIAO_TIAN LJMP LUOALUOA: MOV R4,#30HLUO1: LCALL DISP DJNZ R4,LUO1 MOV R4,#30HLUO2: LCALL DISP1 DJNZ R4,LUO2 LJMP LOP1N_HAO_HUO_RI:CJNE A,#1,N_MIAO_HUO_YUE JB P0.2,LUOB JNB P0.2,$ MOV A,R1 ;调秒或者月 C

21、JNE A,#32H,AOP2 MOV A,#1 ;加秒 ADD A,32H DA A MOV 32H,A CJNE A,#60H,LUOB MOV 32H,#0 LJMP LUOBAOP2: MOV A,#1 ;加月 ADD A,36H DA A MOV 36H,A CJNE A,#13H,LUOB MOV 36H,#01H LUOB: MOV R4,#30HLUO3: LCALL DISP DJNZ R4,LUO3 MOV R4,#30HLUO4: LCALL DISP2 DJNZ R4,LUO4 LJMP LOP1N_MIAO_HUO_YUE:CJNE A,#2,SHI_HUO_NIAN

22、GAO JB P0.2,LUOC JNB P0.2,$ INC R0 ;R0加2 INC R0 MOV A,R0 ;调分或者年低两位 CJNE A,#33H,AOP3 MOV A,#1 ;加分 ADD A,33H DA A MOV 33H,A CJNE A,#60H,LOPP1 MOV 33H,#0LOPP1:DEC R0 DEC R0 LJMP LUOCAOP3: DEC R0 DEC R0 MOV A,#1 ;加年低两位 ADD A,37H DA A MOV 37H,A CJNE A,#100H,LUOD MOV 37H,#0 LJMP LUOCLUOC: MOV R4,#30HLUO5:

23、 LCALL DISP DJNZ R4,LUO5 MOV R4,#30HLUO6: LCALL DISP3 DJNZ R4,LUO6 LJMP LOP1SHI_HUO_NIANGAO: JB P0.2,LUOD JNB P0.2,$ INC R1 INC R1 MOV A,R1 CJNE A,#34H,AOP4 MOV A,#1 ;加时 ADD A,34H DA A MOV 34H,A CJNE A,#24H,LOPP2 MOV 34H,#0 LJMP LOPP2 AOP4: DEC R1 DEC R1 MOV A,#1 ;加年高两位 ADD A,38H DA A MOV 38H,A CJNE

24、 A,#100H,LUOD MOV 38H,#0 LJMP LUOD LOPP2: DEC R1 DEC R1LUOD: MOV R4,#30HLUO7: LCALL DISP DJNZ R4,LUO7 MOV R4,#30HLUO8: LCALL DISP4 DJNZ R4,LUO8 LJMP LOP1;-月份天数的确定-TIAO_TIAN:MOV A,36H ;将月份数给A CJNE A,#02,NOT_2_YUE MOV A,37H CJNE A,#00H,DIV4;判断是否为闰年 MOV A,38H MOV 21H,A ANL A,#0F0H SWAP A MOV B,#10 MUL

25、AB MOV 22H,A MOV A,21H ANL A,#0FH ADD A,22H MOV B,#4 DIV AB MOV A,B CJNE A,#00H,PING_NIAN SJMP RUN_NIAN DIV4:MOV A,37H MOV 23H,A ANL A,#0F0H SWAP A MOV B,#10 MUL AB MOV 24H,A MOV A,23H ANL A,#0FH ADD A,24H MOV B,#4 DIV AB MOV A,B CJNE A,#00H,PING_NIAN SJMP RUN_NIANRUN_NIAN:MOV A,35H CJNE A,#30H,TIAO

26、1 MOV 35H,#01 SJMP TIAO1PING_NIAN: MOV A,35H CJNE A,#29H,TIAO1 MOV 35H,#01 SJMP TIAO1NOT_2_YUE: MOV A,36H CJNE A,#4,NOT_4 SJMP DAY30NOT_4: CJNE A,#6,NOT_6 SJMP DAY30NOT_6:CJNE A,#9,NOT_9 SJMP DAY30NOT_9:CJNE A,#11H,DAY31 SJMP DAY30DAY30:MOV A,35H CJNE A,#31H,TIAO1 MOV 35H,#01 LJMP TIAO1DAY31:MOV A,3

27、5H CJNE A,#32H,TIAO1 MOV 35H,#01TIAO1: RET;-定时-T1INT: PUSH ACC PUSH PSW INC 30H MOV A,#28H XRL A,30H JNZ STF MOV 30H,A SETB 20H.1STF: POP PSW POP ACC RETI;-显示-DISP: MOV A,R0 ORL A,#0F0H ANL A,#0FH MOV P1,A ACALL DEL1MS MOV A,R0 ORL A,#0FH SWAP A ANL A,#1FH MOV P1,A ACALL DEL1MSMOV A,R1 ORL A,#0F0H A

28、NL A,#2FH MOV P1,A ACALL DEL1MS MOV A,R1 ORL A,#0FH SWAP A ANL A,#3FH MOV P1,A ACALL DEL1MSINC R0 INC R0 INC R1 INC R1 MOV A,R0 ORL A,#0F0H ANL A,#4FH MOV P1,A ACALL DEL1MS MOV A,R0 ORL A,#0FH SWAP A ANL A,#5FH MOV P1,A ACALL DEL1MS MOV A,R1 ORL A,#0F0H ANL A,#6FH MOV P1,A ACALL DEL1MS MOV A,R1 ORL

29、A,#0FH SWAP A ANL A,#7FH MOV P1,A ACALL DEL1MS DEC R0 DEC R0 DEC R1 DEC R1 RETDISP1: MOV A,R1 ORL A,#0F0H ANL A,#2FH MOV P1,A ACALL DEL1MS MOV A,R1 ORL A,#0FH SWAP A ANL A,#3FH MOV P1,A ACALL DEL1MS INC R0 INC R0 INC R1 INC R1 MOV A,R0 ORL A,#0F0H ANL A,#4FH MOV P1,A ACALL DEL1MSMOV A,R0 ORL A,#0FH

30、SWAP A ANL A,#5FH MOV P1,A ACALL DEL1MSMOV A,R1 ORL A,#0F0H ANL A,#6FH MOV P1,A ACALL DEL1MS MOV A,R1 ORL A,#0FH SWAP A ANL A,#7FH MOV P1,A ACALL DEL1MS DEC R0 DEC R0 DEC R1 DEC R1 RETDISP2: MOV A,R0 ORL A,#0F0H ANL A,#0FH MOV P1,A ACALL DEL1MS MOV A,R0 ORL A,#0FH SWAP A ANL A,#1FH MOV P1,A ACALL DEL1MSINC R0 INC R0 INC R1 INC R1 MOV A,R0 ORL A,#0F0H ANL A,#4FH MOV P1,A ACALL DEL1MSMOV A,R0 ORL A,#0FH SWAP A ANL A,#5FH MOV P1,A ACALL DEL1MSMOV A,R1 ORL A,#0F0H ANL A,#6FH MOV P1,A ACALL DEL1MS MOV A,R1 ORL A,#0FH SWAP A ANL A,#7FH MOV P1,A ACALL DEL1MS DEC R0

温馨提示

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

评论

0/150

提交评论