飞思卡尔单片机控制LCD1602程序范例

飞思卡尔单片机控制LCD1602程序范例(2008-11-1909:24:27)标签:杂谈分类:电子科技LCD1602是很常用的液晶显示屏。在网络上已经有不少应用于51等单片机的程序。这里用的是Freescale的MC9SDG128,已经成功显示。使用的是如下引脚的1602。以前用的是横排管脚的封装。而本次用的是这种管脚排列,可气的是,网上给资料竟然和Donald手头的这个模块不同,其中1脚是VDD,接+5V电源,2脚是VSS,接地。看了很多类似的模块,基本是和本人手里的模块一样,也就是说网上的资料基本是抄来抄去的,可以连试都没试过。另外的3到14脚的作用如下。第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。调程序时,别忘了适当调整电位器。在调试时,开始时老是显示不出来,经过各种检查程序,还是不行,最后没办法调了下电位器,发现已经显示在上面了,晕!第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。还有两个引脚没有引出来,他们是"A"和"K",为背光引脚,"A"接正,"K"接负便会点亮背光灯。这里,由于自己腐蚀的扩展板是单面板,需考虑最小系统板和引线方便。就让RS引脚接PORTE_BIT2,RW接的是PORTH的PTH0,E连接的是PTH2,并行数据口接的是PORTA。这些都在头文件中做了宏定义,可方便地应用于其它端口。因为16位MCU的I/O口通常不像51那样直接输入输出,其具有多种功能。所以在使用时要经常对其数据方向寄存器进行配置。为了方便,Donald做了如下定义:#defineLCDIO_DIRDDRA#defineLCDIO_DIR_IN0x00#defineLCDIO_DIR_OUT0xFF这样,当需要变换端口数据传输方向时,只需用如下语句:LCDIO_DIR=LCDIO_DIR_IN;orLCDIO_DIR=LCDIO_DIR_OUT;以下为头文件。#ifndef_LCD1602_14P#define_LCD1602_14P#defineLINE10#defineLINE21#defineLINE1_HEAD0x80#defineLINE2_HEAD0xC0#defineDATA_MODE0x38//8bitdatatransmissionmode,doubleline//LCD1602CommandMacro#defineCLR0x01#defineBUSY0x80//LCDBusyTag#defineCURSOR_RESET0x02#defineINPUTMODE_CUR_R0x06#defineINPUTMODE_CUR_L0x04#defineINPUTMODE_ALL_E0x05#defineINPUTMODE_ALL_D0x04#defineSCREEN_OPEN0x0C#defineSCREEN_OPEN_CUR0x02#defineSCREEN_OPEN_TWI0x01#defineSCSHIFT_CUR_L0x10//ScreenorCursorshift#defineSCSHIFT_CUR_R0x14#defineSCSHIFT_SCR_L0x18#defineSCSHIFT_SCR_R0x1C//LCD1602Pins#defineLCD1602_RSPORTE_BIT2//DataCommandPin1data0command#defineLCD1602_RWPTH_PTH0//ReadWritePin1read0write#defineLCD1602_ENPTH_PTH2//LCDEnableSignal#defineLCDIOPORTA#defineLCDIO_DIRDDRA#defineLCDIO_DIR_IN0x00#defineLCDIO_DIR_OUT0xFFvoidLcdCommand(unsignedcharcommand,unsignedcharBusyC);//writecommandfunctionvoidLcdData(unsignedchartemp,unsignedcharBusyC);//writedatafunctionvoidLcdSetXY(unsignedcharx,unsignedchary);//setdisplayaddressfunctionvoidLcdWriteChar(unsignedcharx,unsignedchary,unsignedchardat);//writelcdacharacterfunctionvoidLcdWriteStr(unsignedcharX,unsignedcharY,char*s);//writelcdstringfunctionvoidLcdInit(void);//LCDinitizefunctionunsignedcharReadStatus(void);voidLcdDelay(void);//LCDDelayFunction#endif头文件结束。以下是源文件。#include<hidef.h>#include<mc9s12dg128.h>#include"LCD1602_14P.h"voidLcdInit(){DDRH=0xff;DDRE=0xff;LCDIO_DIR=LCDIO_DIR_OUT;LcdDelay();LcdCommand(CLR,0);//clearscreenLcdCommand(DATA_MODE,1);//set8bitdatatransmissionmodeLcdCommand(INPUTMODE_CUR_R|INPUTMODE_ALL_D,1);//cursorright,disablemov...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

文秘专家
机构认证
内容提供者

1

确认删除?