教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 范文大全 > 行业范文 >

1602液晶显示C程序

来源:网络收集 时间:2026-08-17
导读: 电子类 1602液晶显示C程序2009-07-18 00:35* 描 述 : * 此程序实现,完成液晶的驱动程序,可以显示任意的ASCII字符*************************************************************************** */ #include reg52.h //调用头文件(单片机内部的寄存器定

电子类

1602液晶显示C程序2009-07-18 00:35* 描 述 :
* 此程序实现,完成液晶的驱动程序,可以显示任意的ASCII字符***************************************************************************
*/
#include <reg52.h> //调用头文件(单片机内部的寄存器定义)

/******本段为硬件I/O口定义********/
sbit KEY0 = P0 ^ 0; //KEY和发光管复用,请将跳线插到KEY端
sbit KEY1 = P0 ^ 1;
sbit KEY2 = P0 ^ 2;
sbit KEY3 = P0 ^ 3;
sbit DIG0 = P0 ^ 4; //数码管位0sbit DIG1 = P0 ^ 5; //数码管位1

sbit BUZZ = P3 ^ 3; //蜂鸣器sbit LCD_RW = P3 ^ 6;
sbit LCD_RS = P3 ^ 7;
sbit LCD_E = P3 ^ 4;

#define LED_SEG P1 //数码管#define LCD_DATA P2 //LCD DATA#define LCD_BUSY 0x80 // 用于检测LCD的BUSY标识(本程序中用的延时,未检测)
//LCD显示内容,定义到代码段
unsigned char code LcdBuf1[]= {"welcom!"};
unsigned char code LcdBuf2[]= {"MCU-STUDY-BOARD"};

//函数声明
void lcd_init(void);
void display_string(unsigned char x,unsigned char y,unsigned char *s);
void disp_selec(unsigned char bit_selec,unsigned char seg);


/**************************************************
** 函数名称: dellay
** 入口参数:h(unsigned int型)
** 出口参数:无
** 功能描述: 短暂延时,使用11.0592晶体,约0.01MS
****************************************************/
void dellay(unsigned int h)
{
while(h--); //0.01MS
}


/************主程序**************/
main()
{
lcd_init();
display_string(3,0,LcdBuf1); //显示第一行,从第3个位置开始
display_string(0,1,LcdBuf2); //显示第二行,从第0个位置开始
while(1); //单片机待机}

/**************************************************
** 函数名称: WriteDataLcd
** 入口参数:wdata(unsigned char型)
** 出口参数:无
** 功能描述: 写数据到LCD
****************************************************/
void WriteDataLcd(unsigned char wdata)
{
LCD_DATA=wdata;
LCD_RS=1;
LCD_RW=0;
LCD_E=0;
dellay(100); //短暂延时,代替检测忙状态

LCD_E=1;
}
/**************************************************
** 函数名称: WriteCommandLcd
** 入口参数:wdata(unsigned char型)
** 出口参数:无
** 功能描述: 写命令到LCD
****************************************************/
void WriteCommandLcd(unsigned char wdata)
{
LCD_DATA=wdata;
LCD_RS=0;
LCD_RW=0;
LCD_E=0;
dellay(100); //短暂延时,代替检测忙状态
LCD_E=1;
}

//LCD初始化
void lcd_init(void)
{
LCD_DATA=0;
WriteCommandLcd(0x38);
dellay(1000);
WriteCommandLcd(0x38); //显示模式设置 WriteCommandLcd(0x08); //关闭显示
Write
CommandLcd(0x01); //显示清屏 WriteCommandLcd(0x06); //显示光标移动设置
WriteCommandLcd(0x0c); //显示开及光标移动设置
}
/****************************************

电子类

**********
** 函数名称: display_xy
** 入口参数:x(unsigned char型),y(unsigned char型)
** 出口参数:无
** 功能描述: 设置光标位置, x是列号,y是行号
****************************************************/void display_xy(unsigned char x,unsigned char y)
{
if(y==1)
x+=0x40;
x+=0x80;
WriteCommandLcd(x);
}
/********************************************************************
** 函数名称: display_char
** 入口参数:x(unsigned char型),y(unsigned char型),dat(unsigned char型)
** 出口参数:无
** 功能描述: 在具体位置显示单个字符,x是列号,y是行号
*********************************************************************/
void display_char(unsigned char x,unsigned char y,unsigned char dat)
{
display_xy(x,y);
WriteDataLcd(dat);
}

/*********************************************************************
** 函数名称: display_string
** 入口参数:x(unsigned char型),y(unsigned char型),s(指针型)
** 出口参数:无
** 功能描述: 在具体位置显示字符串,以/0结束,x是列号,y是行号
**********************************************************************
/
void display_string(unsigned char x,unsigned char y,unsigned char *s)
{
display_xy(x,y);
while(*s)
{
WriteDataLcd(*s);
s++;
}
}



…… 此处隐藏:1339字,全部文档内容请下载后查看。喜欢就下载吧 ……
1602液晶显示C程序.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/fanwen/984074.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)