找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3696|回復(fù): 4
收起左側(cè)

串口通信方式0 想要從P3^0讀出數(shù)據(jù),但是讀錯了

[復(fù)制鏈接]
ID:51960 發(fā)表于 2013-9-5 20:33 | 顯示全部樓層 |閱讀模式
#include<reg51.h>
sbit P30=P3^0;
sbit P31=P3^1;
#define uchar unsigned char
#define uint unsigned int
uchar Data;
uint num;
void delay(uint n)
{
        uint i,j;
        for(i=0;i<n;i++)
                for(j=0;j<110;j++);
}
void serial_init()        //串口初始化函數(shù)
{
        SM0=0;         //方式0 同步移位寄存器
        SM1=0;
        ES=1;
        EA=1;
        TI=0;
}
void main()
{
        uchar i;
        serial_init();
        SBUF=0xaa;
        for(i=0;i<8;i++)
        {       
                Data=Data<<1;
                Data=Data|P30;                                               
        }
        while(1);
}
void ser()interrupt 4  //串口中斷函數(shù)
{
        TI=0;
        P1=Data;
}
P1一直為0,就是我不知道怎樣控制每次讀數(shù)據(jù)正好是P3^0發(fā)送數(shù)據(jù),說什么要同步通信,但是我這個(gè)只有一單片機(jī)啊,怎么同步,知道的指點(diǎn)一下吧,謝謝了!

回復(fù)

使用道具 舉報(bào)

ID:54252 發(fā)表于 2013-9-5 21:35 | 顯示全部樓層
我也是初學(xué),不過我沒搞懂你這是想干啥,從別人的書里拷貝了一段,希望對你有幫助。
串行口方式0被稱為同步移位寄存器的輸入/輸出方式,主要是擴(kuò)展并行輸入或輸出口。數(shù)據(jù)有RXD(P3.0)引腳輸入或輸出,同步移位脈沖由TXD(P3.1)引腳輸出。發(fā)送和接收均為8位數(shù)據(jù),低位在先,高位在后,波特率固定為fosc/12。在該模式下,串行口的SBUF是作為同步移位寄存器使用的。在串行口發(fā)送時(shí),SBUF相當(dāng)于一個(gè)并行進(jìn)入、串行輸出的移位寄存器,由單片機(jī)內(nèi)部總線并行接收8位數(shù)據(jù),并從RXD信號線串行輸出。在接收操作時(shí),它又相當(dāng)與一個(gè)串行輸入、并行輸出的移位寄存器。

我感覺,你的主程序里,while(1)那有問題,到while1那程序就停了。你應(yīng)該把發(fā)送的數(shù)據(jù)放到while(1)里,讓他循環(huán)執(zhí)行發(fā)送。再其他的,我也不知道了。
回復(fù)

使用道具 舉報(bào)

ID:51960 發(fā)表于 2013-9-6 14:56 | 顯示全部樓層
我也看了這句話,但是我事先已經(jīng)將他存儲在了Data里了
回復(fù)

使用道具 舉報(bào)

ID:51960 發(fā)表于 2013-9-6 14:58 | 顯示全部樓層
我的意思是,我怎樣控制P3^0每送出一位數(shù)據(jù),Data正好移位:
回復(fù)

使用道具 舉報(bào)

ID:7485 發(fā)表于 2013-9-9 17:58 | 顯示全部樓層
你把數(shù)據(jù)裝入SBUF,單片機(jī)就會自動發(fā)送出去,你就查詢、等待TI置位就可以發(fā)送下一字節(jié)了。

這是發(fā)送4個(gè)字節(jié)的程序,你看看。
             for(i=0;i<4;i++)
                   {SBUF=SenData[i];
                    while(!TI);        //等待發(fā)送結(jié)束
                    TI=0;              //軟件清發(fā)送中斷標(biāo)志位
                   }
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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