1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
chpt9电机

三)显示原理 LCM驱动芯片的存储器映像(p239) ---每行有40个RAM单元存放要显示字符的代码(这里只用到每行前16个), 这些单元名称叫DDRAM (数据显示RAM) ---送到DDRAM的是要显示字符的代码(这些代码大 部分和Ascii码一致,有些不一致) ---液晶屏显示工作流程: 单片机往DDRAM里放入要显示的字符ascii码。 液晶芯片读出DDARM内容。 芯片自动查表找到该字符的点阵,再由驱动芯片显示到DDARM地址映射的位置上 ---查表在CDROM(标准字符点阵)及CGRAM(字符 产生RAM,存用户自造字点阵)中进行 例:向80H送‘A’ (‘A’表A的ASCII码) 则在屏的(0,0)处显示A字符 单片机需要给液晶芯片传输两类信息(RW=0,E下降沿) 1、指令(RS=0) 例如:清屏、设置地址、光标移动、初始化等 2、数据(RS=1) 要显示内容的ascii码 单片机可能需要获取液晶芯片两类信息(RW=1, E=1) 1、忙标志BF(RS=0),BF=1时芯片忙,不接受外部信息 2、数据(RS=1) 四)编程要点 1)基本有两个操作 --向LCM送指令,配置LCM,各指令意义手册给出 --向LCM送数据,表示显示内容 2)1602编程: --初始化,由初始化函数完成,lcd_init(); void lcd_init() //LCD初始化设定 { WriteCmdToLCM (0x38); //表10-9设置LCM为16X2显示,5X7点阵,八位数据接口, WriteCmdToLCM (0x06); //表10-6显示光标移动设置(光标地址指针加1,画面不移动) WriteCmdToLCM (0x0c); //LCD开显示,无光标 WriteCmdToLCM (0x01); //清除LCD的显示内容 } 时序(表10-2) RS R/W E DB 功能 0 0 1→0 输入液晶芯片 将指令写入芯片 0 1 1 输出 读忙标志 1 0 1→0 输入 写数据 1 1 1 输出 读数据 程序段(P240) 写命令 void WriteCmdToLCM (uchar cmd) { LCM_Busy_Wait(); //检测LCM忙否 闲才返回 LCM_RS = 0; LCM_RW = 0; //写指令要求 RS=0,WR=0 LCM_EN = 1; //拉高准备EN产生下降沿 LCMDATA = cmd; //指令送到LCMDATA口 LCM_EN = 0; //下降沿有效 } 程序段(P241) 写数据 void WriteDataToLCM (uchar Data) { LCM_Busy_Wait(); //检测忙 LCM_RS = 1; LCM_RW = 0; //向LCM写数据要求 RS=1,RW=0 LCM_EN = 1; //拉高准备EN产生下降沿 LCMDATA = Data; //数据送到LCMDATA口 LCM_EN = 0; //下降沿有效 } --在哪里显示,设置初始显示光标位置函数完成, 例:lcd_pos(0, 0 );//初始从0行0列开始显示 =================================== //输入: y行, y=0,第0行显示 y=1,第1行显示; x列, 0=x16 //功能:设置初始显示位置 void lcd_pos(bit y, uchar x ) { if(y) WriteCmdToLCM (x|0xc0); //y=1,第1行显示;y=0,第0行显示 else WriteCmdToLCM (x|0x80); } 此指令后送的第一个数(要显示的字符代码)就送到x,y规定的DDRAM单元了 ---显示什么内容: 分两种情况: a)在光标位置处显一个字符 由显示单个字符函数WriteDataToLCM ()完成, 例:lcd_pos(0, 0 ); WriteDataToLCM (‘Y’); //和(0x59) 等价 //在0行0列处显示Y (‘Y’的显示代码(此处=ASCII码)是0x59) b)在光标位置处显一字符串 由显示字符串函数print

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档