经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx
- 文档编号:5857790
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:13
- 大小:17.32KB
经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx
《经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx》由会员分享,可在线阅读,更多相关《经典的KEILC51LCD16024总线驱动+中文注释程序文档格式.docx(13页珍藏版)》请在冰点文库上搜索。
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--);
};
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 经典 KEILC51LCD16024 总线 驱动 中文 注释 程序