单片机课程设计报告_第1页
单片机课程设计报告_第2页
单片机课程设计报告_第3页
单片机课程设计报告_第4页
单片机课程设计报告_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

《单片机技术与应用》课程设计报告题目: 单片机小系统电子钟的设计院(系): 信息科学与技术系专业班级: 电子信息工程0901班学生姓名: 王海毅学号:指导教师:陈青2012年6月乜日至2012年6月25日华中科技大学武昌分校制单片机技术与应用 课程设计任务书一、设计(调查报告/论文)题目课题一:单片机小系统电子钟的设计二、设计(调查报告/论文)主要内容设计制作要求:用80C51/52单片机编程控制显示的电子钟。1)要有8位LED显示器,分别显示 “年号:月份:日期”/“时:分:秒:毫秒”例如“2005。10。20”表示“2005年10月20日”/“10524999”表示“10时52分49秒99毫秒”2)要有四位输入按键,功能分别是“移位” ,“数字+”,“数字-",“存储”即“SHIFT",“NUM+,“NUM」,“SAVE3)显示过程:实验板通电开机后, 8位LED显示器显示“时:分:秒”按下“SHIFT”后第一位数字闪动,继续按下“ SHIFT'后面数字闪动移位。再按“NUM+”数字增加,按“NUM-”数字减少,按“SAVE”储存修改结果。三、原始资料参看《单片计算机原理课程设计指导书》和教材。四、要求的设计(调查/论文)成果能够在制定的小系统板上成功演示,并通过验收回答相关问题,给出设计分数五、进程安排整个课程设计安排1周完成周一:1、讲解课题内容,2、同学自选课题,3、发放课题元器件,4、焊接电路板周二:1、完善电路板焊接,2、编写调试课题软件周三、四:编写调试课题软件周五:验收课题,回答课题程序内容。六、主要参考资料[1]陈青.单片计算机原理课程设计指导书.华中科技大学武昌分校姜志海.单片微机原理及应用.北京:电子工业出版社.2005.[3]李群芳.肖看.单片机原理、接口及应用.北京:清华大学出版社.2005.指导教师(签名):2012年06月11日课程设计的目的1)单片机系统的整体设计流程。2)能够正确安装和焊接硬件电路板。3)单片机系统的硬件、软件调试方法及相关工具的使用。4)各种常见元器件的选择及使用。课程设计题目描述和要求题目描述:电子钟的设计制作要求:用80C51/52单片机编程控制显示的电子钟。(1)要有8位LED显示器,分别显示“年号:月份:日期”/“时:分:秒:毫秒”先显示年份再显示日期。(2)可以设置四个输入按键,功能分别是“移位” ,“数字 +”,“数字 -”,“存储” ,即“SHIFT”,“NUM”+,“NUM”-,“SAVE”。(3)显示过程:实验板通电开机后,8位LED显示器显示“时:分:秒”。按下“SHIFT'后第一位数字闪动,继续按下“SHIFT'后面数字闪动移位。再按“NUM+数字增加,按“NUM-数字减少,按“SAVE储存修改结果。(4)能够正确安装和焊接硬件电路板。拿到元器件后,用万用表对电子元器件进行参数测量、检查。焊接时,要焊点饱满、光洁,无虚焊、漏焊、错焊。(5)熟悉单片机系统的工作原理及调测方法。软硬件安装调测完成后根据系统的工作原理、过程、测试数据及遇到的问题与处理情况、体会等完成课设报告。课程设计报告内容课题设计方案及基本原理通过对单片机 AT89C52软件编程来控制硬件使数码管显示年份与时间,并且可以通过按键来控制时间及年份的修改。基本原理:单片机 AT89C52~来判断按键是否按下,当按键按下时, ~为低电平,单片机程序对应为00H。通过P1,0~$制4511的4个输入端,进行译码输出,4511的输出端7段段码送数码管显示。 ~控制 4028的4个输入端进行位选输出9个状态,然后经过两个2003进行驱动让数码管能按按键要求显示。硬件电路介绍电路原理图:由q七由©七七q出juO0--1>66432lnttr卓匚BLIFifenc由»口FFFFFff*^I',『I:H.J:JIJ7Hb437■-U-: - :'7oojn54-cj13r-a2eO ICII囱m 2bis,7dg、I-lJ<I\i^ijg\LjZitflvt>ot-:<n]I\1.iJg\二点I~\ISI^jffli3cia\!二1m|\।Lkj、L*cr~i辱<13l:i而、:dn\CD4028是BCD码4—10译码器,它由4个缓冲输入端口、译码逻辑门和10个缓冲器组成。加至四个输入端口A0〜A3的一个BCD码在十个十进制译码器输出十个相应的顺序脉冲,输出为高电平有效。同样,若A3=0,加在输出口具有高驱动能力,以在高输出应用中增强直流和动态性能。BCD—十进制译码器4028的引脚图如上页原理图中所示。软件设计基本思路:(1)动态扫描显示LED电路程序:设立8个内部RAM显示缓冲区,将要显示的数据的BCM送显示缓冲区,程序只需要将显示缓冲区的BCM,送相应的端口即可。动态扫描显示例如:将40H-48H为“时:分:秒:毫秒”显小区将49H-4FH为“年:月:日”显示区(2)动态扫描键盘程序:循环扫描有无按键,有:判断是何按键,转入相应子程序处理。无:返回主程序执行。(3)定时器设置与时间处理的程序:此段为该程序段的关键所在,它决定时间的准确性,和进位的正确性。定时器计数可用中断方式,也可以用软件查询方式进行。 定时器中断定时方式的精确度高。采用软件延时方式要注意每条指令的机器周期的精确计算,否则会造成时间的不准。(4)各项功能键的子程序模块:移位子程序:按下“SHIFT'后左边第一位数字闪动,继续按下“SHIFT'后面数字闪动移位。程序中可设置第二显示缓冲区,将移到要闪动的数字位设为不显示(黑)“0FFH/00可,程序只需要将两组显示缓冲区的BCDK,分时间问隔发送出去,就会产生数字闪动效果。数字+/-:将要显示的数据缓冲区的内容取出加一/减一,注意每个位都有自己的位限制,如“时”的位最大数23,“分、秒”最大数59,“月”最大数12,“日”最大数31。两位数一起调整比较方便。还要注意的是计数后二/十进制之间的转换问题。“存储”:即将修改好的数值存储到显示缓冲区,并返回,进入主程序运行。软件设计流程图:开始

