1、基于单片机的LED电子广告牌设计实现 课 程 设 计 报 告 设计名称 基于单片机的LED电子广告牌的设计和实现 学 校 陕西电子科技职业学院 学 院 电子工程学院 学生姓名 雷超凡 班 级 1507 指导教师 聂弘颖 时 间2017年10月21日 1 总括1.1 LED点阵汉字显示系统由于单片机技术的不断发展和高亮度LED 发光管的出现,使得大屏幕高亮度电子广告屏成为可能。与传统的显示设备相比,LED显示设备具有明显的优势:LED 屏色彩丰富,显示方式变化多样、亮度高;LED 屏可以随意修改显示内容;LED 显示屏可用来与计算机屏幕同步。另外,它以其超大画面、超宽视觉、灵活多变的显示方式等独
2、居一格的优势,广泛应用于金融证券、银行利率、商业广告、文化娱乐等方面。 LED电子显示屏是利用发光二极管构成的点阵模块或像素单元组成可变面积的显示屏幕,它具有高清晰度、色彩鲜艳、视角大、工作稳定、寿命长、功耗低等优点。由干采用单元模块化结构,屏体大小可按用户要求灵活拼制,它的超高亮度,使它在户内外显示中具有不可替代的作用。本文提供了一种成本低廉的汉字点阵LED显示方案,该方案采用常用的5l系列单片机和可以级联扩展的显示电路,可适用于许多需要汉字和图形显示的场合。本设计的LED点阵显示系统采用字模提取软件,其显示和动态效果的实现主要依靠硬件扫描驱动,该方法方便,且易于实现。本文对点阵显示原理进行
3、了深入的研究,对单片杌控制系统及显示驱动屯路进行了分析。介绍了单片机控制程序的设计方法。设计和制作了基于5 1系列单片机控制系统的641 6LED点阵显示屏。该系统对LED显示屏的驱动采用动态扫描驱动方式,可以实现不同的动态显示效果。 2 LED点阵汉字显示系统总体方案设计2.1移位寄存器74HC595控制列(方案一)行扫描控制电路行驱动1664LED点阵列驱动列显示数据控制电路主要由单片机AT89C51、33矩阵键盘和片外RAM构成。结构框图如图2.1所示。80C51的Pl口负责将显示数据发送给显示电路。P0口与P2口负责于片外RAM及内存通讯,即作数据线也作地址线。33矩阵键盘控制实现不同
4、的显示方式、显示不同的点阵汉字、调速。结构框图如图2.1所示 图2.1 控制电路结构框图 显示电路主要由两片译码器74LS138、8片行驱动4953(每片控制两行)、8片列驱动74HC595(每片控制八列)和16片1588共阳极二极管点阵模块(88)构成。这就决定了本LED显示屏是1664点阵。本屏通过33矩阵键盘左移、右移显示“通信学院电子信息工程”,控制点阵汉字的暂停、开始。结构框图如图2.2 输入 图2.2 显示电路控制结构框图2.2 译码器74HC154控制列(方案二)AT89C51电源电路复位电路时钟电路行驱动列驱动33矩阵控制键盘1664LED点阵显示屏 该系统由AT89C52最小
5、系统、1664LED点阵显示屏、列驱动电路、行驱动电路、33矩阵键盘构成。AT89C52为主控芯片,显示屏由16块88LED共阳极连接组成,其列驱动电路由4块4-16线译码器74HC154构成,输出列选信号,行驱动电路由2片74LS273构成。本屏通过33矩阵键盘左移、右移显示“通信学院电子信息工程”,控制点阵汉字的暂停、开始。,控制显示系统框图如图2.3 图2.3 LED点阵系统框图 方案一、方案二均可实现LED点阵汉字的显示,均采用基于KEIL C51的编程,故都具有较好的移植功能,程序可读性强。模块化的设计使程序看起来更加简洁,可非常方便地任意修改所要显示的汉字。方案一用移位寄存器74H
6、C595控制列,易于扩展LED点阵,但行驱动、列驱动所用芯片过多,PCB版成本过高;方案二用4-16线译码器控制列,不易扩展LED点阵,但使用芯片较少,制作简单、方便,PCB版成本较低。通过比较,方案二成本低、制作方便,故选择方案二实现LED点阵显示系统。 3 系统硬件电路设计3.1芯片选择1)ATC89C51单片机1.ATC89C51系列单片机 ATC89C51是指Intel公司于1980年推出的新一代8位单片机系列产品(8051)。从严格意义上讲,其他所有具有8051指令系统的单片机都不应直接称为ATC89C51系列单片机,ATMEL只是Intel公司专用的单片机系列符号。 ATC89C5
7、1系列单片机及其兼容产品通常分为以下几类: 基本型:典型产品有8031/8051/8751。基本型采用HMOS工艺,片内集成有8位CPU,片内驻留4K8位的ROM(8031片内无),128B的数据存储器(RAM)以及21个特殊功能寄存器,32条I/O接口线,1个全双工的串行I/O口(UART),2个16位的定时/计数器,5个中断源和2级中断。数据存储器和程序存储器的寻址能力为128KB,指令系统除加、减、乘、除运算外,还提供了查表和位操作指令,主时钟频率为12MHz,运算速度增强。 增强型:典型产品有8032/8052/8752。与基本型的差异在于内部RAM增到256B,8052、8752的内
8、部程序存储器扩展到8KB,16位定时/计数器增至3个。 低功耗型:典型产品有80C31/87C51/80C51。其基本结构和功能与基本型相同。由于采用CMOS工艺,因此适于电池供电或其他低功耗的场合。 专用型:典型产品有8044/8744。在基本型的基础上用一个HSLC/SDLC通信控制器取代了基本型的UART,适用于总线分布式多机测控系统。 超8位型:典型产品有Philips公司的80C552/87C552/83C552系列单片机。其基本结构和功能与ATC89C51系列完全相同,但又将ATC系列(16位单片机)I/O部件如高速输入/输出(HIS/HSO)、A/D转换器、脉冲宽度调制(PWM)
9、、看门狗定时器(WDT)等移植进来构成新一代ATC89C51产品。这类产品的功能介于ATC89C51和MSC-96之间,目前已得到了较广泛的适用。 片内闪烁存储器:典型产品有Atmel公司的AT89C52单片机。其内部含有Flash存储器,使得存储和程序改写更加方便,从而受到了应用设计者的欢迎。 ATC89C51系列以及80C51系列单片机有多种类型,它们是具有ATC89C51内核的各种型号单片机的基础,也是各种增强型、扩展型等衍生品种的核心。3.2 LED点阵汉字PROTUES仿真原理3.2.1 88LED点阵构成1616LED点阵 从PROTUES元器件库中找出“MATRIX-8X8-RE
10、D”元器件,将4块该元器件放在文本文档区编辑窗口中。 然后行线连、列线分别相连,排列LED如图3.5所示 图3.5 排列LED 进一步组合靠拢, 1616LED点阵如图3.6所示 图3.6 1616LED点阵 3.2.2 LED点阵显示系统的protues仿真整个电路主要由单片机控制及其接口电路、驱动显示电路、电源电路、33矩阵键盘、1664LED点阵等部分组成。Protues仿真原理图如图3.7所示 图3.7 PROTUES仿真原理图 点阵的阴极驱动是由单片机的P0口经过2片输出缓存器74LS237向1664LED点阵输出字型码作为行驱动信号。点阵的阳极驱动由单片机P0口经过1片输出缓存器7
11、4LS237,再经过4-16线译码器74HC154译码后输出列选信号,对1664LED点阵进行列扫描,1片74HC154控制4个88LED,因此需要4片74HC154,在进行汉字分批显示输出时采用逐列扫描方式。 LED点阵显示系统由LED单片机P1口连接33矩阵键盘,通过键盘扫描控制LED点阵显示屏汉字的左右移动方向、移动速度、不同汉字间的切换、暂停等。 1664LED显示屏通过键盘控制左移显示汉字字符“通信学院电子信息工程”、“祝天下有情人终成眷属”、“浮名本是身外物”,右移显示“通信学院电子信息工程”、“不着分寸也风流”、“祝天下有情人终成眷属”、“世事如棋,乾坤莫测,笑尽英雄”。这些汉字
12、可通过建立数据表格的形式进行,通过1616点阵汉字字模提取软件,可提取各显示汉字的字模数据。通过列扫描方式把字符码传给LED点阵显示屏。某一时刻,只有l行或l列发光二极管被对应的字模数据驱动点亮,但只要扫描间隔时间合适(一般为数毫秒),利用人眼的视觉暂留特性,看上去整批字符就显示在LED点阵显示器上。3.2.3LED点阵系统显示仿真结果(1) 右移显示“祝天下有情人终成眷属”,仿真结果如图3.1所示 图3.1 右移显现“祝天下有情人终成眷属”(2) 左移显示“世事如棋,乾坤莫测,笑尽英雄!”,仿真结果如图3.2所示图3.2 左移显示“世事如棋,乾坤莫测,笑尽英雄!”3.3 LED点阵显示系统硬
13、件电路设计3.3.1 单片机最小系统设计单片机AT89C51最小系统应该有电源,复位电路,时钟振荡电路。下面是单片机最小系统时钟、复位电路简介:(1)时钟源电路 单片机内部具有一个高增益反相放大器,用于构成振荡器。通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,可以根据情况选择6MHz、12MHz或24MHz等频率的石英晶体,补偿电容通常选择30pF左右的瓷片电容。(2)复位电路 单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。
14、本次采用手动按键复位。3.3.2 33矩阵键盘 把所有按键排列成行列矩阵形式的键盘,选用P1端口中的P1.4P1.6为四根行线,P1.0P1.2为四根列线,行线和列线的交叉处放置一按键,当健按下时行列线接通,构成一个33的矩阵键盘,可定义9个按键。80C51的I/O口具有输出锁存和输入缓冲的功能,因而用它们组成键盘电路时,可以省掉输出锁存器和输入缓冲器。 该LED点阵显示系统的键盘由ATC89C51单片机本身的P1口来构成33矩阵式键盘。LED点阵屏的33矩阵式控制键盘: S1、S4、S7:控制右移字体显示速度,S1最快,S7最慢;S3、S6、S9:控制左移字体显示速度,S3最快,S9最慢;S
15、2:切换不同的左移显示汉字;S8:切换不同的右移显示汉字;S5:暂停。 键盘扫描过程 1).判断是否有键按下 2).键盘消抖 3).再次判断是否有键按下 4).识别键码3.3.3 LED点阵显示模块1664LED点阵显示驱动 点阵的阴极驱动是由单片机的P0口经过2片输出缓存器74LS237向1664LED点阵输出字型码作为行驱动信号。点阵的阳极驱动由单片机P0口经过1片输出缓存器74LS237。4 软件程序设计4.1 LED点阵系统主程序流程图 LED点阵系统主程序流程图如图4.1所示 开始系统初始化键盘扫描有键按下吗?点阵显示 Y N 图4.1 主程序流程图 4.2 LED点阵系统主程序关键
16、代码 void main() while(1) uchar s=1; while(s) P1=0x70; if(P1!=0x70) s=0; key=key_scan(); while(!s) P1=0x70; if(P1=0x70) s=1; switch(key) case 1: case 2: case 3: youyi(); break; case 9: case 8: case 7: zuoyi(); break; case 4: r+; if(r=3)r=0; break; case 5: zanting(); break; case 6: l+; if(l=4)l=0; brea
17、k; 4.3 33的矩阵键盘扫描流程图矩阵键盘扫描程序如图4.2所示 n开始有键按下=1?全行输出1,全列读入列状态均为0?置位有键按下散转程序段逐行处理程序段软件延时,跳出 Y N | 图4.2 矩阵键盘扫描程序4.4 33的矩阵键盘扫描程序 unsigned char key_scan() unsigned char i,j,key; P1=0x70; while(P1!=0x70) delay(10); P1=0x70; while(P1!=0x70) for(i=0;i=2;i+) P1=ksp0i; if(P1!=ksp0i) break; for(j=0;j=2;j+) P1=ks
18、p1j; if(P1!=ksp1j) break; key=i*3+j+1; return(key); return(0); return(0); 总结经过了两个多月的查阅资料、学习和实践,终于完成了LED点阵广告牌的设计的设计。从开始接触LED点阵显示系统时的一片茫然,无从下手,到LED点阵系统仿真、PCB板设计、焊接调试、再到论文的完成,对我来说每一步都是新的尝试与挑战。这是大学四年中我唯一一次独立完成设计、焊接、调试。学到了知识的同时也锻炼了自己查阅资料、自学知识、遇到问题时提出问题解决问题的能力。此外,整个设计过程中悲喜交加,有时遇到问题整夜冥思苦想,偶尔梦到自己在做毕业设计,经过不断
19、地学习、多次尝试解决问题之后,往往给自己带来无比的兴奋。毕业论文是本科学习阶段一次非常难得的理论与实际相结合的机会,通过这次比设计,我摆脱了单纯的理论知识学习状态,和实际设计的结合锻炼了我的综合运用所学的专业基础知识,同时也提高我查阅文献资料和电脑制图等能力水平,而且通过多次去电子市场,都使我的能力得到了锻炼,经验得到了丰富。这是我们都希望看到的也正是我们进行毕业设计的目的所在。这次做论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不叫论文了。希望这次的经历能让我在
20、以后学习中激励我继续进步。附录. LED点阵显示系统电路图 图一 LED点阵显示系统电路图附录. LED点阵显示系统主要程序#include #include #define uchar unsigned char#define uint unsigned int#define hang0 XBYTE0X7FFF#define hang1 XBYTE0XbFFF#define lie XBYTE0XDFFFuchar key=0,l=0,r=0;unsigned char key_code=0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;uchar k
21、sp03=0x76,0x75,0x73;uchar ksp13=0x37,0x57,0x67;void delay(uchar);uchar key_scan();void youyi();void zanting();void kaishi();void zuoyi();char code *tabler;char code *tablel;/*字符码略*/*mian funcation*/void main() while(1) uchar s=1; while(s) P1=0x70; if(P1!=0x70) s=0; key=key_scan(); while(!s) P1=0x70;
22、 if(P1=0x70) s=1; switch(key) case 1: case 2: case 3: youyi(); break; case 9: case 8: case 7: zuoyi(); break; case 4: r+; if(r=3)r=0; break; case 5: zanting(); break; case 6: l+; if(l=4)l=0; break; /键盘扫描unsigned char key_scan() unsigned char i,j,key; P1=0x70; while(P1!=0x70) delay(10); P1=0x70; whil
23、e(P1!=0x70) for(i=0;i=2;i+) P1=ksp0i; if(P1!=ksp0i) break; for(j=0;j=2;j+) P1=ksp1j; if(P1!=ksp1j) break; key=i*3+j+1; return(key); return(0); return(0); /*delay time funcation*/void delay(uchar c) uchar i; for(i=0;ic;i+); void zuoyi() uint b=0; /显示偏移控制,char类型最多只能显示14个汉字+一个空白位字符 uchar a=0; /控制移动间隔时间
24、 uchar i,j,k; /i:每个字的显示循环;j每个字的显示码除以2;k每列刷新次数 uchar m,n; m=key; if(m=7)n=2; else if(m=8)n=4; else if (m=9)n=5; else n=5; if(l=0)tablel=tablel1; else if(l=1)tablel=tablel2; else if(l=2)tablel=tablel3; else if(l=3)tablel=tablel4; while(1) j=0; if(a=6) /移动间隔时间;取值0-255 a=n; b+=2; key=0; key=key_scan();
25、if(key!=0) return;/unsigned char n; if(b=448) /显示到最后一个字,回头显示,判断值=字数*32 b=0; for(i=0;i64;i+) lie=i; /for(;jn;j-) / hang0=0x00; /清屏 hang1=0x00; /hang0=0x00; /hang1=0x00; / for(i=0;i64;i+) lie=i; for(k=0;k5;k+) hang0=tablelj+b; hang1=tablelj+b+1; hang0=0x00; /清屏 hang1=0x00; j+=2; a+; void youyi() uchar
26、 i,j,k; /i:每个字的显示循环;j每个字的显示码除以2;k每列刷新次数 uint b=448; /显示偏移控制,char类型最多只能显示14个汉字+一个空白位字符 uchar a; uchar m,n; m=key; if(m=1)n=2; else if(m=2)n=4; else if (m=3)n=5; /控制移动间隔时间 else n=5; if(r=0)tabler=tabler1; else if(r=1)tabler=tabler2; else if(r=2)tabler=tabler3; while(1) j=0; if(a=6) /移动间隔时间;取值0-255 a=n; b-=2; key=0; key=key_scan(); if(key!=0) return; if(b=0) /显示到最后一个字,回头显示,判断值=字数*32 b=448; for(i=0;i64;i+) lie=i; hang0=0x00; /清屏 hang1=0x00; for(i=0;i64;i+) lie=i; for(k=0;k5;k+) hang0=tablerj+b; hang1=tablerj+b+1; hang0=0x00; /清屏 hang1=0x00; j+=2; a+;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1