




免費預(yù)覽已結(jié)束,剩余30頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
單片機與計算機串行通訊的設(shè)計本科畢業(yè)設(shè)計(論文)FINALPROJECT/THESISOFUNDERGRADUATE(2014屆)單片機與計算機串行通訊的設(shè)計Design of Serial Communication between Single-chip Microcomputer and Computer 學(xué)院工程科技學(xué)院專業(yè)電氣工程及其自動化學(xué)生姓名張華學(xué)號1027419136指導(dǎo)教師許維東完成日期2014年5月iii摘 要隨著科技水平的不斷提高,單片機控制無疑是人們追求的目標之一。可以說,單片機在我們生活中無處不在,單片機在各個領(lǐng)域都有極為廣泛的應(yīng)用,大如機器人控制,工業(yè)過程控制,辦公自動化領(lǐng)域,樓宇自動化,航天,航海等,小至家電,玩具,MP3等等。在功能比較復(fù)雜的控制系統(tǒng)中,通常以計算機為上位機,單片機為下位機,由單片機完成數(shù)據(jù)的采集及對裝置的控制,而由計算機完成各種復(fù)雜的數(shù)據(jù)處理。把這兩個重要過程連接起來,實現(xiàn)計算機和單片機交換信息,就是通訊的任務(wù)了。串行通信技術(shù)標準RS-232、RS-422與RS-485應(yīng)用很廣,如錄像機、計算機以及許多工業(yè)控制設(shè)備上都配備有RS232串行通信接口。而現(xiàn)代筆記本大多沒有RS232接口,USB接口是最廣泛的,我們選擇“串口轉(zhuǎn)USB”就可以為沒有串口的計算機提供快速的通道。本文將以51系列單片機的成員之一STC89c51為對象,設(shè)計一種方法實現(xiàn)單片機與計算機之間的串行通信。最后利用STC89c51單片機與計算機之間的通信程序?qū)崿F(xiàn)溫度顯示。計算機窗口顯示用VC編寫,單片機程序代碼用C語言編寫。關(guān)鍵詞:單片機, USB轉(zhuǎn)串口, STC89c51, VC , DS18b20, PL2303ABSTRACTWith the development of the information technology, the single-chip microcomputer control is undoubtedly one of goal in industrial control, intelligent instrument, electrical appliances and electronic field. Generally speaking, the single-chip microcomputer has extremely extensive application in each field, such as robot control, industrial process control, office automation, building automation, aerospace, navigation, home appliances, toys and MP3, etc.In the complex control systems, the computer is usually used as the upper machine, and the single-chip microcomputer is usually used as the lower machine. It means that single chip microcomputer does the data collection and control of the device, and the computer makes all kinds of complicated data processing. The tasks of the information exchange between the computer and single chip microcomputer is the communication tasks.The application of the RS 232, the RS - 422 and RS - 485 is very wide .Such as video, computers, and many industrial control devices are equipped with RS - 232 serial communication interface. But there is no RS232 interfaces in most modern laptops with several USB interfaces .So the USB-to-serial chip can provide a fast channel for the modern laptops with no RS232 interfaces.This paper will design a methed about serial communication between single-chip microcomputer and computer . Finally , I will use the method to realize the function of temperature display.The computer window is written by VC language and the microcomputer program code is written by C language.KEY WORDS: Single-chip Microcomputer , USB-to-Serial , STC89c51 , VC DS18b20 , PL2303目錄摘 要iABSTRACTi目錄i第一章 緒 論11.1設(shè)計背景11.2設(shè)計內(nèi)容1第2章 串行通信22.1通訊的基本概念22.2串行通信的分類22.3串行通信的工作模式32.4串行通信的位結(jié)構(gòu)42.5串行通信協(xié)議5第3章 開發(fā)工具及開發(fā)環(huán)境介紹63.1 單片機開發(fā)環(huán)境 Keil uVision63.1.1 Keil C51單片機軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)6 3.2顯示窗口開發(fā)環(huán)境 Microsoft Visual C+6.07第4章 總體通信方案設(shè)計84.1通信物理端口的選擇84.2 USB驅(qū)動軟件的選擇84.3 顯示窗口設(shè)計8第5章 硬件部分詳述95.1單片機的選擇95.1.1 單片機STC89c51主要特性95.1.2單片機STC89c51的引腳說明:95.2通信物理端口的選擇135.2.1 PL2303芯片介紹135.3USB轉(zhuǎn)串口通信電路圖155.3.1串口模塊介紹165.3.2 USB模塊介紹165.3.3 USB轉(zhuǎn)串口主芯片模塊介紹16第6章 軟件部分詳述176.1 計算機顯示窗口設(shè)計與調(diào)試176.1.1 顯示窗口功能176.1.2 新建對話框176.1.3計算機串口操作186.1.4 打開串口和關(guān)閉串口按鈕196.1.5 清空接收區(qū)按鈕206.1.6 發(fā)送按鈕和發(fā)送編輯框206.2 USB驅(qū)動軟件選擇216.3 單片機通信程序設(shè)計與調(diào)試226.3.1單片機流程圖設(shè)計226.3.2單片機程序代碼設(shè)計226.3.3軟件調(diào)試24參考文獻26致 謝27i單片機與計算機串行通訊的設(shè)計第一章 緒 論1.1設(shè)計背景隨著人們生活水平的不斷提高,單片機控制無疑是人們追求的目標之一,它所給人帶來的方便也是不可否定的,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從單片機技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展??梢哉f,單片機在我們生活中無處不在。由于其可靠性,靈活性以及能完成簡單的控制任務(wù),單片機在各個領(lǐng)域都有極為廣泛的應(yīng)用,大如機器人控制,工業(yè)過程控制,辦公自動化領(lǐng)域,樓宇自動化,航天,航海等,小至家電,玩具,MP3等等。當一個個小的單片機個體組成大的網(wǎng)絡(luò),就成了現(xiàn)代化集中管理系統(tǒng)?,F(xiàn)代化集中管理需要對現(xiàn)場數(shù)據(jù)進行統(tǒng)計、分析、制表、打印、繪圖、報警等,同時,又要求對現(xiàn)場裝置進行實時控制,完成各種規(guī)定操作,達到集中管理的目的。加之單片機的計算能力有限,難以進行復(fù)雜的數(shù)據(jù)處理。因此在功能比較復(fù)雜的控制系統(tǒng)中,通常以計算機為上位機,單片機為下位機,由單片機完成數(shù)據(jù)的采集及對裝置的控制,而由計算機完成各種復(fù)雜的數(shù)據(jù)處理。把這兩個重要過程連接起來,實現(xiàn)計算機和單片機交換信息,就是通訊的任務(wù)了。串行通信只需要少數(shù)幾條線就可以在系統(tǒng)間交換信息,特別適用于上位機與下位機之間實現(xiàn)遠距離通信。串行通信技術(shù)標準RS-232、RS-422與RS-485應(yīng)用很廣,如錄像機、計算機以及許多工業(yè)控制設(shè)備上都配備有RS232串行通信接口。而現(xiàn)代筆記本大多沒有RS232接口,USB接口是最廣泛的,如果能“串口轉(zhuǎn)USB”為沒有串口的計算機提供快速的通道,便是極好的!1.2設(shè)計內(nèi)容本文將以51系列單片機的成員之一STC89c51為研究對象,設(shè)計一種方法實現(xiàn)單片機與計算機之間的串行通信。如何把通用的USB口作為通信物理端口?如何編寫程序使單片機發(fā)送數(shù)據(jù)?單片機又如何接收計算機發(fā)送的指令?計算機窗口如何顯示傳來的數(shù)據(jù)?等等這些問題將在本文中得到解決。最后,本文將利用計算機與STC89c51單片機之間的通信程序?qū)崿F(xiàn)溫度顯示。第2章 串行通信2.1通訊的基本概念在實際工作中,計算機的CPU與外界設(shè)備之間常常進行信息交換,一臺計算機與其他計算機之間也往往要交換信息,所有這些信息交換均可稱為通信。1通信方式有兩種:并行通信和串行通信。1、并行通信:并行通信是指字符編碼的各位(比特)同時傳輸。它有以下幾個特點:(1)傳輸速度快:一位(比特)時間內(nèi)可傳輸一個字符;(2)通信成本高:每位傳輸要求一個單獨的信道支持;因此如果一個字符包含8個二進制位,則并行傳輸要求8個獨立的信道的支持;圖2.1 并行通信(3)不支持長距離傳輸:由于信道之間的電容感應(yīng),遠距離傳輸時,可靠性較低。并行通信傳輸中有多個數(shù)據(jù)位,同時在兩個設(shè)備之間傳輸。發(fā)送設(shè)備將這些數(shù)據(jù)位通過對應(yīng)的數(shù)據(jù)線傳送給接收設(shè)備,還可附加一位數(shù)據(jù)校驗位。接收設(shè)備可同時接收到這些數(shù)據(jù),不需要做任何變換就可直接使用。并行方式主要用于近距離通信。計算機內(nèi)的總線結(jié)構(gòu)就是并行通信的例子。這種方法的優(yōu)點是傳輸速度快,處理簡單。2、串行通信:串行通信是指將組成字符的各位串行地發(fā)往線路。主要特點有:(1)傳輸速度較低,一次一位;(2)通信成本也較低,只需一個信道;(3)支持長距離傳輸,目前計算機網(wǎng)絡(luò)中所用的傳輸方式均為串行傳輸。圖2.2 串行通信串行數(shù)據(jù)傳輸時,數(shù)據(jù)是一位一位地在通信線上傳輸?shù)?,先由具有幾位總線的計算機內(nèi)的發(fā)送設(shè)備,將幾位并行數(shù)據(jù)經(jīng)并-串轉(zhuǎn)換硬件轉(zhuǎn)換成串行方式,再逐位經(jīng)傳輸線到達接收站的設(shè)備中,并在接收端將數(shù)據(jù)從串行方式重新轉(zhuǎn)換成并行方式,以供接收方使用。串行數(shù)據(jù)傳輸?shù)乃俣纫炔⑿袀鬏斅枚啵珜τ诟采w面極其廣闊的公用電話系統(tǒng)來說具有更大的現(xiàn)實意義。2.2串行通信的分類串行通信有兩種傳輸方式:1、同步通信;2、異步通信。1(1)同步通信同步通信是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳送一幀信息。這里的信息幀與異步通信中的字符幀不同,通常含有若干個數(shù)據(jù)字符。采用同步通信時,將許多字符組成一個信息組,這樣,字符可以一個接一個地傳輸,但是,在每組信息(通常稱為幀)的開始要加上同步字符,在沒有信息要傳輸時,要填上空字符,因為同步傳輸不允許有間隙。在同步傳輸過程中,一個字符可以對應(yīng)58位。當然,對同一個傳輸過程,所有字符對應(yīng)同樣的數(shù)位,比如說n位。這樣,傳輸時,按每n位劃分為一個時間片,發(fā)送端在一個時間片中發(fā)送一個字符,接收端則在一個時間片中接收一個字符。同步傳輸時,一個信息幀中包含許多字符,每個信息幀用同步字符作為開始,一般將同步字符和空字符用同一個代碼。在整個系統(tǒng)中,由一個統(tǒng)一的時鐘控制發(fā)送端的發(fā)送和空字符用同一個代碼。接收端當然是應(yīng)該能識別同步字符的,當檢測到有一串數(shù)位和同步字符相匹配時,就認為開始一個信息幀,于是,把此后的數(shù)位作為實際傳輸信息來處理。(2)異步通信相較于同步通信,異步通信在日常生活中更為常見,它可以進行雙向通訊。在異步通訊中,時鐘頻率不要求完全同步,根據(jù)設(shè)備不同可以有一個相對誤差,這就大大降低了成本。異步通信主要采用一個字符或幀組成一個數(shù)據(jù)單位的方式進行通訊,各個數(shù)據(jù)之間不需要連續(xù)。發(fā)送端逐個發(fā)送數(shù)據(jù),接收端逐個接受。每次發(fā)送開始時由起始位對時鐘進行同步,發(fā)送數(shù)據(jù)位的最大長度與時鐘誤差有關(guān),時鐘間的誤差越小,允許的發(fā)送數(shù)據(jù)長度越長。異步通訊中幀的格式通常是1位起始位,7位(或8位)數(shù)據(jù)位,1位奇偶校驗位,2位停止位。2.3串行通信的工作模式串行數(shù)據(jù)通信的方向性結(jié)構(gòu)有三種,即單工、半雙工和全雙工。1單工:單工中數(shù)據(jù)流方向是固定的,只能進行單向通訊。圖2.3 單工半雙工:圖2.4:半雙工在半雙工中,通訊線路配置與單工是相同的,主要的不同在于兩端各有一對發(fā)送和接收器,在這種模式下,該線路可以分時段進行雙向通訊,但是不能同時發(fā)送接收數(shù)據(jù)。其中發(fā)送端與接收端的控制信號主要有兩種方式進行協(xié)調(diào),一是添加一根控制線,來配置一邊是發(fā)送端,一邊是接收端。另一種方式就是控制信號直接在串行通訊中傳送,以軟件的方式實現(xiàn)對雙方發(fā)送接收狀態(tài)的協(xié)調(diào)。但是由于半雙工形式中雙方狀態(tài)的配置問題,導(dǎo)致數(shù)據(jù)傳送效率較低。全雙工:圖2.5:全雙工全雙工形式中,將兩邊發(fā)送端、接受端和通訊線路全部獨立,達到互不干擾的效果。其結(jié)構(gòu)相當于配置了一對方向不同的單工。全雙工能夠在同一時刻同時進行數(shù)據(jù)的發(fā)送和接收,有較高的數(shù)據(jù)傳送效率。2.4串行通信的位結(jié)構(gòu)串行通信是以字節(jié)為單位,按高低位順序,一位一位將數(shù)據(jù)發(fā)送出去的,而接收端也要以相同的方式把位數(shù)據(jù)再次組合成字節(jié)。因此,在串行通信傳輸過程中,發(fā)送端與接受端必須以相對應(yīng)的方式對數(shù)據(jù)進行發(fā)送和接受,否則無法獲取正確的數(shù)據(jù)。(1)速率比特率:比特率在數(shù)字信道中,比特率是數(shù)字信號的傳輸速率,它用單位時間內(nèi)傳輸?shù)亩M制代碼的有效位(bit)數(shù)來表示,其單位為每秒比特數(shù)bit/s(bps)、每秒千比特數(shù)(Kbps)或每秒兆比特數(shù)(Mbps)來表示。比特率通常與傳輸距離成反比,高比特率通常只用于兩個近距離設(shè)備的數(shù)據(jù)傳輸。波特率:這是一個與比特率相關(guān)的物理量,其本質(zhì)與比特率相同,它是對信號傳輸速率的一種度量,通常以“波特”(baud)為單位。波特率有時候會同比特率混淆,實際上后者是對信息傳輸速率(傳信率)的度量。波特率可以被理解為單位時間內(nèi)傳輸碼元符號的個數(shù)(傳符號率),通過不同的調(diào)制方法可以在一個碼元上負載多個比特信息。波特率與比特率的關(guān)系為:比特率=波特率*單個調(diào)制狀態(tài)對應(yīng)的二進制位數(shù)。(2)位結(jié)構(gòu):圖2.6 位結(jié)構(gòu)(*為可選擇位)串行通訊數(shù)據(jù)有特定的格式,便于接收端還原數(shù)據(jù)。串行通訊端口在不傳輸數(shù)據(jù)時為高電平,當需要傳輸數(shù)據(jù)時,首先會傳輸一個低電平作為起始位(Start-bit),然后開始傳輸數(shù)據(jù)。跟在起始位之后的是7-8位的數(shù)據(jù)位,數(shù)據(jù)位根據(jù)使用ASCII碼(7位)或者擴展的ASCII碼(8位)來決定。之后可選擇性的使用奇偶效驗位。有四種效驗方式:偶、奇、高和低。對于偶和奇校驗的情況,串口會設(shè)置校驗位(數(shù)據(jù)位后面的一位),用一個值確保傳輸?shù)臄?shù)據(jù)有偶個或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那么對于偶校驗,校驗位為0,保證邏輯高的位數(shù)是偶數(shù)個。如果是奇校驗,校驗位位1,這樣就有3個邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡單置位邏輯高或者邏輯低校驗。這樣使得接收設(shè)備能夠知道一個位的狀態(tài),有機會判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步。最后由停止位作為一幀數(shù)據(jù)的結(jié)束,停止位可以由1,1.5或者兩位構(gòu)成,由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設(shè)備有其自己的時鐘,很可能在通信中兩臺設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計算機校正時鐘同步的機會。適用于停止位的位數(shù)越多,不同時鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時也越慢。一個完整的數(shù)據(jù)幀,由以上數(shù)據(jù)位構(gòu)成。當比特率為1200b/s時,每個信息位的時間寬度為 1/1200833s。2.5串行通信協(xié)議通信協(xié)議是對數(shù)據(jù)傳送方式的規(guī)定,包括數(shù)據(jù)格式的定義和數(shù)據(jù)位定義等。通信雙方必須遵守統(tǒng)一的通信協(xié)議。異步串行通信協(xié)議包括起始位、數(shù)據(jù)位、奇偶校驗位、停止位、波特率設(shè)置等。要想使通信雙方能夠正確交換信息和數(shù)據(jù),在協(xié)議中對什么時候開始通信,什么時候結(jié)束通信,何時交換信息等等都必須做出明確的規(guī)定。只有雙方遵守這些規(guī)定,才能順利地進行通信。第3章 開發(fā)工具及開發(fā)環(huán)境介紹3.1 單片機開發(fā)環(huán)境 Keil uVision 單片機的程序設(shè)計采用C語言,開發(fā)環(huán)境是KeiluVision。Keil公司成立于1986年,Keil公司的uVision是把程序編輯、編譯、鏈接和仿真等模式打包成集成開發(fā)環(huán)境,uVision還包含項目管理和調(diào)試器等非常有用功能,界面如圖3.1:圖3.1 Keil uVision4開發(fā)界面uVision4是一款可用于多種8051MCU的集成開發(fā)環(huán)境(IDE),該IDE同時也是PK51及其它開發(fā)套件的一個重要組件。除增加了源代碼、功能導(dǎo)航器、模板編輯以及改進的搜索功能外,uVision3還提供了一個配置向?qū)Чδ埽铀倭藛哟a和配置文件的生成。此外其內(nèi)置的仿真器可模擬目標MCU,包括指令集、片上外圍設(shè)備及外部信號等。uVision3提供邏輯分析器,可監(jiān)控基于MCUI/O引腳和外設(shè)狀態(tài)變化下的程序變量。2uVision4提供對多種最新的8051類微處理器的支持,包括Analog-devices的ADuC83x和ADuC84x,以及Infineon的XC866等。3.1.1 Keil C51單片機軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu)C51工具包的整體結(jié)構(gòu),uVision是C51 for Windows的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標準的Hex文件,以供調(diào)試器dScope51或tScope51使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如EPROM中。3.1.2 KeiluVision C語言開發(fā)的優(yōu)勢(1)C語言優(yōu)勢:1)不同函數(shù)的數(shù)據(jù)實行覆蓋,有效利用片上有限的RAM空間。2)程序具有堅固性:數(shù)據(jù)被破壞是導(dǎo)致程序運行異常的重要因素。C語言對數(shù)據(jù)進行了許多專業(yè)性的處理,避免了運行中間非異步的破壞。3)C語言提供復(fù)雜的數(shù)據(jù)類型(數(shù)組、結(jié)構(gòu)、聯(lián)合、枚舉、指針等),極大地增強了程序處理能力和靈活性。4)提供auto、static、const等存儲類型和專門針對8051單片機的data、idata、pdata、xdata、code等存儲類型,自動為變量合理地分配地址。5)提供small、compact、large等編譯模式,以適應(yīng)片上存儲器的大小。6)中斷服務(wù)程序的現(xiàn)場保護和恢復(fù),中斷向量表的填寫,是直接與單片機相關(guān)的,都由C編譯器代辦。7)提供常用的標準函數(shù)庫,以供用戶直接使用。8)頭文件中定義宏、說明復(fù)雜數(shù)據(jù)類型和函數(shù)原型,有利于程序的移植和支持單片機的系列化產(chǎn)品的開發(fā)。9)有嚴格的句法檢查,錯誤很少,可容易地在高級語言的水平上迅速地被排掉。10)可方便地接受多種實用程序的服務(wù):如片上資源的初始化有專門的實用程序自動生成;再如,有實時多任務(wù)操作系統(tǒng)可調(diào)度多道任務(wù),簡化用戶編程,提高運行的安全性等等。(2)Keil開發(fā)優(yōu)勢1)高效Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。2)用戶友好與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。KeilC51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。3.2顯示窗口開發(fā)環(huán)境 Microsoft Visual C+6.0Microsoft VisualC+系列產(chǎn)品是微軟公司推出的一款優(yōu)秀的C+集成開發(fā)環(huán)境,其產(chǎn)品定位為Windows95/98、NT、2000系列Win32系統(tǒng)程序開發(fā),由于其良好的界面和可操作性,被廣泛應(yīng)用。由于2000年以后,微軟全面轉(zhuǎn)向.NET平臺,VisualC+6.0成為支持標準C/C+規(guī)范的最后版本。3Visual C+6.0是計算機二級考試科目的集成開發(fā)環(huán)境,大家應(yīng)該很熟悉。第4章 總體通信方案設(shè)計4.1通信物理端口的選擇現(xiàn)代筆記本大多沒有RS232接口,USB接口是最廣泛的,我們選擇“串口轉(zhuǎn)USB”就可以為沒有串口的計算機提供快速的通道。設(shè)計中選擇PL2303芯片作為USB/RS232雙向轉(zhuǎn)換器,一方面從計算機接收USB數(shù)據(jù)并將其轉(zhuǎn)換為RS232信息流格式發(fā)送給單片機;另一方面從RS232單片機接收數(shù)據(jù)轉(zhuǎn)換為USB數(shù)據(jù)格式傳送回計算機。這些工作全部由該器件自動完成,開發(fā)者無需考慮固件設(shè)計.4.2 USB驅(qū)動軟件的選擇在硬件上串口已經(jīng)轉(zhuǎn)換成USB后,計算機上要安裝USB驅(qū)動程序才能識別該設(shè)備。Prolific 公司的PL2303 USB-to-Serial驅(qū)動是該公司針對PL2303芯片開發(fā)的,所有我選擇的是該驅(qū)動。用戶根據(jù)自己的系統(tǒng)選擇安裝, xp 驅(qū)動還是 win7 驅(qū)動。4.3 顯示窗口設(shè)計本設(shè)計采用VC6.0+來實現(xiàn)編程,計算機與單片機進行通信的程序編寫可用VB、VC等軟件。VC6.0+是一種功能強大的面向?qū)ο蟮腤indows編程開發(fā)平臺。VC6.0的優(yōu)點是界面簡潔,占用資源少,操作方便。所以本設(shè)計采用VC作為串口編程工具。所以總體通信方案是溫度值由單片機采集出來,然后單片機再將采集出的溫度數(shù)據(jù)處理后,通過PL2303發(fā)送給計算機在窗口顯示出來,同樣計算機也可以通過PL2303發(fā)送指令給單片機。計算機STC89c5111PL2303圖4.1總體設(shè)計方案流程圖第5章 硬件部分詳述5.1單片機的選擇本設(shè)計采用的是STC89c51單片機,STC89c51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。它是一種高效微控制器,因為它更經(jīng)濟實惠,用起來靈活方便,所以選擇STC89c51單片機。 5.1.1 單片機STC89c51主要特性4K字節(jié)可編程flashROM1288位內(nèi)部RAM 32可編程I/O線 兩個16位定時器/計數(shù)器 5個中斷源 5.1.2單片機STC89c51的引腳說明: 圖5.1 STC89C51的引腳排列引腳描述:VCC:電源電壓 GND:地P0口:P0口是一組8位漏極開路雙向I/O口,即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口時,每一個管腳都能夠驅(qū)動8個TTL電路。當“1”被寫入P0口時,每個管腳都能夠作為高阻抗輸入端。P0口還能夠在訪問外部數(shù)據(jù)存儲器或程序存儲器時,轉(zhuǎn)換地址和數(shù)據(jù)總線復(fù)用,并在這時激活內(nèi)部的上拉電阻。P0口在閃爍編程時,P0口接收指令,在程序校驗時,輸出指令,需要接電阻。P1口:P1口一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動4個TTL電路。對端口寫“1”,通過內(nèi)部的電阻把端口拉到高電平,此時可作為輸入口。因為內(nèi)部有電阻,某個引腳被外部信號拉低時輸出一個電流。閃爍編程時和程序校驗時,P1口接收低8位地址。P2口:P2口是一個內(nèi)部帶有上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動4個TTL電路。對端口寫“1”,通過內(nèi)部的電阻把端口拉到高電平,此時,可作為輸入口。因為內(nèi)部有電阻,某個引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器時,P2口線上的內(nèi)容在整個運行期間不變。閃爍編程或校驗時,P2口接收高位地址和其它控制信號。P3口:P3口是一組帶有內(nèi)部電阻的8位雙向I/O口,P3口輸出緩沖故可驅(qū)動4個TTL電路。對P3口寫如“1”時,它們被內(nèi)部電阻拉到高電平并可作為輸入端時,被外部拉低的P3口將用電阻輸出電流。P3口除了作為一般的I/O口外,更重要的用途是它的第二功能,如下表所示表5.1 P3口第二功能P3.2INT0P3.3INT1P3.4T0P3.5T1P3.6WRP3.7RD P3口還接收一些用于閃爍存儲器編程和程序校驗的控制信號。RST:復(fù)位輸入。當震蕩器工作時,RET引腳出現(xiàn)兩個機器周期以上的高電平將使單片機復(fù)位。ALE/:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE以時鐘震蕩頻率的1/16輸出固定的正脈沖信號,因此它可對輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖時,閃爍存儲器編程時,這個引腳還用于輸入編程脈沖。如果必要,可對特殊寄存器區(qū)中的8EH單元的D0位置禁止ALE操作。這個位置后只有一條MOVX和MOVC指令A(yù)LE才會被應(yīng)用。此外,這個引腳會微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE無效。PSEN:程序儲存允許輸出是外部程序存儲器的讀選通信號,當STC89c51由外部程序存儲器讀取指令時,每個機器周期兩次PSEN 有效,即輸出兩個脈沖。在此期間,當訪問外部數(shù)據(jù)存儲器時,這兩次有效的PSEN 信號不出現(xiàn)。EA/VPP:外部訪問允許。欲使中央處理器僅訪問外部程序存儲器,EA端必須保持低電平。需要注意的是:如果加密位LBI被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平,CPU則執(zhí)行內(nèi)部程序存儲器中的指令。閃爍存儲器編程時,該引腳加上+12V的編程允許電壓VPP,當然這必須是該器件是使用12V編程電壓VPP。XTAL1:震蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。XTAL2:震蕩器反相放大器的輸出端。時鐘震蕩器:STC89c51中有一個用于構(gòu)成內(nèi)部震蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自然震蕩器。 外接石英晶體及電容C1,C2接在放大器的反饋回路中構(gòu)成并聯(lián)震蕩電路。對外接電容C1,C2雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響震蕩頻率的高低、震蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30PF10PF,而如果使用陶瓷振蕩器建議選擇40PF10PF。用戶也可以采用外部時鐘。采用外部時鐘的電路如圖示。這種情況下,外部時鐘脈沖接到XTAL1端,即內(nèi)部時鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應(yīng)符合產(chǎn)品技術(shù)條件的要求。圖5.2內(nèi)部振蕩電路 圖5.3閑散節(jié)電模式STC89c51有兩種可用軟件編程的省電模式,它們是閑散模式和掉電工作模式。這兩種方式是控制專用寄存器計算機ON中的PD和IDL位來實現(xiàn)的。PD是掉電模式,當PD=1時,激活掉電工作模式,單片機進入掉電工作狀態(tài)。IDL是閑散等待方式,當IDL=1,激活閑散工作狀態(tài),單片機進入睡眠狀態(tài)。如需要同時進入兩種工作模式,即PD和IDL同時為1,則先激活掉電模式。在閑散工作模式狀態(tài),中央處理器CPU保持睡眠狀態(tài),而所有片內(nèi)的外設(shè)仍保持激活狀態(tài),這種方式由軟件產(chǎn)生。此時,片內(nèi)隨機存取數(shù)據(jù)存儲器和所有特殊功能寄存器的內(nèi)容保持不變。閑散模式可由任何允許的中斷請求或硬件復(fù)位終止。終止閑散工作模式的方法有兩種,一是任何一條被允許中斷的事件被激活,IDL被硬件清除,即刻終止閑散工作模式。程序會首先影響中斷,進入中斷服務(wù)程序,執(zhí)行完中斷服務(wù)程序,并緊隨RETI指令后,下一條要執(zhí)行的指令就是使單片機進入閑散工作模式,那條指令后面的一條指令。二是通過硬件復(fù)位也可將閑散工作模式終止。需要注意的是:當由硬件復(fù)位來終止閑散工作模式時,中央處理器CPU通常是從激活空閑模式那條指令的下一條開始繼續(xù)執(zhí)行程序的,要完成內(nèi)部復(fù)位操作,硬件復(fù)位脈沖要保持兩個機器周期有效,在這種情況下,內(nèi)部禁止中央處理器CPU訪問片內(nèi)RAM,而允許訪問其他端口,為了避免可能對端口產(chǎn)生的意外寫入:激活閑散模式的那條指令后面的一條指令不應(yīng)是一條對端口或外部存儲器的寫入指令。掉電模式:在掉電模式下,振蕩器停止工作,進入掉電模式的指令是最后一條被執(zhí)行的指令,片內(nèi)RAM和特殊功能寄存器的內(nèi)容在中指掉電模式前被凍結(jié)。退出掉電模式的唯一方法是硬件復(fù)位,復(fù)位后將從新定義全部特殊功能寄存器但不改變RAM中的內(nèi)容,在VCC恢復(fù)到正常工作電平前,復(fù)位應(yīng)無效切必須保持一定時間以使振蕩器從新啟動并穩(wěn)定工作。表5.2閑散和掉電模式外部引腳狀態(tài)模式程序存儲器ALEP0P1P2P3閑散模式內(nèi)部11數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)閑散模式內(nèi)部11浮空數(shù)據(jù)地址數(shù)據(jù)掉電模式外部00數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)掉電模式外部00數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)程序存儲器的加密STC89c51可使用對芯片上的三個加密位LB1,LB2,LB3進行編程(P)或不編程(U)得到如下表所示的功能:表5.3程序存儲器的加密程序加密位保護類型1UUU沒有程序保護功能2PUU禁止從外部程序存儲器中執(zhí)行MOVC指令讀取內(nèi)部程序存儲器的內(nèi)容3PPU除上表功能外,還禁止程序校驗4PPP除以上功能外,同時禁止外部執(zhí)行當LB1被編程時,在復(fù)位期間,EA端的電平被鎖存,如果單片機上電后一直沒有復(fù)位,鎖存起來的初始值是一個不確定數(shù),這個不確定數(shù)會一直保存到真正復(fù)位位置。為了使單片機正常工作,被鎖存的EA電平與這個引腳當前輯電平一致。機密位只能通過整片擦除的方法清除。5.2通信物理端口的選擇現(xiàn)代筆記本大多沒有RS232接口,USB接口是最廣泛的,我們選擇“串口轉(zhuǎn)USB”就可以為沒有串口的計算機提供快速的通道。PL2303是Prolific公司生產(chǎn)的一種高度集成的RS232-USB接口轉(zhuǎn)換器,可提供一個RS232全雙工異步串行通信裝置與USB功能接口便利聯(lián)接的解決方案?;谝韵庐a(chǎn)品特性,選擇PL2303作為RS232-USB接口轉(zhuǎn)換器。1.完全符合USB規(guī)范2.0(全速兼容)2.支持RS232這樣的串行接口3.提供支持Windows和MacOS,Linux和WinCE的驅(qū)動程序4.實現(xiàn)電平轉(zhuǎn)換。計算機通過PL2303芯片的電平就是單片機上用的TTL電平,所以,不要再接MAX232芯片了。5.2.1 PL2303芯片介紹圖5.4PL2303芯片管腳 PL2303是Prolific公司生產(chǎn)的一種高度集成的RS232-USB接口轉(zhuǎn)換器,可提供一個RS232全雙工異步串行通信裝置與USB功能接口便利聯(lián)接的解決方案。該器件內(nèi)置USB功能控制器、USB收發(fā)器、振蕩器和帶有全部調(diào)制解調(diào)器控制信號的UART,只需外接幾只電容就可實現(xiàn)USB信號與RS232信號的轉(zhuǎn)換,能夠方便嵌入到各種設(shè)備,所以該款芯片很受歡迎;該器件作為USB/RS232雙向轉(zhuǎn)換器,一方面從主機接收USB數(shù)據(jù)并將其轉(zhuǎn)換為RS232信息流格式發(fā)送給外設(shè);另一方面從RS232外設(shè)接收數(shù)據(jù)轉(zhuǎn)換為USB數(shù)據(jù)格式傳送回主機。這些工作全部由器件自動完成,開發(fā)者無需考慮固件設(shè)計.表5.4 對應(yīng)引腳描述引腳名字類型引 腳 描 述1TXD輸出數(shù)據(jù)輸出到串口;2DTR_N輸出數(shù)據(jù)終端準備好,低電平有效;3RST_N輸出發(fā)送請求,低電平有效;4VDD_325電源RS232 的電源,為串行端口信號的電源引腳;當串口為 3.3V,這應(yīng)該是 3.3V;當串行端口是 2.5V,這應(yīng)該是 2.5V;5RXD輸入串口數(shù)據(jù)輸入;6RI_N輸入/輸出串行端口(環(huán)指示器);7GND電源接地;8NC無連接9DSR_N輸入/輸出串行端口(數(shù)據(jù)集就緒)10DCD_N輸入/輸出串行端口(數(shù)據(jù)載波檢測)11CTS_N輸入/輸出串行端口(清除發(fā)送)12SHTD_N輸出控制 RS232 收發(fā)器關(guān)機13EE_CLK輸入/輸出串行 EEPROM 時鐘14EE_DATA輸入/輸出串行 EEPROM 數(shù)據(jù)15DP輸入/輸出USB 端口 D+信號16DM輸入/輸出USB 端口 D-信號17VO_33常規(guī) 3.3V 電源輸出18GND接地19NC無連接20VDD_5電源USB 端口的 5V 電壓電源21GND接地22GP0輸入/輸出通用 I/O 引腳 023GP1輸入/輸出通用 I/O 引腳 124NC無連接25GND_A模擬地鎖相環(huán)26PLL_TEST輸入PLL 鎖相環(huán)測試模式控制27OSC1輸入晶體振蕩器輸入28OSC2輸入/輸出晶體振蕩器輸出5.3USB轉(zhuǎn)串口通信電路圖 圖5.5 USB轉(zhuǎn)串口全雙工通信電路圖5.3.1串口模塊介紹MCS-51單片機有一個全雙工的串行通訊口UART。利用其RXD和TXD與外界進行通信,其內(nèi)部有2個物理上完全獨立的接收、發(fā)送緩沖器SBUF,可同時發(fā)送和接收數(shù)據(jù)。所以單片機和計算機之間可以方便地進行串口通訊。單片機串口有3條引線:TXD(發(fā)送數(shù)據(jù))、RXD(接收數(shù)據(jù))和GND(信號地)。5.3.2 USB模塊介紹USB接口部分電路如圖所示,主要由三部分組成,分別是USB接頭,USB供電和USB數(shù)據(jù)收發(fā)。41)USB接頭提供USB的物理接口,通過USB線與USB設(shè)備連接。2)USB供電整個USB轉(zhuǎn)串口線不需要外接電源,使用USB供電即可。3)USB數(shù)據(jù)收發(fā)DP引腳-USB端口D+信號;DM引腳-USB端口D-信號。 5.3.3 USB轉(zhuǎn)串口主芯片模塊介紹 USB轉(zhuǎn)串口主芯片模塊主要由三部分組成,分別是USB轉(zhuǎn)串口主芯片PL2303、PL2303工作晶振、和PL2303的外圍電路。第6章 軟件部分詳述6.1 計算機顯示窗口設(shè)計與調(diào)試本設(shè)計編程語言采用VC6.0+,計算機與單片機進行通信的程序編寫可用VB、VC等軟件。由于VB作為面向?qū)ο蟮木幊坦ぞ卟粔蛲耆时萔C低,提供的命令語言環(huán)境較弱,通過串口設(shè)備一次最多只能交換16B的數(shù)據(jù),對較大數(shù)據(jù)量的傳輸存在很大的局限性,很難實現(xiàn)較為復(fù)雜的數(shù)據(jù)處理,VC6.0+是一種功能強大的面向?qū)ο蟮腤indows編程開發(fā)平臺。VC6.0+的優(yōu)點是界面簡潔,占用資源少,操作方便5。所以本設(shè)計采用VC作為串口編程工具。6.1.1 顯示窗口功能本文對串口通信顯示窗口作了簡化,有5個常用功能:串口選擇、手動打開或關(guān)閉串口、發(fā)送框、接收框、清空接收區(qū)。未專門畫出用于設(shè)置波特率、校驗位、數(shù)據(jù)位等的按鈕。該窗口的發(fā)送區(qū)和接收區(qū)能實現(xiàn)下面的功能:計算機發(fā)送任意16進制字符給單片機,單片機返回當前的溫度值。6.1.2 新建對話框新建一個基于對話框的程序,全部選擇默認選項。得到如下的對話框。圖6.1 新創(chuàng)建的對話框去掉上面的所有的控件,向工程中添加入MSCOMM控件,添加變量為m_ctrlComm。再添加一個編輯框,作為接收框,使用類向?qū)砑幼兞繛閙_strRXData。同時,我們也給對話框添加上最小化按鈕(方法:右鍵對話框,屬性,樣式里勾選上最小化按鈕)。雙擊MSCOMM控件,添加入如下的代碼:void CFor51Dlg:OnOnCommMscomm1() / TODO: Add your control notification handler code hereVARIANT variant_inp; COleSafeArray safearray_inp; LONG len,k; BYTE rxdata2048; /設(shè)置BYTE數(shù)組 An 8-bit integerthat is not signed. CString strtemp; if(m_ctrlComm.GetCommEvent()=2) /事件值為2表示接收緩沖區(qū)內(nèi)有字符 /以下可以根據(jù)自己的通信協(xié)議加入處理代碼variant_inp=m_ctrlComm.GetInput(); /讀緩沖區(qū)safearray_inp=variant_inp; /VARIANT型變量轉(zhuǎn)換為ColeSafeArray型變量len=safearray_inp.GetOneDimSize(); /得到有效數(shù)據(jù)長度for(k=0;klen;k+)safearray_inp.GetElement(&k,rxdata+k);/轉(zhuǎn)換為BYTE型數(shù)組for(k=0;kEnableWindow(FALSE);/打開按鈕無效GetDlgItem(IDC_BUTTON2)-EnableWindow(TRU
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 任丘素質(zhì)拓展活動方案
- 企業(yè)學(xué)雷鋒活動方案
- 仿生設(shè)計活動方案
- 企業(yè)互助活動方案
- 企業(yè)黨內(nèi)活動方案
- 企業(yè)公益瑜伽活動方案
- 江西省贛州市章貢區(qū)2022-2023學(xué)年五年級下學(xué)期數(shù)學(xué)素質(zhì)評價試卷(含答案)
- 企業(yè)員工國慶活動方案
- 企業(yè)困難活動方案
- 企業(yè)安全培訓(xùn)活動方案
- 法人授權(quán)委托書深圳標準版
- 2025年新高考歷史預(yù)測模擬試卷山東卷(含答案解析)
- 智創(chuàng)上合-專利應(yīng)用與保護知到課后答案智慧樹章節(jié)測試答案2025年春青島工學(xué)院
- 2025年全國中小學(xué)??破罩R競賽題庫及答案(共80題)
- 商業(yè)模式創(chuàng)新的試題與答案
- 《愛護鳥類》參考課件
- 輸血科管理制度、程序性文件、SOP文件
- 《水泥混凝土橋面鋪裝及護欄機械化施工技術(shù)指南》
- 大學(xué)美育知到智慧樹章節(jié)測試課后答案2024年秋上海電機學(xué)院
- 雨傘的專業(yè)知識培訓(xùn)
- 船舶操縱性-第0章緒論課件
評論
0/150
提交評論