3.2程序设计原理
软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。
软件任务分析环节是为软件设计做一个总体规划。从软件的功能来看可分为两大类:一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出控制和通信等,另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。
软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入输出定义)。在各执行模块进行定义时,将要牵扯到的数据结构和数据类型问题也一并规划好。
各执行模块规划好后,就可以监控程序了。首先根据系统功能和键盘设置选择一种最适合的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易编程,而监控程序较易出问题。这如同当一名操作工人比较容易,而当一个厂长就比较难了。
软件任务分析的另一个内容是如何安排监控软件和各执行模块。整个系统软件可分为后台程序(背景程序)和前台程序。后台程序指主程序及其调用的子程序,这类程序对实时性要求不是太高,延误几十ms甚至几百ms也没关系,故通常将监控程序(键盘解释程序),显示程序和打印程序等与操作者打交道的程序放在后台程序中执行;而前台程序安排一些实时性要求较高的内容,如定时系统和外部中断(如掉电中断)。也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态”,以利于系统节电和抗干扰。
智力竞赛抢答器要求有记忆功能,一次时间设置完,复位后不需重新进行时间设定,通过键盘扫描输出按键信息,再通过单片机将它转换成能在七段数码管上显示字型码。
当抢答完毕时,会在数码管上显示抢答者数字号码提示以表示抢答成功,同时显示其分数,分数的加减可有裁判手动进行。采取独立式键盘,可以实现8路抢答。在显示时使用的是七段数码管显示在本设计中根据实际情况采用的是动态显示方法。臂并通过查表发将其在数码管上显示出来,其中P1口为字型码输入端,P2口低6位为字选段输入端。通过查表将字型码送给7段数码管显示的数字。软件去抖动,如果“开始键”
按下就向下执行,否则就跳到开始。采用发声报警,起到报警作用。
主持人按\抢答开始\键,并立刻进入抢答倒计时(预设30s抢答时间),如有选手抢答,会有提示音,并会显示其号数并立刻进入回答倒计时(预
16
设30s抢答时间),不进行抢答查询,所以只有第一个按抢答的选手有效。
如倒计时期间,主持人想停止倒计时可以随时按\停止\按键,系统会
自动进入准备状态,等待主持人按\抢答开始\进入下次抢答计时。
4.系统调试
4.1硬件调试
抢答器的电路系统较大,对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺破带有包皮的导线,则会对电路造成短路现象。
在本抢答器的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:
(1)数码管选用的时候没有注意采用的是共阴还是共阳,导致调试的时候数码管一直不能显示。
解决:把共阴数码管换成数码管。
(2)最开始的时候以为单片机IO口直接可以驱动蜂鸣器发声,后来调试的时候久久不能出声音。
解决:经过查找相关资料,知道扬声器需要三极管来驱动,后来把三极管放大器加上系统便可以正常工作。
4.2软件调试
抢答器是多功能的数字型,可以完成记录最先按下抢答器的选手,并能记录违规操作的选手。抢答器功能很多,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。在软件的调试过程中主要遇到的问题如下:
1.烧入程序后,LED数码管显示闪动,而且亮度不均匀。
解决:首先对调用的延时进行逐渐修改,可以解决显示闪动问题。其次,由于本作品使作动态扫描方式显示的数字,动态扫描很快,人的肉眼是无法看出,但是调用的显示程序时,如果不在反回时屏蔽掉最后的附值,则会出现很亮的现象,所以在显示的后面加了屏蔽子令,最后解决了此问题。
2.当用户按下按键的时候,单片机读取的数值跟设定的数值不对。 解决:重新检查矩阵键盘电路的连接,重新建立一个新的对应关系。
4.3调试结果
17
(1)在测试中遇到LED数码管为不显示时,首先使用试测仪对电路进行测试,观察是否存在漏焊,虚焊,或者元件损坏.
(2)LED 数码管显示不正常,还有亮度不够,首先使用试测仪对电路进行测试,观察电路是否存在短路现象。查看烧写的程序是否正确无误,对程序进行认真修改。
经过一系列的问题查找后系统最终能正常工作,并完成所有的功能。 以下为系统仿真图:
C1U130pF191P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39P0.038P0.137P0.236P0.335P0.434P0.533P0.632P0.721P2.022P2.123P2.224P2.325P2.426P2.527P2.628P2.710P3.011P3.112P3.213P3.314P3.415P3.516P3.617P3.723456789RESPACK-8P1.1P1.0P1.4P1.6P1.7P1.2P1.3P1.5RP1XTAL1LS1P3.0X1CRYSTAL18C230pFXTAL2SOUNDER9RSTC310uR110K293031PSENALEEAP2.0P2.1P2.2P2.4P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.712345678P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7AT89C52P2.5P2.6P2.7P2.3 图4-1系统仿真图
18
5.结论
通过这次毕业设计,我学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。经过我长时间的设计及调试,本系统基本能实现抢答器的所有功能。但由于仿真系统原因,本设计音频效果不是很好。不足之处有:1.硬件的稳定性有待进一步提高2.系统人性化还不足。
我的综合设计主要涉及硬件和软件两方面的内容,通过这些我的硬件和软件开发能力都获得了提高。首先硬件方面,基本了解了电子产品的开发流程和所要做的工作。基本掌握了Protel99SE原理图的方法,并设计了一个单片机最小系统。通过开发板的设计和硬件搭建的过程,使我对51系单片机的接口有了更深层次的理解,熟悉了一些单片机常用的外围电路引脚和连接方法,如LED数码管,键盘等。并且我学会了分析问题解决问题的能力,加深了对所学理论知识的理解和运用。我的动手能力得到了很大的提高,创新意识得到了锻炼。
19
致谢
该毕业论文是在我的导师李宜滨老师的亲切关怀与细心指导下完成的。虽然李老师工作繁忙,但是在我做毕业设计的每个阶段,从查阅资料到设计草案的确定和修改,中期详细设计,后期论文修改等整个过程中都给予了悉心的指导,一直以来李老师都孜孜不倦的为我答疑解惑,李老师的治学严谨的态度和诲人不倦的精神是我永远学习的榜样,并将积极影响我今后的学习和工作,在此向刘老师致以深深的敬意。另外,我还要感谢那些我曾经教导过我的每一位老师,感谢你们的刻苦钻研技术、对技术精益求精、严谨治学的精神,是你们教会我做人做事的道理及学业知识。
感谢广西大学,给我提供了这么好的学习和生活环境,在校学习和生活的日子是我一生中一段难忘的经历!
在论文即将完成之际,我的心情无法平静,从开始进入设计到论文的顺利完成,有多少可敬的老师、同学、朋友给了我莫大的帮助,在这里请接受我诚挚的谢意!最后我还要感谢含辛茹苦培养我长大的父母,谢
谢你们!
20