初始化判断按键0是否按下否焊接好。特别是芯片的引脚,看是否连通,如:AT89C52芯片的18脚与信号连通的话,用示波器测量18脚时就会出现比较标准的正弦波。对按键进行测试时,如果按键没有按下,测量按键两端就会有大概5V的电压,如果按键两端没有电压,说明按键已经按下,按下后其已经接地。(2)然后进行软件编程,对其进行功能仿真,仿真时要对仿真器进行设置,不然会出现超出地址范围的错误。然后进行断点设置,观察运行状态,看外部寄存器中 20H~2AH中单元的变化,看是否达到要求,编程时注意对于在后面将发生变化的寄存器单元要进行清零操作,不然会影响后面的结果,对于加操作后要进行十进制调整,并且DAA的指令只对寄存器A®作。(3)将编写好的程序用烧录器烧录到AT89C52芯片中,然后再安装到硬件电路板上,接通5—12V的电源后会先显示时间, 按键切换以后将显示日期,再切换后毫秒会闪烁通过+按键可对其进行加操作,—按键进行减操作。依次进行时间的修改,按保存后,再切换将进行从日到年对日期修改。遇到的问题及解决方法(1)当我把程序下载到AT89C52芯片中,然后再安装到硬件电路板上,接通5—12V的电源后,我发现LED数码管只有左边一半是亮的,我编的程序是让所有LED数码管都亮。解决方法:我用别人的硬件试了一下我的芯片所有 LED数码管都亮了,这肯定是我的硬件电路的问题,我找老师帮忙,老师先用万用表检查控制显示的 CD4028芯片是否接通,发现是好的,然后用示波器检查AT89C52左边引脚的波形,发现左边第三个引脚没有波形,其次又发现CD4028芯片有一个引脚也没波形,老师断定是我的 CD4028芯片坏了,最后老师给我换了一个CD4028芯片,再测试后就好了。(2)编译后指令超出地址范围。解决方法:可以采用接力的方式先转到中间再转到所要转的地方,灵活运用指令就会解决一些问题。(3)按键不是很灵敏,按的太快没反应,或者按键反应太快了按一下跳好几下。解决方法:按键延时时间太长或太短了,将延时时间调整到 10—20毫秒,就可以解决了。实验总结对单片机AT89C52芯片内部结构以及各引脚功能有了进一步的了解,对硬件的焊接更加熟练,能基本做到不拖焊、虚焊,并且一次成功。第一次接触这么长程序的编写,思路开始很模糊,许多子程序不知道放哪里比较好,有时主程序也很模糊,通过参考别人的程序有了一定的思维,再根据自己的想法对别人的程序进行了一定的修改,就变为自己的东西,通过这次编写,我了解到思维逻辑性要在掌握程序的基础之上,这样才能做到有序,有条理。编写程序思路是很重要的,首先理清思路,画出程序流程图,根据流程图,一步步用指令实现。参考资料陈青.单片计算机原理课程设计指导书.华中科技大学武昌分校姜志海.单片微机原理及应用.北京:电子工业出版社.2005.]李群芳.肖看.单片机原理、接口及应用.北京:清华大学出版社.2005.;到一秒;到一分;到一秒;到一分;到一时;到一天附录1硬件实物图ORG0000HAJMPMAIN1ORG001BHAJMPT1INTORG0030HMAIN1:MOVSP,#70H ;初始化CLRACLRMOVTMOD,#20HMOVTH1,#06HMOVTL1,#06HSETBEASETBET1SETBTR1MOV31H,#00HMOV32H,#58HMOV33H,#58HMOV34H,#23HMOV35H,#27HMOV36H,#02HMOV37H,#12HMOV38H,#20HMOV40H,#0 ;标志位MOVR0,#31HMOVR1,#32HLOPA:JNB,NEXT1CLRMOVA,#1ADDA,31H ;到10毫秒DAAMOV31H,ACJNEA,#100H,NEXT1MOV31H,#0MOVA,#1ADDA,32HDAAMOV32H,ACJNEA,#60H,NEXT1MOV32H,#0MOVA,#1ADDA,33HDAAMOV33H,ACJNEA,#60H,NEXT1MOV33H,#0MOVA,#1ADDA,34HDAAMOV34H,ACJNEA,#24H,NEXT1MOV34H,#0MOVA,#1ADDA,35HDAADAACJNEA,#35H,LOPCMOV35H,ALCALLTIAO_TIANMOV35H,#01HMOVA,#1ADDA,36H ;到一月DAAMOV36H,ACJNEA,#13H,NEXT1MOV36H,#01HMOVA,#1 ;到一年ADDA,37HDAAMOV37H,ACJNEA,#100H,NEXT1MOV37H,#00HMOVA,#1ADDA,38HDAAMOV38H,ACJNEA,#100H,NEXT1MOV38H,#00HRET; 切换时间和年 NEXT1:JB,LOPB;判断是否切换JNB,$MOVA,R0MOVR0,#31HMOVR1,#32HLJMPLOPBLOPC:MOVR0,#35HMOVR1,#36HLOPB:LCALLDISPJB,LOP0;判断按键进入调整JNB,$LCALLLOP1;设置时间和日期LOP0:LJMPLOPA; 调时间和日期 LOP1:JB,LOP2;判断是否退出调整JNB,$RETLOP2:JB,LOP3;判断是否移位JNB,$INC40H ;指针加一MOVA,40HCJNEA,#04H,LOP3;没有到最前两位MOV40H,#0LOP3:MOVA,40H;判断是哪一位调整CJNEA,#0,N_HAO_HUO_RIJB,LUOA ;进入加调整JNB,$MOVA,R0 ;调毫秒或者天数CJNEA,#31H,AOP1 ;加毫秒MOVA,#1 ADDA,32HMOVA,#1 ADDA,32HADDA,31HDAAMOV31H,ACJNEA,#100H,LUOAMOV31H,#0LJMPLUOAAOP1:MOVA,#1 ;加天数ADDA,35HDAAMOV35H,ALCALLTIAO_TIANLJMPLUOALUOA:MOVR4,#30HLUO1:LCALLDISPDJNZR4,LUO1MOVR4,#30HLUO2:LCALLDISP1DJNZR4,LUO2LJMPLOP1N_HAO_HUO_RI:CJNEA,#1,N_MIAO_HUO_YUEJB,LUOBJNB,$MOVA,R1;调秒或者月CJNEA,#32H,AOP2MOVA,#1 ;加秒DAAMOV32H,ACJNEA,#60H,LUOBMOV32H,#0LJMPLUOBAOP2:MOVA,#1 ;加月ADDA,36HDAAMOV36H,ACJNEA,#13H,LUOBMOV36H,#01HLUOB:MOVR4,#30HLUO3:LCALLDISPDJNZR4,LUO3MOVR4,#30HLUO4:LCALLDISP2DJNZR4,LUO4LJMPLOP1N_MIAO_HUO_YUE:CJNEA,#2,SHI_HUO_NIANGAOJB,LUOCJNB,$INCR0 ;R0加2INCR0MOVA,R0;调分或者年低两位CJNEA,#33H,AOP3MOVA,#1 MOVA,#1 ;加分 INCR1ADDA,33HDAAMOV33H,ACJNEA,#60H,LOPP1MOV33H,#0LOPP1:DECR0DECR0LJMPLUOCAOP3:DECR0DECR0MOVA,#1 ;加年低两位ADDA,37HDAAMOV37H,ACJNEA,#100H,LUODMOV37H,#0LJMPLUOCLUOC:MOVR4,#30HLUO5:LCALLDISPDJNZR4,LUO5MOVR4,#30HLUO6:LCALLDISP3DJNZR4,LUO6LJMPLOP1SHI_HUO_NIANGAO:JB,LUODJNB,$INCR1MOVA,R1CJNEA,#34H,AOP4MOVA,#1 ;加时ADDA,34HDAAMOV34H,ACJNEA,#24H,LOPP2MOV34H,#0LJMPLOPP2AOP4: DECR1DECR1MOVA,#1 ;加年高两位ADDA,38HDAAMOV38H,ACJNEA,#100H,LUODMOV38H,#0LJMPLUODLOPP2:DECR1DECR1LUOD:MOVR4,#30HLUO7: LCALLDISPDJNZR4,LUO7MOVR4,#30HLUO8: LCALLDISP4DJNZR4,LUO8LJMPTIAO1 ACALLDEL1MSLJMPTIAO1 ACALLDEL1MSMOVP1,A MOVA,@R1MOVP1,A MOVA,@R1LJMPLOP1 MOVA,23HLJMPLOP1 MOVA,23HMOV35H,#01MOV24H,AMOV35H,#01MOV24H,AANLA,#0FHANLA,#0FHADDA,24HMOVB,#4DIVABMOVA,BCJNEA,#00H,PING_NIANSJMPRUN_NIANRUN_NIAN:MOVA,35HCJNEA,#30H,TIAO1MOV35H,#01SJMPTIAO1PING_NIAN:MOVA,35HCJNEA,#29H,TIAO1MOV35H,#01SJMPTIAO1NOT_2_YUE:MOVA,36HCJNEA,#4,NOT_4SJMPDAY30NOT_4:CJNEA,#6,NOT_6SJMPDAY30NOT_6:CJNEA,#9,NOT_9SJMPDAY30NOT_9:CJNEA,#11H,DAY31SJMPDAY30DAY30:MOVA,35HCJNEA,#31H,TIAO1; 月份天数的确定 TIAO_TIAN:MOVA,36H;将月份数给 ACJNEA,#02,NOT_2_YUEMOVA,37HCJNEA,#00H,DIV4;判断是否为闰年MOVA,38HMOV21H,AANLA,#0F0HSWAPAMOVB,#10MULABMOV22H,AMOVA,21HANLA,#0FHADDA,22HMOVB,#4DIVABMOVA,BCJNEA,#00H,PING_NIANSJMPRUN_NIANDIV4:MOVA,37HMOV23H,AANLA,#0F0HSWAPAMOVB,#10MULAB

