电子广告显示屏课程设计.docx
《电子广告显示屏课程设计.docx》由会员分享,可在线阅读,更多相关《电子广告显示屏课程设计.docx(40页珍藏版)》请在冰豆网上搜索。
电子广告显示屏课程设计
3.1.1时钟电路6
3.1.2复位电路6
3.2显示电路模块7
3.3LCD12864相关资料8
3.4电源电路模块12
4.软件设计12
5.系统调试16
6.系统功能、指标参数....................................................................................18
7.结论19
8.总结与体会20
9.致谢21
10.参考文献22
附录一:
相关设计图23
附录二:
相关设计软件26
1前言
单片机液晶显示主要是指单片机以及由单片机驱动的点阵式液晶显示屏所组成的一个显示系统。
液晶显示器与CRT(cathode-raytube,阴极射线管)、LED(light-emittingdiode,发光二级管)或等离子显示器相比是一种低功耗的平面显示器件。
它在车内广告、在型智能广告、可视电话、仪表盘、空调、洗衣机和其它低功耗电子产品中得到广泛应用。
老式七段LCD(LiquidCrystalDisplay液晶显示屏)显示的字符数量有限,只能用于简单显示,而对于比较复杂的字符、图形无法表达。
然而在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字。
由于物探仪器的多功能化、智能化、并且普遍采用人机对话的交互方式,需要能够显示更丰富信息和通用性较强的显示器,便于开发和应用,并要求其体积小、重量轻、功耗小。
近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。
液晶显示器分为字符型LCD显示模块和点阵型LCD显示模块。
字符型LCD是一种用5×7点阵图形来显示字符的液晶显示器。
点阵型液晶可显示用户自定义的任意符号和图形,并可卷动显示,它作为便携式单片机系统人机交互界面的重要组成部分被广泛应用于实时检测和显示的仪器仪表中。
支持汉字显示的点阵型液晶在现代单片机应用系统中是一种十分常用的显示设备,汉字BP机、手机上的显示屏就是点阵型LCD。
点阵型LCD是现代单片机应用系统中最常用的人机交互界面之一。
图形点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕画面滚动、分区开窗口、反转、闪烁、位操作等功能,可以显示用户自定义的任意符号以及曲线、图形等,是信息处理、信息输出的重要手段之一,具有广泛的应用前景。
2总体方案设计
2.1设计内容
本设计是基于AT89C52芯片单片机为主控芯片,结合LCD12864液晶显示模板等外围电路,通过软件程序,来实现液晶显示移动字符。
以及控制显示内容的水平移动。
用液晶点阵屏显示广告内容,可根据需要,显示多条广告。
可以考虑用于公交车上。
2.2方案比较
本设计主要是通过控制AT89C52单片同的引脚来控制LCD12864显示给定的符号、字母、数字,以及控制显示内容的垂直移动和水平移动。
由于LCD12864的字符有相应的字符代码,不用编写字库,因此在设计时对方案的选择就只考虑单片机与显示器的数据传送类型,即串行通信和并行通信。
方案一:
串行通信
串行通信是反映一个数据的所有位按一定的顺序和方式,一位一位地通过串行输入/输出口进行传送。
由于串行通信是数据的逐位顺序传送,在进行通信时,只需一根传输线,其传送的数据位多且通信距离长。
串行通信方式如图所示。
图2.1串行通信方式
方案二:
并行通信
采用并行传送方式在微机与外部设备之间进行数据传送的接口叫并行接口。
主要特点:
一是同时并行传送的二进位数就是数据宽度;二是在计算机与外设间采用应答式的联络信号来协调双方的数据操作。
传送的数据位1-128位,一般为8位。
单片机与外部设备之间也通常采用8位并行I/O接口进行短距离的通信其传输距离近,传送方式单一,每次传送一个字或一个字节。
并行通信方式如图所示。
图2.2并行通信方式
2.3方案论证
1.串行传输是将组成字符的各位串行地发往线路。
其主要特点:
(1)传输速度较低,一次一位;
(2)通信成本也较低,只需一个信道。
(3)支持长距离传输,目前计算机网络中所用的传输方式均为串行传输。
串行数据传输时,数据是一位一位地在通信线上传输的,先由具有几位总线的计算机内的发送设备,将几位并行数据经并--串转换硬件转换成串行方式,再逐位经传输线到达接收站的设备中,并在接收端将数据从串行方式重新转换成并行方式,以供接收方使用。
串行数据传输的速度要比并行传输慢得多,但对于覆盖面极其广阔的公用电话系统来说具有更大的现实意义。
2.并行传输是将字符编码的各位(比特)同时传输。
其主要特点:
(1)传输速度快:
一位(比特)时间内可传输一个字符;
(2)通信成本高:
每位传输要求一个单独的信道支持;因此如果一个字符包含8个二进制位,则并行传输要求8个独立的信道的支持;
(3)不支持长距离传输:
由于信道之间的电容感应,远距离传输时,可靠性较低。
并行通信传输中有多个数据位,同时在两个设备之间传输。
发送设备将这些数据位通过对应的数据线传送给接收设备,还可附加一位数据校验位。
接收设备可同时接收到这些数据,不需要做任何变换就可直接使用。
并行方式主要用于近距离通信。
计算机内的总线结构就是并行通信的例子。
这种方法的优点是传输速度快,处理简单。
2.4方案选择
由于本设计的传输距离不远,所用I/O口不多,所以方案二既可满足课程设计的基本要求又能充分发挥其优势,电路简单,易控制,所以采用该方案。
图2.3系统总体方框图
3.单元模块电路简介与设计
3.1单片机主芯片电路
芯片STC89C52是带2K字节快闪存储器的8位单片机。
P0-P3口都是并行I/O口,都可用于数据的输入和输出,但P0口和P2口除了可进行数据的输入和输出外,通常都用来构建系统的数据总线和地址总线。
在这4个口中只有P0口是一个真正双向的口,P1-P3这3个口都是准双向口。
P3口的口线具有第二功能,为系统提供一些控制信号。
电路如图3.1。
图3.1单片机芯片STC89C52的电路图
各引脚功能分类介绍:
1.Vcc:
电源。
2.GND:
地线。
3.P0:
是一个8位漏极开路的双向I/O口。
作为输出口时,每个引脚可吸入8个TTL输入。
当把“1”写入P0口的引脚时,该引脚可以作为高阻输入。
当访问外部程序存储器和数据存储器时,P0口也可以作为复用的低8位地址/数据总线。
在此状态下,P0口有内部上拉电路。
P0口也在Flash编程时,接受代码字节,而在程序校验期间,输出代码字节。
在程序校验期间需要外部上拉电路。
4.P1口:
是一个具有内部上拉电路的8位双向I/O口。
P1口的输出缓冲器能够吸入/放出4个TTL输入。
当对P1口的引脚写“1”的时候,它被内部上拉电路拉高,并能够做输入使用。
作为输入时,由于内部上拉电路的作用,由外部拉低的P1口引脚放出电流(IIL)。
此外,P1.0和P1.1还可以作为定时器/计数器2的外部计数输入(P1.0/T2)和控制输入(P1.1/T2EX)。
5.P2口:
是一个具有内部上拉电路的8位双向I/O口,P2口的输出缓冲器能够吸入/放出4个TTL输入。
当对P2口写引脚“1”时,它被内部上拉电路拉高,并能够做输入使用。
此时,由于内部上拉电路的作用,由外部拉低的P1口引脚放出电流(IIL)。
当访问外部程序存储器及使用16位地址的数据存储器(MOVX@DPTR)时,P2口输出高8位地址。
在这种情况下,当置“1”时,P2口使用强大的内部上拉电路。
当访问使用8位地址的外部数据存储器(MOVX@RI)时,P2口输出P2口锁存器的内容。
在Flash编程及程序检验期间,P2口也接收高8位地址及一些控制信号。
6.P3口:
是一个具有内部上拉电路的8位双向I/O口,P3的输出缓冲器能够吸入/放出4个TTL输入。
对P2口写引脚“1”时,它被内部上拉电路拉高,并能够做输入使用。
此时,由于内部上拉电路的作用,由外部拉低的P1口引脚放出电流(IIL)。
P3口也提供AT89C52各种专用功能。
在Flash编程极检验期间,P3口也接受一些控制信号。
7.RET:
复位输入。
当振荡器工作时,在此引脚上出现两个机器周期的高电平将使系统复位。
8.ALE/PROG:
当访问外部存储器时,ALE(允许地址锁存)是一个用于锁存地址的低8位字节的输出脉冲。
在Flash编程期间,此引脚也用于输入编程脉冲(PROG)。
在正常操作情况下,ALE以振荡器频率的1/6的固定速率发出脉冲,它可以用做对外输出时钟。
然而要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。
9.PSEN:
外部程序存储器读选通信号。
每当AT89C52在对外面程序存储器读取指令时,每个机器周期将PSEN激活两次。
在此期间内,每当访问外部存储器时,将跳过两个PSEN信号。
10.EA/VPP:
访问外部程序存储器允许端。
为了能够从外部程序存储器的0000H至FFFF单元中读取指令,EA必须接地。
然而要注意的是,若对加密位1进行编程,则在复位的时候,EA的状态在内部被锁存。
执行内部程序EA应接VCC。
当选择12V编程电源时,在Flash编程期间,这个引脚可接12V编程程序。
11.XTAL1:
振荡器反向放大器输入端和内部时钟发生器的输入端。
12.XTAL2:
振荡器反向放大器输出端。
3.1.1时钟电路
首先介绍一下单片机的晶振电路,即时钟电路。
单片机的工作流程,就是在系统时钟的作用下,一条一条地执行存储器中的程序。
单片机的时钟电路由外接的一只晶振和两只起振电容,以及单片机内部的时钟电路组成,晶振的频率越高,单片机处理数据的速度越快,系统功耗也会相应增加,稳定性也会下降。
单片机系统常用的晶振频率有6MHz、11.0592MHz、12MHz、本系统采用11.0592MHz晶振,电容选30pF,电路如图3.2。
图3.2晶振电路图
3.1.2复位电路
系统刚上电时,单片机内部的程序还没有开始执行,需要一段准备时间,也就是复位时间。
一个稳定的单片机系统必须设计复位电路。
当程序跑飞或死机时,也需要进行系统复位。
电路如图3.3。
图3.3复位电路图
3.2显示电路模块
在本设计中,我们采用的是LCD12864模块作为显示器。
所以在Protel中我们用SIP20插座。
图3.4显示电路模块电路图
3.3LCD12864相关资料
外观尺寸:
93×70×12.5mm视域尺寸:
73×39mm
图3.5.1外形尺寸图
图3.5.2LCD2864引脚说明图
8位并行连接时序图:
RS(CS):
并行的指令/数据选择信号;串行的片选信号
R/W(SID):
并行的读写选择信号;串行的数据口
E(CLK):
并行的使能信号;串行的同步时钟
图3.5.3MPU写资料到模块
图3.5.4MPU从模块读出资料
图3.5.5串行连接时序图
串行数据传送共分三个字节完成:
第一字节:
串口控制—格式11111ABC
A为数据传送方向控制:
H表示数据从LCD到MCU,L表示数据从MCU到LCD
B为数据类型选择:
H表示数据是显示数据,L表示数据是控制指令
C固定为0
第二字节:
(并行)8位数据的高4位—格式DDDD0000
第三字节:
(并行)8位数据的低4位—格式0000DDDD
串行接口时序参数:
(测试条件:
T=25℃VDD=4.5V)
1、显示开/关设置
CODE:
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
L
L
L
L
H
H
H
H
H
H/L
功能:
设置屏幕显示开/关。
DB0=H,开显示;DB0=L,关显示。
不影响显示RAM(DDRAM)中的内容。
2、设置显示起始行
CODE:
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
L
L
H
H
行地址(0-63)
功能:
执行该命令后,所设置的行将显示在屏幕的第一行。
显示起始行是由Z地址计数器控制的,该命令自动将A0-A5位地址送入Z地址计数器,起始地址可以是0-63范围内任意一行。
Z地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。
3、设置页地址
CODE:
R/W
D/I
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
L
L
H
L
H
H
H
页地址(0-7)
功能:
执行本指令后,下面的读写操作将在指定页内,直到重新设置。
页地址就是DDRAM的行地址,页地址存储在X地址计数器中,A2-A0可表示8页,读写数据对页地址没有影响,除本指令可改变页地址外,复位信号(RST)可把页地址计数器内容清零。
用带中文字库的128X64显示模块时应注意以下几点:
①欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。
②显示ASCII字符过程与显示中文字符过程相同。
不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。
③当字符编码为2字节时,应先写入高位字节,再写入低位字节。
④模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的指令。
如果在送出一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。
指令执行的时间请参考指令表中的指令执行时间说明。
⑤“RE”为基本指令集与扩充指令集的选择控制位。
当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。
3.4电源电路模块
电源电路主要是为系统提供电源,直接用USB接口提供5V直流电源为电路供电。
图中的第2个图是电源指示灯电路,第3个图是一个稳压电路,电路如图3.6。
图3.6电源电路图
4.软件设计
4.1主程序设计
所用的软件有word、ISIS和KeilC程序载入软件,程序的流程框图如下所示:
图4.1主程序设计框图
4.2主程序的程序
主函数main:
#include"STC15F2K.h"
#include"LCD12864.H"
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcount,s1num;
charmiao,shi,fen;
ucharcodetable[]="2014-6-30MON";
ucharcodetable1[]="00:
00:
00";
voidDel(uintms);
voidmain(void)
{P2=0x01;
lcd_init();
lcd_disp(1,"西华大学");
Del(200);
lcd_disp(1,"电子信息工程一班");
Del(500);
lcd_init();
lcd_disp(1,"水调歌头");
lcd_init();
lcd_disp(0,"明月几时有?
");
lcd_disp(1,"把酒问青天。
");
lcd_disp(2,"不知天上宫阙,");
lcd_disp(3,"今夕是何年?
");
lcd_init();
lcd_disp(0,"我欲乘风归去,");
lcd_disp(1,"惟恐琼楼玉宇。
");
lcd_disp(2,"高处不胜寒,");
lcd_disp(3,"起舞弄清影,");
Del(400);
lcd_init();
lcd_disp(0,"何似在人间?
");
lcd_disp(1,"臣子恨,何时灭?
");
lcd_disp(2,"转朱阁,");
lcd_disp(3,"低绮户,照无眠。
");
Del(300);
lcd_init();
lcd_disp(0,"不应有恨,");
lcd_disp(1,"何事长向别时圆?
");
lcd_disp(2,"人有悲欢离合");
lcd_disp(3,"月有阴晴圆缺");
Del(300);
lcd_init();
lcd_disp(0,"此事古难全");
lcd_disp(1,"但愿人长久");
lcd_disp(2,"千里共蝉娟");
lcd_disp(3,"杨吉庭卢倩张辰");
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while
(1);
}
voidDel(uintms)//延时子程序
{
uinta,b;
for(a=ms;a>0;a--)
for(b=120;b>0;b--);
}
voidwrite_sfm(ucharadd,uchardate)
{
ucharshi,ge;
shi=date/10;
ge=date%10;
//write_com(0x80+0x40+add);
//write_date(0x30+shi);
//write_date(0x30+ge);
}
voidtimer0()interrupt1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count==18)
{
count=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
{
shi=0;
}
write_sfm(4,shi);
}
write_sfm(7,fen);
}
write_sfm(10,miao);
}
}
5系统调试
5.1硬件调试
一个单片机应用系统经过方案论证、硬件设计、印刷版的布局、加工和焊接包括软件的编制,通常不可能一次成功,不可避免地要出现一些错误,这就要靠调试来解决。
调试的次序一般是先易后难,后面的调试应尽可能采用以前已调好的电路,各单元电路(或称作单元模块)都调好以后,再进行系统总调。
对于本次设计,其硬件电路的调试可以按如下步骤进行。
1)硬件电路的总体检查
在一块电路试验板上,焊接好电路,按实际电路图插好元器件,连好线。
确保电源和地无故障之后,再通电,然后检查电源电压数值的正确性。
排除可能出现的故障后,再进行各单元电路调试。
2)单元电路调试
按照前面设计的单片机最小系统和电源,焊接并插上相应的元器件,连好线,检查正确无误后,接上电源。
5.2软件调试
首先,将源程序进行汇编,保存目标文件,则说明源程序的指令使用没有错误。
但并不表示程序没有错误,还必须经过仿真调试,仿真通过才说明程序设计正确。
接下来要进行实物仿真调试,在电路板上插好仿真头,接好通信电缆,接通电源,运行仿真程序。
在进行实物仿真之前,要选择正确的仿真头、通信口、通信协议和波特率等,并设置用户程序空间和数据空间所处的位置(用户板上或仿真头)。
然后,装入显示程序,汇编并执行。
检查LCD显示器上显示的结果是否正确。
图5.2烧程序
5.3系统仿真调试结果
在ProteusISIS编辑窗口中,单击鼠标右键将AT89C52单片机选中并单击鼠标左键,弹出“EditComponent”对话框,在此对话框的“ClockFrequency”栏中设置单片机晶振频率为12MHz,在“ProgramFile”栏中单击新建图标,选择先前用KeilμVision4生成的文件。
6系统功能、指标参数
6.1系统功能
单片机液晶显示主要是指单片机以及由单片机驱动的点阵式液晶显示屏所组成的一个显示系统。
液晶显示器与CRT(cathode-raytube,阴极射线管)、LED(light-emittingdiode,发光二级管)或等离子显示器相比是一种低功耗的平面显示器件。
它在车内广告、在型智能广告、可视电话、仪表盘、空调、洗衣机和其它低功耗电子产品中得到广泛应用。
图形点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕画面滚动、分区开窗口、反转、闪烁、位操作等功能,可以显示用户自定义的任意符号以及曲线、图形等,是信息处理、信息输出的重要手段之一,具有广泛的应用前景。
6.2指标参数
在主电路板中需要测量出的参数:
电源电压,稳压管电压,各个芯片的电压以及单片机的电压,以下为各电压的值:
1.电源电压的测量值为5.00V
2.稳压管的电压测量值为5.02V
3.芯片的电压值:
74HC573的电压测量值为5.02V,MAX232的电压测量值为5.03V,4.单片机的电压值为5.02V
所以对于电源为5V电路来说,以上参数都是正确的。
1.电路板中单片机的晶振电路中晶振元件12MHZ
1、文本显示RAM(DDRAM)
1、文本显示RAM(DDRAM)
文本显示RAM提供8个×4行的汉字空间,当写入文本显示RAM时,可以分别显示CGROM、HCGROM
与CGRAM的字型;ST7920A可以显示三种字型,分别是半宽的HCGROM字型、CGRAM字型及中文
CGROM字型。
三种字型的选择,由在DDRAM中写入的编码选择,各种字型详细编码如下:
显示半宽字型:
将一位字节写入DDRAM中,范围为02H-7FH的编码。
显示CGRAM字型:
将两字节编码写入DDRAM中,总共有0000H,0002H,0004H,0006H四种编码
显示中文字形:
将两字节编码写入DDRAMK,范围为A1A0H-F7FFH(GB码)或A140H-D75FH(BIG5码)
的编码。
7结论
经过近三个星期的时间,在老师与同学的帮助想。
我们小组成功的完成了本次电子广告显示屏的课程设计。
此次设计基本完成了任务要求,成功在LCD上进行了文字的显示“信息工程”。
本次设计采用了LCD12864液晶显示器,液晶显示器(LCD)具有图形显示功耗低、体积小、质量轻、超薄等诸多其它显示器无法比拟的优点,被广泛用于智能型仪器和低功耗电子产品中。
目前,显示器件有很多的种类,在以前的实验中最常用的就是二极管,对液晶显示器可以说的非常陌生的,但是通过这次毕业设计,使我们了解了液晶显示器的一些知识。
现在对液晶显示器的研究日益增多,其研究范围也非常广泛,包括液晶显示器的结构设计研究、使用方法研究、应用场合研究等等。
就本次设计而言,由于个人水平所限,尚有许多地方需要改进,主要包括以下几个方面: