1、 单片机课程设计单片机课程设计 电子实时时钟电子实时时钟 学院:电子与信息学院 设计人员: 2012 年 9 月 2 日 实验设计:电子实时时钟实验设计:电子实时时钟 一、功能要求一、功能要求 1、分离模块要求、分离模块要求 1)设计一个可以显示学号后 6 位的显示电路,并利用单片机实现。 2)利用按键切换,然后显示您姓名拼音首字母 3)按键切换的动作,全部用串口进行通信。 设计一个开关,当进行切换后,程序再进入主要要求。 2、主要要求、主要要求 (1) 显示准确的 24 小时制式北京时间(时、分、秒) ; (2) 可以调校时间。 (3) 所有按键需要通过串口自发自收来传递键值。 二、实现电路
2、二、实现电路 1、仿真电路 (由于仿真软件无法找到合适的三极管,故仿真采用无三极管模式) 2、实际电路 三、三、设计思路设计思路 通过单片机编程,显示学号、姓名以及 24 时制的北京时间,通过按钮转换切换功能显 示,同时带有实践调校功能。 1.1.单片机最小系统单片机最小系统 本实验采用 STC10F08XE 芯片,实现以上功能。 以上为 单片机最小系统 原理图。 单片机最小系统,用 STC 芯片、复位电路、时钟电路和电源组成。 2.2.数码管显示电路数码管显示电路 本实验采用 6 位数码管显示学号后六位、姓名首字母,以及北京时间。 数码管采用共阳数码管 其管脚图如上。本实验将数码管并联,通过
3、三极管的位选通,来实现显示。 其原理为通过人眼的视觉残留,数码管一位一位显示,二人眼看到的为同时显示。 3.3.按钮控制电路按钮控制电路 本实验采用 4 个按钮控制程序。本按钮接于 P2 口,故不需要上拉电阻。 按钮功能主要有: 学号模式:按钮 1 为显示时间;按钮 2 为显示姓名,按钮 3、按钮 4 无功能。 姓名模式:按钮 1 返回学号模式,其他无功能 时间模式:按钮 1 返回学号模式,按钮 2 进入调时模式,按钮 3、按钮 4 无功能 调试模式:按钮 1 返回时间显示模式,按钮 2 切换调整的时分秒,按钮 3 加 1,按钮 4 减 1 4.4.串口通信串口通信 通过接收按钮的键码,发送数
4、据到自身,接收后执行相应的指令 四、四、心得体会心得体会 组员:组员: 经过这一次课程设计,我对 51 单片机的原理以及汇编语言的单片机编程有了更深刻的 了解。 暑假在家时,经过一系列 proteus 教程的学习后, 在 proteus 上搭好电路后,便开 始编写汇编程序。以前也有写过单片机的程序,但都是用 C 语言编写的,上学期的微机原理 课上也学会汇编语言,但跟单片机上的汇编的操作码不太一样。所以,这个课程设计的程序 编写算是对以前的一些知识作一次总结与梳理。 一开始写代码是生涩的, 从点亮一个数码管 开始,逐渐写到数码管的动态显示,外部中断程序,计时器中断等等。由于在理论学习的时 候并没
5、有实践,所以很多操作码都记得很模糊,经常要查看书上的例程,外加网上的一些例 程,逐渐的,自己的代码也变得越来越成熟。但也有很多时候到处遗漏掉一两行的小代码, 导致程序出现很多问题,幸好有 proteus 仿真,在无数次仿真后,程序变得越来越完善了。 回到学校以后,决定采用组员刘清淮的电路图,之后,我就承担了布线的工作,在 多次修改以后,设计出一个飞线较少,布局较为合理的图。经过后面的焊接电路,下载程序 多番调试以后,终于把这个课程设计做出实物了。可惜的是,实物的电路跟我仿真用的电路 有不小的差别,无法把我写的代码下载进去调试。 每一次的课程设计,都是把我们的理论知识具体化的过程,或许并不太简单
6、,但是 收获却是丰硕的,即使失败,即使碰壁,都是一份份收获,这些收获将是我们成功的一块块 基石。 组员:组员: 因为以前有做过单片机的程序设计, 所以做起来从硬件原理上难度不大。 不过以前是用 C 语言写的,而这次要用汇编,而自己没有写过类似的代码,所以有些难度。 前期使用 Proteus 进行仿真。电路图也经过了很多次的修改,改了又改,才有了最终的 电路图。在仿真的时候,有时候会出现仿真不成功和实际成功的情况。所以仿真也不能全部 的当真。而且实际电路往往不能完全仿真,还需要做些修改,例如这次仿真,软件中的三极 管都无法通过,而实际中是可以的,所以需要修改电路。还有一点就是,老师给的参考电路 图是有芯片的, 而实际操作中, 发现可以不用芯片, 而且不使用芯片以后, 电路会简单很多, 所以最后决定不用芯片。 在程序设计时,前期需要翻书查看,但是后面熟悉以后就开始不用看书了。程序设计也 是从简单到难设计。开始先初步完成基本的功能,然后再细到程序的消抖、延时长短、显示 的清晰程度,最后进行程序的优化,让程序尽量不出现错误。程序设计也出现过困难,由于