free性丰满hd毛多多,久久综合给合久久狠狠狠97色69 ,欧美成人乱码一区二区三区,国产美女久久久亚洲综合,7777久久亚洲中文字幕

0
問答首頁 最新問題 熱門問題 等待回答標(biāo)簽廣場
我要提問

單片機(jī)

單片機(jī)雙機(jī)通信為何從機(jī)接收不到數(shù)據(jù)

/********主機(jī)發(fā)送********/

#include"reg52.h"

#define uchar unsigned char

#define uint unsigned int

uchar datt;

sbit LED=P1^0;

/**********************/

void delay_ms(uint z)

{

        uint x,y;

        for(x=0;x        for(y=0;y<110;y++);

}

/**********************/

void UartInit(void)                //9600bps@11.0592MHz

{

        PCON &= 0x7F;                //波特率不倍速                                                           SMOD=0 波特率不加倍

        SCON = 0x50;                //8位數(shù)據(jù),可變波特率                                           SM0=0 SM1=1 SM2=0 REN=1 TB8=0 RB8=0 TI=0 RI=0

        TMOD |= 0x20;                //設(shè)定定時(shí)器1為8位自動(dòng)重裝方式

        TL1 = 0xFD;                //設(shè)定定時(shí)初值

        TH1 = 0xFD;                //設(shè)定定時(shí)器重裝值

        ET1 = 0;                //禁止定時(shí)器1中斷

        TR1 = 1;                //啟動(dòng)定時(shí)器1

}

/*********************/

void main()

{

        UartInit();

        EA=1;

        ES=1;

        while(1)

        {

                SBUF=0X55;

                while(!TI);

                TI=0;

                delay_ms(100);

        }

}

/************************************************/

/********從機(jī)接收********/

#include"reg52.h"

#define uchar unsigned char

#define uint unsigned int

uchar datt;

sbit LED=P1^0;

/**********************/

void delay_ms(uint z)

{

        uint x,y;

        for(x=0;x        for(y=0;y<110;y++);

}

/**********************/

void UartInit(void)                //9600bps@11.0592MHz

{

        PCON &= 0x7F;                //波特率不倍速                                                           SMOD=0 波特率不加倍

        SCON = 0x50;                //8位數(shù)據(jù),可變波特率                                           SM0=0 SM1=1 SM2=0 REN=1 TB8=0 RB8=0 TI=0 RI=0

        TMOD |= 0x20;                //設(shè)定定時(shí)器1為8位自動(dòng)重裝方式

        TL1 = 0xFD;                //設(shè)定定時(shí)初值

        TH1 = 0xFD;                //設(shè)定定時(shí)器重裝值

        ET1 = 0;                //禁止定時(shí)器1中斷

        TR1 = 1;                //啟動(dòng)定時(shí)器1

}

/*********************/

void main()

{

        UartInit();

        EA=1;

        ES=1;

        while(1)

        {

                while(!RI);

                RI=0;

                LED=~LED;

                P0=SBUF;

                delay_ms(100);

        }

}

LED端無波形輸出,故認(rèn)為是從機(jī)沒能接收到信號??险堉更c(diǎn)一二。。。

提問者:mvuywerw 地點(diǎn):- 瀏覽次數(shù):1437 提問時(shí)間:10-22 17:31
我有更好的答案
提 交
4條回答
lxmlau 01-17 03:48
先用示波器看看主機(jī)是否發(fā)出了數(shù)據(jù),數(shù)據(jù)波形是否正常。
若正常,查看芯片文檔,看看外設(shè)配置對不對,尤其要注意管教是否要配置。
5616asaqwq 01-12 14:15
/********A機(jī)代碼********/
#include"reg52.h"
#define uchar unsigned char
#define uint unsigned int
uchar a;
/**********************/
void delay_ms(uint z)
{
? ? ? ? uint x,y;
? ? ? ? for(x=0;x? ? ? ? for(y=0;y<110;y++);
}
/**********************/
void UartInit(void)? ? ? ? ? ? ? ? //9600bps@11.0592MHz
{
? ? ? ? PCON &= 0x7F;? ? ? ? ? ? ? ? //波特率不倍速? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? SMOD=0 波特率不加倍
? ? ? ? SCON = 0x50;? ? ? ? ? ? ? ? //8位數(shù)據(jù),可變波特率? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? SM0=0 SM1=1 SM2=0 REN=1 TB8=0 RB8=0 TI=0 RI=0
? ? ? ? TMOD |= 0x20;? ? ? ? ? ? ? ? //設(shè)定定時(shí)器1為8位自動(dòng)重裝方式
? ? ? ? TL1 = 0xFD;? ? ? ? ? ? ? ? //設(shè)定定時(shí)初值
? ? ? ? TH1 = 0xFD;? ? ? ? ? ? ? ? //設(shè)定定時(shí)器重裝值
? ? ? ? ET1 = 0;? ? ? ? ? ? ? ? //禁止定時(shí)器1中斷
? ? ? ? TR1 = 1;? ? ? ? ? ? ? ? //啟動(dòng)定時(shí)器1
}
/*********************/
void main()
{
? ? ? ? UartInit();
? ? ? ? EA=1;
? ? ? ? ES=1;
? ? ? ? while(1)
? ? ? ? {
? ? ? ? ? ? ? ? SBUF=0Xf0;
? ? ? ? ? ? ? ? while(!TI);
? ? ? ? ? ? ? ? TI=0;
? ? ? ? ? ? ? ? delay_ms(100);? ? ? ? ? ? ? ???
? ? ? ? ? ? ? ? while(!RI);
? ? ? ? ? ? ? ? RI=0;
? ? ? ? ? ? ? ? a=SBUF;
? ? ? ? ? ? ? ? P0=a;? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? delay_ms(100);? ? ? ?? ?
? ? ? ? }
}

/********B機(jī)代碼********/
#include"reg52.h"
#define uchar unsigned char
#define uint unsigned int
uchar datt;
uchar a;
sbit LED=P1^0;
/**********************/
void delay_ms(uint z)
{
? ? ? ? uint x,y;
? ? ? ? for(x=0;x? ? ? ? for(y=0;y<110;y++);
}
/**********************/
void UartInit(void)? ? ? ? ? ? ? ? //9600bps@11.0592MHz
{
? ? ? ? PCON &= 0x7F;? ? ? ? ? ? ? ? //波特率不倍速? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? SMOD=0 波特率不加倍
? ? ? ? SCON = 0x50;? ? ? ? ? ? ? ? //8位數(shù)據(jù),可變波特率? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? SM0=0 SM1=1 SM2=0 REN=1 TB8=0 RB8=0 TI=0 RI=0
? ? ? ? TMOD |= 0x20;? ? ? ? ? ? ? ? //設(shè)定定時(shí)器1為8位自動(dòng)重裝方式
? ? ? ? TL1 = 0xFD;? ? ? ? ? ? ? ? //設(shè)定定時(shí)初值
? ? ? ? TH1 = 0xFD;? ? ? ? ? ? ? ? //設(shè)定定時(shí)器重裝值
? ? ? ? ET1 = 0;? ? ? ? ? ? ? ? //禁止定時(shí)器1中斷
? ? ? ? TR1 = 1;? ? ? ? ? ? ? ? //啟動(dòng)定時(shí)器1
}
/*********************/
void main()
{
? ? ? ? UartInit();
? ? ? ? EA=1;
? ? ? ? ES=1;
? ? ? ? while(1)
? ? ? ? {
? ? ? ? ? ? ? ? while(!RI);
? ? ? ? ? ? ? ? RI=0;
? ? ? ? ? ? ? ? a=SBUF;
? ? ? ? ? ? ? ? P0=a;
? ? ? ? ? ? ? ? delay_ms(100);? ? ? ?? ?
? ? ? ? ? ? ? ? SBUF=0X55;
? ? ? ? ? ? ? ? while(!TI);
? ? ? ? ? ? ? ? TI=0;? ? ? ?? ?
? ? ? ? ? ? ? ? delay_ms(100);
? ? ? ? }
}
不知道為何B機(jī)在接收A機(jī)傳來的數(shù)據(jù)后不能正常的發(fā)送自己的數(shù)據(jù)!
BEONEWENHUI 01-12 06:15
不知道你是通過什么現(xiàn)象判斷出你最后的結(jié)論的。
不過可以給你一些調(diào)試的思路。
根據(jù)你的說法,是B機(jī)給A機(jī)發(fā)送數(shù)據(jù)時(shí)出了問題。不過到底是B發(fā)送出了問題還是A接收出了問題呢?可以在while語句后面點(diǎn)亮個(gè)LED或者之類的操作。另外,也可以讓A機(jī)或者B機(jī)單獨(dú)和串口通信助手通信看看。
ickey_feng 01-17 22:59
應(yīng)該是發(fā)生了沖突,用串口中斷應(yīng)該就沒有問題了,或者在程序里面加上標(biāo)示符,以區(qū)分接收與發(fā)送。
撰寫答案
提 交
1 / 3
1 / 3
相關(guān)單片機(jī)
具有音調(diào)控制的單片機(jī)立體聲前置放大器
用于單片機(jī)與電子裝置中的開關(guān)電源
單片機(jī)軟硬件復(fù)位的條件都有啥
電動(dòng)機(jī)的單片機(jī)控制
單片機(jī)應(yīng)用系統(tǒng)開發(fā)實(shí)例導(dǎo)航