单片机课程设计报告
- 格式:docx
- 大小:554.89 KB
- 文档页数:20
《单片机技术与应用》
课程设计报告
题 目: 单片机小系统电子钟的设计
院 (系): 信息科学与技术系
专业班级: 电子信息工程0901班
学生姓名: 王 海 毅
学 号:
指导教师: 陈 青
20 12 年 6 月 11 日至2012 年 6 月 25 日
华中科技大学武昌分校制 单片机技术与应用 课程设计任务书
一、设计(调查报告/论文)题目
课题一:单片机小系统电子钟的设计
二、设计(调查报告/论文)主要内容
设计制作要求:用80C51/52单片机编程控制显示的电子钟。
1)要有8位LED显示器,分别显示 “年号:月份:日期”/“时:分:秒:毫秒”
例如“2005。10。 20”表示“2005年10月20日”/“10 52 49 99” 表示“10时52分49秒99毫秒”
2)要有四位输入按键,功能分别是“移位”,“数字+”,“数字-”,“存储”
即“SHIFT”,“NUM+”,“NUM-”,“SAVE”
3)显示过程:实验板通电开机后,8位LED显示器显示“时:分:秒”
按下“SHIFT”后第一位数字闪动,继续按下“SHIFT”后面数字闪动移位。
再按“NUM+”数字增加,按“NUM-”数字减少,按“SAVE”储存修改结果。
三、原始资料
参看《单片计算机原理课程设计指导书》和教材。
四、要求的设计(调查/论文)成果
能够在制定的小系统板上成功演示,并通过验收回答相关问题,给出设计分数。 五、进程安排
整个课程设计安排1周完成
周一:1、讲解课题内容,2、同学自选课题,3、发放课题元器件,4、焊接电路板
周二:1、完善电路板焊接,2、编写调试课题软件
周三、四:编写调试课题软件
周五:验收课题,回答课题程序内容。
六、主要参考资料
[1] 陈青.单片计算机原理课程设计指导书.华中科技大学武昌分校2012.1.8
[2] 姜志海.单片微机原理及应用.北京:电子工业出版社.2005.
[3] 李群芳.肖看.单片机原理、接口及应用.北京:清华大学出版社.2005.
指导教师(签名):
2012年 06月 11日
目 录
1.课程设计的目的………………………………………………………………………1 2.课程设计题目描述和要求 …………………………………………………………1
3.课程设计报告内容 …………………………………………………………………3
3.1 课题设计方案及基本原理………………………………………………………3
3.2 硬件电路介绍 ……………………………………………………………………4
3.3 软件设计 …………………………………………………………………………4
3.4 调试过程…………………………………………………………………………4
3.5 遇到的问题及解决方法…………………………………………………………4
4.实验总结 ……………………………………………………………………………5
参考资料………………………………………………………………………………5
附录1 硬件实物图……………………………………………………………………7
附录2 源程序清单……………………………………………………………………7 1. 课程设计的目的
(1)单片机系统的整体设计流程。
(2)能够正确安装和焊接硬件电路板。
(3)单片机系统的硬件、软件调试方法及相关工具的使用。
(4)各种常见元器件的选择及使用。
2.课程设计题目描述和要求
题目描述:电子钟的设计
制作要求:用80C51/52单片机编程控制显示的电子钟。
(1)要有8位LED显示器,分别显示“年号:月份:日期”/“时:分:秒:毫秒”先显示年份再显示日期。
(2)可以设置四个输入按键,功能分别是“移位”,“数字+”,“数字-”,“存储”,即“SHIFT”,“NUM+”,“NUM-”,“SAVE”。
(3) 显示过程:实验板通电开机后,8位LED显示器显示“时:分:秒”。按下“SHIFT”后第一位数字闪动,继续按下“SHIFT”后面数字闪动移位。再按“NUM+”数字增加,按“NUM-”数字减少,按“SAVE”储存修改结果。
(4)能够正确安装和焊接硬件电路板。拿到元器件后,用万用表对电子元器件进行参数测量、检查。焊接时,要焊点饱满、光洁,无虚焊、漏焊、错焊。
(5)熟悉单片机系统的工作原理及调测方法。软硬件安装调测完成后根据系统的工作原理、过程、测试数据及遇到的问题与处理情况、体会等完成课设报告。
3.课程设计报告内容
3.1课题设计方案及基本原理
通过对单片机AT89C52软件编程来控制硬件使数码管显示年份与时间,并且可以通过按键来控制时间及年份的修改。
基本原理:单片机AT89C52 P0.0~P0.3来判断按键是否按下,当按键按下时,P0.0~P0.3为低电平,单片机程序对应为00H。通过P1,0~P1.3控制4511的4个输入端,进行译码输出,4511的输出端7段段码送数码管显示。P1.4~P1.7控制4028的4个输入端进行位选输出9个状态,然后经过两个2003进行驱动让数码管能按按键要求显示。
3.2 硬件电路介绍 电路原理图:CD4028 是BCD码4—10译码器,它由4个缓冲输入端口、译码逻辑门和10个缓冲器组成。加至四个输入端口A0~A3的一个BCD码在十个十进制译码器输出十个相应的顺序脉冲,输出为高电平有效。同样,若A3=0,加在输出口具有高驱动能力,以在高输出应用中增强直流和动态性能。BCD-十进制译码器4028的引脚图如上页原理图中所示。
3.3 软件设计
基本思路:
(1)动态扫描显示LED电路程序:
设立8个内部RAM 显示缓冲区 ,将要显示的数据的BCD码送显示缓冲区,程序只需要将显示缓冲区的BCD码,送相应的端口即可。动态扫描显示
例如:将40H-48H 为“时:分:秒:毫秒”显示区
将49H-4FH 为“年:月:日”显示区
(2)动态扫描键盘程序:
循环扫描有无按键,有:判断是何按键,转入相应子程序处理。无:返回主程序执行。
(3)定时器设置与时间处理的程序:
此段为该程序段的关键所在,它决定时间的准确性,和进位的正确性。定时器计数可用中断方式,也可以用软件查询方式进行。定时器中断定时方式的精确度高。采用软件延时方式要注意每条指令的机器周期的精确计算,否则会造成时间的不准。
(4) 各项功能键的子程序模块:
移位子程序:按下“SHIFT”后左边第一位数字闪动,继续按下“SHIFT”后面数字闪动移位。程序中可设置第二显示缓冲区,将移到要闪动的数字位设为不显示(黑)“0FFH/00H”,程序只需要将两组显示缓冲区的BCD码,分时间间隔发送出去,就会产生数字闪动效果。
数字+/-:将要显示的数据缓冲区的内容取出加一/减一,注意每个位都有自己的位限制,如“时”的位最大数23,“分、秒”最大数59,“月”最大数 12,“日” 最大数
31。两位数一起调整比较方便。还要注意的是计数后二/十进制之间的转换问题。
“存储”:即将修改好的数值存储到显示缓冲区,并返回,进入主程序运行。
软件设计流程图:
开始
3.4 调试过程
(1)根据实验原理图焊接电路,然后进行硬件调试,用万用表点对点测量,看电路是否焊接好。特别是芯片的引脚,看是否连通,如:AT89C52芯片的18脚与信号连通的话,用示波器测量18脚时就会出现比较标准的正弦波。对按键进行测试时,如果按键没有按下,测量按键两端就会有大概5V的电压,如果按键两端没有电压,说明按键已经按下,按下后其已经接地。
(2)然后进行软件编程,对其进行功能仿真,仿真时要对仿真器进行设置,不然会出现超出地址范围的错误。然后进行断点设置,观察运行状态,看外部寄存器中20H~2AH中单元的变化,看是否达到要求,编程时注意对于在后面将发生变化的寄存器单元要进行清零操作,不然会影响后面的结果,对于加操作后要进行十进制调整,并且DA A的指令只对寄存器A操作。
(3)将编写好的程序用烧录器烧录到AT89C52芯片中,然后再安装到硬件电路板上,判断按键0是否按下
否 是 初 始 化
显示时间 显示日期
判断按键1是否按下 否
毫秒闪烁
再次按下按键1 判断40H的内容 判断40H的内容
为0 为1 为1 为0
秒闪烁
再一次按下按键1
分闪烁
再一次按下按键1
时闪烁 按下按键4 判断按键1是否按下
是
日闪烁
再次按下按键1
月闪烁
再一次按下按键1
年闪烁
退出调整并保存 按键2、3为加、减调整 否 接通5—12V的电源后会先显示时间,按键切换以后将显示日期,再切换后毫秒会闪烁通过+按键可对其进行加操作,—按键进行减操作。依次进行时间的修改,按保存后,再切换将进行从日到年对日期修改。
3.5 遇到的问题及解决方法
(1)当我把程序下载到AT89C52芯片中,然后再安装到硬件电路板上,接通5—12V的电源后,我发现LED数码管只有左边一半是亮的,我编的程序是让所有LED数码管都亮。
解决方法:我用别人的硬件试了一下我的芯片所有LED数码管都亮了,这肯定是我的硬件电路的问题,我找老师帮忙,老师先用万用表检查控制显示的CD4028芯片是否接通,发现是好的,然后用示波器检查AT89C52左边引脚的波形,发现左边第三个引脚没有波形,其次又发现CD4028芯片有一个引脚也没波形,老师断定是我的CD4028芯片坏了,最后老师给我换了一个CD4028芯片,再测试后就好了。
(2)编译后指令超出地址范围。
解决方法:可以采用接力的方式先转到中间再转到所要转的地方,灵活运用指令就会解决一些问题。
(3)按键不是很灵敏,按的太快没反应,或者按键反应太快了按一下跳好几下。
解决方法:按键延时时间太长或太短了,将延时时间调整到10—20毫秒,就可以解决了。
4.实验总结
对单片机AT89C52芯片内部结构以及各引脚功能有了进一步的了解,对硬件的焊接更加熟练,能基本做到不拖焊、虚焊,并且一次成功。第一次接触这么长程序的编写,思路开始很模糊,许多子程序不知道放哪里比较好,有时主程序也很模糊,通过参考别人的程序有了一定的思维,再根据自己的想法对别人的程序进行了一定的修改,就变为自己的东西,通过这次编写,我了解到思维逻辑性要在掌握程序的基础之上,这样才能做到有序,有条理。编写程序思路是很重要的,首先理清思路,画出程序流程图,根据流程图,一步步用指令实现。
参考资料
[1] 陈青.单片计算机原理课程设计指导书.华中科技大学武昌分校2012.1.8
[2] 姜志海.单片微机原理及应用.北京:电子工业出版社.2005.
[3] 李群芳.肖看.单片机原理、接口及应用.北京:清华大学出版社.2005.