1、基于51单片机的动态显示屏的设计基于51单片机的动态显示屏的设计 摘 要随着电子技术的发展,计算机在现代科学技术的发展中起着越来越重要的作用,多媒体技术、网络技术、智能信息处理技术、数据挖掘与处理技术等都离不开计算机,而LCD液晶显示屏是集微电子技术、计算机技术、信息处理技术于一体的大型显示屏系统。本次设计的目的在于利用单片机控制LCD来实现显示字幕的功能,这种功能已经被广泛的地应用于我们的生活中,例如公交车站的电子报站显示,计程车上的计价器及很多日常生活中我们所能接触到的电子产品,它的工作范围已经涉及到我们生活中的方方面面。本人在此利用刚学过的单片机与接口技术中的51单片机与电脑软件相结合控
2、制1602型LCD显示数据。该方法可以对显示内容进行实时控制,从而实现诸如闪动、滚动、打字等多种动态显示效果。该方法同时还可以调节动态显示的速度,同时用户也可以在PC机上进行显示效果的预览,显示内容亦可以即时修改。、关键词:LCD1602 AT89C51 单片机 动态显示前 言 1 第一章 动态显示屏的设计要求与设计方案1.1 设计方案的论证与确定1.2 动态显示器的设计要求第二章 各单元模块设计2.1各单元模块功能介绍及电路设计2.2 特殊元器件的介绍2.3 各单元模块的联接第三章 动态显示屏的硬件与软件设计3.1硬件组成3.2软件设计第四章 动态显示屏的系统调试与功能4.1系统的调试4.2
3、系统的功能4.3系统功能分析第五章 设计体会与小结参考文献 附录前言随着人们生活环境的不断改善和美化,在许多场合可以看到各种各样的LCD液晶显示器。液晶显示器(LCD/Liquid Crystal Display)的显像原理,是将液晶置于两片导电玻璃之间,靠两个电极间电场的驱动,引起液晶分子扭曲向列的电场效应,以控制光源透射或遮蔽功能,在电源关开之间产生明暗而将影像显示出来,若加上彩色滤光片,则可显示彩色影像。LCD以其具有功耗低、体积小、重量轻、超薄寿命长,工作稳定可靠等许多其它显示器无法比拟的优点,而成为众多显示媒体以及户外作业显示的理想选择。同时也可广泛应用到智能仪器、仪表、军事、车站、
4、宾馆、体育、新闻、金融、证券、广告以及交通运输等许多行业中。LCD智能显示模块不但可以显示各式各样的字符、汉字和图形。同时具有可编程能力,且与单片机接口比较方便。现在液晶显示器件已在欧美各国发展到相当的高度,主要广泛的应用于我们的日常生活之中。液晶显示技术在国外从七十年代开始已有四十年的历史,我国的液晶显示技术也在逐渐的走向成熟,估计在未来不久的时间里我国的液晶技术也将达到一个新的高度。第一章动态显示屏的设计要求与设计方案1.1设计方案的论证与确定通过分析LCD的接口原理可知电路的连接存在两种控制方式:直接控制方式和间接控制方式。根据设计的要求,以及设计的便捷性,本设计采用直接控制的方式,基于
5、汇编和C语言的编程,采用软硬件结合的方式来实现控制,即于89C52单片机的开发板上,用89C51单片机做为芯片,用LCD1602做为液晶显示屏,以P2和P0口作为LCD1602的数据输入,以P2.4绑定LCD1602A的RS引脚,以P2.5绑定LCD1602A的R/W引脚,以P2.6绑定LCD1602A的E引脚,P0.0-P0.7对应这DB0-DB7,通过这样的形式去论证动态现实屏的结论。方框图如下1.2 动态显示频的设计要求1)在PC机上软件编程烧写调试所需程序2)单片机显示屏能够实现第一排字符和第二排上的字符的出现。3)在显示屏上能够实现LCD显示屏上先有第一排的逐步字体出现,再有第二排字
6、体出现,再接着是全屏向左移动,其后以首尾结合的形式进行循环滚动的出现。第二章 各单元模块设计2.1 各单元模块功能介绍及电路设计2.1.1 1602型液晶显示器模块介绍图2.2为1602液晶显示模块,负责将单片机中执行结果显示出来图2.1 1602LCD模块2.1.2单片机最小系统设计图2.2 单片机最小系统 单片机最小系统CPU89C51和一定功能的外围电路组成,包括为单片机提供复位电压的复位电路提供系统频率的晶振。这部分电路主要负责程序的存储和运行。2.1.3 时钟电路的设计图2.3 时钟电路上图是MCS-51内部时钟方式的电路,外接晶体以及电容C5和C6构成并联谐振电路,接在放大器的反馈
7、回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、谐振器的稳定性、起振的快速性和温度的稳定性。晶体可在1.2MHz12MHz之间任选,电容C5和C6的典型值在20pF100pF之间选择,但在60pF70pF时振荡器具有较高的频率稳定性。典型值通常选择为30pF左右,但本电路采用33pF。在设计印刷电路板时,晶体或陶瓷振荡器和电容应尽可能安装的与单片机芯片靠近,以减少寄生电容,更好的保证振荡器稳定和可靠的工作。为了提高温度稳定性,应采用温度稳定性能好的NPO高频电容。2.1.4 复位电路的设计图 2.4 复位电路AT89C51的复位是由外部的复位电路来实现的。复位电路
8、通常采用上电自动复位和按钮复位两种方式。本设计中所用到的是上电按钮复位。2.1.5电源电路设计图2.5系统电源线路本装置的电源是通过二极管D1后经C1,C4滤波后由LM2576稳定后提供稳定的5V电压通电时发光二极管亮。2.2特殊元器件的介绍2.2.1 AT89C51芯片图2.6 AT89C51芯片引脚图AT89C51主要性能:1、 8K 字节在系统可编程Flash 存储器2、 1000 次擦写周期3、 全静态操作:0Hz33Hz 4、 三级加密程序存储器5、 32 个可编程I/O 口线6、 三个16 位定时器/计数器7、 八个中断源8、 全双工UART 串行通道9、低功耗空闲和掉电模式10、
9、掉电后中断可唤醒11、看门狗定时器12、双数据指针13、掉电标识符方框图:功能特性描述:AT89C51提供以下表中功能:8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作指导下一个硬件复位。VCC : 电源电压GND: 地P0 口:P0口是一个8位漏极开路
10、的双向I/O口,也即地址/数据总线复用口。作为输出口,每位能吸收电流的方式驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,P1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)
11、。此外,P1.0和P1.1分别作定时器/计数器2的外部计数输(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。表2.1 P1.0和P1.1口的第二功能P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址
12、。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,P3 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89C52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。表2.2 P3口的第二功能R
13、ST: 复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第
14、0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89C52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。Flash 编程并行模式:AT89C51带有用作编程的片
15、上Flash 存储器阵列。编程接口需要一个高电压(12V)编程使能信号,并且兼容常规的第三方Flash 或EPROM 编程器。编程方法:对AT89C51编程之前,需设置好地址、数据及控制信号,可采用下列步骤对AT89C51编程:1在地址线上输入编程单元地址信号2在数据线上输入正确的数据3激活相应的控制信号4把EA/Vpp 升至12V 5每给Flash 写入一个字节或程序加密位时,都要给ALE/PROG 一次脉冲。每个字节写入周期是自身定时的,通常均为1.5ms。重复15步骤,改变编程单元的地址和写入的数据,直到全部文件编程结束。2.2.2 LCD显示模块功能特性描述1 、1602LCD的基本参
16、数及引脚功能1602LCD主要技术参数:显示容量:162个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表2.3所示:编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极表2.3:引脚接口说明表第1脚:VSS为地电源。
17、第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚
18、:背光源负极。2、1602LCD的指令说明及时序1)1602液晶模块内部的控制器共有11条控制指令,如表2.4所示:序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容表2.4
19、控制命令表1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电
20、平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。2)基本操作时序表读写操作时序如图2.8和2.9所示:图2.7 读写操作时序2.3 各单元模块的联接图2.8 各单元模块的连接图模块是以AT89C52为主要构成的一个模块,其包括显示电路以及其内部的
21、复位电路和时钟电路。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烧写软件。根据本设计提供的要求,显示字符等信息,首先,要写出控制显示模块实现功能的主程序。第一步则是定义端口,我
22、们是利用AT89C51的P2,P0口对显示模块进行控制的。第二步,按照显示模块各端口的各个功能编写主程序以达到设计的目的.第三步,根据显示原理,显示字符或数字。仅需要占用16x8点。如果显示图片,也要和显示字符、汉字一样取模。图片最好不要超过128x64,否则会显示不完全。第四章 动态显示屏的系统调试与功能4.1系统的调试硬件调试1、液晶屏不亮。解决方法:检查显示屏是否插错了,要注意管脚的接口连接。2、液晶屏亮,但无任何显示。解决方法:调节对比度后按复位按键 。3、液晶屏亮,但只有一排白色方框。解决方法:插紧液晶,插正单片机,按复位或者重新下载程序。4、背光亮但不能显示,解决方法:调节对比度
23、。5、显示不清晰,解决方法:增大供电流 或者使用外部供电。软件调试 软件调试主要通过Keil软件和STC_ISP烧写软件进行操作,对程序编写过程中的错误进行查找,找出错误,进行修改,然后再进行编译直至编译成功,生成.HEX文件,将已经生成的HEX文件写入单片机里面,然后,点击运行,继而实现相应功能。一般出现的问题如下:1、在进行程序编译时出现了错误,查看错误的程序段,并并进行更改,在重新编译程序。2、编译成功了,却在STP-ISP软件中没有发现.HEX文件时,打开文件查看编译软件中的targetoptions for targetoutputcreate HEX处打勾,后在重新编译。3、编译成
24、功后,且在STP-ISP中发现了.HEX文件,却出现了了打开串口失败!此时在“我的电脑”属性里查看硬件设备管理,再查看端口,查看端口是否正确。4.2系统的功能设计前期通过KEIL软件和STC_ISP烧写软件联调,对设计功能进行仿真,均达到了预期的设计效果,设计后期,硬件制作完毕后,将仿真成功后的程序通过单片机下载程序,写入单片机,再根据显示模块的各个端口连接方式,正确地将单片机跟显示模块连接,最后都实现了设计的功能。4.3系统功能分析原本的设计要求是显示字幕,我在基本要求上加以改进,实现了动态的字体显示,以及菜单的转化过程中插入中间界面,形成了更好的人机互动效果。图3.2软件流程图第五章 设计
25、体会与小结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次单片机课程设计,我感慨颇多,从选题到定稿,从理论到实践,在二星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的
26、,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导和同学的帮助下,终于完成了,在此我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!参考文献1郇玉龙.单片机试验教学仿真系统的设计与开发J.山东师范大学,20072付浩.AT89C51 单片机高速串行输出口设计J. 2001,63求是科技. 单片机典型模块设计导航.人民邮电出版社,2004,54何立民.单片机高级教程M.北京:北京航空航天大学出版社,20015陈涛.单片机应用及
27、C51 程序设计M.北京:机械工业出版社,2008,16汪清明.LCD 点阵显示牌的设计与动态显示控制J.微计算机信息,2001,127 杜刚电路设计与制版protel应用教程清华大学出版社2006附录系统源程序#includesbit rs=P24; /定义数据/命令端口为P2.4sbit rw=P25; /定义读/写端口为P2.5sbit e=P26; /定义使能端口为P2.6unsigned char i,j,m,n,k;unsigned char code tab=ZHOU PAN 28 HAO ; /要显示的数据unsigned char code lcdnum=0x8f,0x8e,
28、0x8d,0x8c,0x8b,0x8a,0x89,0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x81,0x80;void delay()unsigned int j; for(j=0;j255;j+);void delay1()unsigned int i,j;for(i=0;i200;i+) for(j=0;j200;j+); void lcdwmc(unsigned char i) /写命令P0=i;rs=0;rw=0;e=0;delay();e=1;void lcdwmd(unsigned char i) /写数据P0=i;rs=1;rw=0;e=0;dela
29、y();e=1;void lcd_dis() /液晶初始化lcdwmc(0x01); /清屏lcdwmc(0x38); /设置16*2显示,5*7点阵,8位数据接口lcdwmc(0x0c); /开显示,不显示光标,无闪烁lcdwmc(0x06); / 设置屏显void main()lcd_dis();m=1;while(1)k=0;if(m=17)m=1;for(j=0;j16;j+) lcdwmc(0x01); lcdwmc(0x38); lcdwmc(0x80); lcdwmc(lcdnumj); for(i=0;i16;i+) lcdwmd(tabi); delay1(); for(n=0;n16;n+) lcdwmc(0x01); lcdwmc(0x38); for(k=m;k16;k+) lcdwmd(tabk); delay1(); m+; 本科生课程设计成绩评定表姓 名性 别专业、班级课程设计题目:课程设计答辩或质疑记录:成绩评定依据:设计方案与内容(20分)制作与调试(30分)说明书内容与规范程度(20分)答 辩(20分)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1