基于51单片机的秒表设计报告

课程名称:           微机原理课程设计         

题    目:       基于51单片机的秒表设计      


摘要

随着社会的发展,单片机已经渗透到我们生活中的各个领域,广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等。本设计就是由单片机STC89C52RC芯片和四位一体LED数码管为核心,辅以必要的电路,构成了一个单片机电子秒表。秒表是一种常用的测试仪器,它可以用在百米赛跑等需要精确计时的地方,为人们的生活提供了很大的方便。该单片机电子秒表布置合理,全部器件分布在7*9cm洞洞板上,看起来小巧精简。采用的是单片机内部定时/计数器计时,走时非常精确而且不易出错。0.56英寸的四位数码管发出红光,可以直观地显示时间。一个控制按键就可以控制秒表的计数与停止,按一下控制键,秒表工作状态就由计时变为计时变为停止或停止变为计时,按一下清零键就可以清零,操作非常简单。由于是四位数码管,它的计时周期为100秒,显示满刻度为99:99秒,从左往右数共四位,前两位显示整数部分,后两位显示小数部分,中间两个个秒闪灯(秒闪灯一直亮)。

关键词:秒表,51单片机,C语言


目录

一、设计任务与要求... 18

1.1 设计任务... 18

1.2 设计要求... 18

二、方案总体设计... 19

2.1 方案一... 19

2.2 方案二... 19

2.3 系统采用方案... 19

三、硬件设计... 21

3.1 单片机最小系统... 21

3.2 数码管显示模块... 21

3.3 系统电源... 22

3.4 整体电路... 22

四、软件设计... 24

4.1 keil软件介绍... 24

4.2 系统程序流程... 24

五、仿真与实现... 27

5.1 proteus软件介绍... 27

5.2 仿真过程... 27

5.3 实物制作与调试... 29

5.4 使用说明... 31

六、总结... 32

6.1设计总结... 32

6.2经验总结... 20

七、参考文献... 21


一、设计任务与要求

1.1 设计任务

1).对更多小器件的了解

2).巩固51单片机和C语言的知识,熟悉单片机和C语言的实际操作运用

3).掌握仿真软件的运用和原理图的绘制

4).加深焊接的技巧,提高焊接的能力

5).熟悉调试方法和技巧,提高解决实际问题的能力

6).熟悉设计报告的编写过程

1.2 设计要求

1).清零键进行清零

2).一个独立按键进行停止与运行的操作

3).秒闪灯一直亮


二、方案总体设计

设计一个基于51单片机的秒表。利用单片机内部精确到微妙的定时计数器来实现计时功能;秒闪灯一直亮;利用引脚的电平变换来实现一个独立按键按控制秒表的运行与停止;利用清零按键功能来实现清零操作。

2.1 方案一

51单片机的定时/计数器工作在模式2时是一个可以自动重装载的8位定时/计数器。工作时高八位和低八位装入相同的初值,当低八位装满时,高八位的值自动装入到第八位中,从而可以省去用户软件中重装初值常数的语句,可产生相当精确的定时时间。由于只有八位参与计数,所以其计数周期最大为256微妙。秒表精确到0.01秒,所以采用初值装入0x38,计数50次秒表最低位加1 。低位的累加进而向高位的进位,从而实现四位数码管的秒表显示。设置让秒闪灯一直亮。同样检测TR0的值,如果TR0为0,则说明暂停。外部中断具有实时处理的功能,所以可以利用外部中断来进行控制运行与停止的操作。外部中断有两种触发中断的方式:定电平触发,跳变沿触发。如果用低电平触发的话,由于按键每按一次,导通的时间大约为20毫秒,在这个时间段足够触发好多次中断,所以不用低电平触发,采用跳变沿触发中断。每按一次按键触发一次中断,在中断程序中对TR0进行设置,从而实现控制运行与停止。清零键每按一次就清零一次,数码管也就显示初始的00:00状态,就可以重新计时。

