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

开通VIP
 

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

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

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Protues仿真12864液晶显示.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Protues仿真12864液晶显示.doc

1、Protues仿真液晶显示 目录 1 LCD12864简介2 2 LCD12864显示原理6 2.1汉字和英文显示原理6 2.2图形显示7 2.3应用说明8 2.4指令描述9 3软件仿真12 3.1汉字显示12 3.2图形显示17 3.3同时显示多个汉字23 3.4向上滚动显示30 4小结39 1 LCD12864简介 2 ST7920类 这种控制器带中文字库,为用户免除了编制字库的麻烦,该控制器的液晶还支持画图方式。该类液晶支持68时序8位和4位并口以及串口。 <2)KS0108类 这种控制器指令简单,不带字库。支持68时序8位并口。 <3)T6963C类

2、 这种控制器功能强大,带西文字库。有文本和图形两种显示方式。有文本和图形两个图层,并且支持两个图层的叠加显示。支持80时序8位并口。 <4)COG类 常见的控制器有S6B0724和ST7565,这两个控制器指令兼容。支持68时序8位并口,80时序8位并口和串口。COG类液晶的特点是结构轻便,成本低。 ST7920   GND   VCC   V0   RS   R/W   E   DB0-DB7   PSB   RES   VOUT   BLA   BLK KS0108   GND VCC V0 RS R/W E DB0-DB7 CS1 CS2 RES VOUT BLA BLK