DAY31:MOVA,35HCJNEA,#32H,TIAO1MOV35H,#01TIAO1:RET; 定时 T1INT: PUSHACCPUSHPSWINC30HMOVA,#28HXRLA,30HJNZSTFMOV30H,ASETBSTF:POPPSWPOPACCRETI; 显示 DISP:MOVA,@R0ORLA,#0F0HANLA,#0FHMOVP1,AACALLDEL1MSMOVA,@R0ORLA,#0FHSWAPAMOVA,@R1ORLA,#0F0HMOVA,@R1ORLA,#0F0HANLA,#2FHMOVP1,AACALLDEL1MSMOVA,@R1ORLA,#0FHSWAPAANLA,#3FHMOVP1,AACALLDEL1MSINCR0INCR0INCR1INCR1MOVA,@R0ORLA,#0F0HANLA,#4FHMOVP1,AACALLDEL1MSMOVA,@R0ORLA,#0FHSWAPAANLA,#5FHMOVP1,AACALLDEL1MSORLA,#0F0H INCR1ORLA,#0F0H INCR1INCR0 DECR1INCR0 DECR1ANLA,#6FHMOVP1,AACALLDEL1MSMOVA,@R1ORLA,#0FHSWAPAANLA,#7FHMOVP1,AACALLDEL1MSDECR0DECR0DECR1DECR1RETDISP1:MOVA,@R1ORLA,#0F0HANLA,#2FHMOVP1,AACALLDEL1MSMOVA,@R1ORLA,#0FHSWAPAANLA,#3FHMOVP1,AACALLDEL1MSINCR1MOVA,@R0INCR1MOVA,@R0ORLA,#0F0HANLA,#4FHMOVP1,AACALLDEL1MSMOVA,@R0ORLA,#0FHSWAPAANLA,#5FHMOVP1,AACALLDEL1MSMOVA,@R1ORLA,#0F0HANLA,#6FHMOVP1,AACALLDEL1MSMOVA,@R1ORLA,#0FHSWAPAANLA,#7FHMOVP1,AACALLDEL1MSDECR0DECR0DECR1RET ORLA,#0F0HRET ORLA,#0F0HMOVA,@R1 ORLA,#0F0HMOVA,@R1 ORLA,#0F0HDISP2:MOVA,@R0ORLA,#0F0HANLA,#0FHMOVP1,AACALLDEL1MSMOVA,@R0ORLA,#0FHSWAPAANLA,#1FHMOVP1,AACALLDEL1MSINCR0INCR0INCR1INCR1MOVA,@R0ORLA,#0F0HANLA,#4FHMOVP1,AACALLDEL1MSMOVA,@R0ORLA,#0FHSWAPAANLA,#5FHMOVP1,AACALLDEL1MSANLA,#6FHMOVP1,AACALLDEL1MSMOVA,@R1ORLA,#0FHSWAPAANLA,#7FHMOVP1,AACALLDEL1MSDECR0DECR0DECR1DECR1RETDISP3:MOVA,@R0ORLA,#0F

温馨提示

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

评论

0/150

提交评论