单片机交流
直播中

骨灰级发烧友

13年用户 673经验值
私信 关注
[问答]

STC_1602是如何显示自己的名字与学号的?

STC_1602是如何显示自己的名字与学号的?其代码程序是怎样的?

回帖(1)

石径

2021-7-6 11:30:59
#include
#include

#define uchar unsigned char
#define uint unsigned int
#define LcdBus P0
***it LED1602_RS=P1^0; //LCD端口定义
***it LED1602_RW=P1^1 ;
***it LED1602_EN=P1^2 ;

void LcdIni(void);
void WrOp(uchar dat);
void WrDat(uchar dat);
void ChkBusy(void);
void print_LCD(uchar disp[],uchar num);
//延时n ms子程序
void delayms(unsigned int n)
{
unsigned int i,j;
for(i=0;i
for(j=0;j<120;j++);
}

main()
{
uchar disp1[16]={'c','h','e','n',};
uchar disp2[16]={'2','0','1','9''};
while(1)
{

LcdIni();
WrOp(0x80); //数据指针地址第一行
print_LCD(disp1,11);
WrOp(0xc0); //第二行
print_LCD(disp2,10);
delayms(3000);
WrOp(0x01);

}

}

void print_LCD(uchar disp[],uchar num) //显示数组disp 显示长度为num
{
uchar i;
for(i=0;i
{
WrDat(disp);
delayms(300);
}
}
void LcdIni()
{

WrOp(0x38);
WrOp(0x06); //光标加1
WrOp(0x0f); //开显示 光标闪烁
// WrOp(0x0c); //开显示 光标不闪烁
}

void WrOp(uchar dat)
{
//uchar i;
ChkBusy();
LED1602_RS=0; //RS=0
LED1602_RW=0; //RW=0
LED1602_EN=0; //EN=0
LcdBus=dat; //送数据
LED1602_EN=1; //EN=1
delayms(10); //延时
LED1602_EN=0; //EN=0
}

void WrDat(uchar dat)
{
//uchar i;
ChkBusy();
LED1602_RS=1; //rs=1
LED1602_RW=0; //rw=0
LED1602_EN=0; //en=0
LcdBus=dat; //送数据
LED1602_EN=1; //en=1
delayms(10);; //延时
LED1602_EN=0; //en=0
}

void ChkBusy()
{

LED1602_RS=0; //RS=0
LED1602_RW=1; //RW=1
LED1602_EN=1; //EN=1
while(LcdBus&0x80); //送数据
LED1602_EN=0; //en=0

}
举报

更多回帖

×
20
完善资料,
赚取积分