《单片机电子时钟毕业设计(论文).docx》由会员分享,可在线阅读,更多相关《单片机电子时钟毕业设计(论文).docx(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 引言单片机系统被定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。实际上单片机系统是计算机的一种应用形式,是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,具有软件代码小、高度自动化、响应速度快等特点。因此它是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。特别适合于要求实时的和多任务的系统。如今单片机系统的应用越来越广泛,那么单片机系统应用缘何能在近年来的信息技术应用中脱颖而出,成为众多商家角逐的对象。其实原因很简单,因为这里面蕴藏着巨大的市场,巨大的商业利益,单就电视应用而
2、言,目前全球有2亿多有线电视用户,中国也有8000多万户,而且每年还在以600万的速度递增。如今,在这块领域里,还没有一家公司有成熟的产品,也没有标准的操作系统,更没有一个可以主导市场的垄断者。在这种局势下,虽然竞争将异常剧烈,但突围的可能性也较大,只要能够培养出自己的技术能力和市场开拓能力,是有可能取得巨大成功的。设计电子打铃的最终目的是能把它应用到实际中去。如学校的作息时钟打铃,车站的日期时间显示,实时控制系统以及仪器仪表,家用电器等各个领域。由于它的应用领域广,技术要求各不相同,因此应用系统的硬件设计是多样化的,但总设计方法和研制步骤相同。本论文主要介绍一下电子打铃的设计过程与方法,以及
3、在单片机系统上的调试方法。电子打铃课题设计着重于实践和动手能力的培养,通过阅读并学习本论文可以大概了解单片机的发展及其工作方法,了解汇编语言,掌握一定的单片机知以及用指令编程方法和技巧。能用单片机指令编制出一些实用的小程序。另一方面通过本论文可以了解电子打铃打铃器的时钟走时、显示、定时器等的工作方式以及时钟控制打铃编程方法。时钟走时是利用定时器计数进行的,显示由键盘显示接口电路与五个数码显示组成,利用可实现对键盘、显示器的自动扫描并且可以减轻对的负担,具有显示稳定、程序简单、不会出现误动作的特点。时钟控制就是利用键盘输入一个时设定的时间值,再经过程序中的比较判断程序来控制时钟走。2 总体方案论
4、证方案:采用AT89C51单片机来实现系统的控制。此系统硬件简洁,将复杂的硬件功能用软件实现,因此系统控制灵活,能很好地满足本题的基本要求和扩展要求简洁、灵活、可扩展性好,能完全达到设计要求,故采用这种方案。2.1 确定技术指标在开始设计前,必需明确应用系统的功能和技术要求,综合考虑系统的先进性、可靠性、可维护性、成本及经济效益等。再参考国内外同类产品的资料,提出合理可行的技术指标,以达到最高的性价比。2.2 机型选择机型选择的出发点及依据,可根据市场情况,选择成熟、稳定、货源充足的机型产品。同时还应根据应用系统的要求考虑所选的单片机应具有很高的性价比。另一方面为提高经济效率,缩短研制周期,最
5、好选用最熟悉的机种和器件。采用性能优良的单片机开发工具也很能加快系统的研制过程。2.3 器件选择应用系统除单片机以外,系统通常还有传感器、模拟电路、输入输出设备。这些部件的选择应符合系统的精度、速度和可靠性等方面的要求。2.4 软、硬件功能的划分系统的软件与硬件的设计是紧密联系在一起的,在某场合硬件和软件具有一定的互换性。为了降低成本、简化硬件结构,某些功能可由软件来完成。若为了提高工作速度、精度、减少软件的工作量、提高可靠性,也可以采用硬件来完成。总之,硬件、软件两者是相辅相成的,可根据实际应用情况来合理选择。3 模块电路设计与比较3.1 时钟方案选择方案一:因为题目中只要求显示小时和分钟,
6、因此可以用门电路组合构成时钟发生器,但此方案硬件复杂,稳定性低,且不易控制。方案二:采用时钟芯片。该芯片可以进行时分秒的计数,可编程接口,还具有报警功能和掉电保存功能,并且可以对其方便的进行程序控制,完全能满足题目的要求。3.2 显示模块的选择方案一:采用数码管显示。数码管亮度高、体积小、重量轻,但其显示信息简单、有限,在本题目中应用很大。方案二:采用液晶显示。液晶显示功耗低,轻便防震。由于本题显示信息比较简单,采用液晶显示界面不清晰,操作不方便。3.3 其他设计的考虑闹铃响采用带音乐芯片的扬声器,为实现题目中接触止闹功能,我们可以采用触发开关控制闹铃的启动。通过单片机的中断定时控制闹铃停止。
7、4 系统模块设计及电路图4.1 键盘接口电路设计我们采用28的键盘,原理图如图所示。4.2电源电路设计4.3 显示模块4.4 数码管驱动模块5 测试方法及结果5.1 测试方法采用先分别调试各单元模块,调通后再进行整机调试的方法,以提高调试效率。(1)时钟测试在带有单片机的电路板上编程调试,使其在液晶上显示出时分秒,并可以通过键盘控制设定时间和闹铃开关的时间。利用仿真机调试成功后通过编程器将程序写入芯片中调试,调试结果显示,该模块可以显示时分秒,可以正常工作。(2)闹钟测试通过键盘控制设定闹钟开关和闹钟响的时间,并通过单片机程序驱动音乐电路发声。经过调试,闹钟功能正常,满足题目的基本要求。5.2
8、 测试结果5.2.1 基本要求上电复位后,由显示信息可知达到数字显示时间、闹钟开、关状态、闹钟灯熄灭的显示要求,可进行时间设定,在新的时间点上运行,实现时间设置功能;可进行闹钟时间设定,在新的时间点到达时,发出声报警,实现闹钟设置功能;时间到达闹钟设置值时,系统发出声报警,实现闹钟控制。5.2.2 自行发挥部分多闹钟设置系统可以设置多个闹钟时间,目前以1个为例设计了系统,可实现多点启闹及显示日历、星期6 电子打铃的研制过程电子打铃的研制过程实际上是一个应用系统的研制过程。所谓应用系统,就是利用单片机为某应用目的而设计的单片机专用系统(在调试过程中通常称为目标系统)。电子打铃和一般的计算机应用系
9、统一样,也是由硬件和软件组成。硬件指单片机、扩展的存储器、输入输出设备、控制设备、执行部件等组成的系统。软件是各种各种应用程序的总称。硬件和软件只有紧密结合,协调一致,才能组成高性能的应用系统。在系统的研制过程中,软硬件的功能总是在不断地调整,以便相互适应,相互配合,以达到最佳的性价比。电子音时钟的研制过程主要包括总体设计、硬件设计、软件设计、在线仿真调试、程序固化等几个阶段。6.1 硬件设计硬件设计的主要任务是根据总体设计要求,以及在所选的机型上的基础上,确定系统扩展所用到的外围电路等,然后设计出系统电路原理图。对于电路芯片的选择原则应根据系统对它的速度、精度、价格的要求而确定。除此之外,还
10、应考虑和系统中的传感器、放大器相匹配问题。1.地址译码电路的设计:MCS-51系统有充足的存储空间,包括64KB程序存储器和64KB的数据存储器,在应用系统中一般不需要这么大的容量。为了简化硬件线路,同时还要使用到的存储器空间地址连续,通常采用译码器、线选法相结合的办法。2.线驱动器的设计:MCS-51系统单片机扩展功能比较强,但扩展总线负载能力有限。若所扩展的电路负载超过总线负载能力时,系统便不能可靠地工作。此情况下必须在部线上加驱动器。3. 其它电路的设计:由于单片机具有很多的特点,它被大量地应用于工业测控系统中,而在这些系统中,经常要对一些现场物理量进行测量或者将其采集下来进行信号处理之
11、后,再反过来去控制被测对象或相关设备。在这种情况下,应用系统的硬件设计就应该包括与此有关的外围电路。例如,键盘、显示器、开关、输入输出设备、采样、放大、应用系统各部分的驱动能力等外围电路,要进行全盘合理的设计。4.可靠性设计:课题设计的可靠性是一项最重要最基本的技术指标,这是硬件设计时必须考虑的一个指标。可靠性是指在规定的条件规定的时间内完成规定功能的能力。规定的条件包括环境条件(如温度、湿度、振动等)、供电条件等。规定的时间一般指平均故障时间,平均无故障时间、连续正常运行时间等。规定的功能随单片机的应用系统不同而不同。单片机应用系统在实际工件中,可能会受到各种外部和内部的干扰,使系统工作产生
12、错误或故障,为了降低错误和故障的产生机率,常采用以下可提高可靠性的措施:(1)提高元件的可靠性;(2)提高印刷电路板和组装的质量,设计电路板时布线及接地方法要符合要求;(3)对供电电源采用扩干扰措施;(4)输入输出通道扩干扰措施。6.1 工艺设计,包括机箱、面板、配线、接插件等,这也是一个初次进行系统设计人员容易疏忽但又十分重要的问题。在设计时要充分考虑到安装、调试、维修的方便。6.2 软件设计在电子打铃的研制中,软件设计是工作量最大而也是最重要的一环,其设计的一般方法和步骤如下。6.2.1 系统定义系统定义是指在软件设计前,首先要进一步明确设计软件所要完成的任务,然后结合硬件结构,而确定软件
13、承担的任务细节。其软件定义内容有:(1)确定各输入/输出的功能,信号的类别,电平范围,与系统接口方式,占用口地址,读取的输入方式等。(2)定义分配存储器空间,包括系统主程序,常数表格,功能子程序块的划分,入口地址等。(3)若有断电保护措施,应定义数据暂存区标志单元等。(4)面板开关,按键等控制输入量的定义与软件编制密切有关,系统运行过程的显示,运算结果的显示,正常运行和出错显示等也是由软件完成的。所以事先要给予以定义。6.2.2 设计细节(1)根据软件功能要求,将系统软件分成若干个相对独立的部分。根据它们之间的联系和时间上的关系,设计出合理的软件总体结构,使其清晰、简捷、流程合理。(2)培养结
14、构化程序设计风格,各功能程序实行模块化、子程序化。既便于调试、链接,又便于移植、修改。(3)建立正确的数学模型。即根据功能要求,描述出各个输入和输出变量之间的数学关系,它是关系到系统性能好坏的重要因素。(4)为提高软件设计的总体效率,以简明、直观的方法对任务进行描述,在编写应用软件之前,应绘制出程序流程图。这不仅是程序设计的一个重要组成部分,而且是决定成败的关键部分。从某种意义上讲,多花一份时间来设计程序流程图,就可以节约几倍源程序编辑调试时间。(5)注意在程序的有关位置处写上功能注释,提高程序的可读性。(6)加强软件抗干扰设计,它是提高计算机应用系统可靠性的有力措施。6.3 软件结构设计合理
15、的软件结构是设计出一个性能优良的单片机应用于系统软件的基础,必须充分重视。依据系统的定义,把整个工作分解为若干相对独立的操作,再考虑各操作之间的相互联系及时间关系而设计出一个合理的软件结构。对于简单的课题设计,可采用顺序结构设计方法,其系统软件由主程序和若干个中断服务程序构成。明确主次序和中断服务程序完成的操作及指定各中断的优先级。对于复杂的课题设计,可采用实时多任务操作系统,此操作系统应具备任务调度,实时控制,实时时钟,输入输出和中断控制,系统调用,多个任务并行运行等功能。以提高系统的实时性和并行性。在程序设计方法上,模块程序设计是单片机应用中常用的程序设计方法。这种模块化程序便于设计和调试
16、,容易完成可供多个程序共享的优点,但各个模块之间的连接有一定的难度。根据需要也可以采用自上而下的程序设计方法,此方法先从主程序开始设计,然后再编制个从属的程序和子程序。这种方法比较符合人伞兵日常思维。缺点是上一级的程序错误会对整个程序产生影响。软件结构设计和程序设计方法确定后,根据系统功能定义,可先画出程序粗框图,再对粗框图进行扩充和具体化,即对存储器,寄存器,标志位等工作单元作具体的分配和说明。再绘制出详细 的流程图(细框图)。程序流程图设计出以后,便可着手编写程序,单片机应用程序一般采用汇编语言较好,编写完成后可以手工或通过主处理器连机用开发系统上的交叉汇编程序汇编成目标码程序,再经过调试
17、正常运行后,固化到EPROM中去,完成了整个应用系统的设计。6.4 程序设计的基本方法当给定一个题目,进行程序设计时,一般应按以下几个步骤进行:分析题目,确定算法,程序结构的设计,编写源程序,汇编和调试。6.4.1 分析题目分析题目就是明确题目的任务,弄清所给顶的原始数据和应得到的结果,以及运算精度和速度的要求等。分析题目是整个程序设计的重点。若任务比较简单,其原始数据和目的要求等比较清楚,就容易确定设计方法。而对于比较复杂的课题,必须作全面深入的分析,才能为以后的工作打下基础。6.4.2 确定方法确定方法就是选择解决问题的方法。例如,对于单纯的数值计算问题,汇编语言指令本身只能进行加、减、乘
18、、除.等基本运算,但是实际问题可能是计算某个函数之后才解方程。在这种情况下,确定算法就是设法用基本运算方法来解决其它的复杂问题。往往算法不是唯一的。不同的方法在占用存储单元数,计算精度,编程工作量等方面是有差别的,这就需要进行比较和选择。6.4.3 程序结构的设计程序结构的设计是算法转化为程序的准备阶段。如果算法比较简单,这一不可以省掉,直接按算法编写程序。如果比较复杂,同需要进行程序结构的设计。程序结构的设计一般采用流程图法。流程图是有规定的图形符号配合文字说明来表示算法或处理总是的步骤。客观存在具有直观.易懂的特点,是程序结构设计的有力工具。6.4.4 流程图的绘制有一个由粗到细的过程,需
19、要反复修改,求得完善。程序的基本结构是有顺序结构,分支结构和子程序结构等四类。当程序较大时,应根据功能将整个程序分类若干模块。6.4.5 编写源程序程序结构设计完成之后,下一步是编写程序。在编程之前要规划好寄存器和存储器的使用。对于程序区,表格,数据缓冲区,档志单元等作好系统安排。编程根据程序流程图来进行,所编写的源程序要力求简单明了,层次清晰,运行时间短,占用存储空间小。6.4.6 汇编和调试对于编好的程序,要进行汇编和调试。汇编是将源程序变为可执行的目的程序。在汇编过程中,可能发现源程序的某些错误,需作修改。汇编完成后还要通过调试来检查所 编程序是否正常运行。调试方法一般是输入给定的数据,
20、使程序运行,检查程序运行结果是否正确。调试工作可以先部分(或模块)而后总体。在调试过程中一般总会发生不正常情况,而要反复修改程序,直到获得正确的结果为止。7 电子打铃的调试电子打铃设计完成后,依据硬件的设计试制和组装样机及软件设计完成后,便进入系统的调试阶段。调试电子打铃的一般方法如下。7.1 硬件调试方法电子打铃的硬件和软件调试是分不开的,许多硬件故障是在软件设计时才发现的。但通常是应先排除系统中明显的硬件故障后才和软件结合起来调试。7.1.1 常见的硬件故障(1)常见的错误:样机硬件的逻辑错误是由于设计错误或加工过程中的工艺性错误所造成的。这类错误包括错线.开路.短路.相位错等。(2)器件
21、失效:有两方面的原因,一是器件本身已损坏或性能不符合要求;二是由于组装错误造成元器件失效,如电解电容.二极管的极性错误,集成块安装方向错误等。(3)可靠性差:引起可靠性差的原因很多,如金属化孔与接插件接触不良会造成系统时好时坏,经不起振动;内部和外部的干扰.电源纹波系数大.器件负载过大等造成逻辑电平不稳定;走线和布局不合理等也会引起系统可靠差。(4)电源故障:若样机存在电源故障,系统加电后将造成器件损坏。电源故障包括:电压值不符合设计要求电源引线和插座不对.功率不足.负载能力差等。7.1.2 调试方法(1)脱机调试:在样机加电之前,先用万用表等工具,根据硬件电气原理图和装配图仔细检查站样机线路
22、的正确性,并核对元器件的型号.规格和安装是否符合要求。应特别注意电源的下走线,防止电源之间的适中和极性错误,并重点检查扩展系统总线是否存在相互间的适中或与其他信号线的短路。对于样机所用电源事先必须单独调试,调试好后,检查其电压值.负载能力.极性等均符合要求,才能加到系统的各个部件上。在不插片子的情况下,加电检查各插件上引脚的电位,仔细测量各点电位是否正常,尤其应注意单片机插座上各点电位是否正常,若有高压,联机时将会损坏开发机。(2)联机调试:通过脱机调试可排除一些明显的硬件故障。有些故障还是要通过联机调试才能发现和排除。联机前先断电,将单片机开发系统的仿真头插到样机的单片机插座上,检查一下开发
23、机与样机之间的电源.接地是否良好。一切正常,即可打开电源。通电后执行开发机的读写指令,对用户样机的存储器I/O端口进行读写操作逻辑检查,若有故障,可用示波器观察有关波形(如选中的译码器输出波形.主导写控制信号.地址数据波形以及有关控制电平)。通过对波形的观察分析,寻找故障原因,并进一步排除故障。可能的故障有:线路连接上有逻辑错误.有短路和断路现象.集成电路失效等。在用户系统的样机(主机部分)调试好后,可以插上用户系统的其他外围部件如.键盘.显示器输出驱动板、A/D、D/A板等。 再对这些板进行初步的调试。在调试过程中若发现用户系统工作不稳定,可能有下列情况:电源系统供电电流不足,联机时公共地线
24、接触不良;拥护系统主板负载过大;用户的各级电源滤波不完善等。对这些问题一定要认真查处原因,加以排除。 7.2 软件调试方法软件调试与所选用的软件结构和程序设计技术有关。如果采用模块程序设计技术,则逐个模块分别调试。调试各子程序暗无天日定要符合现场环境,即入口条件和出口条件。调试的手段可采用单步运行或段点运行方式,通过检查用户系统CPU的现场、RAM的内容和I/O口的状态,检查程序执行结果是否符合设计要求。通过检测可以发现程序中的死循环错误、机器码错误及转移地址的错误,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计故障。在调试过程中不断调整用户系统的软件和硬件,逐步通过一个一个程序模块。
25、各模块通过以后,可以把有关的功能模块联合起来一起进行综合调试。在这个阶段若发生故障,可以考虑各子程序在运行时是破坏现场,缓冲单元是否发生冲突,标志位的建立和清除上设计上有没有失误,堆栈区有没有溢出。输入设备的状态是否正常等等。若用户系统是在开发机的监控程序下运行时,还要考虑用户缓冲单元是否和监控程序的工作单元发生冲突。经单步和断点运行调试后,还应进行连续调试,这是因为单步运行只能验证程序的正确与否,而不能确定定时的精度、CPU的实时响应等问题。待全部调试完成后应反复运行多次,除了观察稳定性之外,还要观察用户系统的操作是否符合原始设计要求、安排的用户操作是否合理等,必要时再作适当的修正。如果采用
26、实时多任务操作系统,一般是逐个任务进行调试,调试方法与上相似只是实时多任务操作系统的应用程序是由若干个任务程序组成,一般是逐个进行调试,在调试某一个任务时,同时也调试相关的子程序、中断服务程序和一些操作系统的程序。调试完后,再使各任务同时运行,如果操作系统无错误,一般情况下系统就能正常运行。软件和硬件联调完成后,反复运行正常则可将用户系统固化到EPROM中,插入用户样机后,用户系统即能脱机工作,至此系统研制完成。结 论 本系统以AT89C51为核心部件,利用软件编程,通过键盘控制和液晶显示实现了时钟功能、闹钟功能,并完成了对环境温度和市电信号频率及有效值的测量显示,能实现题目的基本要求和发挥部
27、分。尽量做到硬件电路简单稳定,减小电磁干扰和其他环境干扰,充分发挥软件编程的优点,减小因元器件精度不够引起的误差。由于时间有限和本身知识水平的发挥,我们认为本系统还有需要改进和提高的地方,例如选用更高精度的元器件,硬件电路更加精确稳定,软件测量算法进一步的改进与完善等。此次毕业设计中,我们组做的是一个可在线调整的单片机电子打铃,从毕业设计任务下达到设计任务的完成,整个过程经历了确定设计目标、拟订设计项目、执行设计任务、完成设计任务四个步骤。在这四个步骤中,执行设计任务是最艰辛的,但同时也是我们组团队精神得到最大发挥的时候,是我们组最具有成就感的阶段。在执行设计任务的过程中,零件的选购、实物的焊
28、接以及到后来论文的完成都不是最难的,最难的是硬件的调试,因为理论与实践总是存在着差距,想出来的东西没有经过实践的检验是不可靠的,任何一个小小的疏忽大意都能导致失败。比如说,因为P0口与其它口的区别,要在AT89C51单片机的P0口上驱动LED的显示必须加上上拉电阻(资料书上只简单地用一句话来描述),但是我们在拟订设计项目的过程中忽略了这一点,以至在调试的过程中没有达到原定的计划,即无法驱动LED发光。在查阅了大量的资料书并对实物进行详细的检查分析后,我们组终于发现问题地所在并及时地解决了问题,之后再一次对硬件进行调试,这次终于成功了。这只是一个例子,在设计的过程中遇到的问题远远不止这一个。从这
29、一方面来说,我认识到要做成一件事是很难的,期中必定有很多的阻碍,但是我们一定要慢慢来,一点一点地找出问题,再一点一点地解决它,这样的话,到达成功的彼岸也就仅仅是时间的问题了。我想,通过这次设计,特别是通过对硬件的制作而不单单是对原理的论述,我学到的不仅仅是电子方面的知识,更重要的是,我学到了作为一名电子设计者所必需的心理素质,那就是决心加上耐心!当然,在制作的过程中我也强烈地感受到团队的力量,没有团队地共同努力是不可能完成设计任务地。除此之外,没有老师的关心与帮助也是很难达到设计要求的,在此再次向三位指导老师:鲁杰爽、鲁杰爽及彭俊珍老师表示感谢!经过本次毕业课题设计,在为不经意中我已掌握了不少
30、关于单片机的实用知识。我深感自豪、充实、略有些成就感。同时也使我的能力进一步提高。为我毕业后能更好的适应社会工作打下一定的基础。为此,我忠心的感谢各级领导及指导老师的大力支持。经过两个星期的单片机电子打铃的课题的设计,我从中学到了很多东西。如:如何设计硬件电路,如何编写、调试软件程序等。这使我受益非浅,感受很深。这不仅使我重温了单片机的基本结构及工作原理,接口技术,而且进一步熟悉了如何使用单片机汇编语言编写程序和调用程序的方法与技巧。能够熟练地对小键盘进行操作,对单片机常用的几种芯片也有了更深一步的了解,而且学会了如何利用计算机进行程序汇编和写入程序存储进行调试,使我对整个制作流程有了深刻的了
31、解和体会。特别是认识到使用单片机进行软件、硬件的开发过程中应注意设计要求、经过及解决一些客观存在问题的重要性及其意义。在电子打铃课题的设计制作过程使我们对单片机的设计、开发产生了更加深厚的兴趣,但是也遇到了很多问题和挫折,然而经过自己不断的探索和请教学习后,还是将它们一一解决,并得到了很多很深刻的教训和许多宝贵经验,找出自身整个设计过程中所存在的问题,并认识到自己在以后应该怎样去克服它们。在整个设计过程中我的动手能力与解决问题的能力也进一步提高。虽本次设计中我走了不少的弯路,吃了不少的苦头。但是,我从中得到了更多。使我对单片机的开发产生了浓厚的兴趣,对我的将来充满斗志和信心。我相信,将来的社会
32、,只要能想到的就能做。因为科技无边,智慧无限。我相信我们的能力。由于我们设计的电子打铃课题的重点在于软件程序的设计,利用PROTEL99电路图设计应用软件进行设计硬件电路图的原理图与PCB电路板图,利用计算机进行编写程序,编译程序和编程器将程序写入到AT89C2051存储器里。在单片机上进行调试。在软件设计时,由于相对应单片机的中断系统指令系统内部和外部存储器不是很了解,所以出现了许多不必要的麻烦。就拿编程来说,由于没有处理好子程序的返回和时钟中断程序时间就导致时钟运行到指定的时间后不打转而是继续走时,由于没有把握好计数、显示等一些细节地方,而导致时钟计数不准确、不能正常显示时间等一系列相当严
33、重的问题。在经过反复检查、分析、调试之后,从中发现了中断时的数值设置不太适合,不能使用两个时钟标准等一系列问题,经过自己的反复修改、调试和验证,最终才得以解决达到设计的要求。在整个设计过程中,程序的调试是其中一个非常重要的环节。在调试过程中,小键盘的操作是十分必要的,特别是在调试程序中,有时往往需要在程序中设置断点来判断程序是否正确,通过它,我们可以很快找到出错的地方,对程序进行分析并加以修正。其中有一点是值得我们注意的:在程序设计之前一定要知道设计要求,要清楚地知道本程序所有内容以及程序的执行过程,据此画出本程序的流程图,然后根据流程图进行程序设计,这样的程序比较有条理,各部的程序可以分别进
34、行调试和检查。有利于后面对程序 进行修改和调试,特别值得注意的是,程序在编写的过程中,要有鲜明的思想,不能主次不分,主程序与子程序混在一起,不知道那是主,那是次,要编定出主程序,再根据设计的要求编写子程序,使整个程序严密,有条理。有利于后面的调试修改。在这次的电子打铃的课题设计过程中,我对所学的PROTEL99设计应用软件有了更深一步的理解与掌握,能够十分熟练的运用其各个菜单的功能,在设计电路时要细心,有耐心,每一个环节都不能有半点的差错,每一个连接点都不能粗心,否则就不能成功。就拿电路原理图转化为PCB板图来说,如果有一个元件没有封装或封装错误,一个元件的管脚编号不一至,在转化时就会出错。有
35、时我们所使用的元件在元件库中无法找到,这就需要我们自己制作,在整个制作过程中,元件的定义是很关键很重要的一步,我们必须对元件的每一管脚功能都很熟悉,以及元件的每一项参数也要了解。元件的引脚也要画的均匀,它们的每一步都是连贯的,都是一环扣一环,对所做的元器件不进行了解就不可能制作出一个合格的元器件。此次课题设计大体分为准备、设计、调试验证、整理四个阶段。就准备来说,主要查资料。其目的是温故专业知识,熟悉AT89C2051等芯片;再者设计阶段主要是原理图设计、程序设计等。在前阶段的基础上,根据设计目的做出设计计划。此阶段要求熟练操作计算机软件。如PROTEL及汇编等应用软件。同时,要具有一定的编程
36、能力以及应用能力;而调试验证阶段主要就程序的调试,及验证结果。此阶段要掌握编程器及单片机实验电路板的应用。使程序达到预期效果。整理阶段就是把设计的原理图及程序做装饰。使其通俗易懂,一目了然,有条有理。然后把课题设计所涉及的必用资料,以书面的形式打印出来,装订成本。提交答辩。此次毕业设计也就圆满完成。在这个设计过程中,我们如果没有对以上的知识进行学习就不可能对它们整体化,系统化;也就不能完成课题设计。我们如果没有细心和耐心,没有刻苦钻研,艰苦奋斗的精神,整个课题就不可能设计成功。经过本次课题设计,使我的专业知识得到进一步提高,特别是在单片机编程、汇编语言的应用,计算机的操作,单片微型计算机实验板
37、的使用,编程器和电脑的配合使用,以及Protel 99SE软件的熟练应用等方面。无论是那一方面都马虎不得。因为它们步步相连,环环相扣。对待它们只有耐心、恒心,更要细心和信心。总之,本次单片机电子打铃课题的设计让我学到了很多东西,使我受益非浅。致谢衷心感谢我的指导老师鲁杰爽老师。感谢他在我的毕业设计期间对我的精心指导和教诲。在毕业设计过程中,鲁老师无论是在理论上还是在实践中,都给了我很大的帮助。使我在程序调试等各个方面得到了很大的提高。鲁老师治学态度严谨,工作态度认真负责,为人亲切和蔼,学术理论和实践经验丰富,是我学习的好榜样。同时感谢和我合作的本小组成员(邵莉、朱云霞、张兰、曾玲、夏奎、陈春、
38、李桂林、徐沛然、张杰、李维、扬洋、黄京端、李学亮、王力、沙长园)。在调试的过程中,我们团结合作,充分发挥了集体的力量。遇到技术难关,我们一起商讨解决办法,提出合理方案。在整个开发过程中,是他们给了我无私的协助,帮助我顺利地完成这次毕业设计。本次用单片机设计的电子打铃至此已全部完成,从开始至结束的一切工作都经同组同学齐心协力的努力下,以及鲁杰爽老师和彭俊珍老师的关怀、支持和指导下,才能顺利的完成(因为无论是资料的采集、零件选购、软件设计、还是硬件焊接、外观设计、论文编写都是由先讨论、后确定、再经过老师的指导,最后经过分工合作来完成的),在这次的设计中体现出我们强大的团队精神,让我们感受到团队的力
39、量。享受到了学以致用,用以助学的快乐。特别是两位老师无微不至的关心,更另我们感受到学院的温暖。老师的伟大。通过本次毕业设计,使我们对书本又有了更深层次的认识,增强了每位组员的动手能力,特别是认识到理论与实际异同。理论需要实际的验证,实际需要理论为基础和指导。在此向鲁杰爽、刘华东、彭俊珍三位指导老师表示感谢!参考文献刘华东.单片机原理与应用.北京:电子工业出版社,2002.谢自美.电子线路设计实验测试(第二版) .武汉:华中科技大学出版社,2000.何小艇.电子系统设计.浙江:浙江大学出版社,2004.胡宴如.模拟电子技术.北京:高等教育出版社,2004.胡翔俊.电路基础.北京:高等教育出版社,
40、2004.杨树.数字电子技术.北京:高等教育出版社,2004.附录 A: 原理图附录 B: PCB图(正面)附录 C: PCB图(反面)附录 D: 应用程序ORG 0000H ;设置程序起始地址 START:LJMP L0030 ORG 000BH ;设置T0中断起始地址 INTT00:LJMP INTT1 ORG 001BH ;设置T1中断起始地址 INTT01:LJMP INTT1 ORG 0030H L0030:MOV 60H,#00H ;数码管显示缓冲单元清零 MOV 61H,#00H MOV 62H,#00H MOV 63H,#00H MOV 64H,#00H MOV 65H,#00
41、H MOV 50H,#00H ;秒计数缓冲单元清零 MOV 51H,#00H ;分计数缓冲单元清零 MOV 52H,#00H ;时计数缓冲单元清零 MOV 53H,#00H ;星期计数缓冲单元清零 MOV 54H,#00H ;日期计数缓冲单元清零 MOV 5AH,#07h MOV 5BH,#00h MOV 5CH,#00h CLR 10H ;对中断处理的单双两部分单元清零 CLR 11H CLR 12H CLR 13H MOV R7,#00H ;对基础计时清零 MOV R2,#00H ;对扫描计数清零 MOV P1,#0FFH ;输出口初始化 MOV P3,#0FFH ;输出口初始化 MOV
42、SP,#66H ;设置堆栈的起始地址 MOV TMOD,#11H ;定时器1的初始化 MOV 8BH,#38H ;对定时器给初值 MOV 8DH,#38H ;对定时器给初值 SETB PT1 ;设置中断的优先级 SETB RS1 ;工作寄存器的设置 SETB RS0 ;T1使用第三组寄存器 MOV R1,#0FH SETB ET1 ;开中断,启动定时器 SETB TR1 SETB EA CLR TR0 CLR RS1 ;主程序使用第零组寄存器 CLR RS0 L01:LCALL DISPLAY1 ;调用显示子程序 LCALL K1 ;调用键处理子程序 LJMP L01 ;死循环 ORG 010
43、0H ;设置定时器中断子程序的起始地址 INTT1:PUSH ACC ;保护现场 PUSH PSW PUSH DPH PUSH DPL MOV A,B PUSH ACC SETB RS0 ;设定工程环境 SETB RS1 ;定时器使用第三组寄存器 CLR TR1 ;关中断 MOV TH1,#0FCH ;重设定时器初值 MOV TL1,#38H SETB TR1 ;启动中断 LOOP2:CPL 10H ;对中断处理的单双两部分单元取反 JNB 10H,LOOPA1 ;(10H)的位是否为0,是则转移 CJNE R7,#00H,LOOP3 ;(R7)等于0吗?是则顺序执行 LJMP LOOP4 LOOP3:DEC R7 ;R7减1 LOOP4:INC R2 ;R2加1 CJNE R2,#06H,LOOP5 ;(R2)等于0吗?是则顺序执行 LOOP5:JNC LOOP6 ;判断进位是否为0,是则顺序执行 LJMP LOOP7