1602程序

时间:2024-10-14 21:50:37编辑:莆田seo君

基于51单片机的1602显示程序。

#include
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="Eaz0";
uchar code table1[]="abc asdfg qwe";
sbit lcden=P3^4;
sbit lcdrs=P3^5;
void delay(uint z);
void write_com(uchar com);
void write_data(uchar date);
void init();
uchar num;

int main()
{
init();
while(1)
{
write_com(0x80);
for(num=0;num<4;num++)
{
write_data(table[num]);
delay(5);
}

write_com(0x80+0x40);
for(num=0;num<13;num++)
{
write_data(table1[num]);
delay(5);
}
}

}
void init()
{
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void write_com(uchar com)
{
lcdrs=0;
P2=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}

void write_data(uchar date)
{
lcdrs=1;
P2=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}


单片机 1602 液晶屏 检测是否忙对的c程序,看不懂,望详解

void busy_test()//检测lcd是否忙{ u8 st; //忙状态标志 0:不忙,0x80:忙 if(f_init==0) //如果某个东西没有初始化 { return; // 退出忙判断,不执行下面的代码 } lcd=0xff; // 先往数据端口赋高电平,便于读数据 rs=0; // 读忙设置 rw=1;//读 do { e=1; // 数据端口读写使能 st=lcd; // 读数据端口的值 e=0; // 禁止数据端口读写 } while(st&0x80); // 如果忙位BF为1,就一直读端口数据,直到为0才退出忙判断。 // BF:忙标志位,为数据端口的BIT7位。所以为0x80}


51单片机液晶1602的C程序谁有,给个简单的显示一个字符A的

#include "reg52.h"

sbit LED=P1^0;//LED锁存器
sbit SEG=P1^1;//数码管段选锁存器
sbit DIG=P1^2;//数码管位选锁存器
unsigned char t;

sbit LCDRS=P2^7;//数据指令控制
sbit LCDRW=P2^6;//读写控制
sbit LCDEN=P2^5;//液晶屏使能控制

//**********延时函数,延时n*1ms*********
void delay(unsigned char n)
{
int i,j;
for (i=0; i<n; i++)
for (j=0; j<100; j++)
;
}

//*************写命令***************
void Write_Cmd(unsigned char C)
{
LCDEN=1;//使能端,由高电平跳变成低电平时,液晶屏模块执行命令
LCDRS=0;//指令寄存器选择
P0=C;
delay(5);
LCDEN=0;
}

//**************写数据**************
void Write_Data(unsigned char D)
{
LCDEN=1;//使能端,由高电平跳变成低电平时,液晶屏模块执行命令
LCDRS=1;//选择数据寄存器
P0=D;
delay(5);
LCDEN=0;
}

//**********LCD初始化*****************
void LCD_Init()
{
LCDRS=0;//指令寄存器选择
Write_Cmd(0x01);//清屏
Write_Cmd(0x38);//功能设置8位双行显示5*7点阵
Write_Cmd(0x0F);//开关显示设置
Write_Cmd(0x06);//输入方式设置,光标从左向右移动,内容不移动
}

void main()
{
unsigned char Code1[]="I LOVE MCU!";
unsigned char m;

//LED,数码管锁存器片选设置
LED=0;
DUAN=0;
WEI=0;

LCDRW=0;//写选择

LCD_Init();

Write_Cmd(0x80+0x01);//写入显示缓冲区起始地址为1行2列

for(m=0;m<11;m++)
{
Write_Data(Code1[m]);
delay(3);
}

while (1)
;
}//end of main


上一篇:雅礼中学招生

下一篇:没有了