基于51单片机的动态显示屏的设计.docx
- 文档编号:13969023
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:25
- 大小:673.55KB
基于51单片机的动态显示屏的设计.docx
《基于51单片机的动态显示屏的设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的动态显示屏的设计.docx(25页珍藏版)》请在冰点文库上搜索。
基于51单片机的动态显示屏的设计
基于51单片机的动态显示屏的设计
摘要
随着电子技术的发展,计算机在现代科学技术的发展中起着越来越重要的作用,多媒体技术、网络技术、智能信息处理技术、数据挖掘与处理技术等都离不开计算机,而LCD液晶显示屏是集微电子技术、计算机技术、信息处理技术于一体的大型显示屏系统。
本次设计的目的在于利用单片机控制LCD来实现显示字幕的功能,这种功能已经被广泛的地应用于我们的生活中,例如公交车站的电子报站显示,计程车上的计价器及很多日常生活中我们所能接触到的电子产品,它的工作范围已经涉及到我们生活中的方方面面。
本人在此利用刚学过的单片机与接口技术中的51单片机与电脑软件相结合控制1602型LCL显示数据。
该方法可以对显示内容进行实时控制,从而实现诸如闪动、滚动、打字等多种动态显示效果。
该方法同时还可以调节动态显示的速度,同时用户也可以在PC机上进行显示效果的预览,显示内容亦可以即时修改。
、
关键词:
LCD1602AT89C51单片机动态显示
、八
前言第一章动态显示屏的设计要求与设计方案
1.1设计方案的论证与确定
1.2动态显示器的设计要求第二章各单元模块设计
2.1各单元模块功能介绍及电路设计
2.2特殊元器件的介绍
2.3各单元模块的联接
第三章动态显示屏的硬件与软件设计
3.1硬件组成
3.2软件设计
第四章动态显示屏的系统调试与功能
4.1系统的调试4.2系统的功能
4.3系统功能分析
第五章设计体会与小结
参考文献
附录
、八、,
前言
随着人们生活环境的不断改善和美化,在许多场合可以看到各种各样的LCD液晶显示器。
液晶显示器(LCD/LiquidCrystalDisplay)的显像原理,是将液晶置于两片导电玻璃之间,靠两个电极间电场的驱动,引起液晶分子扭曲向列的电场效应,以控制光源透射或遮蔽功能,在电源关开之间产生明暗而将影像显示出来,若加上彩色滤光片,则可显示彩色影像。
LC□以其具有功耗低、体积小、重量轻、超薄寿命长,工作稳定可靠等许多其它显示器无法比拟的优点,而成为众多显示媒体以及户外作业显示的理想选择。
同时也可广泛应用到智能仪器、仪表、军事、车站、宾馆、体育、新闻、金融、证券、广告以及交通运输等许多行业中。
LCD智能显示模块不但可以显示各式各样的字符、汉字和图形。
同时具有可编程能力,且与单片机接口比较方便。
现在液晶显示器件已在欧美各国发展到相当的高度,主要广泛的应用于我们的日常生活之中。
液晶显示技术在国外从七十年代开始已有四十年的历史,我国的液晶显示技术也在逐渐的走向成熟,估计在未来不久的时间里我国的液晶技术也将达到一个新的高度。
第一章动态显示屏的设计要求与设计方案
1.1设计方案的论证与确定
通过分析LCD勺接口原理可知电路的连接存在两种控制方式:
直接控制方式和间接控制方式。
根据设计的要求,以及设计的便捷性,本设计采用直接控制的方式,基于汇编和C语言的编程,采用软硬件结合的方式来实现控制,即于89C52
单片机的开发板上,用89C51单片机做为芯片,用LCD160做为液晶显示屏,以P2和P0口作为LCD1602勺数据输入,以P2.4绑定LCD1602的RS引脚,以P2.5绑定LCD1602的R/W引脚,以P2.6绑定LCD1602的E引脚,P0.0-P0.7对应这DB0-DB7,
1.2动态显示频的设计要求
1)在PC机上软件编程烧写调试所需程序
2)单片机显示屏能够实现第一排字符和第二排上的字符的出现。
3)在显示屏上能够实现LCD显示屏上先有第一排的逐步字体出现,再有第二排字体出现,再接着是全屏向左移动,其后以首尾结合的形式进行循环滚动的出现。
第二章各单元模块设计
2.1各单元模块功能介绍及电路设计
2.1.11602型液晶显示器模块介绍
图2.2为1602液晶显示模块,负责将单片机中执行结果显示出来
图2.11602LCD模块
2.1.2单片机最小系统设计
图22单片机最小系统
单片机最小系统CPU89C51和一定功能的外围电路组成,包括为单片机提供复位电压的复位电路提供系统频率的晶振。
这部分电路主要负责程序的存储和运彳亍。
2.1.3时钟电路的设计
XTALI
C10
22P
晶振荡
图2.3时钟电路
上图是MCS-51内部时钟方式的电路,外接晶体以及电容C5和C6构成并联谐振电路,接在放大器的反馈回路中。
对外接电容的值虽然没有严格的要求,但
电容的大小会影响振荡器频率的高低、谐振器的稳定性、起振的快速性和温度的稳定性。
晶体可在1.2MHz〜12MHz之间任选,电容C5和C6的典型值在20pF〜100pF之间选择,但在60pF〜70pF时振荡器具有较高的频率稳定性。
典型值通常选择为30pF左右,但本电路采用33pF。
在设计印刷电路板时,晶体或陶瓷振荡器和电容应尽可能安装的与单片机芯片靠近,以减少寄生电容,更好的保证振
荡器稳定和可靠的工作。
为了提高温度稳定性,应采用温度稳定性能好的NPO
高频电容。
2.1.4复位电路的设计
M22.2K.
复位
图2.4复位电路
AT89C51的复位是由外部的复位电路来实现的。
复位电路通常采用上电自动复位和按钮复位两种方式。
本设计中所用到的是上电按钮复位。
2.1.5电源电路设计
DI
IWJ0C7
丄C1
円ChiHl首宇
iA?
ERJH
正◎祥号
OUTPUT
FEEDBACK
VJN
§
N5919
C4
104
USLM郭體
按下断
HC9
3OUHJ
vcc
104
voc
HR5
flO
VCC
5V电源输tl
电源招示
本装置的电源是通过二极管的5V电压通电时发光二极管亮。
图2.5系统电源线路
D1后经C1,C4滤波后由LM2576稳定后提供稳定
2.2特殊元器件的介绍
2.2.1AT89C51芯片
PDIP
23
iT:
-1.0CfT2EX}P1.1CP1.2EP1.3CP1.4CiMOSDFl.SCMlSCF1.6C
5CKP1.7匚
ASTC(RXD)P3.0C P3.Gc: 吧■P3.7匚XT41_2IZ>TAL'匚5fJDE □vcc □FCI: IA£>: I □PC1iAD'i”口二iADIi □FO3iAD: i □PC-i虚4< □FOfiAKi □PCei □PC7iAE^i □臣VPF3 □A1_E*ROG □F'EtJ □PZ7 □P2O(AM> □P2fiA13 □P2i.Al; □P23iA11 □P2ZfAIOJR21(AO) □P20(AS) 图2.6AT89C51芯片引脚图 1、8K字节在系统可编程Flash存储器 2、1000次擦写周期 3、全静态操作: 0Hz〜33Hz 4、三级加密程序存储器 5、32个可编程I/O口线 6三个16位定时器/计数器 7、八个中断源 8、全双工UART串行通道 9、低功耗空闲和掉电模式 10、掉电后中断可唤醒 11、看门狗定时器 12、双数据指针 13、掉电标识符方框图: w.o- raw0 功能特性描述: AT89C51提供以下表中功能: 8k字节Flash闪速存储器,256字节内部RAM32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。 同时,AT89C5何降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。 空闲方式停止CPU的工作,但允许RAM定时/计数器,串行通信口及中断系统继续工作。 掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作指导下一个硬件复位。 VCC: 电源电压 GND: 地 P0口: P0口是一个8位漏极开路的双向I/O口,也即地址/数据总线复用口。 作为输出口,每位能吸收电流的方式驱动8个TTL逻辑电平。 对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。 在这种模式下,P0具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。 程序校验时,需要外部上拉电阻。 P1口: P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。 对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P1.1分别作定时器/计数器2的外部计数输 (P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。 在flash编程和校验时,P1口接收低8位地址字节。 表2.1P1.0和P1.1口的第二功能 引脚号 第二功能 PLO T2(定时器/计数器T2的外部计数输入人时钟输出 PL1 T2EX(定时器用数器T2的捕捉/重载触发信号和方向控制) P2口: P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。 对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器 (例如执行MOVX@DF)I时,P2口送出高八位地址。 在这种应用中,P2口使 用很强的内部上拉发送1。 在使用8位地址(如MOV@R)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3口: P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲器能驱动4个TTL逻辑电平。 对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为AT89C52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。 表22P3口的第二功能 引脚弓 第二功能 P3.0 RXD〔屮口轴1入) TXD〔爭行输山) PJ.2 INTO(外部屮断0) P33 INTO]外部屮断0) TOf定1J0外部输入> PS.5 T11圧时器1外部输入} WR〔外部数抓存储器写迪通) P3.7 RD(外部数IV;存储3S吗选迪) RST: 复位输入。 晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。 ALE/PROG地址锁存控制信号(ALE是访问外部程序存储器时,锁存低8位地址的输出脉冲。 在flash编程时,此引脚(PROG也用作编程输入脉冲。 在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。 然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。 如果需要,通过将地址为8EH的SFR的第0位置“T,ALE操作将无效。 这一位置“1”,ALE仅在执行MOVX或MOV指令时有效。 否则,ALE将被微弱拉高。 这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。 PSEN外部程序存储器选通信号(PSEN是外部程序存储器选通信号。 当AT89C52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。 EA/VPP访问外部程序存储器控制信号。 为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND 为了执行内部程序指令,EA应该接VCC 在flash编程期间,EA也接收12伏VPP电压。 XTAL1振荡器反相放大器和内部时钟发生器的输入端。 XTAL2振荡器反相放大器的输出端。 Flash编程一并行模式: AT89C51带有用作编程的片上Flash存储器阵列。 编程接口需要一个高电压 (12V)编程使能信号,并且兼容常规的第三方Flash或EPROM®程器。 编程方法: 对AT89C51编程之前,需设置好地址、数据及控制信号,可采用下列步骤对 AT89C51编程: 1.在地址线上输入编程单元地址信号 2•在数据线上输入正确的数据 3.激活相应的控制信号 4.把EA/Vpp升至12V 5.每给Flash写入一个字节或程序加密位时,都要给ALE/PROG次脉冲。 每个字节写入周期是自身定时的,通常均为1.5ms。 重复1—5步骤,改变编程单元的地址和写入的数据,直到全部文件编程结束。 2.2.2LCD显示模块功能特性描述 1、1602LCD的基本参数及引脚功能 1602LCD主要技术参数: 显示容量: 16>2个字符 芯片工作电压: 4.5—5.5V 工作电流: 2.0mA(5.0V) 模块最佳工作电压: 5.0V 字符尺寸: 2.95>.35(W>H)mm 引脚功能说明 1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表2.3所示: 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 数据 2 VDD 电源正极 10 D3 数据 3 VL 液晶显示偏压 11 D4 数据 4 RS 数据/命令选择 12 D5 数据 5 R/W 读/写选择 13 D6 数据 6 E 使能信号 14 D7 数据 7 D0 数据 15 BLA 背光源正极 8 D1 数据 16 BLK 背光源负极 表2.3: 弓I脚接口说明表 第1脚: VSS为地电源。 第2脚: VDD接5V正电源。 第3脚: VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生鬼影”使用时可以通过一个10K的电位器调整对比度。 第4脚: RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚: R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。 当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W 为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。 第6脚: E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7〜14脚: D0〜D7为8位双向数据线。 第15脚: 背光源正极。 第16脚: 背光源负极。 2、1602LCD的指令说明及时序 1)1602液晶模块内部的控制器共有11条控制指令,如表2.4所示: 序号 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 1 清显示 0 0 0 0 0 0 0 0 0 1 2 光标返回 0 0 0 0 0 0 0 0 1 * 3 置输入模式 0 0 0 0 0 0 0 1 I/D S 4 显示开/关控制 0 0 0 0 0 0 1 D C B 5 光标或字符移位 0 0 0 0 0 1 S/C R/L * * 6 置功能 0 0 0 0 1 DL N F * * 7 置字符发生存贮器地址 0 0 0 1 字符发生存贮器地址 8 置数据存贮器地址 0 0 1 显示数据存贮器地址 9 读忙标志或地址 0 1 BF 计数器地址 10 写数至UCGRAM或DDRAM) 1 0 要写的数据内容 11 从CGRAM或DDRAM读数 1 1 读岀的数据内容 1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。 (说明: 1为高电平、0为低电平) 指令1: 清显示,指令码01H,光标复位到地址00H位置。 指令2: 光标复位,光标返回到地址00H。 指令3: 光标和显示模式设置I/D: 光标移动方向,高电平右移,低电平左移S: 屏幕上所有文字是否左移或者右移。 高电平表示有效,低电平则无效。 指令4: 显示开关控制。 D: 控制整体显示的开与关,高电平表示开显示,低电平表示关显示C: 控制光标的开与关,高电平表示有光标,低电平表示无光标B: 控制光标是否闪烁,高电平闪烁,低电平不闪烁。 指令5: 光标或显示移位S/C: 高电平时移动显示的文字,低电平时移动光标。 指令6: 功能设置命令DL: 高电平时为4位总线,低电平时为8位总线N: 低电平时为单行显示,高电平时双行显示F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。 指令7: 字符发生器RAM地址设置。 指令8: DDRAM地址设置。 指令9: 读忙信号和光标地址BF: 为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令10: 写数据。 指令11: 读数据。 2.3各单元模块的联接 图2.8各单元模块的连接图 模块是以AT89C52为主要构成的一个模块,其包括显示电路以及其内部的复位电路和时钟电路。 LCD显示模块的数据接收端与AT89C52的P0口相连,用于传输数据。 LCD的使能端和AT89C52的P2.6,P2.7相连,是片选信号。 VCC端是LCD的电源端。 第三章动态显示屏的硬件与软件设计 3.1硬件组成 硬件主要有PC机与51单片机连接组成。 1602液晶显示模块可以和单片机 AT89C51直接接口电路如图3.1所示 图3.1硬件原理图 3.2软件设计 本次设计主要利用C语言编写程序,根据功能的需要进行编程,其中软件设计所用的软件主要是Keil软件STC_ISP烧写软件。 根据本设计提供的要求,显示字符等信息,首先,要写出控制显示模块实现功能的主程序。 第一步则是定义端口,我们是利用AT89C5的P2,P0口对显示模块进行控制的。 第二步,按照显示模块各端口的各个功能编写主程序以达到设计的目的• 第三步,根据显示原理,显示字符或数字。 仅需要占用16x8点。 如果显示图片,也要和显示字符、汉字一样取模。 图片最好不要超过128x64,否则会显示不完全。 第四章动态显示屏的系统调试与功能 4.1系统的调试 硬件调试 1、液晶屏不亮。 解决方法: 检查显示屏是否插错了,要注意管脚的接口连接。 2、液晶屏亮,但无任何显示。 解决方法: 调节对比度后按复位按键。 3、液晶屏亮,但只有一排白色方框。 解决方法: 插紧液晶,插正单片机,按复位或者重新下载程序。 4、背光亮但不能显示,解决方法: 调节对比度。 5、显示不清晰,解决方法: 增大供电流或者使用外部供电。 软件调试 软件调试主要通过Keil软件和STC_ISF烧写软件进行操作,对程序编写过程中的错误进行查找,找出错误,进行修改,然后再进行编译直至编译成功,生成.HEX文件,将已经生成的HEX文件写入单片机里面,然后,点击运行,继而实现相应功能。 一般出现的问题如下: 1、在进行程序编译时出现了错误,查看错误的程序段,并并进行更改,在重新编译程序。 2、编译成功了,却在STP-ISP软件中没有发现.HEX文件时,打开文件查看编译软件中的target—optionsfortarget—output—createHEX处打勾,后在重新编译。 3、编译成功后,且在STP-ISP中发现了.HEX文件,却出现了了打开串口失败! 此时在“我的电脑”属性里查看硬件设备管理,再查看端口,查看端口是否正确。 4.2系统的功能 设计前期通过KEIL软件和STC_ISP烧写软件联调,对设计功能进行仿真,均达到了预期的设计效果,设计后期,硬件制作完毕后,将仿真成功后的程序通过单片机下载程序,写入单片机,再根据显示模块的各个端口连接方式,正确地将单片机跟显示模块连接,最后都实现了设计的功能。 4.3系统功能分析 原本的设计要求是显示字幕,我在基本要求上加以改进,实现了动态的字体显示,以及菜单的转化过程中插入中间界面,形成了更好的人机互动效果。 图3.2软件流程图 第五章设计体会与小结 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程•随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。 因 此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 回顾起此次单片机课程设计,我感慨颇多,从选题到定稿,从理论到实践,在二星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导和同学的帮助下,终于完成了,在此我表示感谢! 同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢! 参考文献 [1]郇玉龙.单片机试验教学仿真系统的设计与开发[J].山东师范大学,2007 [2]付浩.AT89C51单片机高速串行输出口设计[J].2001,6 [3]求是科技.单片机典型模块设计导航].人民邮电出版社,2004,5 [4]何立民.单片机高级教程[M].北京: 北京航空航天大学出版社,2001⑸陈涛•单片机应用及C51程序设计[M].北京: 机械工业出版社,2008,1⑹汪清明丄CD点阵显示牌的设计与动态显示控制[J].微计算机信息,2001,12 [7]杜刚•电路设计与制版protel应用教程•清华大学出版社.2006 附录 系统源程序 #include sbitrs=P2A4;〃定义数据/命令端口为P2.4 sbitrw=P2A5;//定义读/写端口为P2.5 sbite=P2A6;〃定义使能端口为P2.6 unsignedchari,j,m,n,k; unsignedcharcodetab[]={"ZHOUPAN28HAO"};//要显示的数据 unsignedcharcode lcdnum[]={0x8f,0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 动态 显示屏 设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)