微控制器串列埠,微控制器串列埠作用?

時間 2022-09-04 16:25:08

1樓:

關於串列埠實驗你可以看看這篇文章:

手把手教你用增強型51實驗板實現rs232串列埠通訊 《電子製作》2023年8月 站長原創,如需引用請註明出處

上一期,我們已經利用增強型51實驗板學會了微控制器控制步進電機轉動的方法,這一期,我們將一起來學習一下微控制器如何與pc機進行通訊,一起來完成一個簡單的rs232通訊例項,我們不做太多的理論,從例項出發,相信能夠給大家一個比較通俗、透徹地認識,掌握了它的原理,那你就可以編出任何和pc機進行通訊的程式了。

前幾期,我們學習和介紹的內容都是以單機的形式,即所有的功能都是在一塊增強型51實驗板上得以實現。當微控制器技術具體應用到工廠、企業及各類工業、民用領域中,它肯定要與外部設定作資料傳輸,其互動性也使得微控制器的應用越來越廣泛,我們可以利用它來傳資料,傳控制命令等等。因此,微控制器與pc機的通訊是我們學習微控制器技術所經歷的必要環節,由此,也使我們的學習更具趣味性。

下面我們一起來完成一個用微控制器從序列口接收pc機資料,並在數碼管上顯示出來的實驗。

先介紹一下串列埠通訊基本知識。目前較為常用的串列埠有9針串列埠(db9)和25針串列埠(db25)。最為簡單且常用的是三線制接法,即地、接收資料和傳送資料三腳相連,本文只涉及到最為基本的接法,且直接用rs232相連。

串列埠引腳定義如圖1所示。

9針串列埠(db9) 25針串列埠(db25)

針號 功能說明

縮寫 針號

功能說明

縮寫 1

資料載波檢測

dcd8 資料載波檢測

dcd2 接收資料

rxd3 接收資料

rxd3 傳送資料

txd2 傳送資料

txd4 資料終端準備

dtr20 資料終端準備

dtr5 訊號地

gnd7 訊號地

gnd6 資料裝置準備好

dsr6 資料準備好

dsr7 請求傳送

rts4 請求傳送

rts8 清除傳送

cts5 清除傳送

cts9 振鈴指示

dell

22 振鈴指示

dell

圖1 db9和db25的常用訊號腳說明

我們來看一下本次實驗的電路圖,如圖2所示,即增強型51實驗板實現串列埠通訊及數碼管顯示的電路部分。圖2中的4個三極體分別與4個共陽數碼管相連,是各個數碼管的使能端,分別通過微控制器的p2.0,p2.

1,p2.2,p2.3來控制,數碼管顯示的詳細工作原理,我們已在前幾期雜誌中作過介紹,有興趣的朋友可以去看一下以前幾期的內容。

圖2中max232晶片起到rs232與ttl電平轉換的作用,我們通過9芯串列埠與pc機相連。

圖2 硬體電路原理圖

下面是我們完成本次實驗的源程式**,使用keil編譯軟體,將其編譯生成hex檔案,然後,通過a51程式設計器燒入at89s51晶片即可。

#include "reg51.h"

#include

unsigned char code tab=;

unsigned char dat;

void init_com(void)

/*函式功能:led數碼管延時程式*/

void delay(void)

/*函式功能:led數碼管顯示程式*/

void display(int k)

/*函式功能:主程式*/

void main()

display(dat-48); //顯示收到的資料}}

我們來一起分析一下程式**,main主程式首先將p2口和p0口全部輸出高電平,即資料管不顯示任何內容,init_com函式用來初始化串列埠設定,如波特率設定,工作方式的設定,這些都是程式執行的一切初始化設定。然後,我們看到了一個while(1)語句,該語句的作用是產生死迴圈,即微控制器上電覆位後,我們就不斷地去接收由pc機發過來的串列埠資料,同時將接收到的資料放在dat 這個變數中,每接收完一次資料,我們需要執行ri = 0這條語句,用來清除串列埠資料接收標誌位,現在我們已經收到了pc機傳過來的資料了,餘下的任務就是要將數字通過數碼管顯示出來,我想大家看了我們前幾期的介紹,已經並不陌生數碼管的使用了,在這裡,我們也寫得非常簡潔,通過display這個函式將數字顯示出來,因為我們收到的是字元型的ascii碼資料,如數字「0」的ascii碼值是48,所以,我們要顯示「0」的話,還需要將其值減去48後才是真正要顯示的資料。數碼管我們採用動態掃描法進行顯示,delay函式的作用是產生一定時間的延時,對於人眼來說是分辨不出來的,在display的函式體內,我們先將資料裝載到p0口,如我們在程式開始時定義的:

