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米...