freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機串口通信設計方案-文庫吧

2025-04-10 13:37 本頁面


【正文】 控制器和輸入移位寄存器等組成,: 51單片機串行口結(jié)構(gòu)圖 串行通信數(shù)據(jù)寄存器SBUF,字節(jié)地址為99H,實際對應兩個寄存器:發(fā)送數(shù)據(jù)寄存器、接收數(shù)據(jù)寄存器。當CPU向SBUF寫數(shù)據(jù)時對應的是發(fā)送數(shù)據(jù)寄存器;當CPU讀SBUF時,對應的是接收數(shù)據(jù)寄存器。特殊功能寄存器SCON用于存放串行口的控制信息和狀態(tài)信息。根據(jù)對其寫控制字決定工作方式,從而決定波特率發(fā)生器的時鐘來自系統(tǒng)時鐘還是來自定時器T1或T2。特殊功能寄存器PCON的最高位SMOD為串行口波特率的倍增控制位。51單片機的串行口正是通過對上述專用寄存器的設置、檢測與讀寫來管理串行通信的。在進行通信時,外界的串行數(shù)據(jù)是通過引腳RXD()輸入的。輸入數(shù)據(jù)先逐位進入輸入移位寄存器,再送入接收SBUF,在此采用了雙緩沖結(jié)構(gòu),這是為了避免在接收到第二幀數(shù)據(jù)之前,CPU未及時響應接收器的前一幀的中斷請求而把前一幀數(shù)據(jù)讀走,造成兩幀數(shù)據(jù)重疊的錯誤。對于發(fā)送器,因為發(fā)送時CPU是主動的,不會產(chǎn)生寫重疊的問題,一般不需要雙緩沖器結(jié)構(gòu),為了保持最大的傳送速率,僅用了SBUF一個緩沖器。TI和RI為發(fā)送和接收中斷標志,無論哪個為1,只要中斷允許,都會引起中斷[8]。 51系列單片機串口工作原理設有兩個單片機串行通信,甲機發(fā)送,乙機接收。 51單片機串行傳送示意圖發(fā)送數(shù)據(jù)時,當執(zhí)行一條向SBUF寫入數(shù)據(jù)時把數(shù)據(jù)寫入串口發(fā)送數(shù)據(jù)寄存器,就啟動發(fā)送過程。串行通信中,甲機CPU向SBUF寫入數(shù)據(jù)(MOV SBUF,A),就啟動發(fā)送過程。在發(fā)送時鐘控制下,先發(fā)送一個低電平的起始位,緊接著把A中的數(shù)據(jù)送入SBUF,在發(fā)送控制器的控制下,按設定的波特率,每來一個移位時鐘,數(shù)據(jù)移出移一位,由低位到高位一位一位發(fā)送到電纜線上,移出的數(shù)據(jù)位通過電纜線直達乙機。最后發(fā)送一個高電平的停止位。一個字符發(fā)送完畢,串行口控制寄存器中的發(fā)送中斷標志位T1置位。(對于方式2和方式3,當發(fā)送完數(shù)據(jù)位后,要把串行口控制寄存器SCON中的TB8位發(fā)送出去后才能發(fā)送停止位)。乙機按設定的波特率,每來一個移位時鐘及移入一位,由低位到高位一位一位移入到SBUF。一個移出,一個移進,很顯然,如果兩邊的移位速度一致,甲機移出的數(shù)據(jù)位正好被乙機移進,就能完成數(shù)據(jù)的正確傳送;如果不一致,則必然會造成數(shù)據(jù)位的丟失。因此,兩邊的波特率必須一致。當甲機一幀數(shù)據(jù)發(fā)送完畢(或稱發(fā)送緩沖器空),硬件置位發(fā)送中斷標志位TI(),該位可作為查詢標志,如果設置為允許中斷,則將引起中斷,甲機的CPU可發(fā)送下一幀數(shù)據(jù)。作為接受方的乙機,需預先設置位REN(),即允許接收。當REN置位1,接收控制器就開始工作,對接收數(shù)據(jù)線進行采樣,當采樣到從“1”到“0”的負跳變時,接收控制器開始接收數(shù)據(jù)。為了減少干擾的影響,接收控制器在接收數(shù)據(jù)時,將一位的傳送時間分成16等分,用當中的9三個狀態(tài)對接收數(shù)據(jù)線進行采樣,三次采樣當中,當兩次采樣為低電平時,就認為接收的是“0”,兩次采樣為高電平,就認為接收是“1”。如果接收是起始位的值不是“0”,則起始位無效,復位接收電路;如果起始位為“0”,則開始接受其它數(shù)據(jù)。甲方的數(shù)據(jù)按設定的波特率由地位到高位順序進入乙機的移位寄存器。當一幀數(shù)據(jù)到齊(接收緩沖器滿)后(接收的前8位數(shù)據(jù)依次移入輸入移位寄存器,接收是第9位數(shù)據(jù)置入串口控制寄存器的RB8位中),硬件自動置位接收中斷標志RI(),通知CPU來取數(shù)據(jù)。該位可作為查詢標志,如果設置為允許中斷,將引起接收中斷,乙機的CPU可通過讀SBUF(MOV A,SBUF),將幀數(shù)據(jù)讀入,從而完成了一幀數(shù)據(jù)的傳送。無論是單片機之間,還是單片機和PC機之間,串行通信雙方的波特率必須相同,才能完成數(shù)據(jù)的正確傳送[7]。 51系列單片機多機通信多機應用是指在一個系統(tǒng)中用到了多塊單片機。它是單片機在高科技領域的主要應用,主要用于一些大型的自動化控制系統(tǒng)。這時整個系統(tǒng)分成了多個子系統(tǒng),每個子系統(tǒng)是一個單片機系統(tǒng),用于完成本系統(tǒng)的工作,即從上級主機接收信息,并發(fā)送信息給上級主機。上級主機則根據(jù)接收的下級子系統(tǒng)的信息,進行判斷,產(chǎn)生相應的處理命令傳送給下級子系統(tǒng)。通過51單片機串口能夠?qū)崿F(xiàn)一臺主機與多臺從機進行通信,主機和從機之間能夠相互發(fā)送和接收信息。主機可以向各個從機或指定的從機發(fā)送信息,各個從機發(fā)送的信息只能被主機接收,但從機與從機之間不能相互通信。單片機串行多機通信必須使用串口模式2和模式3。在多機通信中,為了保證主機能夠正確識別所選是從機并進行通信,主,從機需要正確地設置和判斷多機通信控制位SM2和發(fā)送/接收的第9位信息,TB8,RB8。主機在發(fā)送信息時,依靠TB8標志位來區(qū)分發(fā)送的信息為地址信息還是數(shù)據(jù)信息。當設置TB8=1,時,發(fā)送的是地址信息;當設置TB8=0時,發(fā)送的是數(shù)據(jù)或者命令信息。從機主要依靠SM2標志位的設置來實現(xiàn)對主機的響應。當從機的SM2=1時,該從機只接受地址幀,對數(shù)據(jù)幀不進行處理,即只有接收的RB8位等于1數(shù)據(jù)時,接收才有效,RI才置1,對接收的RB8位等于0的數(shù)據(jù)不進行處理。當SM2=0時,無論接收的是地址幀TB8=1還是數(shù)據(jù)幀RB8=0,接收都有效,RI都置1。多級通信時,主機每一次都向從機傳送至少兩字節(jié)信息,先傳送從機的地址信息,再傳送數(shù)據(jù)信息。處理時,地址信息的TB8位設為1,數(shù)據(jù)信息的TB8位設為0。 多機通信線路圖單片機多機通信的過程如下:1. 所有從機復位,置SM2=1,使其處于準備接收一幀地址數(shù)據(jù)的狀態(tài);2. 主機設置第9位TB8=1,發(fā)送一幀地址信息,與所需要的從機進行聯(lián)系;3. 各從機接收到地址信息后,分別于自己的地址進行比較,對于地址相符的從機,置SM2=0,以便于接收主機隨后發(fā)送的所有信息;對于地址不相符的從機,仍保持SM2=1,對主機隨后發(fā)送的數(shù)據(jù)不進行處理。4. 主機發(fā)送控制指令和數(shù)據(jù)給從機,此時一幀數(shù)據(jù)的第9位TB8=0。5. 當從機接收數(shù)據(jù)結(jié)束的時候,置SM2=1,返回接收地址幀狀態(tài)。6. 主機繼續(xù)發(fā)送其它地址幀,與其它從機進行通信。多機通信協(xié)議約定:主機為了正確地和指定的從機正確的通信,雙方需要對各種數(shù)據(jù)、地址、指令和狀態(tài)等進行明確的約定。本系統(tǒng)的通信協(xié)議作如下規(guī)定:主機的控制命令:01H表示主機請求從機接收數(shù)據(jù);02H表示主機請求從機發(fā)送數(shù)據(jù)。其它保留,可定義其它用途。從機的地址定義在00H到FEH之間,即系統(tǒng)中最多允許連接255個從機。對于地址FFH定義為對所有從機都有效的控制命令,用于將各從機恢復到復位狀態(tài),即SM2=1。按照上面的協(xié)議規(guī)定:主機首先發(fā)送地址幀,被尋址的從機向主機回送本地地址。主機判斷地址是否相符,然后給被尋址的從機發(fā)送控制命令,被尋址的從機根據(jù)其命令向主機發(fā)送本地機狀態(tài)。若主機判斷狀態(tài)正常,即開始發(fā)送或接收數(shù)據(jù),后面緊跟的便是數(shù)據(jù),若主機判斷不正常,需要重新聯(lián)系。為了能夠?qū)崿F(xiàn)多單片機之間的數(shù)據(jù)傳送,本系統(tǒng)采用多機通信模式[8][9][10]。 模塊化方案比較與選擇根據(jù)51單片機的串行通信的特點,進行了以下系統(tǒng)設計的方案比較與選擇。方案一:采用MCS51芯片,MCS51是Intel公司單片機的典型代表,內(nèi)部有4KB ROM空間。其結(jié)構(gòu)典型、總線完善、SFR集中管理,并且具有豐富的位操作系統(tǒng)和面向控制功能的指令系統(tǒng)[11]。但是,MCS51系列單片機在實際應用中使用較少。方案二: 采用AT89C51芯片作為硬件核心,AT89系列機是ATMEL公司將先進的Flash存儲器技術和Intel 80C51單片機相結(jié)合的產(chǎn)物,是與MCS51系列兼容的Flash單片機系列。它既繼承了MCS51原有的功能,又擁有自己是獨特功能是目前應用廣泛的主流單片機。AT89C51是AT89系列的標準型單片機,是低功耗高性能的8位單片機,使用的最高晶振頻率為24MHz。采用Flash ROM,內(nèi)部具有4KB ROM 存儲空間,能于3V的超低壓工作,而且與MCS51系列單片機完全兼容,可反復進行系統(tǒng)實驗[12]。因此,采用該單片機作為主控制系統(tǒng)的芯片。方案一:采用LED數(shù)碼管動態(tài)掃描,LED數(shù)碼管價格適中,對于顯示數(shù)字合適,采用動態(tài)掃描法與單片機連接時,雖然占用的單片機口線少,但連線還需要花費一點時間,所以也不用此種作為顯示。方案二:采用點陣式數(shù)碼管顯示,點陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示。方案三:采用LCD液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字、圖形、符號顯示多樣,清晰可見。由于本系統(tǒng)主機顯示4個數(shù)據(jù),從機顯示2個數(shù)據(jù),選擇的液晶顯示器皆可,所以在此設計中采用LCD1602液晶顯示屏。 軟件編程語言的選擇方案一:采用匯編語言編寫,匯編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優(yōu)點是占用資源少、程序執(zhí)行效率高。但是匯編語言可讀性差,而且不同的CPU,其匯編語言可能有所差異,也不易移植。因此本系統(tǒng)軟件不采用匯編語言編寫。方案二:采用C語言編寫,C語言是一種結(jié)構(gòu)化的高級語言。其優(yōu)點是可讀性好,移植容易,是普遍使用的一種計算機語言。 用C語言來編寫目標系統(tǒng)軟件,會大大縮短開發(fā)周期,且明顯地增加軟件的可讀性,便于改進和擴充,從而研制出規(guī)模更大、性能更完備的系統(tǒng)。缺點是占用資源較多,執(zhí)行效率沒有匯編高。但本系統(tǒng)只進行單片機之間的數(shù)據(jù)傳送,不涉及復雜的數(shù)據(jù)處理,因此本系統(tǒng)軟件采用C語言編寫[8]。本系統(tǒng)是由一個上位機系統(tǒng)和三個下位機系統(tǒng)構(gòu)成,上位機系統(tǒng)是由AT89C51單片機串行通信最小系統(tǒng)、LCD1602顯示器、中斷發(fā)送信號按鈕和接收/發(fā)送選擇開關組成。三個下位機系統(tǒng)的構(gòu)成完全相同主要有AT89C51單片機串行通信最小系統(tǒng)、LCD1602顯示器和中斷數(shù)據(jù)加1按鈕組成。單片機最小系統(tǒng)是控制系統(tǒng)的核心,LCD1602液晶顯示器作為串行通信接收/發(fā)送數(shù)據(jù)以及單片機狀態(tài)的顯示。上位機系統(tǒng)的發(fā)送/接收狀態(tài)可以通過接收/發(fā)送選擇開關進行控制,處于發(fā)送數(shù)據(jù)狀態(tài)時,由中斷發(fā)送信號按鈕決定是否給從機發(fā)送數(shù)據(jù)。下位機系統(tǒng)始終處于串行中斷狀態(tài),是接收還是發(fā)送數(shù)據(jù)由上位機發(fā)送的控制命令決定。 串行通信系統(tǒng)框圖 本系統(tǒng)主要完成的功能是上位機和下位機的半雙工通信,可以通過接收/發(fā)送選擇開關來控制上位機是處于接收狀態(tài)還是發(fā)送狀態(tài)。當處于接收狀態(tài)時,主機循環(huán)接收下位機00、002三機的實時數(shù)據(jù),并進行顯示;當處于發(fā)送狀態(tài)時,主機將接收到的三機數(shù)據(jù)按從大到小的數(shù)據(jù)排列,然后依次發(fā)送到00、01和02機上,并進行顯示。從機的數(shù)據(jù)通過外部中斷輸入,數(shù)據(jù)從0開始每來一次中斷數(shù)據(jù)加1,加到9數(shù)據(jù)清0,再從0到9進行循環(huán)。本章介紹了系統(tǒng)的方案選擇,主要對單片機串行通信的相關知識進行了歸納整理和工作方式選擇,以及模塊化方案的比較與選擇,最后確定了串行通信控制系統(tǒng)要實現(xiàn)的功能并繪制了系統(tǒng)框圖。根據(jù)總體設計方案框圖,總系統(tǒng)由4個分系統(tǒng)組成,1個上位機系統(tǒng),3個下位機系統(tǒng)。硬件主要由AT89C51微控制器、LCD1602液晶顯示器、開關和按鈕組成。 本系統(tǒng)的兩大核心器件位AT89C51單片機和LCD液晶顯示器,AT89C51單片機完成系統(tǒng)的功能控制部分,液晶顯示器完成通信過程中數(shù)據(jù)的實時顯示。 AT89C51的主要特點AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS的 8位單片機,采用單一+5V電源供電,片內(nèi)含4KB的可反復擦寫的只讀程序存儲器(PEROM)和128B的隨機存取數(shù)據(jù)存儲器(ROM),器件采用ATMEL公司的高密度、非易失性存儲技術生產(chǎn),兼容標準MCS51指令系統(tǒng),片內(nèi)置通用8位中央處理器(CPU)和Flash存儲單元。功能強大AT89C51單片機可提供許多高性價比的應用場合,可靈活應用于各種控制領域。AT89C51的主要部件:(1)一個以ALU為中心的8位中央處理器,完成運算和控制功能。(2)128B的內(nèi)部數(shù)據(jù)存取存儲器(內(nèi)部RAM),其地址空范圍00H7FH。(3)21個特殊功能寄存器,離散分布于地址80HFFH中。(4)程序計數(shù)器PC,是獨立的16位專用寄存器,內(nèi)容為將要執(zhí)行的指令地址。(5)4KB Flash內(nèi)部程序存儲器(片內(nèi)ROM),用來存儲程序、原始數(shù)據(jù)、表格等。(6)4個8位可編程I/O口(P0、PP2和P3)。(7)一個UART串行通信口。(8)2個16位定時器/計數(shù)器。(9)5個中斷源,兩個中斷優(yōu)先級的中斷控制系統(tǒng)。(10)一個片內(nèi)振蕩器和時鐘電路。AT89C51的極限參數(shù)如表1所示:表1 AT89C51的極限參數(shù):工作溫度55℃到+125℃儲藏溫度65℃到+150℃任一引腳對地電壓+最高工作電壓直流輸出電流 ,其引腳說明如下:(1)電源引腳Vcc(40):接DC電源端,Vcc=+5V。GND(20):接地端。(2)P0P3引腳P0口:是一組8位漏極開路型雙向I/O,也即地址/數(shù)據(jù)總線復用口。作為輸出口用時,每位能以吸收電流的方式驅(qū)動8個TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。P1口:是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。 AT89C51雙列直插式引腳圖P2口:是一個帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。P3口:是一組帶有內(nèi)部上拉電阻的8位雙向I/O口,P3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。作輸入端時,被外部拉低的P3口將用上拉電阻輸出電流(IIL)。P3口
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1