unsigned char code tab=語句,意思相當於:數字「0」對應的數碼管段碼值為「0xc0」, 數字「1」對應的數碼管段碼值為「0xf9」, 數字「2」對應的數碼管段碼值為「0xa4」……以此類推,最後通過數碼管的使能端來顯示各位數碼管的值。至此,整個程式的功能就輕鬆地實現了我們所需要的功能,看到這裡相信你現在對序列通訊感到並不是原來想的那麼深奧了吧。

現在我們已經將程式寫好,並燒入了微控制器晶片,下面我們要做的就是用串列埠線將增強型51實驗板和pc機相連起來,同時給實驗板接上電源,然後就是通過pc機軟體來發資料了,要在pc機上向串列埠傳送資料一定要藉助相應軟體,開啟光碟內附帶的串列埠除錯軟體,它設定方便、靈活,介面簡潔明。因為我們得告訴實驗板來顯示哪些數字,程式的功能是傳送「1」、「2」、「3」......「8」、「9」、「0」等字元,增強型51實驗板收到資料後通過數碼管顯示出來,所以我們得在軟體傳送區內填上我們所需要傳送的數字,如圖3所示。

圖3串列埠除錯軟體中,設定引數如下:串列埠:com1;波特率:9600;校驗位:無;資料位:8位;停止位:1位;傳送內容:5

當我們點選「手動傳送」按鈕後,我們可以看到增強型51實驗板上的數碼管已顯示數字「5」的字樣,如圖4所示。當然,我們也可以選擇「自動傳送」,即每隔一定的時間,由軟體自動傳送「傳送緩衝區」內的資料,時間週期可以在軟體介面中設定。

圖4現在,你已經可以自由發揮來接收pc機發過來的資料了,只要發揮你的想象力,定義好pc機和微控制器兩端的資料通訊協議,你可以做出任何通過電腦來對微控制器進行控制的程式,實現各種各樣的資料傳輸,遠端控制功能,比如通過pc機來控制液晶顯示、控制步進電機的轉動、控制蜂鳴器奏樂等等,您也可以將本期所講的知識與前幾期所講的關聯起來,完成功能更多,更實用的具體應用例項。因此,到本期的學習,我們已經可以將微控制器與pc相連,藉助pc機強大而靈活的功能,就可以為我們解決各類實際生產及應用型問題提供了方便。這一期的內容我們就介紹到這裡,增強型51實驗板更多的學習內容,我們將在以後幾期陸續為大家作介紹,祝大家學習順利。

2樓:匿名使用者

首先,要看看你的微控制器帶不帶串列埠模組,也就是uart模組。如果有的話,程式設計就很簡單了,參照例項即可

如果你的微控制器沒有串列埠模組的話,你要實現串列埠通訊還可以用軟體模擬串列埠通訊的時序,比如依靠定時器。

例子就不給了,網上多的去了

3樓:匿名使用者

功能簡單但是問題太大,讓人沒法回答,又沒有具體功能,強烈建議你先買本微控制器的教程看看.

4樓:匿名使用者

隨便找本51的書看下你就明白了

微控制器串列埠作用?

5樓:完好

能接收和傳送 r232方式的序列資料,是微控制器和

微控制器通訊,微控制器和計算機,微控制器和板卡,無線模組等等通訊的一個基礎通訊方式,很早在6 7時年代流行的通訊方式,是微控制器和外加序列通訊的一個重要方式,也是個常用而簡單方式。是學習微控制器基礎知識的核心。

序列通訊的基本概念

一、非同步通訊與同步通訊

1、非同步通訊

