ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:196.69KB ,
资源ID:6773939      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6773939.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(12864LCD液晶显示设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

12864LCD液晶显示设计.docx

1、12864LCD液晶显示设计单片机技术课程设计说明书12864LCD液晶显示目 录1.概述 21. 1课题设计背景 21.2课程设计内容 22设计方案 23.系统硬件设计 33.1控制模块 33.2显示模块 63.3电源模块 94.系统软件设计 104.1软件流程图 104.2时序图 115结束语 12参考文献: 13附录 14附录1:程序清单 15附录二:设计图纸 19附录3:元器件目录表 20 12864LCD液晶显示1.概述1. 1课题设计背景 液晶作为一种显示器件,以其特有的优势正广泛应用于仪器、仪表、电子设备等低功耗产品中。以往的测控仪器的显示部分大都采用LED式液晶显示屏进行参数设

2、定和结果显示,其显示信息量少、形式单一、人机交互性差、操作人员要求较高。而液晶显示器(LCD)具有功耗低、体积小、质量轻、超薄和可编程驱动等其他显示方式无法比拟的优点,不仅可以显示数字、字符,还可以显示各种图形、曲线、及汉字,并且可实现屏幕上下左右滚动、动画、闪烁、文本特征显示等功能;人机界面更加友好,使用操作也更加灵活、方便,使其日益成为智能仪器仪表和测试设备的首选显示器件。1.2课程设计内容本实验设计的主要目的是:掌握单片机与液晶显示器之间接口设计与编程;利用点阵式液晶显示器显示汉字或图形设计要求:编制程序,利用标准字库,在液晶上显示汉字。2设计方案 本设计是以单片机为核心控制器件的简单文

3、字符号图像的LCD显示系统,通过硬件和软件的共同配合之下实现了在12864分辨率的液晶屏上显示字符、汉字和图像的功能,系统由单片机、和液晶显示屏构成。LCD显示系统结构框图如图2所示, 图2、12864LCD液晶显示系统结构框图 AT89C51单片机内部有4KB可反复擦写的Flash闪速存储器、128字节的RAM,可以根据系统所需存储容量的大小来扩展R0M和RAM。LCD选用LCM12864液晶3.系统硬件设计 采用12864LCD液晶显示系统电路原理图如图2-1所示整个设计的核心器件有:控制模块、显示模块、电源模块三部分组成。3.1控制模块 控制模块电路如图3-1-1(a)、(b)所示。3-

4、1-1(a)、控制模块原理图 AT89C51单片机示意图3-1-1(b)主控制器采用AT89S51,AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。VCC:供电电压。GND:接地。

5、P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,

6、P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下

7、拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指钟写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,如表 3-1-2所示。 特殊功能寄存器 初始态 特殊功能寄存器 初始态 ACC 00H B 00H PSW 00H SP

8、 07H DPH 00H TH0 00H DPL 00H TL0 00H IP xxx00000B TH1 00H IE 0xx00000B TL1 00H TMOD 00H TCON 00H SCON xxxxxxxxB SBUF 00H P0-P3 1111111B PCON 0xxxxxxxB 表 3-1-2、8051的初始态ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:

9、每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在F

10、LASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任

11、何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89S51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.2显示模块图3-2、显示模块的原理图LCM12864ZK中文图形液晶显示模块的液晶屏幕为12864 ,可显示四行,每行显示8 个汉字。中文液晶显示模块LCM12864ZK的字型ROM 内含8192 个16 3 16 点中文字型和128 个168 半宽的字母符号字型;另外绘图显示画

12、面提供一个64256 点的绘图区域GDRAM;而且内含CGRAM 提供的4 组软件可编程的16 3 16 点阵造字功能。3.2.1.LCM12864ZK共20 脚,其功能如表3-2-1所示 :表3-2-1、LCM12864ZK功能引脚名称功能引脚名称功能1 CS1 选择寄存器(并行) 0 :指令寄存器1 :数据寄存器片选(串行) 0 :禁止1 :允许7 RW(SID)读写控制脚(并行) 0 :写入1 :读输入串行数据(串行)2 CS2选择寄存器(并行) 0 :指令寄存器1 :数据寄存器片选(串行) 0 :禁止1 :允许8E(SCLK)读写数据启始脚(并行)输入串行脉冲(串行)3 GND 接地4

13、 VCC 3V/ 5V 916 D0D7 数据线5 V0 液晶显示器驱动电压17 / RST复位信号,低有效6 RS表示DB0DB7为显示指令数据18 -VoutLCD驱动负电源 引脚“/ RST”和“PSB”可不接;不接时,为并行接口方式。引脚“VR”和“V0”之间必须接可变电阻(010k) ,一端接VR ,调整端接V0 ,另一端悬空;且可变电阻需调到显示区域的底色刚刚显示出来为止。 当PSB 脚接高电时(模块背面S/ P 的短路电阻在“P”侧) ,模块将进入并行传输模式;在并行传输模式下,可由指令位(DL FLAG) 来选择8 - BIT 或4 - BIT 接口,主控制系统将配合(RS ,

14、RW,E ,DB0. . DB7) 来完成传输动作;当PSB 脚接低电位(模块背面S/ P 的短路电阻在“S”侧) ,模块将进入串行模式;在串行模式下将使用二条传输线作串行资料的传送,主控制系统将配合传输同步时钟(SCLK) 与接收串行数据线(SID) ,来完成串行传输的动作。 3.2.2 LCM12864ZK基本操作指令LCM12864ZK内含ST7920 驱动控制器,该控制器是液晶驱动器与计算机的接口,它以较简单的方式受控于计算机,接收并反馈计算机的各种信息,经过控制器独立的信息处理实现对液晶显示缓冲区的管理。LCM12864ZK基本操作指令如表3-2-2所示。表3-2-2、LCM1286

15、4ZK基本操作指令指令名称控制信号控制代码RSRWD7D6D5D4D3D2D1D0清除显示0000000001位址清000000001X进入点设定0000000I/DS显示状态开/ 关0000001CB功能设定00001DLXBEXX设定DDRAM001AC6AC5AC4AC3AC2AC1AC0读取忙标志01BFAC6AC5AC4AC3AC2AC1AC0写RAM10D7D6D5D4D3D2D1D0a. 清除显示:清DDRAM 添满“20H”,并设定DDRAM 的位址AC = 0b. 位址清0 :设定DDRAM 的位址AC = 0 ,将光标移到原点,不清DDRAMc. 进入点设定:指定在资料的读

16、取与写入时,设定光标的移动方向及指定显示的移位d. 显示状态开/ 关:D = 1 :整体显示ON , D = 0 :整体显示OFF;C = 1 :光标显示ON ,C = 0 :光标显示OFF;B = 1 :光标反白显示ON ,B = 0 :光标反白显示OFF。e. 功能设定:DL = 1 8 - bit 控制界面、DL = 0 4 - bit 控制界面、RE = 1 : 扩充指令集动作、RE = 0 :基本指令集动作f . 设定DDRAM:设定DDRAM位址到位址记数器AC。第一行AC 范围为80H87H;第二行AC 范围为90H97H;第三行AC 范围为88H8FH;第四行AC 范围为98H

17、9FH。g. 读取忙标志:读取忙标志(BF) ,可以确认内部动作是否完成,同时可以读出位址记数器ACh. 写RAM: 写入数据到内部RAM (DDRAM/ CGRAM/GDRAM) 。每个RAM位址(DDRAM/ CGRAM/ GDRAM) 都可连续写入两个BYTE 数据,当写入第2 个BYTE 时,位址计数器(AC) 的值自动+ 1。3.3电源模块 图3-3、 电源电路 从USB接口获取5V电源,用相应配套的USB线从电脑主机获取5V直流电源,在电源模块中加有保护电路,即电路中有短路.上拉电阻如图3-4所示。图3-4、上拉电阻上拉电阻的功能:电阻作用: 1.接电组就是为了防止输入端悬空 2.

18、 减弱外部电流对芯片产生的干扰 3. 加大输出引脚的驱动能力 4. 上拉和下拉、限流 5. 改变电平的电位 6. 在引脚悬空时有确定的状态 7.增加高电平输出时的驱动能力。 8、为OC门提供电流4.系统软件设计4.1软件流程图系统流程图如图4-1所示。图4-1软件流程图液晶显示器在上电后应先初始化,首先延时40ms 以上,进行功能能设定(8 位/ 4 位、基本指令/ 扩充指令) ; 再延时100s ,同样是功能设定;然后延时37s ,开关显示设定;延时10s ,清屏(清除显示RAM) ;最后延时10ms ,设置读取与写入时光标的移动方向等。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一

19、定要确认模块的忙标志(P1. 7)为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,即设定DDRAM 位址到位址记数器AC。第一行AC 范围为80H87H;第二行AC 范围为90H97H;第三行AC 范围为88H8FH;第四行AC 范围为98H9FH。4.2时序图时序参数如表4-2-(a)、(b)所示。(a) 写操作时序图 (b) 读操作时序图 图3-1(a)、(b)12864点阵型LCD读写时序图5结束语 随着仪器、仪表、电子设备等智能化程度的提高,单片机系统的液晶显示模块使用的也越来越广泛。在单片机与液晶的接口中,关键是要满足液晶的时序要求

20、;在软件编程中,关键是要进行正确的初始化、操作及显示内容的代码。本次课程设计,我看到了自己许多不足之处。以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图化出来,但是我开始总觉得这样做没必要,很浪费时间。但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论

21、知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到了各种各样的问题,在这些问题中也认识到了自己的种种不足,对以前所学过的知识理解得不够深刻,掌握得不够牢固。其实这也给了我一个警告,在今后的学习中,我力争扎实学习。参考文献:1尹耕钦,唐绪伟 城市交通信号灯模拟控制系统,微计算机信息,2005.2 周立功, ARM嵌入式系统基础教程M. 北京:北京航空航天大学出版社, 2005.3 张立强,于伟. 电路原理图与PCB板设计教程Protel DXPM. 北京:科学出版社, 2005.4 王立权. 机器人创新设计与制作M. 北京:清华

22、大学出版社, 2007.5杨靖.用单片机控制的直流电机调速系统,机床电路, 2008.1.6 高国富,谢少荣,罗均. 机器人传感器及其应用M. 北京:化学工业出版社, 2005.7 何勇,王生泽. 光电传感器及其应用M. 北京:化学工业出版社, 2004.8 周立功. MagicARM2200-S教学实验开发平台实验指导M. 北京:北京航空航天大学出版社, 2005.9 郭天祥. 新概念51单片机C语言教程M. 北京:电子工业出版社,2008.10 张睿. Altium Designer 6.0原理图与PCB设计M. 北京:电子工业出版社,2007.11冯建华,赵亮编著单片机应用系统设计与产品

23、开发 人民邮电出版社2004.11.12陈正义,编著单片机控制实习 人民邮电出版社,2006.7.附录附录1:程序清单附录二:设计图纸附录3:元器件目录表附录1:程序清单基于单片机的12864LCD液晶显示控制系统程序清单;*;带字库液晶显示模块LCM12864ZK系统程序;*;*初始化部分*# define Uchar unsigned char# define Uint unsigned int# define Ulong unsigned longsbit E = P30 ; / / 对应第8 脚sbit RW= P31 ; / / 对应第7 脚sbit RS = P32 ; / / 对

24、应第6 脚;*定义字符串数组*code char STR1 =“济宁职业技术学院计算机工程系”;code char STR3 =“单片机和图形液晶显示器接口技术”;;*定义函数原型*void Delayus(Ulong t) ; / 延时函数/void BUSYLOOP() ; / / 判忙函数/ /void Write - command(Uchar CMD ,Uchar bb) ; / / 发控制字函数 / /void Write - data (Uchar CMD) ; / / 发数据函数 / /void CHUSHIHUA() ; / / 初始化函数 / /void Display(

25、Uchar ptr ,Uchar ddram) ; / / 显字符串函数/ /;*判忙函数*void BUSYLOOP() P1 = 0x0ff ;RS = 0 ;RW= 1 ;do E = 1 ;BUSY= P1 ;E = 0 ;while (BUSY 0x7F) ;;*写控制字函数*void Write - command(Uchar CMD ,Uchar bb) if (bb)BUSYLOOP() ;RS = 0 ;RW= 0 ;E = 1 ;P1 = CMD;Delayus(1) ;E = 0 ;;*写数据函数*void Write - data (Uchar CMD) BUSYLOO

26、P() ;RS = 1 ;RW= 0 ;E = 1 ;P1 = CMD;Delayus(1) ;E = 0 ;;*液晶初始化*void CHUSHIHUA() Delayus(38) ;Write - command(0x30 ,0) ; / 8 位、基本指令 /Delayus(1) ;Write - command(0x30 ,0) ; / 8 位、基本指令Delayus(1) ;Write - command(0x0C ,1) ; / 开显示 /Delayus(1) ;Write - command(0x01 ,1) ;/ 清屏3/Delayus(20) ;Write - command(

27、0x06 ,1) ; / 光标右移 /;*显示字符串*void Display(Uchar 3 ptr ,Uchar ddram)Uchar l ,i1 ,x ;l = 0 ;if (ddram 0x88) hang = 0 ; / / 定位行地址:第一行else if (ddram 0x90) hang = 2 ; / / 定位行地址:第三行else if (ddram 0x07) lie = lie - 0x08 ;x = lie 3 2 ;Write - command(ddram ,0) ; / / 定位显示起始地址while ( (ptr l ) ! = 0)l + + ;for (i1 = 0 ;i1 3) Write - command(0x80 ,0) ;hang = 0 ; ;*主函数开始*main()CHUSHIHUA() ; / / 初始化函数/ /Display(STR1 ,0x80) ; / / 上面一行显示一个预定字符串Displ

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

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