2.2 方案二

51单片机的定时/计数器工作在模式0时是一个16位位定时/计数器。工作时高八位和低八位各装入初值,当低八位装满时,高八位加1。由于是16位参与计数,所以其计数周期最大为65536微妙。秒表精确到0.01秒,所以采用高八位初值装入(65536-10000)/256,低八位装入(65536-10000)%256,计数1次秒表最低位加1 。低位的累加进而向高位的进位,从而实现四位数码管的秒表显示。设置让秒闪灯一直亮。同样检测TR0的值,如果TR0为0,则说明暂停。按键可以改变引脚的电平,所以可以检测P口的变化,根据P口的电平情况来在程序中对TR0进行设置,从而实现控制运行与停止。清零键每按一次就清零一次,数码管也就显示初始的00:00状态。

2.3 系统采用方案

1)总体设计:

设计总体框架图如图所示

1 系统总体框架

2)总体工作原理

由于定时器工作模式2是八位,可装入的值太小,秒表最低位每加一次需要进入50次定时器中断,由于进入中断的次数太多,所以很容易出现在低八位装满本应触发而程序还在中断子程序中运行,而无法触发中断的情况,所以不采用工作模式2。工作模式0只需要进入定时中断一次就可以让秒表最低位加1次,所以选择功能模式0。由于外部中断跳变沿方式每一次下降沿都会触发中断,而按键按下的时候,会出现抖动的情况,并且采用外部中断不易进行消抖,很不稳定,很可能按一次出现几次中断,所以不采用外部中断方式。用P口检测的话,比较容易消抖,并且也可以实时监测,所以用P口检测的方法。综上选择方案二。


三、硬件设计

3.1 单片机最小系统

单片机要正常工作,首先要产生片内时钟信号。在单片机内部的振荡器的输入端XTAL1和输出端XTAL2之间接一个石英晶振就可以够成一个自激振荡器。再在两端之间串联接个电容并且在两个电容之间接地以便于稳定频率还对振荡频率有微调作用。电容通常选30PF左右,振荡脉冲频率范围为0~24MHZ。该电路中选用12MHZ晶振。时钟电路图如下:

图2 时钟电路图

单片机在启动时与其他微处理器一样,要让CPU及系统各部件处于确定的初始状态,并从初始开始工作。这就需要复位操作。复位电路有两种方式:上电自动复位和按键自动复位。上电自动复位只是在开始接通电源瞬间复位,接下来想要再次复位就需要断电重启,不方便。按键自动复位不仅可以在开始接通电源瞬间复位还可以通过按下按键复位随时复位。所以选择按键复位方式。复位电路如下:

图3 复位电路图

3.2 数码管显示模块

该秒表计时周期为100秒,采用四位数码管显示。控制数码管的显示有两个部分:位选控制和段选控制。位选是控制数码管显示哪位,段选是控制数码管显示的字样。数码管分为共阳与共阴,内部结构差不多,唯一的区别就是内部二极管方向的布置不同。在连接电路时这两种数码管位选与段选的连接不同。共阳数码管的位选接高电平,段选接低电平。共阴数码管的位选接低电平,段选接高电平。该数码管显示模块采用四位一体共阴数码管,P0口八个引脚段选控制,P2口的四个引脚位选控制。数码管显示原理图如下:

图4 数码管显示系统图

3.3 系统电源

为了方便控制系统的上电与断电,系统电源中连接了一个蓝白自锁开关。此开关两边各有三个引脚,不同的连接方式,开关的控制方法就不同。电源的正负极各接在此开关的两边。为了方便观察电源是否接上,在电路中的VCC与GND之间接一个发光二极管并且加一个限流电阻防止发光二极管烧坏,电源通电时发光二极管亮,断电时,则暗。再接四个排针便两边的两个排针用于外部电源给系统上电,中间的两个排针是用于单片机烧录程序。如图所示:

图5 系统电源图

