单片机显示屏设计.docx

上传人:b****8 文档编号:10286796 上传时间:2023-02-09 格式:DOCX 页数:36 大小:1.03MB
下载 相关 举报
单片机显示屏设计.docx_第1页
第1页 / 共36页
单片机显示屏设计.docx_第2页
第2页 / 共36页
单片机显示屏设计.docx_第3页
第3页 / 共36页
单片机显示屏设计.docx_第4页
第4页 / 共36页
单片机显示屏设计.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

单片机显示屏设计.docx

《单片机显示屏设计.docx》由会员分享,可在线阅读,更多相关《单片机显示屏设计.docx(36页珍藏版)》请在冰豆网上搜索。

单片机显示屏设计.docx

单片机显示屏设计

单片机显示屏设计

在电子行业中,越来越多的产品开始重视人机信息交换的输入输出设备。

其中高像素液晶屏也越来越广泛的采纳。

手机、GPS、PDA等电子设备均已使用320*240或更高像素的18位色屏幕。

而目前大学生设计电子产品或毕业论文中常采纳赌显示电路却是LED数码管,明显已跟不上时代的进展,文本设计的LCD12864液晶显示模块可提供大部分电子产品及电器的显示功能。

 

MCS-51单片机是美国INTE公司于1980年推出的产品,各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。

尽管目前51系列单片机已无法满足目前某些功能或环境的要求,然而51系列的单片机仍旧是最为成功的单片机芯片,它的阻碍力一直连续到现在,以至于被越来越多的人熟悉。

而从目前市场价格及普及程度等方面因素考虑,本文采纳AT89C51单片机作为显示模块的操纵核心。

 

目前众多电子类产品用于显示功能常用数码管LED与液晶LCD。

尽管数码管LED的结构简单、显示方便,但已无法满足科技进步而产生的现实要求。

同时LED常用动态显示,在复杂的系统中十分耗费系统资源,已逐步被剔除。

而在LCD方面,常见的有LCD12864,LCD12232,LCD12864等。

LCD12864能够在LCD显示屏上完整显示32个英文字符和日文等一些字符适合显示英文文字信息量小的地点。

能够应用在运算器、频率计、时钟等产品上。

LCD12232也只适合文字量少的场合。

而LCD2864的辨论率达到了128*64,关于16*16的字体可显示4行8列,已能满足大部分设备显示的要求。

LCD12864在市场上要紧分为两种,一种采纳st7920操纵器,它带有中文库字模,价格略高一点,另一种是采纳KS0108操纵器,它只是点整模式,不带字库。

而本文无需专门显示文本且菜单文字比较简单,因此采纳常见的KS0108操纵器的LCD12864来完成显示模块的设计。

1.设计内容和要求

本设计是以STC89C52芯片的电路为基础,外部加上时钟振荡电路、上电+按键复位电路以及由LCD12864液晶显示器显示电路组成的。

通过编写C语言程序操纵硬件电路显示中英文。

1.1设计显示屏的意义

液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其它显示器无法相比的优点。

近几年来被广泛用于单片机操纵的智能仪器、外表和低功耗电子产品中。

液晶显示器分为字符型LCD显示模块和点阵型LCD显示模块。

字符型LCD是一种用8×16点阵图形来显示字符的液晶显示器。

点阵型液晶可显示用户自定义的任意符号和图形,并可卷动显示,它作为便携式单片机系统人机交互界面的重要组成部分被广泛应用于实时检测和显示的仪器外表中。

支持汉字显示的点阵型液晶在现代单片机应用系统中是一种十分常用的显示设备,汉字BP机、手机上的显示屏确实是点阵型LCD。

点阵型LCD是现代单片机应用系统中最常用的人机交互界面之一。

1.2设计方案

依照设计的要求,以及设计的便利性,本设计采纳单片机与LCD12864并行连接的方式,基于C语言的编程,通过操纵单片机AT89C52的P0,P2,口直截了当对显示模块AMPIRE12864进行操作。

