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

QQ登錄

只需一步,快速開始

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

一個(gè)串口程序,想讓兩個(gè)單片機(jī)相互通訊、控制,哪位大神可以幫我看看哪里出錯(cuò)了

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:228280 發(fā)表于 2017-11-14 19:15 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit k1=P3^4;
sbit k2=P3^5;
sbit k3=P3^6;
sbit k4=P3^7;

uchar key;
uchar code table[]={0x00,0x06,0x5b,0x4f,0x66};

void display(uchar num)
{
        P0=table[num];
        dula=1;
        dula=0;
}

void send(uchar dat)
{
        SBUF=dat;
        while(!TI);
        TI=0;
}

uchar receive(void)      
{
        uchar dat;
       
        while(RI==0);                  
        RI=0;                          
        dat=SBUF;                     
        return dat;                    
}

void keyscan()
{
        if(k1==0)
                key=1;
        if(k2==0)
                key=2;
        if(k3==0)
                key=3;
        if(k4==0)
                key=4;
                send(key);
}

void main(void)
{
        TMOD=0x20;                    
        SCON=0x50;                     
        PCON=0x00;                    
        TH1=0xf4;                     
        TL1=0xf4;
        TR1=1;                        
        REN=1;                        
        P0=0xfe;
        wela=1;
        wela=0;
        P0=0;
        dula=1;
        dula=0;
        while(1)
        {
                display(receive());
                keyscan();
        }
}

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

使用道具 舉報(bào)

沙發(fā)
ID:164602 發(fā)表于 2017-11-15 08:35 | 只看該作者
看到你只有一個(gè)程序,是不是就是說:你的兩臺(tái)單片機(jī)都是同樣的程序?
如果是,那么程序是有問題的:
就是display()函數(shù),它要調(diào)用receive()函數(shù)傳遞數(shù)據(jù),但只要運(yùn)行到這個(gè)函數(shù),單片機(jī)就死在這里了,因?yàn)椴粫?huì)有機(jī)會(huì)去執(zhí)行keyscan()函數(shù),就不會(huì)有發(fā)送,沒有發(fā)送,就沒有接收,所以,RI永遠(yuǎn)為零,程序就死這里了。
回復(fù)

使用道具 舉報(bào)

板凳
ID:228280 發(fā)表于 2017-12-9 20:17 | 只看該作者
HC6800-ES-V2.0 發(fā)表于 2017-11-15 08:35
看到你只有一個(gè)程序,是不是就是說:你的兩臺(tái)單片機(jī)都是同樣的程序?
如果是,那么程序是有問題的:
就是 ...

嗯嗯,謝謝你,
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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