3.4 整体电路

这是采用网络标号的画出的以一张整体电路图。它将整张秒表的电路原理图分为六个部分:电源模块,P0口上拉电阻,四位共阴数码管,51单片机,复位晶振电路,控制按键。整张原理看起来美观,并且根据标号很容易找到与之对应的引脚。

在看原理图的时候,我还没有弄清楚独立按键和蓝白自锁开关的内部结构和工作原理,我也是在最初接触这些东西的时候请教过一些同学,然后得到的了解是独立按键按下时对角才相连,蓝白自锁开关我了解到的是7*7自锁开关,当时我还不知道有蓝白自锁开关有7*7与8*8的区分。所以我在分析电路时,我只认为独立按键按下时对角线才相连,并且我用7*7的蓝白自锁开关去分析8*8的蓝白自锁开关。这样导致了我对电路原理图的理解错误。自己分析了半天,是觉得有些地方理解不了,所以我就请教老师,经过老师的讲解,我才发现老师所讲的电路电流的流向,并不符合我之前根据我所了解的独立按键和蓝白自锁开关的知识所分析的电流流向。这是我才意识到可能我之前错误的了解了独立按键和蓝白自锁开关的知识。后来我就用万用电表去测了一下独立按键和8*8的蓝白自锁开关,果然发现我之前对独立按键和8*8的蓝白自锁开关的理解是错误的。重新对独立按键和8*8的蓝白自锁开关有了正确的认识之后,我再去分析一下原理图,分析的结果和老师讲的一模一样。所以对要使用元器件一定要有一个正确的认识,能测的元器件就亲自去测一下,也不需要花很多的时间,不要碰到不了解的就去问,有时候别人也会讲错,或者讲的不够全面,就像我之前拿一个8*8的蓝白自锁开关去问别人蓝白自锁开关是什么工作原理,他可能一般接触的是7*7蓝白自锁开关所以告诉我的就是7*7的蓝白自锁开关的工作原理。然后我就没有正确认识8*8的蓝白自锁开关,导致了后面对原理图的错误理解。

图6 整体电路图


四、软件设计

4.1 keil软件介绍

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种Keil软件图标是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN20##、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。

4.2 系统程序流程

7 主程序流程图

8 定时器中断程序流程图


五、仿真与实现

5.1 proteus软件介绍

Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,20##年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持KEIL,IAR和MPLAB等多种编译器。PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。使用Proteus软件进行单片机系统仿真设计,是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力;在单片机课程设计和全国大学生电子设计竞赛中,我们使用 Proteus 开发环境对学生进行培训,在不需要硬件投入的条件下,学生普遍反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提高。实践证明,在使用Proteus进行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。因此,Proteus有较高的推广利用价值。

5.2 仿真过程                                                                                             

图9为使用keil软件编写程序时的调试过程图。我用的是C语言来编写。第一次编写完程序后,然后编译一下,出现的对话框中显示有几个错误,点击错误提示,主程序会出现光标只向错误的地方,根据这个错误提示,然后进行更改,再编译一下,程序还是显示有错误,再重复上次的操作,进过了几次修改后,就如图所示没有错误提示了。编写程序就是这样,需要不断修改,程序才能准确。程序编写好,还要编译成HEX文件。只有HEX文件才能烧录到到单片机上。

9 keil软件仿真图

图10为proteus仿真原理图。连接好电路图后,箭头放在单片机上单击右键,在出现的对话框中点击EDIT PROPOTES再在出现的对话框中点击program file那行的那个文件图标,从里面找出先前已经在KEIL软件中编译的HEX文件。点击文件后,然后在单击edit component对话框的右上角的OK选项。然后点击Proteus的首界面的左下角形状是黑色三角型的play键,仿真图上的显示系统就出现了初始状态,单击控制开关,秒表开始计数,再单击一下控制开关后,计时停止。也可以点击play键右边那个step键,让程序一步一步执行step键右边是pause键,按一下这个键程序就暂停运行,再按一下程序就又开始运行。仿真完后按一下stop键结束仿真。当看到仿真电路上出现现象和操作时所达到的效果和我在编程时所预想的情况一样后,再保存所画的电路图,单击左上角的file中,再在出现的选项中单击save,可以选择自己想要保存的地方。下次打开proteus时可以单击file,再在出现的选项中单击open design的选项,可以从保存的地方直接选择所画的电路图打开,并且可以直接仿真。

