首页 > 范文大全 > 正文

基于ATmega128单片机的点阵广告屏设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于ATmega128单片机的点阵广告屏设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要: 为了实现AVR单片机对LED点阵显示系统的控制,采用ATmega128作为下位机MCU,通过接收上位机发送的显示内容和显示模式的串行信号,实现16×32高亮点阵屏的一行多个文字或符号的显示。系统实际运行稳定,显示效果良好,便于多块点阵屏的扩展,作为高职学生的大学生实践创新有较高的实践意义。

关键词: LED显示屏; AVR单片机; 上位机; 串行通信

中图分类号: TN964?34 文献标识码: A 文章编号: 1004?373X(2015)02?0056?03

Design of LED matrix advertisement screen based on ATmega128 MCU

ZHU Zhi?qiang, BAO Jun?wei, ZHONG Bo, ZHU Jing?xia, WANG Rui

(Department of Electronic Information Engineering, Jiangyin Polytechnic College, Jiangyin 214400, China)

Abstract: In order to control LED matrix screen systems by AVR SCM, the display of characters and symbols in one line on 16×32 highlight matrix screen was realized by using ATmega128 as the lower computer MCU, and receiving the display content and display mode serial signal form host computer. The system is stable and its display effect is good. It is convenient for expansion of more lattice display screen, and has high practical significance for innovative practice of higher vocational college students.

Keywords: LED screen; AVR MCU; host computer; serial communication

0 引 言

随着高亮LED技术的发展,LED点阵屏以其使用寿命长,显示内容方便灵活,性能稳定等优势已经逐步替换了传统广告牌,成为主流的广告显示产品[1]。目前高职应用电子技术专业在开设单片机原理课程时大多使用51系列单片机作为载体,但51系列单片机只适合用作常规教学,帮助学生理解单片机基本工作原理。本设计采用AVR单片机做为主控制器,设计并制作16×32点阵屏,不仅提高了学生对单片机的学习兴趣,且作为创新实践项目加深了学生对单片机系统的理解。

1 系统设计方案

本系统采用PC端上位机通过串口通信控制下位机的方式进行相应内容的显示。通过PC端发送显示方式的控制命令及显示内容的16进制字模编码,下位机实现相应内容的显示。

由于下位机是8位系统,为节约资源显示采用了行列扫描的动态显示方式,且通过列线扩展本系统可以方便地构成多块点阵的大屏幕显示。本系统只占用少量I/O口资源,为后续升级预留了空间,系统整体方案如图1所示。

<E:\王芳\现代电子技术201502\Image\02t1.tif>

图1 系统整体设计方案

2 硬件系统设计

2.1 下位机单片机选择

单片机是下位机系统的核心器件,也是整个显示系统的核心控制部分。单片机的任务是和上位机进行通信,并处理上位机发送的控制命令和显示的具体内容,再通过合适的扫描显示方式经驱动电路驱动LED点阵屏显示[2],因此单片机的性能直接决定了该显示系统的先进程度。目前作为教学,51系列的单片机是各大院校教学首选,通过学习51单片机主要让学生理解单片机的片上资源和工作流程,虽此模式从20世纪90年代持续到现在,但仍是一个非常优秀的教学模型。为培养学生的创新实践能力,从系统的先进性、灵活性、稳定性角度出发,应该鼓励学生采用更高级的单片机系统,通过实践,AVR系列单片机中的ATmega128单片机是比较可行的选择。

ATmega128单片机的功能基本上是AVR8位单片机中最强大的一款,学生掌握了这一款,其他型号也能触类旁通。

ATmega128单片机特点如下[4]:

(1) 先进的RISC结构,大多数指令可在1个时钟周期内完成;

(2) 128 KB的可编程FLASH ROM,4 KB的E2PROM,4 KB的SRAM;

(3) 通过JTAG接口对FLASH、E2PROM的编程;

(4) 通过设置寄存器直接PWM输出;

(5) 8路10位精度的ADC;

(6) 两个可编程的通用串行口。

结合以上优点,下位机系统采用ATmega128能进一步培养学生的创新实践能力。

2.2 显示电路设计

LED点阵屏由多个发光二极管组成,本系统显示为32×16点阵,分别由2个16×16点阵模块扩展组成。一个16×16点阵模块由四个8×8 LED基本模块构成,显示模块如图2所示。

<E:\王芳\现代电子技术201502\Image\02t2.tif>

图2 点阵显示模块

由于点阵数目较多,为节约资源,本系统采用了行扫描和列扫描的显示模式。

列扫描电路采用的是串并转换器74LS164[3],如果不采用译码电路完全依靠单片机的端口输出来控制16×16的LED点阵屏显示,需要32个端口。而采用译码电路后仅仅需要7~9个端口便可实现控制显示,大大减少了I/O口的占用数目。行驱动电路采用8550PNP三极管,在驱动电路中起到提供驱动电流和选通开关的作用。本系统列扫描驱动电路采用串入并出的通用集成电路74HC595来作为数据锁存。如图3所示。74HC595是OD结构的8位CMOS移位寄存器,输出端具有可控的三态输出锁存结构,不但能用作串入并出,还能串行输出控制下一级级联芯片实现16~32路的扩展。

