久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機串口通信問題 發(fā)送數(shù)字 led燈反轉(zhuǎn)程序如何寫?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:425921 發(fā)表于 2019-2-8 22:57 來自手機 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
這是串口通信的問題,發(fā)送一個數(shù)字  0  led燈就會反轉(zhuǎn)。我想一次發(fā)送123456789一共9個數(shù)字才能讓led反轉(zhuǎn)要怎么寫?

IMG_20190208_223152.jpg (653.33 KB, 下載次數(shù): 49)

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

使用道具 舉報

沙發(fā)
ID:432823 發(fā)表于 2019-2-9 08:15 | 只看該作者
接收9個字符,用字符連接函數(shù)將其連接后作判斷。
回復(fù)

使用道具 舉報

板凳
ID:213173 發(fā)表于 2019-2-9 09:12 | 只看該作者
樓主這是自定義通訊協(xié)議問題。首先要把收到的字符按序分別保存在緩存中,1幀字符接收完畢后產(chǎn)生一個結(jié)束標(biāo)志。然后對緩存中保存的字符解析判斷,正確:執(zhí)行相應(yīng)任務(wù)。錯誤:清除緩存,重新等待接收。1幀數(shù)據(jù)通常由數(shù)據(jù)頭、有效數(shù)據(jù)、驗證碼、數(shù)據(jù)尾等組成。其目的是為了保證傳輸信號的準(zhǔn)確性。
回復(fù)

使用道具 舉報

地板
ID:164602 發(fā)表于 2019-2-9 14:38 | 只看該作者
我做了一個程序,滿足123456789的數(shù)字,控制LED燈開關(guān)。
/*
長數(shù)字控制控制
*/
#include<reg51.h>

sbit LED0=P2^0;

unsigned char i=0,k;
//unsigned char DD[5];

void UsartConfiguration();
void Delay10ms(unsigned int c);

void main()
{
        UsartConfiguration();
        Delay10ms(10);
        while(1)
        {
        }
}

void UsartConfiguration()//9600bps@11.0592MHz
{
        SCON=0X50;
        TMOD=0X20;
        PCON=0X80;
        TH1=0XFa;
        TL1=0XFa;
        TR1=1;
        ET1=0;
        ES=1;
        EA=1;
}

void Delay10ms(unsigned int c)
{
    unsigned char a, b;
    for (;c>0;c--)
        {
                for (b=38;b>0;b--)
                {
                        for (a=130;a>0;a--);
                }         
        }      
}

void CKTX() interrupt 4
{
        RI=0;
        k=SBUF;
        if (k==0x12)
        {
                if (i==0)
                {
                        i++;
                }
                else
                {
                        i=0;
                }
        }
        if (k==0x34)
        {
                if (i==1)
                {
                        i++;
                }
                else
                {
                        i=0;
                }
        }
        if (k==0x56)
        {
                if (i==2)
                {
                        i++;
                }
                else
                {
                        i=0;
                }
        }
        if (k==0x78)
        {
                if (i==3)
                {
                        i++;
                }
                else
                {
                        i=0;
                }
        }
        if (k==0x09)
        {
                if (i==4)
                {
                        i++;
                }
                else
                {
                        i=0;
                }
        }
        if (i==5)
        {
                LED0=~LED0;
                i=0;
        }
}
回復(fù)

使用道具 舉報

5#
ID:164602 發(fā)表于 2019-2-9 14:55 | 只看該作者
如果你是用字符串進行控制,我也是有程序的。
/*
長字符串控制
*/
#include<reg51.h>

sbit LED0=P2^0;

unsigned char i=0,k;
unsigned char DD[11];

void UsartConfiguration();
void Delay10ms(unsigned int c);

void main()
{
        UsartConfiguration();
        Delay10ms(10);
        while(1)
        {
        }
}

void UsartConfiguration()//設(shè)置串口12M\4800
{
        SCON=0X50;
        TMOD=0X20;
        PCON=0X80;
        TH1=0XF3;
        TL1=0XF3;
        TR1=1;
        ES=1;
        EA=1;
}

void Delay10ms(unsigned int c)
{
    unsigned char a, b;
    for (;c>0;c--)
        {
                for (b=38;b>0;b--)
                {
                        for (a=130;a>0;a--);
                }         
        }      
}

void CKTX() interrupt 4
{
        RI=0;
        k=SBUF;
        if (k!='\n')
        {
                DD[i]=k;
                i++;
                if (i>11)
                {
                        i=0;
                }
        }
        else
        {
                DD[i]=k;
                i=0;
                if ((DD[0]=='1')&&(DD[1]=='2')&&(DD[2]=='3')&&(DD[3]=='4')&&(DD[4]=='5')&&(DD[5]=='6')&&(DD[6]=='7')&&(DD[7]=='8')&&(DD[8]=='9')&&(DD[9]==0x0d)&&(DD[10]==0x0a))
                {
                        LED0=~LED0;
                }
        }
}
程序要求,字符串必須以回車結(jié)束,字符串長度最大九位
回復(fù)

使用道具 舉報

6#
ID:475444 發(fā)表于 2019-2-10 11:02 | 只看該作者
wulin 發(fā)表于 2019-2-9 09:12
樓主這是自定義通訊協(xié)議問題。首先要把收到的字符按序分別保存在緩存中,1幀字符接收完畢后產(chǎn)生一個結(jié)束標(biāo) ...

這個建議很好,樓主再調(diào)調(diào)

評分

參與人數(shù) 3黑幣 +78 收起 理由
春風(fēng)十里吹 + 8
shuisheng60 + 35
shuisheng + 35

查看全部評分

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产亚洲人成a在线v网站 | 日一日操一操 | 毛片免费在线观看 | 欧美xxxx在线 | 国产伦精品一区二区 | 久久一区| 中文精品视频 | 日本欧美在线观看视频 | 亚洲精品国产电影 | 777777777亚洲妇女 | 国产精品久久av | 国产91久久久久蜜臀青青天草二 | 日韩久久久久久久久久久 | 亚洲精视频 | 久久久成人免费视频 | 天天干天天爱天天爽 | 日韩免费视频一区二区 | 欧美一区二区三区大片 | 精品视频一区二区在线观看 | 亚洲精品乱码久久久久久蜜桃91 | 中文字字幕一区二区三区四区五区 | 国产成人av一区二区三区 | 久久久久久久国产 | 久久久国产精品 | 国产精品一区二区三区久久久 | 欧美国产免费 | 亚洲视频中文字幕 | 天天综合久久 | 欧美亚洲网站 | 久久久久国产精品一区三寸 | 九九热精品视频 | 一级做a爰片性色毛片16 | 亚洲欧美综合网 | 91免费看片神器 | 午夜小视频在线播放 | 国产精品久久一区 | 91电影在线播放 | 性生生活大片免费看视频 | 三级av网址 | 激情视频网站 | 黄色片免费在线观看 |