在要用proteus仿真软件的时候,刚开始不会使用,因为我电脑里有学习这款软件的视频,然后我就看视频学习。老师看到我在看视频学习时,就要我不要通过看视频学习,直接看文档,先简单的学一些,够现在用就行,以后边用边学。确实通过看文档,边看边操作,再问一下同学,没花多少时间我就可以使用了。要不是老师指导一下,我可能要花上好多时间在学习proteus软件上面。在以后学习中,我尽量多看书,看视频虽说细致但太费时间,看书实在看不懂再去看看详细讲解的视频,特别是学习软件,看视频不单费时间,看了还容易忘,看文档边看边操作,花的时间少还记得牢。

10 proteus仿真图

5.3 实物制作与调试

图11为实物图的背面,图12为实物图的正面。

在选器件的时候,有些器件我也没有去看型号,蓝白自锁开关我就是随便拿的,当时我还不知道有有7*7与8*8的区分,是碰巧拿到8*8型号的。我拿的时候都没想到这个蓝白自锁开关还有其他型号,以后碰到不熟悉的元器件要多想一想,大概有哪些型号,自己是否选对了型号。避免出现元器件使用的问题。

在焊接的时候,出现了许多问题,锡上的有点多,有时候焊得太久把铜片焊了,并且我居然把IC插座焊反了。我明明分辨得出IC插座的正反方向,但是我还是犯了错误。我在安上IC插座的时候没有看是否方向正确,就直接焊,等我想到的时候已经来不及改了。以后在焊接的时候,无论焊什么都要问一下自己焊接的方向是否正确,位置是否正确。不能把问题以后解决,特别是这种问题做错了都不能更改。

刚焊好板子之后,我就通上电去试一下,按下蓝白自锁按键,结果什么现象都没有。开始有点不知所措,想了一下,既然电源指示灯没亮,说明没通上电,可能的情况有四种:1.蓝白自锁开关安反了2.发光二极管有问题3.焊接出现问题4.电源有问题。我逐一排查,结果是发光二极管那个脚,出现虚焊,我再用电烙铁焊几下之后,发光二极管才亮。发光二极管亮了,但烧录不进去程序。我首先想到其他的先不管如果最小系统焊接完整无误的话,程序应该就可以烧录进去。于是我首先检查一下时钟电路和复位电路是否连接正确,检查完没有问题,我再用万用电表检查是否焊接有问题。果然晶振的一个脚和单片机的XTAL2是断路的,我就仔细查看一下,一个地方没有焊接上,我再电烙铁稍微焊一下。通电后就可以烧录程序了。焊这块板子,我出现了两个焊接上的失误,其中一个很不应该的错误就是没有焊的连接好。还好这是一块比较简单板子,错误还比较好查出来,如果是一块很复杂的板子,那在调试的时候肯定要花很多时间。所以在焊得时候一定要细心,尽量减少错误,这样可以为以后的调试节省更多的时间。