2.系统总体结构

2.1系统设计框图

通过方案论证和比较后,最终确定的系统框图如图1所示,要紧由STC89C52单片机、LCD12864以及电源组成。

要紧系统结构设计框图如图所示。

 

图2.1.1系统设计框图

 

2.2要紧设计软件介绍

本设计利用KEIL编程软件对频率计源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,两种软件的简介如下:

2.2.1PROTEUS软件简介

Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术)。

它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

它是目前最好的仿真单片机及外围器件的工具。

尽管目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

Proteus是世界上闻名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前世界上唯独将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年立即增加Cortex和DSP系列处理器,并连续增加其他系列处理器模型。

在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

2.2.2KEIL简介

单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU能够执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。

机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断进展,从普遍使用汇编语言到逐步使用高级语言开发,单片机的开发软件也在不断进展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。

Keil提供了包括C编译器、宏汇编、连接器、库治理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。

运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上闲暇的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。

把握这一软件的使用关于使用51系列单片机的爱好者来说是十分必要的,假如你使用C语言编程,那么Keil几乎确实是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也专门可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

KeilC51生成的目标代码效率专门之高,多数语句生成的汇编代码专门紧凑,容易明白得。

在开发大型软件时更能表达高级语言的优势

 

3.系统硬件设计

3.1单片机部分硬件设计

3.1.1STC89C52简介

STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微操纵器,具有8K在系统可编程Flash储备器。

STC89C52使用经典的MCS-51内核,但做了专门多的改进使得芯片具有传统51单片机不具备的功能。

在单芯片上,拥有灵活的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式操纵应用系统提供高灵活、超有效的解决方案。

具有以下标准功能:

8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。

另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

闲暇模式下,CPU停止工作,承诺RAM、定时器/计数器、串口、中断连续工作。

掉电爱护方式下,RAM内容被储存,振荡器被冻结,单片机机一切工作停止,直到下一个中断或硬件复位为止。

最高运作频率35MHz,6T/12T可选。

本设计中,P0端口(32~39脚)被定义为N1功能操纵端口,分别与N1的相应功能管脚相连接。

单片机正常工作时,都需要有一个时钟电路和一个复位电路。

本设计中选择了内部时钟方式和按键电平复位电路,来构成单片机的最小电路。

如图3.1.1所示

图3.1.1STC89C52单片机管脚图

3.1.2单片机最小系统设计

单片机最小系统是能补足单片机工作的最简单电路,它由单片机、电源、晶体振荡器、复位电路等构成。

它是本系统的处理单元也是操纵单元,负责处理信号、外设的接口与制,同时它也是所有软件的载体。

如图3.1.2

图3.1.2单片机最小系统

3.1.3时钟振荡电路和复位电路

时钟振荡电路STC89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。

那个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自然振荡器。

外接石英晶体及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。

对外接电容C1,C2尽管没有什么严格的要求,但电容容量的大小会轻微阻碍振荡频率的高低、振荡器工作的稳固性、起振的难易程序及温度稳固性。

假如使用石英晶体,我们举荐电容使用30PF±10PF,而假如使用陶瓷振荡器建议选择40PF±10PF。

用户也能够采纳外部时钟。

采纳外部时钟的电路如图示。

这种情形下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。

由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,因此对外部时钟信号的占空比没有专门要求,但最小高电平连续时刻和最大的低电平连续时刻应符合产品技术条件的要求。

本设计采纳了内部时钟振荡器电路。

如图3.2

图3.1.3时钟振荡电路

复位电路当STC89C52通电,时钟电路开始工作,在STC89C52单片机的RST引脚加上大于24个时钟周期以上的正脉冲,STC89C52单片机系统即初始复位。

初始化后,程序计数器PC指向0000H,P0~P3输出口全部为高电平,堆栈指针写入07H,其他专用寄存器被清零。

RST由高电平下降为低电平后,系统从0000H地址开始执行程序。

单片机的外部复位电路有上电自动复位和按键手动复位两种。

