资源描述
本科生课程设计题 目 名 称 点阵LED电子显示屏专 业 班 级 学 生 姓 名 联 系 方 式 年 月 日概述随着电子技术,特别是随大规模集成电路的产生而出现的微型计算机技术的飞速发展,人类生活发生了根本性的改变。如果说微型计算机的出现使现代科学研究得到了质的飞跃,那么可以毫不夸张地说,单片机技术的出现则是给现代工业测控领域带来了一次新的技术革命。目前,单片机以其体积小、重量轻、抗干扰能力强、对环境要求不高、高可靠性、高性能价格比、开发较为容易,在工业控制系统、数据采集系统、智能化仪器仪表、办公自动化等诸多领域得到极为广泛的应用,并已走人家庭,从洗衣机、微波炉到音响、汽车,到处都可见到单片机的踪影。因此,单片机技术开发和应用水平已逐步成为一个国家工业发展水平的标志之一。本课题研究的内容就是以单片机为主要控制元件,驱动LED点阵显示所想要现实的汉字。一、设计要求与总体分析1.1设计要求(1)设计4个1616的LED电子显示屏,能稳定、清晰地显示图形或文字。(2)图形或文字显示通过编程能实现静止、左移和右移等多种显示方式。(3)采用动态扫描方式,保证在目测条件LED显示屏可亮度均匀地显示图形和文字,并且稳定、清晰、无串扰。1.2 基本工作原理及框图 LED点阵总体框图如图1.1所示,点阵电路大体上可以分成微机本身的硬件、显示驱动电路、控制信号电路三部分。控制电路部分包括一个51CUP和一些外围电路。在整个电路当中单片机负责控制整个电路以及相应的程序的运行、与PC机的串行通讯、以及给屏体电路部分发送命令。点阵显示屏体、以及它的行和列的各个驱动电路。此显示电路采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。由行译码器给出的行选通信号,从第一行开始,按顺序依次对各行进行扫描(把该行与电源的一端接通)。另一方而,根据各列锁存的数据,确定相应的列驱动器是否将该列与电源的另一端接通。接通的列,就在该行该列点燃相应的LED;未接通的列所对应的LED熄灭。可通过扫描输出口的控制实现颜色的转换。 图1.1 基本工作原理框图二、硬件电路设计及说明2.1 AT89C51芯片AT89C51是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含4k bytes的反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。 图2.1 AT89C51引脚图单片机是在一块硅片上集成了各种部件的微型机,这些部件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时器/计数器和多种I/O接口电路。8051单片机的基本结构见图2.2。 图2.2 8051单片机的基本结构2.2 74HC138译码器4HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。74HC138译码器可接受3位二进制加权地址输入(A0, A1和A3),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。74HC138特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)。除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。利用这种复合使能特性,仅需4片74HC138芯片和1个反相器,即可轻松实现并行扩展,组合成为一个1-32(5线到32线)译码器。任选一个低有效使能输入端作为数据输入,而把其余的使能输入端作为选通端,则74HC138亦可充当一个8输出多路分配器,未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态。图2.3 74HC138封装图2.3 1616点阵1616LED点阵其实就是4块88点阵LED级联而成的,因此特给出 88 点阵LED的工作原理。图2.4为88点阵LED外观及引脚图,其等效电路如图2.5所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y轴。而1616就是在88原理的基础上将四块88级联而成,如图2.6。图2.5 88点阵LED等效电路 图2.6 四块8x8点阵LED级联成16x16点LED驱动显示采用动态扫描方法,动态扫描方式是逐行轮流点亮,这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。以1616点阵为例,把所有同一行的发光管的阴极连在一起,把所有同一列的发光管的阳极连在一起(共阴的接法),先送出对应第1列发光管亮灭的数据并锁存,然后选通第1列使其燃亮一定的时间,然后熄灭;再送出第2列的数据并锁存,然后选通第2列使其燃亮相同的时间,然后熄灭;.第16列之后,又重新燃亮第1列,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能看到显示屏上稳定的图形。显示数据可通过单片机的P0,P2口接驱动电路传输到点阵行引脚。点阵的移动列扫描方式左移动:列向组字显示字符水平方向的移动。 将原来字符点阵数组的16个数据重复一遍延长,点阵数组的数据个数为32个。每扫描一帧取8个数据显示,下一帧取数要在数组中后移一个数取数。循环一遍扫16帧。可以假想有两块1616的点阵模块(共32帧)水平平行排列,用一个恰好能罩住16列点阵的中空方框去罩这个点阵,第1(第1帧)罩住最左边数起第一列开始的16列,就扫描显示这16列;第2次(第2帧)使方框右移一列,罩住做左边数起第2列开始的16列,就扫描显示这16列;这样每扫描完一帧使方框右移一列,最后第16次(第16帧)时,罩住左边数起的第16列开始的16列,就扫描显示这16列。如此完成16帧画面的扫描显示,也就完成了整个一次移动循环扫描、之后反复循环,即可呈现显示字符沿水平向左移动的图像因为是列向组字(列扫描方式,点阵数据为行码,上边为低位下面为高位),希望显示移动的一个字符,第1次扫描从行码的点阵数组中取第116个数据,送行码输出口,对应于这8个数据,同时用列码输出口输出列码,分别控制第116列。扫描完前16个数据之后,第2次扫描从点阵数组中取第318个数据(第18个数据与第1个数据同),送行码输出口,对应于这16个数据,同时用列码输出口输出列码,仍分别控制扫第116列。第3次扫描从点阵数组中取第520个数据(第20个数据码与第2个数据码相同)扫描;如此实现字符向左移动。以上完成一个图形移动的方法,也可以看成是移动16个不同的字形,首先扫描第一个字型,同样是16行,16次扫描,16次显示;完成一个字型的扫描以后,再扫描第二个字型;完成第二个字型的扫描之后,再扫描第三个字型依此类推,即可产生该文字的左移的感觉。三、软件设计分析3.1设计基本思路在硬件方面基于AT89C51单片机的基础上,采用动态扫描的方式对LED点阵进行扫描显示,运用74HC138对点阵进行列驱动,通过加上拉电阻对点阵进行行驱动;在软件方面,通过定时中断让显示的文字更加稳定,更加清晰,由字模生成软件得到所要的文字、图片在LED点阵中显示的代码,不断扫描各行各列,通过人的视觉误差达到文字、图片的稳定显示。3.2软件设计流程图3.3程序#include #define uchar unsigned char#define uint unsigned int#define ulong unsigned longuchar flag;uchar n;uchar code table32= 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/* */ 0x00,0x00,0x00,0x00,0xF0,0x1F,0x20,0x12,0x20,0x12,0x20,0x12,0x20,0x12,0xFC,0xFF,0x22,0x12,0x22,0x12,0x22,0x12,0x22,0x12,0xF2,0x1F,0x02,0x00,0x0E,0x00,0x00,0x00,/*电,0*/* (16 X 16 , 新宋体 ) */0x00,0x01,0x00,0x02,0x00,0x0C,0xFE,0x3F,0x00,0xE0,0x00,0x50,0x7E,0x15,0x44,0x15,0x44,0x95,0x44,0x75,0x44,0x55,0x44,0x15,0x7E,0x15,0x00,0x10,0x00,0x10,0x00,0x00,/*信,1*/* (16 X 16 , 新宋体 ) */0x00,0x00,0x08,0x00,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x60,0x08,0x20,0x18,0x00,0x08,0x00,0x00,0x00,/*二,2*/* (16 X 16 , 新宋体 ) */0x08,0x42,0x08,0x42,0xF0,0x7F,0x11,0x42,0x92,0x42,0x04,0x07,0x18,0x00,0xE0,0xFF,0x04,0x00,0x04,0x42,0x04,0x42,0xFC,0x7F,0x04,0x42,0x04,0x42,0x04,0x42,0x00,0x00,/*班,3*/* (16 X 16 , 新宋体 ) */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00/* */ ;void delay(void);ulong offset;void main(void) uchar i; uchar *p; flag=0x10; n=0; TMOD=0x01; TH0=0xb0; TL0=0xf0; ET0=1; EA=1; TR0=1;p=&table00; while (1) for (i=0;i8;i+) /显示左半边屏幕 P0=*(p+offset+2*i); P2=i|0x08; /P2.4=0,P2.3=1 选中U2, 输出扫描码给U6 delay();P0 = 0x00; P0=*(p+offset+2*i+1); P2=i|0x10; /P2.4=1,P2.3=0 选中U3, 输出扫描码给U7 delay();P0 = 0x00; for (i=8;i16;i+) /显示右半边屏幕 P0=*(p+offset+2*i); P2=(i-8)|0x20; /P2.5=1 P2.4=0, P2.3=0 选中U4,输出扫描码U8 delay();P0 = 0x00; P0=*(p+offset+2*i+1); P2=(i-8)|0x40; /P2.6=1 P2.5=0, P2.4=0 选中U5,输出扫描码U9 delay();P0 = 0x00; void delay(void) uchar i,j;for (i=0;i100;i+)for(j=0;j100;j+); ;void timer0() interrupt 1 using 3 TF0=0; TH0=0xb1; TL0=0xf0; if (n160) offset=0; n=0; 四、系统仿真与结果分析4.1 Proteus软件基本概述Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件,它能从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计,是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。4.2 Proteus软件仿真电路图及结果仿真电路图如下图5.1所示图5.1仿真电路图仿真结果如图5.2所示仿真结果4.3软件仿真分析 基于Proteus软件的模拟仿真平台,我们小组成员通过对程序的模拟仿真操作,验证了我们的课程设计成果。所设计的LED电子显示屏能稳定清晰地显示图形和文字信息,在编程软件的调控下,图形和文字信息可以实现在电子屏上的静止显示以及图像的左移和右移显示。我们的设计同时采用动态扫描的方式,保证了在目测条件下LED显示屏亮度均匀的显示图形和文字信息,并且稳定、清晰、无串扰。基于仿真结果,通过小组成员的合力协作,我们圆满地完成了预定的实验设计要求与目的。五、课程设计总结轰轰烈烈的忙活了半个多月的课程设计终于在今天宣告结束,经过团队成员的通力合作,我们小组的LED电子显示屏设计终于取得了不错的成果。通过proteus软件的模拟仿真验证,我们基本实现了实验课题预期的设计初衷。通过本次单片机课程设计,我们成员间摆脱了平日遇事独立思考闭门造车的学习误区,面对设计难题时,大家学会了积极的与其他成员的交流,取长补短,共同进步。小组成员真正体会到了团队合作的重要性,感受到了小组成员齐心协力为了共同的目标团结奋斗的强大团队力量。同时我们也更好的掌握了一种高效的学习方式,平日里我们总是沉浸在理论的海洋中摸索,而今我们通过自己的亲身动手操作,联系平日所学习的理论知识,小组成员独立自主的完成了课程设计,很好的将理论知识活学活用到动手实践中,而且极大的调动了各个成员的责任心,让我们大家都获益匪浅。10
展开阅读全文