程序下是进了,但是数码管显示的状态却不理想,数字不停得闪动,不清晰,我想可能是变化的太快的原因,于是我就加长了延时的时间,数字的显示就清楚多了。当我按下控制键时,数字正常计时,我又接着按几下时,发现秒表的计时与停止并不能准确的控制。我想肯定是按键抖动的问题引起的,我尝试消抖,依然没有效果,于是我请教学长,原因是我采用外部中断控制的问题。外部中断不易消抖,应采用P口进行电平检测来控制秒表的计时与停止。我换成电平检测后,果然稳定了许多。其实我是知道电平检测的方法也可以进行控制的,但是我当时就没有去想到用这种方法去尝试一下,我以为外部中断是可以控制的并且可以很及时的控制,就钻在外部中断控制的方法里,没有跳出来想问题。其实实现一个功能往往有不同的方法,当使用一种方法遇到阻碍没有头绪时,可以选择用另外一种方法解决,再回过头来比较这几种方法,往往能更好的找出问题的所在。

在整个的制作当中出现过许多问题,其实很多老师也讲过,但有时候在忙着自己的,没有仔细听,以至于后来又要根据老师的要求改动,耽误更多的时间。所以我觉得,老师在讲的时候就应该立马停止手头的一切,好好挺清楚,尤其是刚做课题设计,好多东西不清楚,更需要注意很多细节。

11 实物图背面

12 实物图正面

5.4 使用说明

如图12所示:此秒表包含的元器件有:STC89C52单片机一块,IC插座一个,排阻一个,排母若干,四位一体数码管一个,四个排针,三个独立按键,两个电阻,一个电解电容,两个瓷片电容,一个红色的放光二极管,一个蓝白自锁开关,一个晶振。整个秒表布置在一块70×90大小的洞洞板上。四位一体数码管用于显示计时时刻,单片机下方的按键为控制按键,每按一次控制键,秒表的状态由开始→停止或停止→开始。控制按键左边是具有清零功能的清零按键。数码管右边的那个按键为复位按键,每按一次系统就复位一次,回到初始状态。复位按键上方的四个排针从左至右依次接5V的VCC,RXD,TXD,GND。复位按键下方的蓝白自锁开关为电源开关,当排针接好电源后,按下蓝白自锁开关则系统上电,按起蓝白自锁开关则系统断电。蓝白自锁开关上方的红色发光二极管为电源指示灯,当系统接通电源时,指示灯亮,当系统断开电源时,指示灯暗。

使用前应先上电。接上电源后由于开关断开系统还未上电,按下蓝白自锁开关后,电源接通。此时四位一体数码管显示00:00的字样。当你要开始计时,则按下单片机下方的那个独立控制按键。数码管立刻开始计数。右边两位的整数部分开始计数,在计数的时候中间的两个秒闪灯一直。当你想要停止计时时,只需再按一下单片机下方的那个独立控制按键了,当你按下时,数码管立即停止计时并且此时数码管会显示××:××的字样。如果你又想要继续计时,你只需再按一下这个控制按键了。如果你想要再次计时,你可以按下清零键,此时数码管又显示为初始时的状态00:00了。由于此数码管为显示左边两位为整数部分,右边两位为小数部分,所以你最多只能计时100秒,当数码管计时到99:99时数码管紧接着显示为00:00。当你使用这个秒表时,你会发现此秒表操作非常简单,计时准确,并且便于观察时间。


六、总结

6.1设计总结

