51微控制器中的序列介面和全雙工的UART分別是指什麼

2021-03-22 05:11:22 字數 6949 閱讀 8412

1樓:我是_羅東

序列介面是指資料一位位地順序傳送,常用的有rs232和rs485;

uart是非同步序列介面,即是主從機時脈頻率不同步,通訊是通過設定波特率實現的。

uart其實就是序列介面中的一種。

通訊有序列、並行之分,而序列通訊又有同步、非同步之分。

同步常用協議是spi、iic。非同步就上面說的。

什麼是全雙工序列口uart

2樓:

如果你是用微控制器io口模擬的,只能是半雙工的,因為沒有特定的暫存器。比如說51原配的uart,有個sbuf暫存器,這個sbuf在物理上,實際是兩個暫存器,一個用於接收,一個用於傳送,所以可以實現雙工,但是,你用io模擬的,你的代替sbuf暫存器的,實際上只是一個ram而已,而且你的識別過程是用軟體來完成的,不像uart是用硬體來完成的,所以無法實現雙工。

51微控制器uart串列埠通訊 50

3樓:匿名使用者

51單片

機是對所有相容intel 8031指令系統的微控制器的統稱。該系列微控制器的始祖是intel的8004微控制器,後來隨著flash rom技術的發展,8004微控制器取得了長足的進展,成為應用最廣泛的8位微控制器之一,其代表型號是atmel公司的at89系列,它廣泛應用於工業測控系統之中。很多公司都有51系列的相容機型推出,今後很長的一段時間內將佔有大量市場。

51微控制器是基礎入門的一個微控制器,還是應用最廣泛的一種。需要注意的是51系列的微控制器一般不具備自程式設計能力。

mcs—51微控制器的序列口有哪幾種工作方式

4樓:東京沒***

1、立即定址:運算元就寫在指令中,和操作碼一起放在程式存貯器中。把「#」號放在立即數前面,以表示該定址方式為立即定址,如mova,#20h。

2、暫存器定址:運算元放在暫存器中,在指令中直接以暫存器的名來表示運算元地址。如mova,r0就屬於暫存器定址,即r0暫存器的內容送到累加器a中。

3、直接定址:運算元放在微控制器的內部ram某單元中,在指令中直接寫出該單元的地址。如前例的adda,70h中的70h。

4、暫存器間接定址:運算元放在ram某個單元中,該單元的地址又放在暫存器r0或r1中。如果ram的地址大於256,則該地址存放在16位暫存器dptr(資料指標)中,此時在暫存器名前加@符號來表示這種間接定址。

如mova,@r0。

5、變址定址:指定的變址暫存器的內容與指令中給出的偏移量相加,所得的結果作為運算元的地址。如movca,@a+dptr。

6、相對定址:由程式計數器中的基地址與指令中提供的偏移量相加,得到的為運算元的地址。如sjmprel。

7、位定址:運算元是二進位制中的某一位,其位地址出現在指令中。如setbbit。

5樓:際風

在通訊中 按傳送方式可分為三種:單工,半雙工,全雙工。

按通訊方式可分為兩種:非同步通訊,同步通訊。

6樓:匿名使用者

四種工作方式啊

1、方式0

序列介面的工作方式0為移位暫存器i/o方式。在序列口外接移位暫存器以擴充套件i/o介面,也可以外接序列同步i/o的裝置。

(1)方式0輸出

序列口以方式0傳送時,資料以rxd端序列輸出,txd端輸出同步訊號。當一個資料寫入序列口傳送緩衝器以後,就啟動序列口傳送器以振盪頻率的十二分之一的波特率,將資料從rxd端序列輸出。

(2)方式0輸入

當序列口定義為方式0並置位ren後,便啟動序列口以方式0接收資料,此時rxd端為資料輸入端,txd端為同步脈衝訊號輸出端。接收器以振盪率的十二分之一的波特率接收rxd端輸入的資料資訊。但接收器接收到8位資料時,置1中斷標誌ri。

2、方式1

序列介面定義為工作方式1時,則被控制為8位的非同步通訊介面,傳送一幀資訊為10位,其中1位為起始位,8位資料位(先低位後高位),1位停止位。

