新闻中心

EEPW首页>嵌入式系统>设计应用> 基于AVR单片机LED显示屏的灰度设计与实现

基于AVR单片机LED显示屏的灰度设计与实现

作者: 时间:2013-09-29 来源:网络 收藏

4 系统软件设计

系统软件设计包括上位机软件的设计、主机板AT-mega32程序设计、显示子模块ATmega8程序设计3部分。

  上位机软件完成图像和文字的编辑,通过计算机串行接口把显示数据传送到主机板上。主机板接收上位机的数据并通过内部BootLoader区的程序进行FLASHROM内显示数据的自更新。主机板把显示数据进行分割处理后发送给每个子模块,并且完成显示数据的上下、左右滚屏处理。子模块通过软件调制脉冲占空比的方法,实现16阶灰度图像显示。

  4.1 上位机软件设计

  上位机软件使用VB开发,主要完成图像的取点、线性补偿和点阵数据生成。首先将图像文件转换为96×64分辨率、256阶色深的单色灰度图像,由于使用占空比驱动的LED其占空比/亮度为对数特性,所以需加入指数特性调整为线性之后才能交付显示系统进行显示。其计算公式为Dout=15×(Din/255)n。n为比例系数,经实际显示校对后确定为1.35,同时通过该公式完成从256阶灰度到16阶灰度的转换。通过MSComm控件实现PC机与主机板的通信。

  4.2 主机板ATmega32程序设计

  主机部分软件主要分为按键响应处理,显示数据分割和分割后的数据发送3部分。其中显示数据的分割占最主要的地位,同时显示内容的滚屏移动也包括在这部分中。按键响应使用外中断响应,配合定时器TO进行去抖处理后置位按键有效标志,在主程序中检查该按键有效标志并进行响应处理。

4.3 显示子模块程序设计

  显示子模块的软件分为数据接收和动态刷新显示2部分。由于子模块要实现16阶灰度的表现,而且还需要实现足够高的刷新速率以避免产生闪烁现象,所以对刷新显示部分的速度要求较高。本设计采用的方案为:全屏(每个子模块为16行×16点/行)刷新分为16份时间片,每份时间片实现一行的扫描。而每行的时间片又分为15个子时间片,其中灰度为最暗的点点亮0个子时间片,灰度为最亮的点点亮15个时间片,由此实现占空比为0/15~15/15共16个级别的平均电流控制,从而实现16阶的灰度显示。通过:MEGA8片内定时器T2,每个子时间片取得52μs的扫描时间,15个子时间片构成一个单行扫描的时间片(52μs×15=780μs),16个单行扫描时间片又构成一次全屏的扫描(780μs×16=12.48ms),则刷新频率约为80Hz,在最高亮度下也可以保证不出现行闪的现象。

5 结语

  本文提出的基于已应用于现场,的看门狗功能使得系统稳定可靠。由于本设计是主从式的解决方案,具有可扩展性,并且采用ISP功能给电路板的调试和系统的维护带来了很大的方便。实践证明,本系统可以方便地显示各种字体的文字信息及16阶灰度的图像,画面清晰、性能稳定、操作简便,具有很好的应用价值。
参考文献:

[1].ATMEGA8datasheethttp://www.dzsc.com/datasheet/ATMEGA8_144542.html.
[2].ATmega32datasheethttp://www.dzsc.com/datasheet/ATmega32_1.html.
[3].RS232datasheethttp://www.dzsc.com/datasheet/RS232_585128.html.
[4].RS485datasheethttp://www.dzsc.com/datasheet/RS485_585289.html.
[5].MAX485datasheethttp://www.dzsc.com/datasheet/MAX485_859396.html.
[6].MAX232datasheethttp://www.dzsc.com/datasheet/MAX232_1074207.html.
[7].74HC165datasheethttp://www.dzsc.com/datasheet/74HC165_99228.html.
[8].74HC154datasheethttp://www.dzsc.com/datasheet/74HC154_99218.html.
[9].74LS373datasheethttp://www.dzsc.com/datasheet/74LS373_742872.html.


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