本次设计采纳的是上电+按键复位。

如图3.2.2为STC89C52单片机的上位+按键复位电路,复位端与正电源接通,迅速放电,使RST引脚为高电平,复位按钮弹起后,电源通过10K电阻对10uf重新充电,RST引脚端显现复位正脉冲。

图3.1.4上电+按键复位电路

 

3.2液晶LCD12864显示电路

3.2.1LCD12864管脚说明

液晶屏上如何显示一些汉字或图画,这也许是所有LCD12864初学者都最先摸索的一个问题。

在数字电路中,所有数据差不多上由0和1储存的,同样LCD也利用了这一方法。

在点阵LCD上显示的只有两种颜色,因此可利用0和1来表示这两种颜色。

假设空格是由16*16个0组成的,在显示16*16的字体时,将其中某些点置为1便可在视觉上形成一个汉字,这些二进制数称为代位码。

而这些由0和1转换而成的16进制数据便是字模。

不同的汉字有不同的字模,相同的汉字不同的字体也有不同的字模。

而将字模设为16*16像素是因为如此差不多能够将汉字显示清晰准确,更高像素则更为清晰准确,然而却更多地占用了LCD的面积。

与汉字不同的是,一个字符只需要16*8的像素便即可。

如何将这16*16

或者16*8个0、1储存下来也是是初学者所需要了解的,假设要在LCD12864屏幕上准确正确的显示出汉字,则需要将16*16的汉字分为两行,每行由16列组成,这16列每列存8个点,用2位16进制数(8位二进制数)表示这8个点,16个16进制数可表示1行,32个16进制数则能表示整个汉字。

通过LCD12864,则可将这些字模信息还原成汉字或图像。

LCD12864的管脚共有20个之多,然而连接的电路并不复杂。

然而需要注意的是LCD的电源共有2组,一组是用于驱动LCD显示,另一组用于背光显示。

可将这两组连在一起或者背光电源省略。

另外有个输入管脚V0需要接入LCD调整电压来调剂对比度。

通常刚使用液晶时的问题是由此引起的,对比度过高于或过低均会使屏幕无法正常显示。

它可接至10K-20K电位器的调整端,电位器两端分别接至VDD与VEE。

目前市场上某些LCD12864的对比度可由单片机操作其寄存器调剂,可依照不同的条件进行选择。

其余的端口均连接至单片机。

下面是LCD12364的引脚图以及引脚功能表。

图3.2.1LCD12864引脚图

 

表3.2LCD12864引脚功能

管脚名称

LEVER

管脚功能描述

VSS

0

电源地

VDD

+5.0V

电源电压

V0

-

液晶显示器驱动电压

D/I(RS)

H/L

D/I=“H”,表示DB7∽DB0为显示数据

D/I=“L”,表示DB7∽DB0为显示指令数据

R/W

H/L

R/W=“H”,E=“H”数据被读到DB7∽DB0

R/W=“L”,E=“H→L”数据被写到IR或DR

E

H/L

R/W=“L”,E信号下降沿锁存DB7∽DB0

R/W=“H”,E=“H”DDRAM数据读到DB7∽DB0

DB0

H/L

数据线

DB1

H/L

数据线

DB2

H/L

数据线

DB3

H/L

数据线

DB4

H/L

数据线

DB5

H/L

数据线

DB6

H/L

数据线

DB7

H/L

数据线

CS1

H/L

H:

选择芯片(右半屏)信号

CS2

H/L

H:

选择芯片(左半屏)信号

RET

H/L

复位信号,低电平复位

VOUT

-10V

LCD驱动负电压

LED+

-

LED背光板电源

LED-

-

LED背光板电源

3.2.2LCD12864硬件连接

由P0口操纵DB0-CB7的数据输入口,当闲暇时向LCD12864里写入程序或数据。

由P2^2、P2^1操纵片选口。

P2^6操纵时能端。

当使能端从1-0时实现锁屏显示。

