找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1926|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)LCD1602不能完全顯示COM接收的字符,請(qǐng)幫忙指導(dǎo)下程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
ID:495034 發(fā)表于 2022-4-12 13:59 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
50黑幣
自已是小白,抄的網(wǎng)上的,用51單片機(jī)接收電腦COM口傳過(guò)來(lái)的這字符,然后顯示在LCD1602上
現(xiàn)在LCD1602只顯示了前8個(gè)字符,求大神指點(diǎn),謝謝!
#include<reg52.h>
int write_com(unsigned char);
int write_date(unsigned char);
  int x;
  char kx2[34]="                                  ";
  unsigned char code kx[]="7777";

sbit RS = P2^7;
sbit RW = P2^6;
sbit EN = P2^5;           

        
          void delay (unsigned int xms)
{
        unsigned int i,j;
        for(i=xms;i>0;i--)
         for(j=110;j>0;j--);
}

int init()
{
    EN = 0;
    write_com(0X38);
    write_com(0X0C);
    write_com(0X06);
    write_com(0X01);
    return 0;
}

int write_com(unsigned char com)
{
    RS = 0;
    RW = 0;
    P0 = com;
    delay(5);
    EN = 1;
    delay(5);
    EN = 0;
    return 0;        
}

int write_date(unsigned char date)
{
    RS = 1;
    RW = 0;
    P0 = date;
    delay(5);
    EN = 1;
    delay(5);
    EN = 0;
    return 0;        
}

void send(unsigned char *dis)
{

        while(*dis!='\0') {
        SBUF=*dis;
        dis++;  
        while(!TI);
        TI=0;
    }
}

void serial_init()
{
        TMOD=0x20;
//                SCON=0x50;
//        PCON=0X80;
    TH1=0xfd;  
    TL1=0xfd;
    TR1=1;
    SM0=0;
    SM1=1;
    ES=1;
    REN=1
    EA=1;
        RI=1;
}



void serial_INT() interrupt 4
{
int i,k;  

if(RI)
{
ES=0;
RI=0;
kx2[i++]=SBUF;

}
if(SBUF=='\r')
{
for(k=i;k<34;k++)
            kx2[k-1]=' ' ;
i=0;
}

ES=1;

}
void main()
{
init();
serial_init();
while(1)
{
write_com(0x80);
for(x=0;x<17;x++)
    {
         write_date(kx2[x+1]);
    }
write_com(0xC0);
  for(x=17;x<34;x++)
    {
         write_date(kx2[x]);
    }

   }
  }

最佳答案

查看完整內(nèi)容

if(SBUF=='\r') { for(k=i;k
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

板凳
ID:121859 發(fā)表于 2022-4-12 18:43 | 只看該作者
1602每行最多只能顯示16個(gè)字符,你這個(gè)循環(huán)里面到17個(gè)了。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:404160 發(fā)表于 2022-4-12 17:26 | 只看該作者
把上面的‘’改成‘\0'試試

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

樓主
ID:404160 發(fā)表于 2022-4-12 13:59 | 只看該作者
if(SBUF=='\r') { for(k=i;k<34;k++)             kx2[k-1]='\0 ' ; i=0; }

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表