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

2021-03-07 06:03:27 字數 970 閱讀 8877

1樓:匿名使用者

c51微控制器的程式:

1、初始化程式:

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

2、傳送程式:

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

void ***data_receive() interrupt 4}

2樓:魔靨一陣風

#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}

3樓:曾年胥昌黎

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

sbuf=rx_data[i];

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

4樓:奈妍杭綺琴

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

51微控制器串列埠傳送資料,51微控制器串列埠同時傳送文字和資料

程式採用了查詢copy式傳送,for i 0 i 6 i 共發bai送了6個字元。再去查詢收到否du。這種方法zhi,就是有問題的,發 dao送6個字元時,就可能收到了好幾個字元,而沒有及時儲存,完全可能丟失資訊。應該採用中斷方式接收 傳送,也可以用查詢,也可以用中斷。方法弄清楚了,程式就容易編寫 ...

51微控制器與vb通過串列埠通訊,微控制器為什麼只能傳送0至

傳送大數,你只能多次傳送,一次只能傳送一幀,而串列埠傳送的一幀可能是7 8 9位,由你設定而定。51微控制器是8位的,一次只能處理8位資料,也就是一個位元組,一個位元組只能表示0 255的大小的資料。一個位元組確實只能是0 255,但你可以連續發兩個位元組然後在vb裡面組成一個大於255的數。比如發...

微控制器串列埠通訊的原理微控制器串列埠通訊原理

串列埠通訊的概念非常簡單,串列埠按位 bit 傳送和接收位元組。儘管比按位元組 byte 的並行通訊慢,但是串列埠可以在使用一根線傳送資料的同時用另一根線接收資料。它很簡單並且能夠實現遠距離通訊。比如ieee488定義並行通行狀態時,規定裝置線總長不得超過20米,並且任意兩個裝置間的長度不得超過2米...