欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2182|回復: 3
收起左側

51單片機LCD1602不能完全顯示COM接收的字符,請幫忙指導下程序

[復制鏈接]
ID:495034 發表于 2022-4-12 13:59 | 顯示全部樓層 |閱讀模式
50黑幣
自已是小白,抄的網上的,用51單片機接收電腦COM口傳過來的這字符,然后顯示在LCD1602上
現在LCD1602只顯示了前8個字符,求大神指點,謝謝!
#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]);
    }

   }
  }

最佳答案

查看完整內容

if(SBUF=='\r') { for(k=i;k
回復

使用道具 舉報

ID:404160 發表于 2022-4-12 13:59 | 顯示全部樓層
if(SBUF=='\r') { for(k=i;k<34;k++)             kx2[k-1]='\0 ' ; i=0; }

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:404160 發表于 2022-4-12 17:26 | 顯示全部樓層
把上面的‘’改成‘\0'試試

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:121859 發表于 2022-4-12 18:43 | 顯示全部樓層
1602每行最多只能顯示16個字符,你這個循環里面到17個了。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表