1.led显示屏(毕业设计)
摘 要:由于普通LED点阵显示屏动态显示通常采用硬件扫描驱动,这在一些需要特殊显示的场合显得不够灵活。
文中提出了一种利用PC机和单片机的通讯来实现显示屏灵活的动态显示和远程监控的设计方法,同时该方法还可以将显示内容在PC机上进行预览。 关键词:LED;动态显示;远程控制;显示预览 1引言 LED 点阵电子显示屏是集微电子技术、计算机技术、信息处理技术于一体的大型显示屏系统。
它以其色彩鲜艳,动态范围广,亮度高,寿命长,工作稳定可靠等优点而成为众多显示媒体以及户外作业显示的理想选择。同时也可广泛应用到军事、车站、宾馆、体育、新闻、金融、证券、广告以及交通运输等许多行业。
目前大多数的LED点阵显示系统自带字库。其显示和动态效果(主要是显示内容的滚动)的实现主要依靠硬件扫描驱动,该方法虽然比较方便,但显示只能按照预先的设计进行。
而实际上经常会遇到一些特殊要求的动态显示,比如电梯运行中指示箭头的上下移动、某些智能仪表幅值的条形显示、广告中厂家的商标显示等。这时一般的显示系统就很难达到要求。
另外,由于受到存储器本身的局限,其特殊字符或图案也往往难以显示,同时显示内容也不能随意更改。本文提出一种利用PC机和单片机控制的LED显示系统通讯方法。
该方法可以对显示内容(包括汉字和特殊图符)进行实时控制,从而实现诸如闪动、滚动、打字等多种动态显示效果。该方法同时还可以调节动态显示的速度,同时用户也可以在PC机上进行显示效果的预览,显示内容亦可以即时修改。
另外,通过标准的RS232/485 转换模块还可以实现对显示系统的远程控制。2系统硬件设计 本 系统主要的硬件设计是下位机单片机的显示 控制部分。
而上位机(PC机)与单片机显示控制部分的接口为标准RS232通讯方式。若需实现远程监控,只需增加RS232/485转换模块即可,该部分已有成熟的电路设计,故不再详细叙述。
具体的LED显示屏控制电路如图1所示。整个电路由单片机89C52、点阵数据存储器6264、列驱动电路ULN2803、行驱动电路TIP122、移位寄存器4094及附属电路组成。
该电路所设计的电子屏可显示10个汉字,需要40个8*8 LED点阵模块,可组成16*160的矩形点阵。由于AT89C52仅有8k存储空间,而显示的内容由PC机控制,因此不可能预先把需要显示的内容做成点阵存在单片机中,而只能由PC机即时地把所需显示的点阵数据传给单片机并存入缓冲区6264。
该电路的显示采用逐行扫描方式。工作时,由单片机从缓冲区取出第一行需要显示的20字节点阵数据,再由列点阵数据输入端P1.2口按位依次串行输入至列移位寄存器,其数据输入的顺序与显示内容的顺序相反。
然后置行点阵选通端P1.3为1,即置行移位寄存器的D为高电平,STR使能(所有4094的OE 引脚接+5V电平),从而使列移位寄存器中的数据同时并行输出以选通该行。经延时一段时间后再进行下一行点阵数据的显示。
需要注意的是,每次只能选通一行数据,即要通过不断的逐行扫描来实现汉字或字符的显示。3显示与控制的设计 在笔者设计的PC机控制多单片机显示系统中,用PC机实现的主要功能包括单片机显示子系统的选择,显示方式选择(包括静态、闪动、滚动、打字等),滚动方向选择(包括上下滚动和左右滚动),动态显示速度调节(即文字闪动频率、滚动速度、打字显示速度等),显示内容输入及显示预览等。
单片机一般通过 RS232/485串行接收PC机发出的显示指采用定时器中断方式进行行扫描,每次中断显示一行,定时中断时间为1.25ms,这样整屏的刷新率为 50Hz,因而无闪烁感。 实现动态显示速度调节的方法通常是改变定时器的中断时间,但是当显示速度很慢的时候,该方法容易使整屏的刷新率降低,从而使显示内容出现闪烁。
因此,本设计采用一种“软定时”方法,即在程序中命名一变量作为“软定时器”,以用来设定两次动态显示的时间间隔。在对定时中断调用计数时,如果调用次数达到设定值,则改变显示内容。
为保证能够正常显示,“软定时器”的设定值必须大于整屏显示周期。由于显示屏每行显示1.25ms,整屏显示周期为20ms,考虑到余量的情况,可将软定时器的设定值定在大于30ms。
如此循环计数,即可实现动态显示。“软定时器”的设定值可以通过上位机PC机来改变,这样既可实现 LED动态显示的速度调节,又可保持显示内容的流畅和无闪烁感。
3.1单片机动态显示控制 以上提到的静态、闪动、滚动和打字等4种显示方式,实际上是单片机定时中断程序进行行扫描处理的不同方法。下面将分别说明如何实现这4种显示方式。
静态显示只需在定时中断处理程序中从显示缓冲区调入相应的一行显示数据,然后选中该行即可实现该行的显示,如此循环,便可显示整个内容。闪动显示与此类似,不同的是要间隔一个“软定时器”的定时时间,在行扫描时,行移位寄存器的D端打入的全为0,可使得整屏不显示,以确保黑屏时间与显示时间相等,从而实现汉字或图符的闪动显示。
滚动显示要求需要显示的内容每隔一定时间向指定方向(这里以从右向左为例)移动一列,这样。
2.LED显示(或液晶显示)时钟温度检测控制器 毕业设计
我在大学的时候就做过,有液晶显示的,还有数码管显示的:
18b20温度 带上限程序 温度上限调节 :
基于18b20温度带上限程序--LCD1602液晶显示篇
有当时写的代码,还有当时照的图片,(*^__^*) 嘻嘻……
参考资料:hi.baidu.com/jgh110
3.利用单片机、LED还有计数器设计一个东西比如交通灯,写上简单的程
程序如下:#include #include #define uchar unsigned char#define uint unsigned intsbit RED_ZHU = P0^0; //主路红灯sbit YELLOW_ZHU = P0^1; //主路黄灯sbit GREEN_ZHU = P0^2; //主路绿灯sbit RED_ZHI = P1^0; //支路红灯sbit YELLOW_ZHI = P1^1; //支路黄灯sbit GREEN_ZHI = P1^2; //支路绿灯/********************************************************* 500ms延时函数 晶振:11.0592MHz*********************************************************/void delay(unsigned char j) { unsigned char k; unsigned int i; for(;j>0;j--) { for(i=1250;i>0;i--) { for(k=180;k>0;k--); } }} /********************************************************* 主函数*********************************************************/main(){ uchar t; P0=0xff; P3=0xff; RED_ZHU=0; //第一个状态 RED_ZHI=0; delay(10); while(1) { RED_ZHU=1; //第二个状态 RED_ZHI=0; GREEN_ZHU=0; delay(60); for (t=6;t>0;t--) //第三个状态 { GREEN_ZHU=~GREEN_ZHU; delay(1); } YELLOW_ZHU=0; GREEN_ZHU=1; delay(10); YELLOW_ZHU=1; RED_ZHU=0; //第四个状态 RED_ZHI=1; GREEN_ZHI=0; delay(50); for (t=6;t>0;t--) //第五个状态 { GREEN_ZHI=~GREEN_ZHI; delay(1); } YELLOW_ZHI=0; GREEN_ZHI=1; delay(10); YELLOW_ZHI=1; }}。
转载请注明出处众文网 » 毕业论文LED仪表盘设计(led显示屏(毕业设计))