非同步通訊是指通訊的傳送與接收裝置使用各自的時鐘控制資料的傳送和接收過程。為使雙方的收發協調,要求傳送和接收裝置的時鐘儘可能一致。

非同步通訊是以字元(構成的幀)為單位進行傳輸,字元與字元之間的間隙(時間間隔)是任意的,但每個字元中的各位是以固定的時間傳送的,即字元之間不一定有「位間隔」的整數倍的關係,但同一字元內的各位之間的距離均為「位間隔」的整數倍。

非同步通訊的資料格式 :

2、同步通訊

同步通訊時要建立傳送方時鐘對接收方時鐘的直接控制,使雙方達到完全同步。此時,傳輸資料的位之間的距離均為「位間隔」的整數倍,同時傳送的字元間不留間隙,即保持位同步關係,也保持字元同步關係。傳送方對接收方的同步可以通過兩種方法實現。

面向字元的同步格式 :

面向位的同步格式 :

二、序列通訊的傳輸方向

1、單工

單工是指資料傳輸僅能沿一個方向,不能實現反向傳輸。

2、半雙工

半雙工是指資料傳輸可以沿兩個方向,但需要分時進行。

3、全雙工

全雙工是指資料可以同時進行雙向傳輸。

6樓:匿名使用者

進行兩線制通訊,通過電平轉換(max232)可與計算機通訊

也可微控制器間相互通訊

7樓:匿名使用者

提供一個微控制器和其他裝置交換資料的藉口

8樓:匿名使用者

交換資料~~~

並口只能輸出,不能儲存

9樓:匿名使用者

微控制器中的串列埠是什麼?

10樓:0427付強

最通俗的解釋:一種通訊介面,用來傳輸一些資料。

微控制器,什麼是序列口,什麼是並行口?

11樓:匿名使用者

兩種介面都是用來傳送二進位制資料的介面形式。

序列介面,一般有一根時鐘線,一根資料線,一個時鐘週期傳送二進位制1位,要傳送一個位元組至少需要8個時鐘週期,序列線根數少,遠端傳輸抗干擾能力強,成本低。

並行介面,比如8位並行介面,除具備時鐘線外,還有8根資料線,另外還有幾根輔助訊號線,一個時鐘8位資料全部可傳送完畢,並行線根數多,電纜成本高、容易受干擾因而距離受限(電纜長度受限)。

12樓:匿名使用者

串列埠資料是按1位為單位傳輸資料的口,51微控制器是p3.0、p3.1組成串列埠。並口是以1位元組為單位傳輸資料的口,51微控制器一般以p0口擴充套件並口。

13樓:匿名使用者

串的意思就一個個傳送,第一個為先,並的意思是統一傳送

14樓:匿名使用者

串列埠一般是九針的,並口一般是二十五針的

串列埠與微控制器通訊時好時壞,微控制器模擬串列埠通訊有什麼利弊??

首先試試串列埠好使不。拿pc機開啟個串列埠除錯軟體,將rxd與txd拿個導線短接一下。之後用軟體傳送隨便一些資料,由於txd與rxd是短接的,那麼軟體接收到的資料應該是和發射資料一致,如果不一致,線壞了,如果徹底就收不到,線懷了,多試幾次,時好時壞,線接觸不良。如果一切正常,那麼就得看微控制器的串列...

微控制器接收串列埠資料,怎麼用微控制器確定串列埠接收資料的時間間隔?

你通過串列埠助手要接受字串或一組資料需要在微控制器端開闢一個緩衝區,否則可能丟失資料。以下程式是較為通用的串列埠收發例程,開闢一個16位元組的緩衝區,兩個指標,一個存數指標,一個取數指標,兩指標相等,證明沒有新的接收資料。include define uchar unsigned charuchar...

5V微控制器與3 3V微控制器串列埠通訊問題

yesyes科 5v微控制器與3.3v微控制器串列埠不能通訊,是設定錯誤造成的,解決方法如下 1 首先51微控制器的可用記憶體只有00h 7fh,堆疊指標設定在60h,則堆疊的大小就是60h 7fh。這算是有規定大小的。2 堆疊主要是為子程式呼叫和中斷操作而設立的,因此對應有兩項功能 保護斷點和保護...