本次,我組所選項目名稱為:單片機同pc機間的串行通信
1.1選題背景
在各種單片機應(yīng)用系統(tǒng)的設(shè)計中,如智能儀器儀表、各類手持設(shè)備、GPS接收器等,常常遇到計算機與外界的信息交換,即通訊。通信的基本方式可分為并行通信與串行通信兩種。
目前,在許多單片機應(yīng)用系統(tǒng)中,上、下位機分工明確,作為下位機核心器件的單片機往往只負(fù)責(zé)數(shù)據(jù)的采集和通信,而上位機通常以基于圖形界面的Windows系統(tǒng)為操作平臺。
現(xiàn)階段這種應(yīng)用的核心便是數(shù)據(jù)通信,它包括單片機和上位機之間、客戶端和服務(wù)器之間以及客戶端和客戶端之間的通信,而在單片機和上位機之間的數(shù)據(jù)通信則是整個系統(tǒng)的基礎(chǔ)。單片機和PC的通信是通過單片機的串口和PC機之間的硬件連接實現(xiàn)。鑒于PC機具有強大的監(jiān)控和管理功能,單片機則具有快速以及容易控制的特點,在數(shù)據(jù)量不大、傳輸要求不高的情況下,一般都采用給PC機配置的RS-232標(biāo)準(zhǔn)串行接口COM1、COM2等相連接來實現(xiàn)應(yīng)用系統(tǒng)與PC機之間的數(shù)據(jù)交換。
現(xiàn)今我國工業(yè)迅速發(fā)展的情況下,對工業(yè)中的計算機控制提出了較高的要求。比如在常見的現(xiàn)場數(shù)據(jù)采集中,對各個采集點需要采集不同的數(shù)據(jù),比如溫度、濕度、壓力、照度,這就需要單片機對計算機發(fā)出的不同的指令做出不同的反應(yīng),并且返回相應(yīng)的采集到的數(shù)據(jù)。這就需要單片機和PC機進行雙向數(shù)據(jù)通信。這也是本設(shè)計的目標(biāo)效果!疽陨蠟閰⒖純(nèi)容,詳見附錄】
1.2選題要求
利用開發(fā)板編程實現(xiàn)單片機同PC機間的串行通信,要求:
1.單片機能夠通過鍵盤輸入數(shù)據(jù)并在數(shù)碼管上顯示;
2.根據(jù)PC機發(fā)送的指令,單片機向PC機發(fā)送相應(yīng)的數(shù)據(jù);
通過書本的學(xué)習(xí),掌握電子電路的工藝設(shè)計過程,了解單片機技術(shù)的基本組成與結(jié)構(gòu),通過對單片機技術(shù)電路的裝配過程,掌握單片機技術(shù)以及MCU的設(shè)計開發(fā)流程,掌握單片機技術(shù)硬件和軟件的設(shè)計能力,學(xué)習(xí)的單片機技術(shù)電路裝配工藝和正確的焊接方法,程序調(diào)試、下載及提高動手能力。掌握印刷電路板的設(shè)計、制作及檢驗。掌握單片機技術(shù)的綜合編程與開發(fā)、設(shè)計制造、調(diào)試仿真的能力。了解設(shè)計過程中的各個基本環(huán)節(jié),也為今后的實際應(yīng)用奠定基礎(chǔ)。
3.1系統(tǒng)的基本方案
本次設(shè)計通過使用一塊AT89C51單片機芯片實現(xiàn)與PC機之間的串行通信,首先利用可視化程序設(shè)計編制串口調(diào)試軟件,然后向串口發(fā)送“1”、“2”......“8”、“9”、“0”等字符,板子收到數(shù)據(jù)后通過數(shù)碼管顯示出來,同時會向PC機反饋顯示成功的信號。
3.2各模塊方案選擇
統(tǒng)一選擇STC89C51單片機,他是一種低功耗,高性能的CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得STC89C51位眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活,超有效的解決方案。

采用八段數(shù)碼管顯示,同PC端地址符合時,相應(yīng)發(fā)光二極管點亮。

