经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx

上传人:b****1 文档编号:5857790 上传时间:2023-05-05 格式:DOCX 页数:13 大小:17.32KB
下载 相关 举报
经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx_第1页
第1页 / 共13页
经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx_第2页
第2页 / 共13页
经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx_第3页
第3页 / 共13页
经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx_第4页
第4页 / 共13页
经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx_第5页
第5页 / 共13页
经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx_第6页
第6页 / 共13页
经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx_第7页
第7页 / 共13页
经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx_第8页
第8页 / 共13页
经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx_第9页
第9页 / 共13页
经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx_第10页
第10页 / 共13页
经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx_第11页
第11页 / 共13页
经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx_第12页
第12页 / 共13页
经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx

《经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx》由会员分享,可在线阅读,更多相关《经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx(13页珍藏版)》请在冰点文库上搜索。

经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx

string.h>

//包含初试化头文件

intrins.h>

//#include<

stdlib.h>

//包含标准函数库头文件

#include"

4bitlcm1602.h"

//包含delay头文件

delay.h"

//包含delay头文件

#defineucharunsignedchar

#defineuintunsignedint

//------硬件端口定义--------------------------------

//------函数(声明)--------------------------------

voidsys_init(void);

//系统初始化函数(声明)

/******************************************************************************************

*函数名称:

主程序

*功能描述:

******************************************************************************************/

main()//主程序入口

