您的位置 首页 电路

LCD1602显现程序

/*********端口定义,可以修改*****************/sbitledrs=P2^3;//读写控制字sbitleden=P2^5;//使能端控制字sbitledrw=P2^4;voi

/*********端口界说,能够修正*****************/

sbit ledrs=P2^3;//读写操控字
sbit leden=P2^5;//使能端操控字
sbit ledrw=P2^4;
void write_com(uchar com)
{
ledrw=0;
ledrs=0;
P0=com;
delayl(1);
leden=1;
delayl(1);
leden=0;
}
void write_data(uchar date)
{
ledrw=0;
ledrs=1;
P0=date;
delayl(1);
leden=1;
delayl(1);
leden=0;
}
void LCD_init()
{
leden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void setPosition(uchar x,uchar y)
{
uchar pos;
switch(x%2)
{
case 1:pos=0x80+y;break; //榜首行
case 0:pos=0xc0+y;break; //第二行
}
write_com(pos);
}
void printc(uchar a)
{
write_data(a);
}

void prints(uchar * str)
{ uchar i = 0;
while(str[i] != \0)
{
write_data(str[i++]);
}
}
uchar buffer[5];
void IntToStr(uint t, uchar *str,uchar n)
{
uchar a[5]; char i, j; //获得整数值到数组
a[0]=t/100; //百位
a[1]=(t/10)%10;//十位
a[2]=t%10; //个位

for(i=0; i<3; i++) //转成ASCII码
a[i]=a[i]+0;
for(i=0; a[i]==0 && i<=1; i++);
for(j=3-n; j{ *str= ; str++; }
for(; i<3; i++)
{ *str=a[i]; str++; } //参加有用的数字
*str=\0;
}
void inttostrr(uint t,uchar *str)
{
uchar a[6],i;
a[0]=t/100+0; //百位
a[1]=(t/10)%10+0;//十位
a[2]=.;//十位
a[3]=t%10+0; //个位
for(i=0; i<4; i++)
{ *str=a[i]; str++; } //参加有用的数字
*str=\0;
}

#define uint unsigned int
#define uchar unsigned char

void delayl(uint n)//长延时n毫秒
{
uint i,j;
for(i=n;i>0;i–)
for(j=114;j>0;j–);
}

void delays(uchar i)//短延时
{
while(i–);
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/266910.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部