<E:\王芳\现代电子技术201502\Image\02t3.tif>

图3 列扫描电路的级联

将4片74HC595进行级连,共用同一移位CP及锁存信号。于是,当第一行待显示的内容经过64个移位时钟后便可将其全部移入74HC595中,此时便产生1个锁存信号,用来将数据锁在74HC595中,并在使能信号作用下,将串行输入的数据并行输出。由行扫描控制电路产生的信号使第1行LED导通,相当于第1行LED的阳极都接1,因此第1行LED管的亮灭取决于74HC595中的锁存信号。在第1行LED点亮的同时,再在74HC595中移入第2行需要显示的数据,随后将其锁存,同时由行扫描控制电路将第1行LED阳极接0关闭而接通第2行,使第2行LED做好点亮的准备,如此循环,当第16行扫描过后再回到第1行,只要扫描的频率能克服人眼的视觉残留,就可形成一幅完整的文字或图像。

2.3 通信电路设计

本系统上位机和下位机通过串行口进行通信,ATmega128单片机内部有两个可编程的通用串行口,本系统只需一个即可,只占用两根口线即可实现通信,为了实现PC到单片机的通信,必须再加一个电平转换器,由于本系统通信距离不是很远,故选用RS 232标准总线接口,因此电平转换器采用MAX 232实现TTL电平到RS 232电平的双向转换。通信电路如图4所示[5]。

3 软件系统设计

系统的软件设计要实现功能包括了上位PC机的显示内容的发送、下位机控制点阵屏输出及与PC的通信。

<E:\王芳\现代电子技术201502\Image\02t4.tif>

图4 串行通信电平转换电路

3.1 上位机软件设计

为了缩短开发周期,在测试阶段将待显示的内容通过字模软件转换成16进制代码串,上位机采用串口调试助手即可进行串口通信。在与下位机进行通信时,双方都必须严格遵守相同的数据帧格式和波特率[6]。本系统在调试时数据的帧格式为1帧10位,包括1位起始位、8位数据位,1位停止位,发送时低位在前,高位在后。

3.2 下位机软件设计

AVR单片机主程序开始以后,首先是系统进行初始化,包括设置串口通信的方式和波特率、设置定时器和中断方式;然后以“从右移入滚动”效果显示文字。由于单片机没有停机指令,所以可以设置系统程序不断的循环执行上述显示效果,程序流程如图5所示。

<E:\王芳\现代电子技术201502\Image\02t5.tif>

图5 下位机子程序流程

8×8单元显示屏接收上位机发送的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示板可扩展至更多的显示单元,用于显示更多的显示内容,显示子程序流程如图6所示。

<E:\王芳\现代电子技术201502\Image\02t6.tif>

图6 显示驱动流程

以显示功能为例,程序实现如下:

void display() //显示子函数

{

unsigned char i,ia,j,tmp;

DATAOUT=0XFF; //置位高电平做准备

AB=0; //将行数据位清0,准备移位

for(i=0;i<16;i++)

{ //16行数据循环输出

SCK=0; //为行移位做准备

SCLT=0; //为列锁存做准备

for(ia=4;ia>0;)

{ //每行32个点,循环位移4 B

ia??; //循环4次

tmp=~cache[i*2+ia];

for(j=0;j<8;j++)

{ //循环两次,每次移1 B,

SCLH=0; //为列移位做准备

DATA=tmp&0x01;

tmp>>=1;

//将数据缓冲右移一位,为下次输出做准备

SCLH=1; //将DATA上的数据移入寄存器

} //移入单字节结束

} //移入2 B结束

SCK=1;

SCLT=1;

AB=1;

}

j=32;

while(j??);

SCK=0;

SCK=1; //将最后1行数据移出

}

4 结 语

本系统设计时以AVR单片机为核心控制器,在上位机的发送命令下能实现32×16的点阵屏动态显示,系统整体运行效果良好,显示稳定,达到设计要求。下位机MCU采用Atmega128单片机,程序编写的灵活性和稳定性优于51单片机,对高职学生的大学生实践创新有较高的实践价值。

参考文献

[1] 徐振方,孟艳花,王艳.基于AVR 单片机的LED显示屏控制系统的研究[J].照明工程学报,2010,21(2):77?80.

[2] 王静霞.单片机应用技术(C语言版)[M].北京:电子工业出版社,2009.

[3] 李秀忠.基于单片机的LED显示屏控制电路设计[J].现代电子技术,2010,33(15):200?202.

[4] 邹清平,卢森幸.一种基于 ATmega32 控制MP3播放器的设计与实现[J].中国科技信息,2012(24):118?120.

[5] 李朝青.PC机及单片机数据通信技术[M].北京:北京航空航天大学出版社,2001.

[6] 张立科.单片机通信技术与工程实践[M].北京:人民邮电出版社,2005.