{

//LCMInit();

//初始化LCD

sys_init();

//系统初始化

while

(1)

{//主程序循环(开始)

LCD_cls();

//清屏

DisplayListChar(0,0,"

MONITORV1.0"

);

//第1行显示

DisplayListChar(0,1,"

APPLYINCHINA"

//第2行显示

Delay400Ms();

Delay400Ms();

//清屏

DisplayListChar(0,0,"

BG1EQ@TOM.COM"

2011Y08M25D"

DisplayOneChar(0,0,'

0'

//显示字符

DisplayOneChar(1,0,'

1'

DisplayOneChar(2,0,'

2'

DisplayOneChar(3,0,'

3'

DisplayOneChar(4,0,'

4'

DisplayOneChar(5,0,'

5'

DisplayOneChar(6,0,'

6'

DisplayOneChar(7,0,'

7'

DisplayOneChar(8,0,'

8'

DisplayOneChar(9,0,'

9'

DisplayOneChar(10,0,'

DisplayOneChar(11,0,'

-'

DisplayOneChar(12,0,'

+'

DisplayOneChar(13,0,'

='

DisplayOneChar(14,0,'

#'

DisplayOneChar(15,0,'

$'

DisplayOneChar(0,1,'

A'

DisplayOneChar(1,1,'

B'

DisplayOneChar(2,1,'

C'

DisplayOneChar(3,1,'

D'

DisplayOneChar(4,1,'

E'

DisplayOneChar(5,1,'

F'

DisplayOneChar(6,1,'

G'

DisplayOneChar(7,1,'

H'

DisplayOneChar(8,1,'

I'

DisplayOneChar(9,1,'

J'

DisplayOneChar(10,1,'

K'

DisplayOneChar(11,1,'

L'

DisplayOneChar(12,1,'

M'

DisplayOneChar(13,1,'

N'

DisplayOneChar(14,1,'

O'

DisplayOneChar(15,1,'

P'

}//主程序循环结束返回

}

sys_init

系统初始化

******************************************************************************************/

voidsys_init()

//上电后延时,让LCD1602进入稳定状态,

LCMInit();

//初始化LCD1602

}

以上是C51主程序

以下是C51模块化4BITLCM1602.H函数程序

/*--------------------------------------------------------------------------

4BITLCM1602.H

4位总线驱动LCD1602头文件

--------------------------------------------------------------------------*/

#ifndef__4BITLCM1602_H__

#define__4BITLCM1602_H__

/*******************************************************************************/

//包含52头文件

//包含初试化头文件

//包含标准函数库头文件

sbitLCM_RS=P2^0;

sbitLCM_RW=P2^1;

sbitLCM_E=P2^7;

sbitLCD7=P0^7;

sbitLCD6=P0^6;

sbitLCD5=P0^5;

sbitLCD4=P0^4;

ucharbdatalcdbuff;

//声明,全局的、可以位寻址的变量

sbitlcd_buff7=lcdbuff^7;

sbitlcd_buff6=lcdbuff^6;

sbitlcd_buff5=lcdbuff^5;

sbitlcd_buff4=lcdbuff^4;

sbitlcd_buff3=lcdbuff^3;

sbitlcd_buff2=lcdbuff^2;

sbitlcd_buff1=lcdbuff^1;

sbitlcd_buff0=lcdbuff^0;

voidLCMInit(void);

//LCM屏初始化

voidR_BF();

//读忙标志BF

voidw_com(ucharcom);

//写指令函数

voidw_cdata(void);

//写数据函数

voidWriteDataLCM(unsignedcharWDLCM);

//LCM屏写数据函数(声明)

voidLCD_cls(void);

//LCM屏清屏

voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData);

voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData);

WriteDataLCM

LCM写数据

voidWriteDataLCM(ucharWDLCM)

R_BF();

lcdbuff=WDLCM;

LCM_RS=1;

LCM_RW=0;

w_cdata();

//这里写入字符码

DisplayListChar

按指定位置显示一串字符,原来的遇到空格0x20就不显示

*函数说明:

voidDisplayListChar(ucharX,ucharY,ucharcode*DData)

ucharListLength,j;

//定义局部变量

ListLength=strlen(DData);

//读取字符串长度

X&

=0xF;

//限制X不能大于15

Y&

=0x1;

//限制Y不能大于1

if(X<

=0xF)//X坐标应小于0xF

{

for(j=0;

j<

ListLength;

j++)

{

DisplayOneChar(X,Y,DData[j]);

//显示单个字符

X++;

}

}

DisplayOneChar

按指定位置显示一个字符

voidDisplayOneChar(ucharX,ucharY,ucharDData)

X&

//限制X不能大于15

Y&

//限制Y不能大于1

if(Y)X|=0x40;

//如果Y是“1”,则合成显示第二行时地址码+0x40;

X|=0x80;

//合成的、显示位置码,指令码:

1Yxxxxxx(B)

w_com(X);

//写入地址码,X数据包含字符的显示位置

WriteDataLCM(DData);

//写入数据码,要显示的字符数据

LCMInit

LCM初始化

voidLCMInit(void)

w_com(0x2c);

//功能设置为:

四位数据总线

w_com(0x01);

//清屏

w_com(0x06);

//设置显示输入模式(AC指针自加1,显示不移位)

w_com(0x0c);

//显示开/关设置(设置显示、光标和闪烁开关)

R_BF

读忙标志BF

*******************************************************************************************/

voidR_BF()

LCD7=1;

//BF端口在DB7,置LCD7为“1”等待测试本端口电平

LCM_RS=0;

LCM_RW=1;

LCM_E=1;

//RS=0;

RW=1;

E=1表示读忙标志BF

while(LCD7);

//若内部操作位BF忙CPU就等待BF不忙才能操作

LCM_E=0;

w_com

写命令

主要用来初始化一些设置显示、输入模式、显示开关、光标、移位、功能、地址

voidw_com(ucharcom)

lcdbuff=com;

LCM_RS=0;

w_cdata

写命令的公共

四位数据总线,每发送一字节,先发送高四位,再发送低四位

voidw_cdata(void)

//-----写命令的高4位

LCD7=lcd_buff7;

LCD6=lcd_buff6;

LCD5=lcd_buff5;

LCD4=lcd_buff4;

LCM_E=1;

_nop_();

LCM_E=0;

//-----写命令的低4位

LCD7=lcd_buff3;

LCD6=lcd_buff2;

LCD5=lcd_buff1;

LCD4=lcd_buff0;

LCD_cls

LCM清屏

voidLCD_cls(void)

#endif

以下是C51模块化DELAY.H函数程序

DELAY.H

延时函数头文件

#ifndef__DELAY_H__

#define__DELAY_H__

voidDelay400Ms(void);

//延时400mS函数(子程序)

Delay400Ms

400ms延时

voidDelay400Ms(void)

ucharTempCycA=30;

//1周期MPU用30,12周期MPU用5

uintTempCycB;

while(TempCycA--)

TempCycB=7269;

while(TempCycB--);

};

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

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2