首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

利用AT89C51单片机对发光二极管阵列进行控制(2)

利用AT89C51单片机对发光二极管阵列进行控制(2)

在proteus 下仿真调试的时候,给定的电源VCC 为5V,实际使用时用3 节干电池串联4.5V 即可。    2 系统软件设计
    2.1 软件设计思想
    在摇动LED 棒的时候单片机必须单程传送数据,否则显示的图形会产生重影,影响视觉效果。因此当系统开始工作后通过滚珠开关的位置来使单片机实现单程传送数据给LED.如果滚珠开关位于右边,则进入外部中断1 并将一变量置1,在变量为1期间让单片机以一定的频率将数据传送给LED.如果滚珠开关位于左边,则进入外部中断0 并将变量置0.在这期间单片机不会传送数据给LED.在送数据时,数据送完后应延时一段时间来使摇动时显示的每个字不会太拥挤,之后再立刻熄灭LED 并开始重新判断滚珠开关的位置。
    2.2 软件设计流程图
    通过软件设计思想的分析,得到该系统的主程序流程如图3所示。

    系统开始运行,首先初始化整个系统,然后等待外部中断。当用手摇动到指定位置时,由滚珠开关触发外部中断,系统接收到外部中断信号后,就传送数据,再经过一段延时后开始显示。显示完成返回主程序,等待下一个摇动周期的到来。周而复始的晃动,则会显示出相应的信息。
    3 结论
    在设计中通过调试,使用外部中断让数据单程传输很好的取消了重影。通过改变传送数据方式:由一个字符接一个字符传送改为将一组字符一起传送,传送结束后再延时等,使显示的内容在扇形区域内完整的显示出来,同时也解决了画面连续出现没有间断的问题。所以得出,只要控制好数据传输方式以及每次传输数据间的延时就可以实现多种数据的显示方法。整个系统达到了预期的目的,结构简单,趣味性好。经过继续研究可以应用到LED广告等行业中。
返回列表