我的课题是基于51单片机秒表的设计。当我选择了这个课题的时候,我就先开始想在平常生活中秒表的功能是怎样的,需要一些什么器件来实现这些功能。在确定了自己要设计一个怎样的秒表之后就开始列出做这个秒表所需要的元器件。这个秒表是基于给定的显示系统上设计的,所以在设计电路原理图之前,我先要掌握给定的显示系统原理图的连接方式和连接原理。这一些都弄明白之后,我再考虑如何在现有的基础上进行外围设计使之达到预想的功能。经过一番斟酌,确定我的外围硬件只需添加一个独立按键就可以实现秒表的功能。由于我的秒表元器件是焊接在一个70×90大小的洞洞板上,所以为了以后方便焊接,减少焊接错误,需要在洞洞板软件中的一个70×90大小的洞洞板底图上画出洞洞板图,设计线路的时候要尽量减少飞线的使用,画完之后和给出的图进行对照,确定我没有连接错误之后,修正洞洞板图,使线路没有断路并且更加笔直,接点处没有连线出头,修正完后保存洞洞板图。硬件设想好了,接下来,我就要给我所要设计的秒表进行软件设计,使之实现智能化。进过了几次调试之后,在keil软件中我的程序显示0 error。没有错误的程序,不代表它就能实现我预期的功能。为了初步验证我的编写的程序所达到的效果,就需要用仿真软件在电脑进行仿真。而在前面已经介绍过了,在仿真软件当中,proteus软件是一款非常适合我们的软件,所以我们一般选择使用proteus软件进行仿真。在proteus软件界面画好电路图之后,检查一下,确定连接符合洞洞板原理图后,再加载之前在keil软件中编译好的HEX文件,,单击play键开始程序运行,观察数码管显示的初始状态,操作秒表的原理图上的控制按键,观察运行过程中数码管显示出的状态,以及蓝色和红色小方点所显示的电平变化。根据现象进行调试,直到仿真软件上的秒表和预想的一致。仿真的步骤完成后,就开始画DXP原理图,采用网络标号的形式更加方便,只需要把系统分成各个小模块,在元器件的接口上标明该接口所连接单片机的对应的引脚,再分区放置标明模块。图的大体结构画完之后再和给出的图进行对照,确定我没有连接错误之后,修正DXP原理图,使线路没有断路并且更加笔直。DXP原理图画完后,整个电路设计就算完成了。我的设计过程与思路大体就是这样子。


6.2经验总结

我觉得一个课题设计中的心得体会是非常重要的一部分,这是一个经验的积累与总结。在刚开始设计这个秒表时,我只是自己根据生活经验来设想这个秒表的功能,而自己所想到的却只是比较接触多的,所想到的会比较单一,有些功能根本没有想到,以至于所做的系统功能太少,太简单。我设计秒表的时候就只想到控制它的运行与停止,清零以及记录时刻。由于是四位数码管显示无法记录,所以这个功能省去。但做到后面我才想到其实还可以加一个倒计时以及倒计时完报警的功能。但板子已经做好了,就没有去改了。所以在设计的时候一定要想的周全,多查资料,设计一个在自己能力范围之内功能又合理的东西。通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。们安排了这次单片机课程设计,给了我们学以致用的做好的实践。 对于这次课程设计,我们花费了比较多的心思,既是对课程理论内容的一次复习和巩固,还让我们丰富了更多与该专业相关的其他知识,比如软件应用等,在摸索中学习,在摸索中成长,在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获,在真正设计之前我们做了相当丰富的准备,首先巩固一下课程理论,再一遍熟悉课程知识的构架,然后结合加以理论分析、总结,有了一个清晰的思路和一个完整的的软件流程图之后才着手设计。在设计程序时,我们不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;养成注释程序的好习惯是非常必要的,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也能为资料的保存和交流提供了方便;我觉得在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计又出错了。此次的设计,其实也是我们所学知识的一次综合运用,让我深深的认识到了学习单片机要有一定的基础,要有电子技术方面的数字电路和模拟电路等方面的理论基础,特别是数字电路;也要有编程语言的汇编语言或C语言。要想成为单片机高手,我们首先要学好汇编语言,然后转入C语言学习,所以我们不能学到后面就忘了前面的知识,更应该将所学的知识紧紧的结合在一起,综合运用,所谓设计,就是要求创新,只有将知识综合运用起来才能真正的设计好。


七、参考文献

[1] 杨长兴、刘卫国.C++程序设计:中国铁道部出版社

[2] 李朝青.单片机原理及接口技术(第三版):北京航空航天大学出版社

[3] 康华光.电子技术基础(第五版):高等教育出版社

[4] 刘坤、赵红波、张宪栋.51单片机C语言运用(第二版):人民邮电出版社

[5] 阎石 数字电子计数基础(第五版):高等教育出版社

相关推荐