(1)方式1輸出

序列介面以方式1傳送時,資料由txd端輸出。cpu執行一條資料寫入傳送緩衝

器sbuf的指令(例如,mov  sbuf,a),資料位元組寫入sbuf後,便啟動序列口傳送器傳送,傳送完一幀資訊,置1放送中斷標誌ti。

(2)方式1輸入

序列口以方式1接收時,資料從rxd端輸入。在ren置1以後,就允許接收器接收。接收器以所建立的波特率的16倍分頻計數器,以便實現時間同步。

計數器的16個狀態把一位的時間等分成16份,在每位時間的第7、8和9個計數狀態,位檢測器取樣rxd的值,接收的值是3次取樣中取至少二次相同的值,以排除噪聲的干擾。如果在起始接收的值不是0,則起始位無效,復位接收電路。在檢測到另一個1到0的跳變時,再重新啟動接收器。

如果接收到值為0,起始位有效,則開始接收本幀的其餘資訊。當ri=0並且接收到的停止位為1(或**2=0)時,停止位進入rb8,接收到的8位資料進入接收緩衝器sbuf,置位ri中斷標誌。接著接收便搜尋另一幀資訊的起始位。

3、方式2和方式3

序列介面工作方式2和方式3時,則被定義為9位的非同步通訊介面。傳送一幀資訊為11位,其中1位起始位,8位資料位(從低位至高位),1位是附加的可程控為1或0的第9位資料,1位停止位。

方式2和方式3的差別僅僅在於波特率不一樣,方式2的波特率是固定的,波特率為2**od/64(振盪頻率);方式3的波特率是可變的,波特率=2**od/32(t1的溢位率)。

方式2和方式3在傳送和接收時唯一的區別就是波特率不同。

(1)方式2和方式3傳送

方式2或方式3傳送時,資料由txd端輸出,發出一幀資訊為11位,附加的第9位資料是scon中的tb8,cpu執行一條資料寫入傳送緩衝器sbuf的指令,就啟動傳送器傳送,傳送完一幀資訊,置「1」ti中斷標誌。

(2)方式2和方式3接收

序列口被定義為方式2或方式3接收時,資料從rxd端輸入,置ren=1以後,開始接收過程。當檢測到rxd端從高到低的負跳變時,確認起始位有效,開始接收本幀的其餘資訊。在接收完一幀資訊後,在ri=0、**2=0時,或接收到第9位資料為「1」時,8位資料裝入接收緩衝器,第9位資料裝入scon中rb8,並置ri=1。

若不滿足上述的兩個條件,接收到的資訊將會丟失,也不置位ri

7樓:匿名使用者

有4種方式:

方式 0 :同步移位暫存器輸出方式

方式1:8位資料非同步通訊方式

方式 2 :可接收或傳送 11 位資料

方式 3 :方式 3 與方式 2 完全類似,唯一的區別是方式 3 的小組特率是可變的。

8樓:匿名使用者

全雙工的,可以同時收發!

51微控制器的序列介面結構

9樓:**ile默白

8051微控制器序列介面是一個可程式設計的全雙工序列通訊介面。它可用作非同步通訊方式(uart),與序列傳送資訊的外部裝置相連線,或用於通過標準非同步通訊協議進行全雙工的8051多機系統也能通過同步方式,使用ttl或cmos移位暫存器來擴充i/o口。

8051微控制器通過管腳rxd(p3.0,序列資料接收端)和管腳txd(p3.1,序列資料傳送端)與外界通訊。

sbuf是序列口緩衝暫存器,包括髮送暫存器和接收暫存器。它們有相同名字和地址空間,但不會出現衝突,因為它們兩個一個只能被cpu讀出資料,一個只能被cpu寫入資料。

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

10樓:匿名使用者

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}

11樓:魔靨一陣風

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

12樓:曾年胥昌黎

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

sbuf=rx_data[i];

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

13樓:奈妍杭綺琴

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

51微控制器串列埠通訊

14樓:匿名使用者

#include

#include

unsigned char ch;

bit read_flag= 0 ;

void init_serial***( void ) //串列埠通訊初始設定