P2^3操纵复位信号,低电平常复位。

P2^5操纵R/W口。

当R/W=“H”,E=“H”则数据被读到DB7-DB0。

当R/W=“L”,E=“H→L”则数据被写到IR或DR。

P2^4操纵D/I口。

当D/I=“H”,则DB7-DB0为显示数据。

当D/I=“L”,则DB7-DB0为显示指令数据。

 

图3.2.2液晶LCD12864显示电路

3.2.3电源电路

系统硬件电路实现功能如下,如图3.2.3所示

1)由PNP三极管与10K电阻构成的放大电路。

2)振荡电路为12MHZ晶振频率工作,起振电路中C1、C2均为30PF。

3)高电平为5V工作电源,利用变压器将220V交流电源变成5V工作电源。

如图3.4.1

图3.2.3变压整流电路

4.系统软件设计

4.1资源分配表

表4.1资源分配表

I/O口

作用

P0

LCD12864数据接口

P2.1

LCD12864片选C1接口

P2.2

LCD12864片选C2接口

P2.3

LCD12864RST接口

P2.4

LCD12864RW接口

P2.5

LCD12864RS接口

P2.6

LCD12864E接口

4.2LCD12864的差不多指令

1、显示开/关设置

CODE:

表4-1显示开/关设置

R/W

D/1

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

L

L

L

L

H

H

H

H

H

H

功能:

设置屏幕显示开/关。

DB0=H,开显示;DB0=L,关显示。

不阻碍显示RAM(DDRAM)中的内容。

2、设置显示起始行

CODE:

表4-2设置显示起始行

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:

表4-3设置页地址

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)可把页地址计数器内容清零。

4、设置列地址

CODE:

  表4-4设置列地址

R/W

D/I

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

L

L

L

H

列地址(0-63)

功能:

DDRAM的列地址储备在Y地址计数器中,读写数据对列地址有阻碍,在对DDRAM进行读写操作后,Y地址自动加一。

5、状态检测

CODE:

表4-5状态检测

R/W

D/I

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

H

L

BF

L

ON/OFF

RET

L

L

L

L

功能:

读忙信号标志位(BF)、复位标志位(RST)以及显示状态位(ON/OFF)。

      BF=H:

内部正在执行操作;           BF=L:

闲暇状态。

        RST=H:

正处于复位初始化状态;   RST=L:

正常状态。

        ON/OFF=H:

表示显示关闭;          ON/OFF=L:

表示显示开。

6、写显示数据

CODE:

表4-6写显示数据

R/W

D/I

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

L

H

D7

D6

D5

D4

D3

D2

D1

D0

功能:

写数据到DDRAM,DDRAM是储备图形显示数据的,写指令执行后Y地址计数器自动加1。

D7-D0位数据为1表示显示,数据为0表示不显示。

写数据到DDRAM前,要先执行“设置页地址”及“设置列地址”命令。

7、读显示数据

CODE:

 表4-7读显示数据

R/W

D/I

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

H

H

D7

D6

D5

D4

D3

D2

D1

D0

功能:

从DDRAM读数据,读指令执行后Y地址计数器自动加1。

从DDRAM读数据前要先执行“设置页地址”及“设置列地址”命令。

4.3字模提取

在数字电路中,所有的数据差不多上以0和1储存的,对LCD操纵器进行不同的数据操作,能够得到不同的结果。

关于显示英文操作,由于英文字母种类专门少,只需要8位(一字节)即可。

而关于中文,常用却有6000以上,因此我们的DOS前辈想了一个方法,确实是将ASCII表的高128个专门少用到的数值以两个为一组来表示汉字,即汉字的内码。

而剩下的低128位则留给英文字符使用,即英文的内码。

那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢,这就涉及到文字的字模,字模尽管也是一组数字,但它的意义却与数字的意义有了全然的变化,它是用数字的各位信息来记载英文或汉字的形状,如中文的“你”在字模中的记载如图所示:

