200916006 - 梁玉龙 - 电子0901 - 广告灯自动控制系统(论文) - 图文 下载本文

广告灯自动控制系统

下面的“DJNZ R6,M3;”到M3的循环可以计算显示一次一个整屏的时间为0.1ms*16=1.1 ms,再下面的“DJNZ R1,M2;”到M2的循环可以计算出每个屏的停留时间,也是向左每移动一下的时间间隔为0.1ms*16*65=104ms=0.1s。

当字型向左移动一位的时候,取码指针应在先加2再进行下一个字型的取码,因为本设计每1列的码为2个。最后的部分代码:

XRL A,#128; JNZ M1; CPL F0;

JMP START; 的意思是:在控制字型移动完以后,返回到头重新开始移动,因为在本设计是显示6个字型,6个字型的码为192个,取码指针的初始为0,每次加2,到192时循环结束,改变F的状态,跳到程序的最上面开始部分,开始黄色字型的移动显示。

说明一下:本设计是以显示6个字的循环为例的,正如前面所说,字型可以任意加进去,显示任意多的字左移的显示,还可以显示一些符号和图形。只要有字型的代码,再稍微改一下程序就可以显示了。

显示效果:开始停0.1秒,显示向左移动的红色字“XXXX”,移动的速度为每0.1秒移动一下,到左后一个字。 在主程序的开始的延时作为一次移动的末尾时到开始下一次重复移动开始之间的停顿,和字符移动的时间间隔相同,保持了移动的平稳连贯性。

24

广告灯自动控制系统

开始 START: 清除屏幕 取码指针载入A 到TABLE取下半部数据 F=0 P0.0置1,P0.1清0输出至P2口延时 取码值加1并延时 取码指针20H初值为00 清除屏幕 154扫描指针初值为00 扫描下一行 M2 显示1屏? Y 清除154扫描设置每屏停留时间 N 每屏4字,取码指针存R0 M3 扫描指针→A Y F=0? P0.2清零P0.1置1输出至P0.1扫描 P0. 1清零P0. 2置1输出至P0.3扫描 N N M1 每屏停留的时间到? Y 取码指针载入A M4 取码指针载入A N 指针加2并回存 到TABLE取上半部数据 P0.0清0,P0.1置1输出至P2口显示 8个字都左移完? 25 Y RET F0取反 取下一个码 广告灯自动控制系统

4.3 PROTEUS仿真[8]

Proteus仿真时,单片机需要加载程序,加载程序为.HEX文件。本设计利用Keil μVision2, 在新建Keil项目时选择AT89C51单片机作为CPU,将源程序导入,在“Options For Target”对话窗口中,选中“Output”选项中的“Create HEX File”,编译链接后就可以生成.HEX文件。在Proteus ISIS中,选中AT89C51并单击鼠标左键,对AT89C51进行设置,设置单片机时钟频率为12MHz,按照正确的文件路径加载.HEX文件。对单片机设置完毕后就可以开始仿真了。仿真过程中如有硬件问题可在Proteus ISIS中直接修改,如有软件问题可在Keil μVision2中直接修改,通过Keil与Proteus的联合调试就可以得到满意的结果。利用Proteus实现了对点阵式LED滚动汉字显示屏的仿真,说明程序和电路图都没有问题。 4.4 调试

调试主要分为硬件调试和软件调试:

硬件调试:在焊接电路板的时候,应该从最基本的最小系统开始,分模块,逐个进行焊接测试。在对各个硬件模块进行测试时,要保证软件正确的情况下去测试硬件,要不然发生错误时,不知道到底是哪一方出错了。当然,在设计的过程中也存在着失误和不足,在调试中进行修改了。

软件调试:软件部分是先参考书上的例子,然后自己根据硬件电路写程序,由于以前所学是单片机汇编语言,所以这个系统在编写程序过程中都采用汇编语言编写。刚刚开始,编写不会一次性通过,经过仔细分析修改最后编译成功。但是,在实际写如S51中,LED显示屏出现各种各样的乱码,通过再次认真仔细分析多次修改程序后,程序能够正常运行。

结束语

本次毕业设计从5月中旬到现在有一个多月,回顾着些天我感到学到了很多东西,在写这个心得的时候,我想就这些天的收获,说一说自己内心的想法。

本设计的是一个室内用16x16的点阵LED图文显示屏,能够在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字显示有静

26

广告灯自动控制系统

止、移入移出等显示方式。本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。

总结本文的研究工作,主要做了下面几点工作:

一、通过查阅大量的相关资料,详细了解了LED的发光原理和LED显示屏的原理,了解了LED的现状,清楚地了解了LED显示屏与其它显示屏相比较有那些优点,明确了研究目标。并且通过对单片机资料的查阅和应用,更进一步增加了对单片机知识的理解和运用能力。并证实了自己的思路:“查资料→思考总结→运用→找出差错,再查资料和向别人询问→再次运用”的正确性。

二,本文设计的LED显示屏能够实现在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。

三,本文列出了系统具体的硬件设计方案,硬件结构电路图,软件流程图和具体汇编语言程序设计与调试等方面。

四,在这次毕业设计的过程中学会了 Protel 的基本使用,感到Protel对应用电子专业的同学来说是一门很有用的课程。在运用Protel时要格外小心,例如在画PCB电路板的时候,要注意基本的布板原则。例如,在进行PCB布板的时候,滤波电容不够靠近芯片的电源脚和地脚。

五,通过这次毕业设计,重新复习并进一步增强了动手的能力,学以致用,把只是运用到实际生活中才是根本目的。

六,存在问题:没有考虑仿真软件是一个理想的仿真环境,而实际连接的电路板会由于譬如连接不当,相邻器件间的干扰等等的问题导致在仿真软件中能良好运行的程序,出现显示问题,经过排查和合理的器件摆放焊接,问题解决。

总体来说这次的毕业设计很成功,达到了预想的目的:学到了知识,提高了能力,完成了任务。有点缺憾是时间有限,不能进一步深入和扩散学习和研究。希望有时间可以对程序和电路图作更进一步的改进,譬如实现点阵的上下移动,对角线移动,三色显示等。

27