//向串列埠傳送一個字元

void send_char_***( unsigned char ch)

//串列埠接收中斷函式

void serial () interrupt 4 using 3}main()}}

15樓:

// 微控制器序列口傳送/接收

程式,每接收到位元組即傳送出去

// 和微機相接後鍵入的字元回顯示在螢幕上// 可用此程式測試

//#include

#define xtal 11059200 // cup 晶振頻率

#define baudrate 9600 // 通訊波特率void main(void)}

16樓:匿名使用者

//e51pro.c

//easy 51pro程式設計器主程式,負責通訊,管理程式設計操作

#include

byte ***buf[18];//串列埠通訊資料快取,傳送和接收都使用

uint naddress;//rom中地址計數

uint ntimeout;//超時計數

prowork pw;//程式設計器一般操作

void delay_us(byte nus)//微秒級延時<255us

***buf[n]=sbuf;

ri=0;

}return 1;

}bool waitresp()//等待上位機迴應,1位元組,有超時限制

}ri=0;

***buf[0]=sbuf;

return 1;

}bool waitdata()//寫器件時等待上位機資料,18位元組,有超時限制

}ri=0;

***buf[n]=sbuf;

}return 1;

}void senddata()//傳送資料或迴應操作完成,18位元組

ti=0;}}

void sendresp()//迴應上位機1個位元組,在寫器件函式中使用

ti=0;

}void setvpp5v()//設定vpp為5v

void setvpp0v()//設定vpp為0v

void setvpp12v()//設定vpp為12v

void rstpro()//程式設計器復位

void readsign()//讀特徵字

void erase()//擦除器件

void write()//寫器件

naddress++;//下一個單元

}***buf[0]=1;//迴應上位機一個位元組,表示資料塊順利完成,請求繼續

sendresp();

}else if(***buf[0]==0x00)//寫器件結束

break;

else//可能是通訊出錯了

}else//等待資料失敗

}pw.fpproover();//程式設計結束後的工作

delay_ms(50);//延時等待上位機寫執行緒結束

***buf[0]=0;//通知上位機程式設計器進入就緒狀態

senddata();

}void read()//讀器件

else if(***buf[0]==0xff)//0xff表示重發

for(n=2;n<=17;n++)//***buf[2~17]儲存讀出的資料塊

***buf[0]=6;//向上位機傳送讀出的資料塊

senddata();

}else

break;//等待迴應失敗

}pw.fpproover();//操作結束設定為執行狀態

***buf[0]=0;//通知上位機程式設計器進入就緒狀態

senddata();

}void lock()//寫鎖定位

//所支援的fid,請在這裡繼續新增

extern void preparepro00();//fid=00:at89c51程式設計器

extern void preparepro01();//fid=01:at89c2051程式設計器

extern void preparepro02();//fid=02:at89s51程式設計器

void main()

switch(***buf[1])//根據fid設定(prowork)pw中的函式指標

switch(***buf[0])//根據操作id跳到不同的操作函式}}

51微控制器串列埠怎麼樣才能實現全雙工通訊

首先要明確bai全雙工通訊方式的du具體含義 全雙工方zhi式需要通dao信雙方連線兩條傳輸 回線 答共地 一條是將資料從甲方送到乙方,另外一條是從乙方送到甲方。就是甲乙雙方各自對應一發一收,51微控制器上是有一個全雙工的序列介面的,可以用兩條傳輸線實現雙向同時傳送。就你說的問題,我看得不是很明白,...

關於51微控制器的中斷,關於51微控制器的中斷。

中斷的概念 cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理 中斷髮生 cpu暫時中斷當前的工作,轉去處理事件b 中斷響應和中斷服務 待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a 中斷返回 這一過程稱為中斷 二 中斷源 在51微控制器中有5箇中斷源 中斷號 優...

51微控制器的所有指令

微控制器指令功能一覽表 助記符 說明 mov a,rn e8 ef 暫存器a mov a,direct e5 dircet 直接位元組送a mov a,ri er e7 間接ram送a mov a,data 74 data 立即數送a mov rn,a f8 ff a送暫存器 mov rn,dirc...