3、 T6963C   FG   GND VCC V0 WR RD DB0-DB7   RS CS RES FS   BLA   BLK S6B0724 GND VCC RS WR RD CS DB0-DB7 RES   BLA   BLK   12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成。可完成图形显示,也可以显示8×4个(16×16点阵>汉字。 管脚名称 LEVER 管脚功能描述 VSS 0 电源地 VDD +5.0V 电源电压 V0 - 液晶显示器驱动电压 D/I(RS> H/L D/I=“H”,表

4、示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

5、选择芯片(右半屏>信号 CS2 H/L H:选择芯片(左半屏>信号 RET H/L 复位信号,低电平复位 VOUT -10V LCD驱动负电压 LED+ - LED背光板电源 LED- - LED背光板电源     在使用12864LCD前先必须了解以下功能器件才能进行编程。12864内部功能器件及相关功能如下: 1. 指令寄存器(IR>     IR是用于寄存指令码,与数据寄存器数据相对应。当D/I=0时,在E信号下降沿的作用下,指令码写入IR。 2.数据寄存器(DR>     DR是用于寄存数据的,与指令寄存器寄存指令相对应。当D/I=1时,在下降

6、沿作用下,图形显示数据写入DR,或在E信号高电平作用下由DR读到DB7∽DB0数据总线。DR和DDRAM之间的数据传输是模块内部自动执行的。 3.忙标志:BF     BF标志提供内部工作情况。BF=1表示模块在内部操作,此时模块不接受外部指令和数据。BF=0时,模块为准备状态,随时可接受外部指令和数据。     利用STATUS READ指令,可以将BF读到DB7总线,从检验模块之工作状态。 4.显示控制触发器DFF     此触发器是用于模块屏幕显示开和关的控制。DFF=1为开显示

7、F)。     DDF的状态是指令DISPLAY ON/OFF和RST信号控制的。 5.XY地址计数器   XY地址计数器是一个9位计数器。高3位是X地址计数器,低6位为Y地址计数器,XY地址计数器实际上是作为DDRAM的地址指针,X地址计数器为DDRAM的页指针,Y地址计数器为DDRAM的Y地址指针。     X地址计数器是没有记数功能的,只能用指令设置。     Y地址计数器具有循环记数功能,各显示数据写入后,Y地址自动加1,Y地址指针从0到63。 6.显示数据RAM

8、M与地址和显示位置的关系见DDRAM地址表。 7.Z地址计数器     Z地址计数器是一个6位计数器,此计数器具备循环记数功能,它是用于显示行扫描同步。当一行扫描完成,此地址计数器自动加1,指向下一行扫描数据,RST复位后Z地址计数器为0。     Z地址计数器可以用指令DISPLAY START LINE预置。因此,显示屏幕的起始行就由此指令控制,即DDRAM的数据从哪一行开始显示在屏幕的第一行。此模块的DDRAM共64行,屏幕可以循环滚动显示64行。 12864LCD的指令系统  模块控制芯片提供两套控制命令,基本指令和扩充指令如下: 指令表1:

9、                     指 令 码 功 能 令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 清除 显示 0 0 0 0 0 0 0 0 0 1 将DDRAM填满"20H",并且设定DDRAM的地址计数器(AC>到"00H" 地址 归位 0 0 0 0 0 0 0 0 1 X 设定DDRAM的地址计数器(AC>到"00H",并且将游标移到开头原点位置。这个指令不改变DDRAM 的内容 显示状态开/关 0 0 0 0 0 0 1 D C B D=1: 整体显示

10、 ON C=1: 游标ON     B=1:游标位置反白允许 进入点 设定 0 0 0 0 0 0 0 1 I/D S 指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位 游标或显示移位控制 0 0 0 0 0 1 S/C R/L X X 设定游标的移动与显示的移位控制位。这个指令不改变DDRAM 的内容 功能 设定 0 0 0 0 1 DL X RE X X DL=0/1:4/8位数据 RE=1: 扩充指令操作 RE=0: 基本指令操作 设定CGRAM 地址 0 0 0 1 AC5

11、AC4 AC3 AC2 AC1 AC0 设定CGRAM 地址 设定DDRAM 地址 0 0 1 0 AC5 AC4 AC3 AC2 AC1 AC0 设定DDRAM 地址<显示位址) 第一行:80H-87H 第二行:90H-97H 读取忙标志和地址 0 1 BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 读取忙标志(BF>可以确认内部动作是否完成,同时可以读出地址计数器(AC>的值 写数据到RAM 1 0 数据 将数据D7——D0写入到内部的RAM (DDRAM/CGRAM/IRAM/GRAM> 读出RAM

12、的值 1 1 数据 从内部RAM读取数据D7——D0 (DDRAM/CGRAM/IRAM/GRAM> 指令表2:

13、AM地址      反白      选择 0 0 0 0 0 0 0 1 R1 R0 选择2行中的任一行作反白显示,并可决定反白与否。初始值R1R0=00,第一次设定为反白显示,再次设定变回正常      睡眠      模式 0 0 0 0 0 0 1 SL X X SL=0:进入睡眠模式 SL=1:脱离睡眠模式      扩充      功能      设定 0 0 0 0 1 CL X RE G 0 CL=0/1:4/8位数据 RE=1: 扩充指令操作 RE=0: 基本指令操作 G=1/0:绘图开关

14、 设定绘图RAM 地址 0 0 1 0 AC6 0 AC5 0 AC4 AC3 AC3 AC2 AC2 AC1 AC1 AC0 AC0 设定绘图RAM 先设定垂直(列>地址AC6AC5…AC0 再设定水平(行>地址AC3AC2AC1AC0 将以上16位地址连续写入即可 备注:当IC1在接受指令前,微处理器必须先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零,方可接受新的指令。如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延长一段较长的时间,即是等待前一个指令确实执行完成。 2、字符显示 带中文字库的128X64

15、0402B每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×8点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。带中文字库的128X64-0402B内部提供128×2字节的字符显示RAM缓冲区

16、义字型,02H~7FH显示半宽ASCII码字符,A1A0H~F7FFH显示8192种GB2312中文字库字形。字符显示RAM在液晶模块中的地址80H~9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示。 80H 81H 82H 83H 84H 85H 86H 87H 90H 91H 92H 93H 94H 95H 96H 97H 88H 89H 8AH 8BH 8CH 8DH 8EH 8FH 98H 99H 9AH 9BH 9CH 9DH 9EH 9FH 2 LCD12864显示原理

17、2.1汉字和英文显示原理 在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,因为英文字母种类很少,只需要8位<一字节)即可。而对于中文,常用却有6000以上,于是我们的DOS前辈想了一个办法,就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。     那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形

18、状,如英文的'A'在字模的记载方式如图1所示: 图1 “A”字模图     而中文的“你”在字模中的记载却如图2所示: 图2 “你”字模图 根据芯片的不同取模的方式不同,有多种取模方式:单色点阵液晶字模,横向取模,字节正序,单色点阵液晶字模,横向取模,字节倒序,单色点阵液晶字模,纵向取模,字节正序,单色点阵液晶字模,纵向取模,字节倒序等等。 2.2图形显示  先设垂直地址再设水平地址(连续写入两个字节的资料来完成垂直与水平的坐标地址> 垂直地址范围 AC5...AC0 水平地址范围 AC3…AC0 绘图RAM 的地址计数器自动加一,当水

19、平地址=0FH 时会重新设为00H 但并不会对垂直地址做进位自动加一,故当连续写入多笔资料时,程序需自行判断垂直地址是否需重新设定。GDRAM的坐标地址与资料排列顺序如下图: 2.3应用说明  用带中文字库的128X64显示模块时应注意以下几点:      ①欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。      ②显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。      ③当字符编码为2字节时,应

20、先写入高位字节,再写入低位字节。          ④模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的指令。如果在送出一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。指令执行的时间请参考指令表中的指令执行时间说明。 ⑤“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。 2.4指令描述 1、显示开/关设置 CODE: R/W D/I DB7 DB6

21、 DB5 DB4 DB3 DB2 DB1 DB0 L L L L H H H H H H/L 功能:设置屏幕显示开/关。 DB0=H,开显示;DB0=L,关显示。不影响显示RAM(DD RAM>中的内容。 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

22、地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。 3、设置页地址 CODE: R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L H L H H H 页地址<0-7) 功能:执行本指令后,下面的读写操作将在指定页内,直到重新设置。页地址就是DD RAM 的行地址,页地址存储在X地址计数器中,A2-A0可表示8页,读写数据对页地址没有影响,除本指令可改变页地址外,复位信号(RST>可把页地址计数器内容清零。         DD RAM地址映像表                 

23、                 Y 地址 0 1 2 ……………………… 61 62 63 DB0 ∫                          PAGE0 DB7       X=0 DB0 ∫                          PAGE1 DB7       X=1 ∷ ∷ ∷ ∷ DB0 ∫                          PAGE6 DB7       X=7 DB0 ∫                          PAGE7

24、 DB7       X=8                   4、设置列地址 CODE:   R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L L L H 列地址<0-63) 功能: DD RAM 的列地址存储在Y地址计数器中,读写数据对列地址有影响,在对DD RAM进行读写操作后,Y地址自动加一。 5、状态检测 CODE: R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 H L BF L ON/OFF RET L L

25、L L 功能:读忙信号标志位(BF>、复位标志位(RST>以及显示状态位(ON/OFF>。             BF=H:内部正在执行操作;            BF=L:空闲状态。             RST=H:正处于复位初始化状态;       RST=L:正常状态。             ON/OFF=H:表示显示关闭;            ON/OFF=L:表示显示开。 6、写显示数据 CODE: R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 L H D7 D6 D5 D4 D3

26、 D2 D1 D0 功能:写数据到DD RAM,DD RAM是存储图形显示数据的,写指令执行后Y地址计数器自动加1。D7-D0位数据为1表示显示,数据为0表示不显示。写数据到DD RAM前,要先执行“设置页地址”及“设置列地址”命令。 7、读显示数据 CODE:  R/W D/I DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 H H D7 D6 D5 D4 D3 D2 D1 D0 功能:从DD RAM读数据,读指令执行后Y地址计数器自动加1。从DD RAM读数据前要先执行“设置页地址” 及“设置列地址”命令。 8、

27、屏幕显示与DD RAM地址映射关系      Y1 Y2 Y3 Y4 ………… Y62 Y63 Y64      X=0 Line 0 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB0 Line 1 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB1 Line 2 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB2 Line 3 1/0 1/0 1

28、/0 1/0 ………… 1/0 1/0 1/0 DB3 Line 4 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB4 Line 5 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB5 Line 6 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB6 Line 7 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB7 ……

29、…… ………… …………      X=7 Line60 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB4 Line61 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB5 Line62 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB6 Line63 1/0 1/0 1/0 1/0 ………… 1/0 1/0 1/0 DB7 3软件仿真 3.1

30、汉字显示 在Protues软件中选择所需元件,搭建的电路图如图1所示。 图1 仿真硬件原理图 将编写的代码烧写到单片机里,运行液晶显示不正常,如图2所示。 图2 运行图 开始我还以为是程序问题,把程序看了又看,改了又改,显示结果还是一样。后来问了下张勇生,出现这种情况的原因是P0口没接上拉电阻。因为P0口是开漏的,不管它的驱动能力多大,相当于它是没有电源的,需要外部的电路提供,绝大多数情况下P0口是必需加上拉电阻的。接上拉电阻后,重新运行这下运行正常了,如图3所示。 图3正常显示 代码如下所示: #include #define LCD

31、LCDDisp_Off 0x3e #define LCDLCDDisp_On 0x3f #define Page_Add 0xb8//页地址 #define LCDCol_Add 0x40//列地址 #define Start_Line 0xC0//行地址 /*****液晶显示器的端口定义*****/ #define data_ora P0 /*液晶数据总线*/ sbit LCDMcs=P2^1 。 /*片选1*/ sbit LCDScs=P2^2 。 /*片选2*/ sbit RESET=P2^3 。 /*复位信号*/ sb

32、it LCDDi=P2^4 。 /*数据/指令 选择*/ sbit LCDRW=P2^5 。 /*读/写 选择*/ sbit LCDEnable=P2^6 。 /*读/写 使能*/ char code Hz_xu[]= { /*------------------------------------------------------------------------------ 源文件 / 文字 : F:\LD测试仪\液晶\字模提取+排版软件\液晶字模提取\图例\wo.bmp 宽×高<像素): 16× 字模格式/大小 : 单色点阵液晶字

33、模,纵向取模,字节倒序/32字节 数据转换日期 : 2018-7-28 17:10:17 ------------------------------------------------------------------------------*/ 0x40,0x42,0xCC,0x00,0x00,0x40,0x30,0x1E,0x10,0xF0,0x10,0x10,0x18,0x10,0x00,0x00, 0x00,0x00,0x3F,0x10,0x08,0x01,0x01,0x01,0x01,0x7F,0x01,0x01,0x01,0x01,0x00,0x00 }。 c

34、har code Hz_ping[]= { /*------------------------------------------------------------------------------ 源文件 / 文字 : F:\LD测试仪\液晶\字模提取+排版软件\液晶字模提取\图例\ping.bmp萍 宽×高<像素): 16×16 字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/32字节 数据转换日期 : 2018-7-29 8:46:30 ---------------------------------------------------

35、/ 0x00,0xC8,0x28,0x58,0x08,0x0C,0xBE,0x28,0x28,0xE8,0x3E,0x28,0xA8,0x2C,0x08,0x00, 0x00,0x08,0x09,0x7E,0x01,0x04,0x04,0x05,0x04,0x7F,0x04,0x05,0x04,0x06,0x04,0x00 }。 /**************************************************************************** 函数功能:LCD延时程序 入口参数:t 出

36、口参数: ****************************************************************************/ void LCDdelay(unsigned int t> { unsigned int i,j。 for(i=0。i。 for(j=0。j<10。j++>。 } /**************************************************************************** 状态检查,LCD是否忙 *************************

37、/ void CheckState(> { unsigned char dat,DATA。//状态信息<判断是否忙) LCDDi=0。 // 数据\指令选择,D/I。//延时

38、 dat=DATA。 LCDEnable=0。 dat=0x80 & dat。 //仅当第7位为0时才可操作(判别busy信号> } while(!(dat==0x00>>。 } /***************************************************************************** 函数功能:写命令到LCD程序,RS(DI>=L,RW=L,EN=H,即来一个脉冲写一次 入口参数:cmdcode 出口参数: ************************************

39、/ void write_com(unsigned char cmdcode> { CheckState(>。//检测LCD是否忙 LCDDi=0。 LCDRW=0。 P0=cmdcode。 LCDdelay(2>。 LCDEnable=1。 LCDdelay(2>。 LCDEnable=0。 } /***************************************************************************** 函数功能

40、LCD初始化程序 入口参数: 出口参数: *****************************************************************************/ void init_lcd(> { LCDdelay(100>。 LCDMcs=1。//刚开始关闭两屏 LCDScs=1。 LCDdelay(100>。 write_com(LCDLCDDisp_Off>。 //写初始化命令 write_com(Page_Add+0>。 write_com(Start_Line+0>。 write_com(LCDCo

41、l_Add+0>。 write_com(LCDLCDDisp_On>。 } /***************************************************************************** 函数功能:写数据到LCD程序,RS(DI>=H,RW=L,EN=H,即来一个脉冲写一次 入口参数:LCDDispdata 出口参数: *****************************************************************************/ void write_data(unsigned cha

42、r LCDDispdata> { CheckState(>。//检测LCD是否忙 LCDDi=1。 LCDRW=0。 P0=LCDDispdata。 LCDdelay(2>。 LCDEnable=1。 LCDdelay(2>。 LCDEnable=0。 } /***************************************************************************** 函数功能:清除LCD内存程序 入口参数:pag,col,hzk 出口参数: ****************************

43、/ void Clr_Scr(> { unsigned char j,k。 LCDMcs=0。 //左、右屏均开显示 LCDScs=0。 write_com(Page_Add+0>。 write_com(LCDCol_Add+0>。 for(k=0。k<8。k++>//控制页数0-7,共8页 { write_com(Page_Add+k>。 //每页每页进行写 for(j=0。j<64。j++> //每页最多可写32个中文文字或64个ASC

44、II字符 { write_com(LCDCol_Add+j>。 write_data(0x00>。//控制列数0-63,共64列,写点内容,列地址自动加1 } } } /***************************************************************************** 函数功能:指定位置显示汉字16*16程序 入口参数:page,column,hzk 出口参数: **************************************************************

45、/ void hz_LCDDisp16(unsigned char page,unsigned char column, unsigned char code *hzk> { unsigned char j=0,i=0。 for(j=0。j<2。j++> { write_com(Page_Add+page+j>。 write_com(LCDCol_Add+column>。 for(i=0。i<16。i++> write_data(hzk[16*j+i]>。 } } void main(> { init_lc

46、d(>。 Clr_Scr(>。 LCDMcs=0。 //左屏开显示 LCDScs=1。 hz_LCDDisp16(0,48,Hz_xu>。// Hz_Wo为某个汉字的首地址 LCDMcs=1。 //右屏开显示 LCDScs=0。 hz_LCDDisp16(0,0,Hz_ping>。 while(1> { } } 3.2图形显示 我选了一张128x64的图片在字模软件中生产相应的C代码,将C代码写入到程序中。 因为液晶由两个控制芯片来控制,所以有片选信号端口CS1和CS2。我在字体显示程序中把改了显示那一块的代码,

47、主程序中改了片选信号。开始同时将左右屏都开了,显示事,左右屏同时显示一样的图形,并且显示的图形不完整。主程序中显示部分的程序不对,我想了后,将主程序中程序改了一下,先开左屏调用左屏显示函数,在关左屏开右屏调用右屏显示函数。最后显示成功。如图4所示。 图4 图形显示 代码如下所示: #include #define LCDLCDDisp_Off 0x3e #define LCDLCDDisp_On 0x3f #define Page_Add 0xb8//ye #define LCDCol_Add 0x40//lie #define

48、 Start_Line 0xC0//hang /*****液晶显示器的端口定义*****/ #define data_ora P0 /*液晶数据总线*/ sbit LCDMcs=P2^1 。 /*片选1*/ sbit LCDScs=P2^2 。 /*片选2*/ sbit RESET=P2^3 。 /*复位信号*/ sbit LCDDi=P2^4 。 /*数据/指令 选择*/ sbit LCDRW=P2^5 。 /*读/写 选择*/ sbit LCDEnable=P2^6 。 /*读/写 使能*/ char code Hz[]=

49、{ /*------------------------------------------------------------------------------ 源文件 / 文字 : F:\LD测试仪\液晶\字模提取+排版软件\液晶字模提取\图例\yema.bmp萍 宽×高<像素): 128×64 字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/1024字节 数据转换日期 : 2018-7-29 9:09:37 ----------------------------------------------------------------------

50、/ 0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x80,0x90,0xD0,0x78,0x

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服