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

QQ登錄

只需一步,快速開始

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

單片機(jī)串口實(shí)驗(yàn)不能發(fā)送單獨(dú)字符

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
串口發(fā)送完固定字符后,按下鍵碼不能發(fā)送指定字符protues仿真結(jié)果如下  
p1為未按下鍵碼仿真結(jié)果
p2為按下鍵碼后結(jié)果 (s2,s3按下情況相同)




#include<reg51.h>
#include"Delay.h"

unsigned char scan()
{

        if((P3&0x0C)!=0x0C)
        {Delay(10);
        if((P3&0x0C)!=0x0C)
                {return(P3&0x0C);
                }
        }
        return 0xFF;
}



void sendbyte(unsigned char byte)
{
                SBUF=byte;
        while(!TI);

        TI=0;
}

void sendstr(unsigned char *str)
{
while(*str!='\0')
        {
        sendbyte(*str);
                *str++;
        }
}





void time_adjust()
{
        static bit kp=0;
        unsigned char s_code=scan();//S——scan鍵盤掃描
        if((s_code!=0xFF)&&(kp==0))//none=0xFF
        {
        kp=1;
switch(s_code)
        {
                case 0x08:
                {sendy("222\r\n");
                        break;
                }
                case 0x04:
                {
                        sendy("111\r\n");
                        break;
                }
                        default:break;

                }
        }

else if((kp==1)&&(s_code==0xFF))
{
kp=0;
        }
        
}









void main()
{
SCON=0x50;//串口方式1,RX/TX
ES=1;EA=1;//使能
TMOD=TMOD|0x20;//方式2定時(shí)
        TL1=0xFD;TH1=0xFD;//9600bps初值@110952Mhz
        TR1=1;
        sendstr("2021040140238\r\n");
        sendstr("0\r\n");
                while(1)
                {
                time_adjust();
                }
        
        
}
void isr_uart()interrupt 4
{
if(RI==1)
        {
                P1=SBUF;
                RI=0;
        }
}
        

51hei圖片20230608152034.jpg (6.85 MB, 下載次數(shù): 36)

51hei圖片20230608152034.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1082778 發(fā)表于 2023-6-8 18:08 來(lái)自觸屏版 | 只看該作者
各位大佬幫忙瞅一下 ,小白測(cè)試半天沒能解決問題
回復(fù)

使用道具 舉報(bào)

板凳
ID:161164 發(fā)表于 2023-6-8 23:17 | 只看該作者
  1. switch(s_code)
  2. {
  3.         case 0x08:
  4.         {
  5.                 sendstr("222\r\n");
  6.                 break;
  7.         }
  8.         case 0x04:
  9.         {
  10.                 sendstr("111\r\n");
  11.                 break;
  12.         }
  13.         default:
  14.                 break;
  15.         }
  16. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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