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

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

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

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

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

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