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

QQ登錄

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

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

51單片機(jī)與PC串口通信 跪求大神指點(diǎn)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:241675 發(fā)表于 2018-2-6 21:26 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
C語(yǔ)言編程:PC將很多數(shù)據(jù)(這些數(shù)據(jù)的內(nèi)存大小 大于51單片機(jī)內(nèi)存,例如一張?zhí)幚砗蟮牟噬珗D片數(shù)據(jù))發(fā)送給單片機(jī),51單片機(jī)再將這些數(shù)據(jù)用P2^0腳(一個(gè)IO口)發(fā)給后續(xù)的電路編程。跪求大神指點(diǎn)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:273292 發(fā)表于 2018-2-7 08:44 | 只看該作者
就是一個(gè)串口發(fā)送和接受的程序唄,只要準(zhǔn)備好數(shù)據(jù)就行啊
回復(fù)

使用道具 舉報(bào)

板凳
ID:241675 發(fā)表于 2018-2-7 18:15 | 只看該作者
xdl932365660 發(fā)表于 2018-2-7 08:44
就是一個(gè)串口發(fā)送和接受的程序唄,只要準(zhǔn)備好數(shù)據(jù)就行啊

數(shù)據(jù)由上位機(jī)處理圖片后的數(shù)據(jù);
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit P2_0=P2^0;
#define TXD P2_0
uchar output;
void UART_Init()  //串口初始化
{
        TMOD=0x22;
        SCON=0x50;
        PCON=0x00;
        TL1=TH1=0xfd;
  TL0=TH0=0xA0;
  TF0=0;       
        EA=1;
        TR1=1;
}

void Rec_data()//接收數(shù)據(jù)
{
        while(!RI);
        RI=0;
        output=SBUF;
}

void waitTF0()
{
        while(!TF0);
        TF0=0;
}

void sent_data()//發(fā)送數(shù)據(jù)
{
        uint j=8;
        TR0=1;
        while(j--)
        {
                TXD=(bit)(output&0x01);
    waitTF0();               
                output=output>>1;
        }
        TR0=0;
}
void main()  
{
        UART_Init();
        while(1)
        {
                Rec_data();
    sent_data();
        }
}

這是我寫(xiě)的,不過(guò)有錯(cuò),串口輸進(jìn)去的數(shù)據(jù)和由P2^0口出來(lái)的數(shù)據(jù)不一樣,而且這樣可能誤碼率很大。
回復(fù)

使用道具 舉報(bào)

地板
ID:282980 發(fā)表于 2018-2-8 01:07 | 只看該作者
串口編程。二進(jìn)制
回復(fù)

使用道具 舉報(bào)

5#
ID:282439 發(fā)表于 2018-2-8 08:20 | 只看該作者
Rec_data()如果與 sent_data()的速度不一致,那就有問(wèn)題了。
回復(fù)

使用道具 舉報(bào)

6#
ID:282743 發(fā)表于 2018-2-8 08:49 | 只看該作者
你單純用定時(shí)來(lái)做IO口傳輸,肯定不行的,接收端都不知道從哪里開(kāi)始是數(shù)據(jù)?梢阅7聅pi接口,加一根片選信號(hào),再加一根線做時(shí)鐘。
回復(fù)

使用道具 舉報(bào)

7#
ID:241675 發(fā)表于 2018-2-8 16:57 | 只看該作者
arthuryu 發(fā)表于 2018-2-8 08:20
Rec_data()如果與 sent_data()的速度不一致,那就有問(wèn)題了。

如果Rec_data()和sent_data()速度配置成一樣,那問(wèn)題來(lái)了,如果我把數(shù)據(jù)全部接收完再一一發(fā)送出去,單片機(jī)內(nèi)存不夠;如果接一個(gè)數(shù)據(jù)立馬就發(fā)送出去,那將會(huì)造成百分之四五十的誤碼率。學(xué)習(xí)編程時(shí)間不長(zhǎng),思想還不夠開(kāi)闊,望您指點(diǎn)一下。
回復(fù)

使用道具 舉報(bào)

8#
ID:241675 發(fā)表于 2018-2-8 17:00 | 只看該作者
Hoperliu 發(fā)表于 2018-2-8 01:07
串口編程。二進(jìn)制

您能不能具體點(diǎn),編程時(shí)間還不長(zhǎng),思路還沒(méi)那么開(kāi)闊。感謝感謝
回復(fù)

使用道具 舉報(bào)

9#
ID:241675 發(fā)表于 2018-2-10 09:40 | 只看該作者
天天漲停 發(fā)表于 2018-2-8 08:49
你單純用定時(shí)來(lái)做IO口傳輸,肯定不行的,接收端都不知道從哪里開(kāi)始是數(shù)據(jù)?梢阅7聅pi接口,加一根片選信 ...

51單片機(jī)信號(hào)輸出后接的使4066BD信號(hào)(調(diào)制用的),該芯片只需要接一根輸入信號(hào),SPI接口需要4根線,其3根都接不上
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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