微控制器串列埠通訊問題,51微控制器串列埠通訊問題

時間 2021-08-31 20:05:20

1樓:修者世界

p3=0xff的作用其實很簡單,就是為了更好的完成「讀--修改--寫」這個過程,其實對於p3口是沒有必要的,對於p0口這樣做是應該的。

2樓:革玉花戚雪

微控制器串列埠通訊的問題,其實你只有乙個問題,就是:

p0=0xf0;

s2buf=0xfc;

p0=s2buf;

//為什麼這裡p0是0x00

?你覺得p0應該等於0xfc對不對?之所以出乎你的預料,是因為s2buf暫存器位址是乙個,實際是兩個暫存器,乙個唯讀,乙個只寫。

s2buf=0xfc是寫傳送緩衝暫存器s2buf,p0=s2buf是讀接收緩衝暫存器s2buf,在沒有接收的字元時,接收緩衝暫存器s2buf是未知的,現在恰好是0,p0當然等於0x00。

3樓:秋景文奇勝

很可能某地方短路了,這裡的現象很可能就是你的板子vcc被拉低了,你沒萬用表的話比較麻煩。順便說一下,usb轉串列埠出來的是rs232電平,你沒rs232的通訊晶元是不可以通訊的。rs232的電平我記得是-3~9v。

不是ttl

5v電平。

51微控制器串列埠通訊問題

4樓:匿名使用者

c51微控制器的程式:

1、初始化程式:

tmod=0x20; th1=0xfd; tl1=0xfd;sm0=0; sm1=1; ren=1; tr1=1; ea=1; es=1;

2、傳送程式:

void comdata_send()//串列埠傳送資料3、接收資料:

void comdata_receive() interrupt 4}

5樓:魔靨一陣風

#include

#define uchar unsigned char

#define uint unsigned int

uchar idata trdata=;

sbit k1=p3^2; //對應開發板k1按鍵

//串列埠初始化

void uart_init(void)

void delay1ms(uint i)}}

//串列埠傳送乙個位元組

void uart_sendchar(unsigned char dat)

//串列埠傳送乙個字串

void uart_sendstring()

//主函式

void main(void)}}

//串列埠接收中斷函式

void int_uartrcv(void) interrupt 4}

6樓:曾年胥昌黎

樓主,傳送與接收不要放在同乙個中斷服務程式中,rx_data[i]=sbuf;

sbuf=rx_data[i];

這兩句不應放在同乙個中斷服務程式中啊,都放在main()}rx_data[i]=sbuf,放在中斷服務程式中;

7樓:奈妍杭綺琴

這個很難說,可能是其它程式問題,你仔細檢查一下,你整段程式,總能發現其中問題的!一步一步的找,和執行看看,一下哪步出問題了

5v微控制器與3.3v微控制器串列埠通訊問題

8樓:yesyes科

5v微控制器與3.3v微控制器串列埠不能通訊,是設定錯誤造成的,解決方法如下:

1、首先51微控制器的可用記憶體只有00h~7fh,堆疊指標設定在60h,則堆疊的大小就是60h~7fh。這算是有規定大小的。

2、堆疊主要是為子程式呼叫和中斷操作而設立的,因此對應有兩項功能:保護斷點和保護現場。

3、微控制器的程式歸根結底是個死迴圈,反覆在執行main函式(主程式)。

4、可以只寫乙個函式main,那麼這個函式隨著功能的增多而變得異常大,而且非常不具備可讀,這個時候就需要子函式(子程式)了。

5、主函式在呼叫完子函式後會返回到主函式中,這樣就可以呼叫其它函式並且繼續這個死迴圈。

9樓:匿名使用者

遇到這種介面問題,首先必須確認兩個板子上的txd/rxd/gnd  若用到cts/rts當然也要

確認,確認它們的輸出電壓.(若是標準rs-232訊號,那就確認兩塊板子的rxd/txd對接

就是1板子的txd接2板子的rxd.....),有時候板子上輸出的是ttl電壓(5v/0v),串列埠標準電壓

是正負12v

一般拿出來賣的功能應該是有的,具體就是你怎麼用?

sp232是標準rs-232d介面,要加正負12v電壓。sp3232的電壓是3v-5.5v 也就是0v-3.3或5.5v

兩個當然不能直接接在一起。你看看是不是這個問題!

51微控制器串列埠通訊波特率問題,51微控制器串列埠波特率問題

anyway中國 usb轉串列埠上的晶振12mhz,對波特率的準確度有一定影響。但是,微控制器通訊的波特率設定,還是得採用與微控制器相連的11.0582mhz晶振進行計算。11.0592mhz設定的的大部分波特率理論誤差為零,但是,串列埠轉usb會有為了減小誤位元速率,可按照12mhz晶振波特率設定...

51微控制器串列埠通訊出現問題,5V微控制器與3 3V微控制器串列埠通訊問題

做而論道 void main 如果是ascii碼,加上引號即可 if sbuf 0 p0 smg 0 通過數碼管顯示接收到的資訊 if sbuf 1 p0 smg 2 通過數碼管顯示接收到的資訊 if sbuf 2 p0 smg 12 通過數碼管顯示接收到的資訊 if sbuf 3 p0 smg 1...

51微控制器,通過串列埠助手向微控制器傳送字串,微控制器將字串逆序傳送回計算機,用C語言程式設計

電腦通過串列埠助手向微控制器傳送字串,微控制器定義一個可以儲存7個字元的陣列,依次儲存接收的字串,當接收到7個字串後,就可以從陣列的最後一個字元向前傳送每一個字元給電腦就可以了。剩下的就是串列埠初始化,串列埠接收和傳送程式了,就比較好寫了。其實,電腦傳送任意的7個字元的字串都可以,微控制器收到後就可...