本次課程設(shè)計中采用的是串行異步通信方式。
串行口工作方式選擇方式1。
波特率設(shè)置為9600b/s。
數(shù)據(jù)傳送方式選擇全雙工方式。
3.3單片機工作原理
通信的基本方式可分為并行通信與串行通信兩種。
并行通信:是將組成數(shù)據(jù)的各位同時傳送,并通過并行門(如P1口等)來實現(xiàn)。在并行通信中,數(shù)據(jù)傳送線的根數(shù)與傳送的數(shù)據(jù)位數(shù)相等,傳送數(shù)據(jù)速度快,但所占用的傳輸線位數(shù)多。因此,并行通信適合短距離通信。如圖2-1所示。
串行通信:是指數(shù)據(jù)一位一位地按順序傳送。串行通信通過串行口來實現(xiàn)。在全雙工的串行通信中,僅需要一根發(fā)送線和一根接收線,串行通信可大大節(jié)省傳送線路的成本,但數(shù)據(jù)傳送速度慢。由于其所需電纜線少,接線簡單,所以在較遠(yuǎn)距離傳輸中,得到了廣泛的運用。如圖3-2所示。
圖3-1 并行通信 圖3-2 串行通信

串行通信有同步通信和異步通信兩種基本方式。
(1)異步通信方式:數(shù)據(jù)通常是以字符(或字節(jié))為單位組成字符幀傳送的。發(fā)送方發(fā)送各個字符的間隔時間是不定的,收發(fā)雙方各用自己的時鐘源來控制發(fā)送和接收,這兩個時鐘源彼此獨立,互不同步。接收端是依靠字符幀格式來判斷發(fā)送端是何時開始發(fā)送及何時結(jié)束發(fā)送。平時,發(fā)送線為高電平(邏輯“1”),每當(dāng)接收端檢測到傳輸線上發(fā)送過來的低電平邏輯“0”(字符幀中起始位)時,就知道發(fā)送端已開始發(fā)送,每當(dāng)接收端接收到字符幀中的停止位時,就知道一幀字符信息己發(fā)送完畢。
(2)同步通信方式:是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳送一幀信息。這里的信息幀和異步通信中的字符幀不同,通常有若干個數(shù)據(jù)字符。同步字符幀由同步字符、數(shù)據(jù)字符和校驗字符三部分組成。同步字符位于幀結(jié)構(gòu)開頭,用于確認(rèn)數(shù)據(jù)字符的開始(接收端不斷對傳輸線采樣,并把采到的字符和雙方約定的同步字符比較,只有比較成功后才會把后面接收到的字符加以存儲);數(shù)據(jù)字符在同步字符之后,個數(shù)不受限制,由所需傳輸?shù)臄?shù)據(jù)塊長度決定;校驗字符有1~2個,位于幀結(jié)構(gòu)末尾,用于接收端對接收到的數(shù)據(jù)字符的正確性的校驗。
【以上為參考內(nèi)容,出處詳見附錄】
51單片機串行口有4種工作方式——方式0,方式1,方式2,方式3。
(1)方式0:設(shè)定SM0,SM1為00時,串行接口工作于方式0,在方式0下,RXD(P3.0)為數(shù)據(jù)輸入/輸出端,TXD(P3.1)為同步脈沖輸出端,發(fā)送或接收的數(shù)據(jù)為8位低位在前,高位在后,方式0的波特率固定為fosc/12,也就是每一機器周期傳送1位數(shù)據(jù),方式0可外接移位寄存器,將串行接口擴展為并行接口,也可外接同步輸入輸出設(shè)備。
(2)方式1:當(dāng)設(shè)定SM0,SM1為01時,串行接口工作于方式1,方式1為波特率可變的8位異步通信方式,由TXD發(fā)送,RXD接收。一幀數(shù)據(jù)為10位,1位起始位(低電平)8位數(shù)據(jù)位(低位在前)和1位停止位(高電平)。
方式1:
波特率=2SMOD*(定時器T1溢出率)/32 (1)
(3)方式2和方式3:當(dāng)設(shè)定SM0,SM1為10或11時,串行口工作于方式2或方式3,這兩種方式都是9位異步通信,僅波特率不同,適用于多機通信。在方式2或方式3下,數(shù)據(jù)由TXD發(fā)送,RXD接收,1幀數(shù)據(jù)為11位,1位起始位(低電平)8位數(shù)據(jù)位(低位在前)1位可編程位(第9位數(shù)據(jù))用作奇偶校驗或地址/數(shù)據(jù)選擇,1位停止位,與方式1相比多了一位可編程位,發(fā)送時,第9位數(shù)據(jù)為TB8,接收時,第9位數(shù)據(jù)送入RB8。方式2和方式3的區(qū)別只在于波特率不同。
方式2:
波特率=2SMOD*fosc/64 (2)
方式3:
波特率=2SMOD*(定時器T1溢出率)/32 (3)
【以上為參考內(nèi)容,出處詳見附錄】
在串行通信中,數(shù)據(jù)是在兩個站之間傳送的。按照數(shù)據(jù)傳送方向,串行通信可分為單工、半雙工和全雙工三種傳送方式。如圖2-4。
單工方式:通信線的一端接發(fā)送器,另一端接接收器,它們形成單向連接,只允許數(shù)據(jù)按照一個固定的方向傳送。數(shù)據(jù)只能單方向傳送。
半雙工方式:數(shù)據(jù)能夠?qū)崿F(xiàn)雙方向傳送,但任何時刻只能由其中的一方發(fā)送數(shù)據(jù),另一方接收數(shù)據(jù)。
全雙工方式:系統(tǒng)的每端都含有發(fā)送器和接收器,數(shù)據(jù)可以同時在兩個方向上傳送
【以上為參考內(nèi)容,出處詳見附錄】
4.2調(diào)試過程及結(jié)果
剛開始調(diào)試并不順利,雖然程序參照了書本上的內(nèi)容,但由于設(shè)計要求的不同和自己的疏忽,導(dǎo)致了多次單片機毫無反應(yīng)的結(jié)果,不過好在通過小組間的通力合作,對程序進行了從頭到尾的認(rèn)真排查,終于發(fā)現(xiàn)了在寫程序過程中犯的低級錯誤。并且由于上次試驗后忘記把跳線帽從P3.3和P3.4上拔下,也導(dǎo)致了排查時間的延長。好在最終終于讓單片機顯示了從PC端傳來的數(shù)據(jù)。
*調(diào)試過程相關(guān)圖片

