系统软件设计

作者: 随心简述简书 | 来源:发表于2022-03-11 20:14 被阅读0次

    4、 系统软件设计

    4.1  主程序设计

    程序主函数运行流程框图如图4-1。

    图4-1 主程序框图

    首先,将系统所需要的文件的宏定义文件包含进来。定义:74hc573控制输入模块 P0口;uln2803驱动模块 P1;74hc573控制输出模块 P2口。

    初始化定时器0,延时5us,开中断,使其处于等待中断状态。接着,初始化光立方体,驱动光立方,利用扫描形式使光立方体的LED灯逐个点亮形成动画。

    5、 系统调试及结果分析

    5.1  系统调试

    5.1.1.  硬件测试

        本系统由于用到较多的LED灯,对于焊接和调试造成一定的难度,512个灯中只要有一个出问题替换工作将是非常的麻烦,必须把八层的LED拆开再取出坏的LED重新焊接。在对电路检查时由于本设计电路版面较大,检查起来并非易事。

    在设计过程中发现了一些问题。以下为主要的问题及解决方案:

    1、本系统由于程序量要求大,512个LED灯需要较高的驱动电流和较大工作量的编程,传统的8K 89C51单片机将导致程序溢出无法编译。

      解决方法:采用单片机STC12C5A60S2 单片机,STC12C5A60S2单片机内部就自带高达60K FLASH ROM,并具有自带的AD功能,对光立方功能拓展提供了更宽广的平台。

    2、本系统在硬件测试时发现光立方体的LED灯普遍偏暗,电流较低,无法达到预期的效果。

    解决方法:首先先进行电路的检测,测试是否存在短路、短路情况。发现没有问题,接着在io口上接了上拉电阻,问题得以解决。

    3、调试过程中烧入全亮程序发现有一束八个灯同时不亮。

    解决方法:由于74hc573控制着光立方体XY灯的亮灭,一个引脚控制八个LED,由此原理可以猜测可能是其中一个控制其亮灭的74hc573引脚出问题。通过与其他引脚的电压对比,发现控制这八个灯的引脚电压明显偏低,经仔细检查果真由于线路断路造成,问题得以解决。[6]

    4、在调试过程中发现插上已烧入程序的单片机后对光立方主体起不到控制的作用。

    解决方法:根据经验猜测是单片机引脚没起作用造成的。后来换了块单片机发现动画出来了,由此判断是单片机烧坏造成。

    5、调试过程中发现uln2803不起作用,将其输入端口直接接VCC却不能逐层点亮。

    解决方法:根据经验判断为驱动芯片烧坏,换了块芯片问题还是还是没有得以解决[4]。于是开始检测与之相连的最小系统,通过测试最小系统上的电容等元器件后发现问题依然存在。但由于整体布局中线路较多遂放弃一个个器件进行检查而是单独外接一块最小系统来对比论证,通过实践得知问题确实出现在原先的最小系统上。

    6、由于电烙铁工作时会有较小的静电产生,很容易烧坏LED灯。

    解决问题:问题可能处在电烙铁在工作过程中产生的静电上,以下为减少静电影响的方法:1.将烙铁头跟接地线相连,以泄放产生的静电。2.如果烙铁没有接地线那就光脚才在地上也会降低静电的影响。把八个灯归为一组,焊完组个检查,焊完64个整排再进行检查,把LED坏的概率降到最低。

    5.1.2. 软件测试

    3D8光立方主要是通过程序来控制光立方体从而达到多种动画变化的效果。由于要形成多样的3D动画,在变成过程中也出现了不少的问题。最后经过多次的细心修改,顺利的完成了编程工作。主要问题有:

    1、烧入程序后,不能显示完整的动画。

    解决方法:重新检查程序,检查对应的引脚定义有没错。再者检查延时是否过快导致动画不明显。

    2、第一次烧入程序时用<REG52.H>作为头文件名,发现程序溢出编译不通过并且检查程序无错误。

    解决方法:该问题可能是52单片机为8K内存,而本光立方设计程序达到35K远远超出52单片机的内存,于是将头文件名改为<STC12C5A60S2.H>,并配合keil4进行编译,编译通过

    相关文章

      网友评论

        本文标题:系统软件设计

        本文链接:https://www.haomeiwen.com/subject/xopmrrtx.html