找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求教串口模塊

[復(fù)制鏈接]
ID:79921 發(fā)表于 2015-5-13 23:45 | 顯示全部樓層 |閱讀模式
我想用51的串口通訊,例程上給的是用的串口中斷,我沒有用中斷,想直接提取串口寄存器里的數(shù)據(jù),但是程序一寫進(jìn)去,單片機(jī)就飛了~~,想問問大家這樣的編程想法能實現(xiàn)嗎?
回復(fù)

使用道具 舉報

ID:79921 發(fā)表于 2015-5-13 23:52 | 顯示全部樓層
請大家?guī)蛶兔�,謝謝啦
回復(fù)

使用道具 舉報

ID:1 發(fā)表于 2015-5-14 00:34 | 顯示全部樓層
把你的程序發(fā)上來看一下
回復(fù)

使用道具 舉報

ID:79921 發(fā)表于 2015-5-14 00:54 | 顯示全部樓層
admin 發(fā)表于 2015-5-14 00:34
把你的程序發(fā)上來看一下

#include<reg52.h>
#include"bstv51.h"
void UartConfiguration();

void main()
{
        uchar date=1;
    bstv51_init();
        UartConfiguration();

        while(1)
        {         
                if(RI)
                {       
                        RI=0;
                        date=SBUF;        //取出接受到的數(shù)據(jù)
                        RI=0;                          //清除接受中斷標(biāo)志位
                        SBUF=0x7b;          //接收到的數(shù)據(jù)放入發(fā)送緩存器發(fā)送
                        while(!TI);        //等待發(fā)送數(shù)據(jù)完成
                        TI=0;                                //清除發(fā)送完成標(biāo)志位
                }
        }

}

void UartConfiguration()
{
    TMOD=0x20;      //設(shè)置計數(shù)器1的工作方式2
        TH1=0xfd;                        //設(shè)置計數(shù)器1的初值,決定波特率
        TL1=0xfd;                        //設(shè)置計數(shù)器1的初值,決定波特率
        PCON=0x00;      // 波特率倍增0x00不加倍         0x80加倍
        SCON=0x50;                //設(shè)置工作方式1 開啟接受允許
        EA=1;                    //開啟總中斷
        ES=0;                        //關(guān)閉串口接受中斷
        TR1=1;                        //計數(shù)器1開始運(yùn)行
}


回復(fù)

使用道具 舉報

ID:79921 發(fā)表于 2015-5-14 00:56 | 顯示全部樓層
我要是給SBUF寄存器里寫了date接收端就只能接受到0
回復(fù)

使用道具 舉報

ID:79921 發(fā)表于 2015-5-14 01:22 | 顯示全部樓層
在線等,謝謝先
回復(fù)

使用道具 舉報

ID:79921 發(fā)表于 2015-5-14 16:32 | 顯示全部樓層




#include<reg52.h>
#include"bstv51.h"
void UartConfiguration();

void main()
{
        uchar date=1;
    bstv51_init();
        UartConfiguration();

        while(1)
        {         
                if(RI)
                {       
                        RI=0;
                        date=SBUF;        //取出接受到的數(shù)據(jù)
                        RI=0;                          //清除接受中斷標(biāo)志位
                        SBUF=date;          //接收到的數(shù)據(jù)放入發(fā)送緩存器發(fā)送
                        while(!TI);        //等待發(fā)送數(shù)據(jù)完成
                        TI=0;                                //清除發(fā)送完成標(biāo)志位
                }
        }

}

void UartConfiguration()
{
    TMOD=0x20;      //設(shè)置計數(shù)器1的工作方式2
        TH1=0xfd;                        //設(shè)置計數(shù)器1的初值,決定波特率
        TL1=0xfd;                        //設(shè)置計數(shù)器1的初值,決定波特率
        PCON=0x00;      // 波特率倍增0x00不加倍         0x80加倍
        SCON=0x50;                //設(shè)置工作方式1 開啟接受允許
        EA=1;                    //開啟總中斷
        ES=0;                        //關(guān)閉串口接受中斷
        TR1=1;                        //計數(shù)器1開始運(yùn)行
}
回復(fù)

使用道具 舉報

ID:79998 發(fā)表于 2015-5-14 18:19 | 顯示全部樓層
一種是查詢  一種是中斷  你二個都不用, 那你搞什么?
回復(fù)

使用道具 舉報

ID:79921 發(fā)表于 2015-5-14 19:40 | 顯示全部樓層
husir 發(fā)表于 2015-5-14 18:19
一種是查詢  一種是中斷  你二個都不用, 那你搞什么?

我的if函數(shù)不算查詢嗎?那查詢的代碼應(yīng)該怎么寫,求教
回復(fù)

使用道具 舉報

ID:79921 發(fā)表于 2015-5-14 23:29 | 顯示全部樓層
大家?guī)蛶兔ο胂筠k法,問了好多人了都不知道咋回事
回復(fù)

使用道具 舉報

ID:80045 發(fā)表于 2015-5-15 09:16 | 顯示全部樓層
你用雙串口么

評分

參與人數(shù) 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:79921 發(fā)表于 2015-5-15 18:11 | 顯示全部樓層
沒有,就用了一個
回復(fù)

使用道具 舉報

ID:79921 發(fā)表于 2015-5-16 02:48 | 顯示全部樓層
親們幫幫忙啦,瓶頸問題
回復(fù)

使用道具 舉報

ID:7485 發(fā)表于 2015-5-17 19:53 | 顯示全部樓層
"bstv51.h"這個頭文件存在哪兒?

“uchar” keil是不認(rèn)識的。
應(yīng)先定義:
#define uchar unsigned char

評分

參與人數(shù) 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:80298 發(fā)表于 2015-5-17 20:01 | 顯示全部樓層
新人同問
回復(fù)

使用道具 舉報

ID:79921 發(fā)表于 2015-5-18 19:06 | 顯示全部樓層
終于解決了,程序是沒有問題的是把keil了的晶振頻率沒有改

評分

參與人數(shù) 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:79921 發(fā)表于 2015-5-18 19:06 | 顯示全部樓層
希望這次的經(jīng)驗可以幫到更多的人

評分

參與人數(shù) 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:220912 發(fā)表于 2017-7-19 20:47 | 顯示全部樓層
學(xué)習(xí)了
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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