通過本次單片機間串行通信實驗設(shè)計,使我對單片機有更加深刻的了解,明白了軟件與硬件的配合使用,懂得怎樣去調(diào)試程序以及電路,雖然在設(shè)計過程中遇到很多困難,但是經(jīng)過進一步查閱相關(guān)資料,進行反復(fù)排錯,問題才得以解決,總體上來說實現(xiàn)了單片機與PC機間串行通信,基本上完成了設(shè)計要求,通過本次設(shè)計也使得自己明白軟件與硬件相結(jié)合的重要性,二者缺一不可,所以在實現(xiàn)硬件連接的同時也要讀懂軟件所實現(xiàn)的功能。本設(shè)計介紹了一種單片機與PC機之間串行通信的設(shè)計方法,主要是對單片機與單片機之間串行通信的方式和重要的數(shù)據(jù)位說明,接著提出了可行的設(shè)計方案,詳細(xì)介紹了整個設(shè)計的工作原理及設(shè)計過程,同時驗證了方案的可行性。平時上課時老師教授的內(nèi)容也很重要,想要得到更多知識和能力,還需要自己在以后的學(xué)習(xí)中付出更多認(rèn)真和努力。
本次主要參考文獻為《MCS-51單片機技術(shù)項目驅(qū)動教程》。

單片機源程序如下:
單片機同pc機間的串行通信.docx
(342.44 KB, 下載次數(shù): 17)
| 歡迎光臨 (http://m.raoushi.com/bbs/) | Powered by Discuz! X3.1 |