依照芯片的不同取模的方式不同,有多种取模方式。

本系统采纳纵向取模,字节正序方式,用LCD点阵汉字生成器生成字模“杨”的C语言代码为:

/*--文字:

杨--*/

/*--宋体12;此字体下对应的点阵为:

宽x高=16x16--*/

0x08,0x08,0xc8,0xff,0x48,0x88,0x0a,0x42,0x62,0xd2,0x4a,0xd6,0x42,0x40,0x00,0x00,

0x04,0x03,0x00,0xff,0x00,0x01,0x08,0x24,0x13,0x08,0x06,0x41,0x80,0x7f,0x40,0x00,

 

4.4主程序流程框图

图4.4.1主程序流程图

 

5.系统仿真及调试

5.1硬件调试

1)硬件制作完成后,测试其成效,LCD显示器无反应。

2)用电表检测各引脚电位后,发觉STC89C52芯片损坏。

3)修改后,调剂LCD显示器对比度,正常显示。

5.2软件调试

1.依照系统的原理结构检查各流程图是否正确,再依照流程图来检查程序是否也正确。

2.将所有程序组织起来,在软件环境下运行,检查程序是否正确。

通过对硬件和软件系统的认真检查,反复测试,假如没有显现问题即可把源程序编译成HEX文件装载到单片机中,对硬件进行仿真。

具体操作为:

①利用STC烧录软件,打开应用程序显现以下窗口如图5.1.1

图5.2.1

②选择对应的HEX文件,选择Download将程序烧录到CPU当中

 

5.3仿真结果

图5.3.1仿真结果

 

6、心得与体会

通过这次单片机课程设计,我不仅加深了对单片机理论的明白得,将理论专门好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

创新能够是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。

通过这次对LCD液晶显示屏的设计与制作,让我了解了设计电路的程序,也让我了解了关于LCD12864的差不多原理与设计理念,要设计一个电路总要先用仿真仿真成功之后才实际接线的。

然而最后的成品却不一定与仿真时完全一样, 因为,在实际接线中有着各种各样的条件制约着。

而且,在仿真中无法成功的电路接法,在实际中因为芯片本身的特性而能够成功。

因此,在设计时尽可能应考虑两者的差异,从中找出最适合的设计方法。

此外,仿真时应注意相同元件的不同型号,往往存在差异性。

通过这次学习,让我对各种电路都有了大致的了解, 因此说, 心动不如行动, 关于这些电路依旧应该自己动手实际操作才会有深刻明白得。

 

7、参考文献

⑴张齐朱宁西.单片机应用系统设计技术——基于C51的Proteus仿真(第二版),电子工业出版社,2009.1.

⑵张齐朱宁西单片机应用系统设计技术——基于C51的Proteus仿真实验与解题指导电子工业出版社,2009.1.

⑶常敏王涵单片机应用程序开发与实践,电子工业出版社,2009.3

[4] 杨凌霄.微软运算机原理及应用.中国矿业大学出版社 2004.08 

[5] 何立民.单片机应用技术选编.北京航空航天大学出版社 2000.08 

[6] 万光毅.单片机实验与实践教程.北京航空航天大学出版社 2005.01 

[7] 周航慈.单片机程序设计基础.北京航空航天大学出版社 1991.11 

[8] 黄遵熹.单片机原理接口与应用.西北工业大学出版社 1997.05 

[9]杨振江,杜铁军,李群.流行单片机有用子程序及应用实例[M].西安电子科技大学出版社 2002

 

附录1:

元件清单

序号

名称

型号、参数

备注

价格

数量

1

CPU

STC89C52

DIP40封装

4.4

1

2

管座

DIP-40

0.3

1

3

晶振

11.0592MHZ

492型

0.6

1

4

整流桥

2W10

2A圆桥

0.5

1

5

稳压IC

LM7805

TO-220

0.8

1

6

原片电容

30pf

0.05

2

7

电解电容

1000uf/16V

0.3

1

8

电解电容

470uf/1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1