




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
單片機(jī)與PC機(jī)串行通信系統(tǒng)設(shè)計(jì)解析單片機(jī)與PC機(jī)串行通信系統(tǒng)設(shè)計(jì)解析40/40單片機(jī)與PC機(jī)串行通信系統(tǒng)設(shè)計(jì)解析河南農(nóng)業(yè)大學(xué)本科生畢業(yè)論文(設(shè)計(jì)題目單片機(jī)與PC機(jī)串行通信系統(tǒng)設(shè)計(jì)學(xué)院機(jī)電工程學(xué)院專業(yè)班級(jí)電子信息工程07級(jí)3班學(xué)生姓名王衛(wèi)亮、高嵐指導(dǎo)教師胡建東撰寫日期:2011年5月17日大綱隨著計(jì)算機(jī)技術(shù)特別是單片微型機(jī)技術(shù)的發(fā)展,單片機(jī)被廣泛應(yīng)用在工業(yè)控制系統(tǒng)中。單片機(jī)擁有體積小、價(jià)格廉價(jià)、開發(fā)應(yīng)用方便、可應(yīng)用于惡劣工業(yè)環(huán)境的特點(diǎn),在分布式控制系統(tǒng)中多采用單片機(jī)進(jìn)行數(shù)據(jù)采集和現(xiàn)場控制。由于單片機(jī)的計(jì)算能力有限,難以進(jìn)行復(fù)雜的數(shù)據(jù)辦理,因此在功能復(fù)雜的控制系統(tǒng)中常采上位機(jī)下位機(jī)系統(tǒng),單片機(jī)用作下位機(jī)進(jìn)行數(shù)據(jù)采集和設(shè)備控制,而PC機(jī)用做上位機(jī)進(jìn)行復(fù)雜的數(shù)據(jù)辦理和對(duì)單片機(jī)的控制。因此如何實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的通信擁有重要的現(xiàn)實(shí)意義。論文詳細(xì)介紹了單片機(jī)與PC機(jī)通信的軟硬件實(shí)現(xiàn)。在硬件設(shè)計(jì)中,單片機(jī)系統(tǒng)與PC機(jī)系統(tǒng)經(jīng)過RS-232串行通信端口進(jìn)行互連,單片機(jī)系統(tǒng)將由PC機(jī)傳輸過來的數(shù)據(jù)信息動(dòng)向的顯示在LED數(shù)碼管上。在軟件設(shè)計(jì)中,采用VisualBasic6.0中的MSComm通信控件設(shè)計(jì)PC上的串口通信程序,在單片機(jī)編程上采用湊近硬件系統(tǒng)的匯編語言編寫通信程序及數(shù)據(jù)辦理程序。要點(diǎn)詞:單片機(jī);串行通信;VB6.0;RS-232;LED數(shù)碼管DesignofaserialCommunicationsystembetweenMCUandpersonalcomputerAbstractAlongwiththedevelopmentofcomputer,especiallythetechnologyofMCU,MCUarewidelyusedinthesystemofindustrycontrol.Smallsize,lowprice,theconvenienceofdevelopmentandapplicationandhighadaptabilityareitspeculiarities,respectiviely.Itisusuallyusedindistributedsystemtocollectdataandcontrolonthescene.Owingtothelimitofcalculation,itisdifficulttoprocesscomplexdata.Therefore,PClowerlevelcomputersystemisoftenappliedinfunctionallycomplexsystem.MCUcollectsdataandcontrolequipmentsasDownsidemachine,whilePCmakescomplexdataprocessingandthecontrolofMCU.SOhowtorealizethecommunicationbetweenPCandMCUispracticallymeaningful.TheessayintroducesthecommunicationbetweenPCandMCUrealizedbysoftandhardwareindetails.INdesignofhardware,MCUisconnectedwithPCbytheserialportofRS-232anddisplaythedatapassedbyPContheLEDdynamically.Indesignofsoftware,programofserialportaredesignedbyMSCommcommunicationcontrolinthelanguageofVisualBasic6.0,ontheotherhand,theprogramofcommunicationanddataprocessingareprogrammedbythelanguageofassembly,whichismoreclosetothehardsystemusedbytheMCU.KeyWords:MCU;SerialCommunication;VB6.0;RS-232;LED目錄1序言(11.1單片機(jī)與PC機(jī)串行通信研究背景(11.2單片機(jī)與PC機(jī)串行通信研究目的和意義(11.3論文研究內(nèi)容(12串口通信基礎(chǔ)理論(22.1兩種常用接口方式(22.1.1并行接口(22.1.2串行接口(22.2RS-232串行接口標(biāo)準(zhǔn)(22.3MSComm控件(32.3.1MSComm控件辦理通信的方式(32.3.2MSComm控件的主要屬性(43系統(tǒng)整體設(shè)計(jì)(53.1系統(tǒng)指標(biāo)設(shè)計(jì)(53.1.1通信協(xié)議設(shè)?(53.1.2系統(tǒng)功能設(shè)計(jì)(53.2整體方案設(shè)計(jì)(54硬件jiekoudianlu設(shè)計(jì)(64.1主要芯片(64.1.1AT89C51簡介(64.1.2單電源變換芯片MAX232(84.1.374LS245LED驅(qū)動(dòng)芯片(84.2LED顯示器(94.2.1LED顯示器工作原理(94.2.2LED顯示器接口(94.3系統(tǒng)設(shè)計(jì)(105軟件設(shè)計(jì)(115.1PC機(jī)程序設(shè)計(jì)(115.1.1應(yīng)用界面設(shè)計(jì)流程(115.1.2代碼實(shí)現(xiàn)(135.2單片機(jī)軟件設(shè)計(jì)(136仿真調(diào)試及結(jié)果解析(156.1Protues仿真軟件簡介(156.2仿真結(jié)果解析(156.2.1PC界面運(yùn)行結(jié)果(156.2.2單片仿真測試及結(jié)果解析(157結(jié)語(17參照文件(18致謝(19附錄1:PC機(jī)事件過程及編程(20附錄2:單片機(jī)源程序(23序言1.1單片機(jī)與PC機(jī)串行通信研究背景近來幾年來,隨著科學(xué)技術(shù)的發(fā)展,PC機(jī)以其優(yōu)越的性價(jià)比和豐富的軟件資源成為計(jì)算機(jī)應(yīng)用的主流機(jī)種。在工業(yè)控制中單片機(jī)獲取廣泛的應(yīng)用,現(xiàn)代化集中管理需要對(duì)現(xiàn)場數(shù)據(jù)進(jìn)行統(tǒng)計(jì)、解析、制表、打印、繪圖、報(bào)警等,同時(shí),又要求對(duì)現(xiàn)場裝置進(jìn)行實(shí)時(shí)控制,完成各種規(guī)定操作,達(dá)到集中管理的目的。由于單片機(jī)的計(jì)算能力有限,難以進(jìn)行復(fù)雜的數(shù)據(jù)辦理。因此在功能比較復(fù)雜的控制系統(tǒng)中,平時(shí)以PC機(jī)為上位機(jī),單片機(jī)為下位機(jī),由單片機(jī)完成數(shù)據(jù)的采集及對(duì)裝置的控制,而由上位機(jī)完成各種復(fù)雜的數(shù)據(jù)辦理及對(duì)單片機(jī)的控制,兩者結(jié)合,使得單片機(jī)的應(yīng)用已不不過限制于傳統(tǒng)意義上的自動(dòng)監(jiān)測或控制,而形成了向以網(wǎng)絡(luò)為核心的分布式多點(diǎn)系統(tǒng)發(fā)展的趨勢。1.2單片機(jī)與PC機(jī)串行通信研究目的和意義現(xiàn)代信息網(wǎng)絡(luò)技術(shù)的一個(gè)突出特點(diǎn),就是使工業(yè)控制系統(tǒng)中的全部設(shè)備連接成網(wǎng),從而在一個(gè)核心軟件管理下工作,形成一個(gè)有機(jī)的整體。這種整體網(wǎng)絡(luò)方式在現(xiàn)代工業(yè)控制系統(tǒng)擁有傳統(tǒng)獨(dú)立控制系統(tǒng)所無法比較的先進(jìn)性,不但能極大地提高工業(yè)設(shè)備的生產(chǎn)效率,還能夠夠大大提高系統(tǒng)的安全性和可靠性。單片機(jī)自出生以來以其性能牢固、價(jià)格廉價(jià)、功能富強(qiáng),在智能儀器、工業(yè)裝備以及日用電子花銷品中獲取了廣泛的應(yīng)用。在單片機(jī)的輸入輸出控制中,除直接接上小鍵盤和LCD顯示屏等方法外,一般都經(jīng)過串口和上位機(jī)PC進(jìn)行通信。這樣不但能夠?qū)崿F(xiàn)遠(yuǎn)程控制,而且能夠利用PC機(jī)富強(qiáng)的數(shù)據(jù)辦理功能以及友好的控制界面。在一般的利用PC機(jī)對(duì)單片機(jī)進(jìn)行控制的場合,都是采用Windows作為上位機(jī)的平臺(tái),其優(yōu)點(diǎn)是界面友好,編程和操作都比較簡單。因此研究PC機(jī)與單片機(jī)串行通信擁有重要的現(xiàn)實(shí)及工業(yè)意義。1.3論文研究內(nèi)容論文第一介紹單片機(jī)與PC機(jī)間的的通信方式及RS-232串行通信協(xié)議,其次介紹實(shí)現(xiàn)單片機(jī)與PC機(jī)串行通信的軟件和硬件設(shè)計(jì),再次介紹利用LED數(shù)碼管進(jìn)行UART。數(shù)據(jù)顯示的原理及驅(qū)動(dòng)設(shè)計(jì),最后利用Proteus7.7Professional單片機(jī)仿真軟件對(duì)單片機(jī)系統(tǒng)的顯示模塊進(jìn)行仿真調(diào)試。串口通信基礎(chǔ)理論一般來說,計(jì)算機(jī)都有一個(gè)或多個(gè)串行端口,它們依次為Com1、Com2、Com3等。這些串口供應(yīng)了外面設(shè)備與計(jì)算機(jī)進(jìn)行數(shù)據(jù)傳輸和通信的通道。串行口通信是指外設(shè)和計(jì)算機(jī)間使用3根信號(hào)線進(jìn)行數(shù)據(jù)傳達(dá)的一種通信方式,這三根信號(hào)分別是數(shù)據(jù)信號(hào)線、地線及控制線。2.1兩種常用接口方式2.1.1并行接口并行接口是指8位數(shù)據(jù)同時(shí)經(jīng)過并行線進(jìn)行傳達(dá),這樣數(shù)據(jù)的傳輸率能獲取極大的提高。但在并行傳輸中,攪亂會(huì)隨線路長度的增加而增加,產(chǎn)生傳輸錯(cuò)誤。因此,并行傳輸主要應(yīng)用在近距離數(shù)據(jù)傳輸中,如連接打印機(jī)端口。并行接口主要使用36針接頭和25針D形接頭,當(dāng)前以25針D形接頭為主。2.1.2串行接口串行口也是計(jì)算機(jī)的一種標(biāo)準(zhǔn)接口,PC機(jī)一般最少有兩個(gè)串行口Com1和Com2。串行口不相同于并行口,它的數(shù)據(jù)和控制信息是一位接一位在一根傳輸線上傳送的,這樣串行口較并行口能夠進(jìn)行遠(yuǎn)距離傳達(dá)信息。串行口平時(shí)使用9針D形連接器,有些老式則使用25針D形連接器。由于CPU與接口間按并行方式傳輸,接口與外設(shè)之間按串行方式傳輸,因此,在串行接口中,要由接收移位存放器把串行方式變換成并行方式,由發(fā)送移位存放器把并行方式變換成串行方式。完成這種變換功能的電路叫做通用異步收發(fā)機(jī)2.2RS-232串行接口標(biāo)準(zhǔn)當(dāng)前RS-232是PC機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。RS-232被定義為一種在低速率串行通信中增加通信距離的單端標(biāo)準(zhǔn)[3-7]。RS-232采用不平衡傳輸方式,收發(fā)端的數(shù)據(jù)信號(hào)是相對(duì)信號(hào)地。9針串口引腳和25針串口引腳定義如表1-1所示。表2-19針串口引腳個(gè)25針串口引腳定義續(xù)表2-1電平在5V~15V,負(fù)電平在-5V~-15V;在接收數(shù)據(jù)時(shí),接收器的典型工作電平是3V~12V和-3V~-12V。串口傳輸數(shù)據(jù)只要有接收數(shù)據(jù)針腳和發(fā)送數(shù)據(jù)針腳就能實(shí)現(xiàn),其連接方式如表2-2所示。表2-2串口通信連接方式定。2.3MSComm控件MSComm控件全稱為MicrosoftCommunicationsControl,是Microsoft公司供應(yīng)的簡化Windows下串行通行編程的ActiveX控件,它為應(yīng)用程序供應(yīng)了經(jīng)過串行接口收發(fā)數(shù)據(jù)的簡略方法。經(jīng)過對(duì)此控件的屬性和事件進(jìn)行相應(yīng)編程操作,就可以輕松實(shí)現(xiàn)串口通信。2.3.1MSComm控件辦理通信的方式MSComm控件經(jīng)過串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序供應(yīng)串行通信功能。MSComm控件供應(yīng)兩種辦理通信的方式:事件驅(qū)動(dòng)方式和盤問方式。事件驅(qū)動(dòng)方式事件驅(qū)動(dòng)通信是辦理串行端口交互作用的一種特別有效地方法。這種方式下,在事件發(fā)生時(shí),如在串口接收緩沖區(qū)有字符等,能夠利用MSComm控件的OnComm事件捕獲并辦理這些通信事件,OnComm事件還能夠夠檢查和辦理通信錯(cuò)誤。在編程過程中,能夠在OnComm事件辦理函數(shù)中加入自己的代碼。這種方法的優(yōu)點(diǎn)使程序響應(yīng)實(shí)時(shí)、可靠。盤問方式盤問方式實(shí)質(zhì)上還是事件驅(qū)動(dòng),在有些情況下,這種方式顯得更為便利。在程序的要點(diǎn)功能后,能夠經(jīng)過檢查CommEvent屬性的值來盤問事件和錯(cuò)誤,編寫自己的程序代碼。2.3.2MSComm控件的主要屬性MSComm控件好多重要的屬性,常用屬性的功能以下:CommPort屬性:設(shè)置并返回通信端口號(hào);Input屬性:返回并刪除接收緩沖區(qū)中的數(shù)據(jù)流;Output屬性:往傳輸緩沖區(qū)中寫數(shù)據(jù)流;PortOpen屬性:設(shè)置并返回通信端口的狀態(tài)(開或關(guān);Settings屬性:設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位和停止位參數(shù);InputLen屬性:確定被Input屬性讀取的字符數(shù),設(shè)置InputLen為0時(shí),則Input屬性讀取緩沖區(qū)中的全部數(shù)據(jù);InputMode屬性:確定用Input屬性讀取的數(shù)據(jù)種類,設(shè)置InputMode為comInputModeText時(shí),Input屬性經(jīng)過一個(gè)Variant返回文本數(shù)據(jù),設(shè)置為comInputModeBinary時(shí),Input屬性經(jīng)過一個(gè)Variant返回一個(gè)二進(jìn)制數(shù)據(jù)數(shù)組。系統(tǒng)整體設(shè)計(jì)3.1系統(tǒng)指標(biāo)設(shè)計(jì)3.1.1通信協(xié)議設(shè)定硬件接口:單片輸出的TTL電平經(jīng)電平變換芯片變換成為RS-232信號(hào),爾后與PC機(jī)互連。字符格式:1位初步位,8位數(shù)據(jù)位,1位停止位。通信波特率:9600bps。差錯(cuò)校驗(yàn):無奇偶校驗(yàn)。3.1.2系統(tǒng)功能設(shè)計(jì)下位機(jī)能夠脫機(jī)單獨(dú)工作,并用儲(chǔ)藏器儲(chǔ)藏由PC機(jī)傳達(dá)來的數(shù)據(jù),通信時(shí)由上位機(jī)發(fā)出通信央求,要求下位機(jī)給出回應(yīng)。當(dāng)單片機(jī)無應(yīng)答時(shí),PC機(jī)將重發(fā)通信央求直到下位機(jī)給出響應(yīng)。傳達(dá)數(shù)據(jù)前先發(fā)數(shù)據(jù)數(shù)目,接下來發(fā)送數(shù)據(jù),下位機(jī)接收數(shù)據(jù)并動(dòng)向顯示在LED數(shù)碼管上。3.2整體方案設(shè)計(jì)單片機(jī)內(nèi)部有一個(gè)全雙工的收發(fā)緩沖器(SBUF,這兩個(gè)在物理上獨(dú)立的接收發(fā)射器,即能夠接收也能夠發(fā)射數(shù)據(jù),它們共用同一個(gè)地址99H。在串行口的輸入輸出引腳上加上電平變換器,就可以方便的設(shè)計(jì)成標(biāo)準(zhǔn)的RS-232接口。在設(shè)計(jì)中以PC機(jī)為主機(jī),單片機(jī)為從機(jī),經(jīng)過串行接口構(gòu)成主從系統(tǒng),設(shè)計(jì)其串行通信的基本功能,其系統(tǒng)框圖如圖3-1所示。jiantou圖3-1系統(tǒng)框圖VisualBasic(簡稱VB是Windows操作系統(tǒng)下簡單、易學(xué)、高效的應(yīng)用軟件開發(fā)工具。因其擁有面向?qū)ο蟮脑O(shè)計(jì)方法,友好的用戶界面、編程高效、數(shù)據(jù)辦理及驅(qū)動(dòng)基層硬件功能強(qiáng)等優(yōu)點(diǎn)而碰到廣泛的使用。系統(tǒng)設(shè)計(jì)時(shí),PC機(jī)的通信程序使用VisualBasic編寫,單片機(jī)的程序用匯編語言編寫。硬件設(shè)計(jì)4.1主要芯片4.1.1AT89C51在系統(tǒng)設(shè)計(jì)中使用AT89C51單片機(jī)作為下位機(jī),與PC機(jī)進(jìn)行串口通信,接收數(shù)據(jù)并控制數(shù)據(jù)在LED數(shù)碼管上動(dòng)向顯示。AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能的CMOS8位單片機(jī)片,內(nèi)置4Kbytes的可屢次擦寫的只讀程序儲(chǔ)藏器(PEROM和128bytes的隨機(jī)儲(chǔ)藏器(RAM,器件采用ATMEL公司的高密度、非易失儲(chǔ)藏技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央辦理器(CPU和Flash儲(chǔ)藏單元,功能富強(qiáng)。AT89C51單片機(jī)可為你供應(yīng)好多高性價(jià)的應(yīng)用途合,可靈便的應(yīng)用于各種控制領(lǐng)域。1AT89C51性能參數(shù)AT89C51有以下性能參數(shù):·與MCS-51產(chǎn)品指令系統(tǒng)的全兼容;·4k字節(jié)可重擦寫Flash閃速儲(chǔ)藏器;128×8字節(jié)內(nèi)部RAM;·1000次可擦寫周期;·全靜態(tài)操作:0Hz-24MHz;·三級(jí)加密程序儲(chǔ)藏器;·32個(gè)可編程I/O口線;·2個(gè)16位準(zhǔn)時(shí)/計(jì)數(shù)器;1個(gè)全雙工異步串行口;·6此中斷源,2此中斷優(yōu)先級(jí);·低功耗悠閑和掉電模式。2AT89C51內(nèi)部結(jié)構(gòu)及管腳圖AT89C51包括中央辦理器、程序儲(chǔ)藏器(ROM、數(shù)據(jù)儲(chǔ)藏器(RAM、準(zhǔn)時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,其功能框圖如圖4-1所示。圖4-1AT89C51功能框圖AT89C51單片機(jī)采用40Pin封裝的雙列直接DIP結(jié)構(gòu),其引腳配置如圖4-2所示。圖4-2AT89C51引腳配置3AT89C51串行口結(jié)構(gòu)(1數(shù)據(jù)緩沖器SBUF串行口是一個(gè)可尋址的專用存放器,有兩個(gè)物理空間上各自獨(dú)立的發(fā)送緩沖器和接受緩沖器,能夠?qū)崿F(xiàn)全雙工通信,這兩個(gè)存放器擁有同一地址(99H。單片機(jī)的串行數(shù)據(jù)傳輸很簡單,只要向緩沖器寫入數(shù)據(jù)即可發(fā)送數(shù)據(jù),從接收緩沖器讀出數(shù)據(jù)既可接收數(shù)據(jù)。(2串行口控制存放器SCON它是一個(gè)可尋址的專用存放器,用于串行通信的控制,單元地址是98H,其結(jié)構(gòu)格式如表4-1所示。(其字節(jié)地址為87H,沒有位尋址功能,與串行口有關(guān)只有PCON的最高位,其(b典型電路(a引腳圖結(jié)構(gòu)如表4-2所示。表4-2特別功能存放器PCON4.1.2單電源變換芯片MAX232MAX232是MAXIM公司生產(chǎn)的、包括兩路接收/驅(qū)動(dòng)器的芯片。芯片內(nèi)部有一個(gè)電源電壓變換器,能夠?qū)⑤斎氲?5V電源電壓變換成為RS-232輸出電平。硬件接口簡單,被廣泛使用。芯片的引腳配置及典型工作電路如圖4-3所示。圖4-3MAX232芯片引腳配置和典型工作電路4.1.374LS245LED驅(qū)動(dòng)芯片74LS245是常用的芯片,用來驅(qū)動(dòng)led也許其他的設(shè)備,它是8路同相三態(tài)雙向總線收發(fā)器,可雙向傳輸數(shù)據(jù)。當(dāng)8051單片機(jī)的P0口總線負(fù)載達(dá)到或高出P0最大負(fù)載能力時(shí),必定接入74LS245等總線驅(qū)動(dòng)器。當(dāng)片選端CE低電平有效時(shí),DIR=“0”,信號(hào)由B向A傳輸;DIR=“1”,信號(hào)由A向B傳輸;當(dāng)CE為高電平時(shí),A、B均為高阻態(tài),其引腳配置如圖4-4所示。圖4-474LS245引腳配置4.2LED顯示器4.2.1LED顯示器工作原理LED(lightemittingdiode顯示是用發(fā)光二極管顯示字段的顯示器件,也稱數(shù)碼管,其外形結(jié)構(gòu)如圖4-5所示,由圖可知它由8個(gè)發(fā)光二極管構(gòu)成,經(jīng)過不相同的組合可用來顯示0~9、A~F及小數(shù)點(diǎn)。圖4-5“8”字形數(shù)碼管LED顯示器一般分為共陰極和共陽極兩種,共陰極是將8個(gè)發(fā)光二極管的陰極連接在一起作為公共端,而共陽極則是將8個(gè)發(fā)光二極管的陽極連在一起作為公共端,其構(gòu)成如圖4-5所示。4.2.2LED顯示器接口在單片機(jī)系統(tǒng)中,LED顯示接口一般采用靜態(tài)驅(qū)動(dòng)和動(dòng)向掃描兩種驅(qū)動(dòng)方式。靜態(tài)驅(qū)動(dòng)方式工作原理是每一個(gè)LED顯示器有一個(gè)I/O端口驅(qū)動(dòng),亮度大,占用I/O(b共陰極(c共陽極(a管腳配置端口多,顯示位數(shù)多時(shí)很少采用;動(dòng)向掃描驅(qū)動(dòng)方式的工作原理是將多個(gè)顯示器的段碼同名端連接在一起,位碼分別控制,利用眼睛的余暉暫留效應(yīng),分別顯示。動(dòng)向掃描驅(qū)動(dòng)方式下,只要保證必然的顯示頻率,看起來的收效和素來顯示是相同的。4.3系統(tǒng)設(shè)計(jì)系統(tǒng)中采用AT89C51單片機(jī)作為下位機(jī),PC機(jī)作為上位機(jī),兩者經(jīng)過RS-232串行口收發(fā)數(shù)據(jù)。RS-232信號(hào)的電平和單片機(jī)串口信號(hào)的電平不一致,必定進(jìn)行兩者之間的電平變換,系統(tǒng)中使用集成電平變換芯片MAX232實(shí)現(xiàn)RS-232/TTL電平變換。單片機(jī)系統(tǒng)整體電路如圖4-6所示。圖4-6單片機(jī)系統(tǒng)整體電路軟件設(shè)計(jì)5.1PC機(jī)程序設(shè)計(jì)5.1.1應(yīng)用界面設(shè)計(jì)流程創(chuàng)辦項(xiàng)目文件(1單擊“開始”按鈕,選擇“程序|MicrosoftVisualBasic6.0進(jìn)入VB6”.0窗口。VB6.0啟動(dòng)后,會(huì)彈出“NewProjiect對(duì)話”框,如圖5-1所示。圖5-1新建工程(2在“NewProject對(duì)話”框中選擇“New”選項(xiàng)卡。(3單擊“StandardEXE項(xiàng)”,再單擊“打開”按鈕,或直接雙擊“StandardEXE建”立程序開發(fā)窗口。(4選擇“File|SaveProject命令,?!贝嫖募?。加入串口通信控件(1默認(rèn)的控件工具欄中沒有MSComm控件,因此要先把它加入到控件工具欄上。在控件工具欄上單擊鼠標(biāo)右鍵,在彈出的對(duì)話框中選擇“Components”,彈出“Components對(duì)”話框,如圖5-2所示。圖5-2增加MSComm控件(2選擇“Controls選”項(xiàng)卡中的“MicrosoftCommControl6.0項(xiàng),單”擊“確定”按鈕把它加入到控件工具欄中。設(shè)計(jì)窗體界面窗體主要完成以下功能:對(duì)整個(gè)程序初始化、串行端口設(shè)置、輸入發(fā)送數(shù)據(jù)、對(duì)各個(gè)按鈕響應(yīng)、顯示當(dāng)前通信端口及端口信息,。在窗體中增加需要的控件,調(diào)整控件的大小及在窗體中的地址,獲取如圖5-3所示的窗體界面,其控件屬性及功能如表5-1所示。圖5-3增加控件后的窗體表5-1主要控件屬性單片機(jī)與PC機(jī)串口通信應(yīng)用界面程序流程圖如圖5-4所示,事件過程及編程見附錄1。圖5-4應(yīng)用界面代碼程序流程圖5.2單片機(jī)軟件設(shè)計(jì)單片機(jī)程序主要完成與PC機(jī)的通信及數(shù)據(jù)動(dòng)向顯示,包括三個(gè)主要的模塊:顯示模塊、通信模塊、數(shù)據(jù)格式變換模塊和數(shù)據(jù)動(dòng)向顯示模塊。主程序完成數(shù)據(jù)的顯示和監(jiān)察通信端口,其程序流程如圖5-5所示;準(zhǔn)時(shí)中斷實(shí)現(xiàn)動(dòng)向顯示數(shù)據(jù)辦理,其程序流程如圖5-5所示。單片機(jī)系統(tǒng)源程序見附錄2。(a主程序流程圖(b準(zhǔn)時(shí)中斷流程圖圖5-5主程序及準(zhǔn)時(shí)中斷子程序流程圖仿真調(diào)試及結(jié)果解析6.1Protues仿真軟件簡介Protues軟件是英國Labcenterelectronics公司初版的EDA工具軟件。它不但擁有其他EDA工具軟件的仿真功能,還能夠仿真單片機(jī)及外面器件,是當(dāng)前最好的仿真單片機(jī)及外面器件的工具。Proteus是世界上出名的EDA工具,從原理圖布圖、代碼調(diào)試到單片機(jī)與外面電路共同仿真,一鍵切換到PCB設(shè)計(jì),真切實(shí)現(xiàn)了從看法到產(chǎn)品的完滿設(shè)計(jì),是當(dāng)前生界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛假模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其辦理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。6.2仿真結(jié)果解析6.2.1PC界面運(yùn)行結(jié)果點(diǎn)擊“Start按”鈕,出現(xiàn)設(shè)計(jì)的PC機(jī)串行通行界面,在“發(fā)送數(shù)據(jù)”文本框中輸入要發(fā)送的數(shù)字字符串(字符串長度不高出16,點(diǎn)擊“發(fā)送”按鈕,出現(xiàn)如圖6-1所示的運(yùn)行結(jié)果。圖6-1PC機(jī)通信程序運(yùn)行結(jié)果點(diǎn)擊“退出”按鈕時(shí),退出應(yīng)用程序。有此可知PC機(jī)通行程序基本能夠工作。6.2.2單片仿真測試及結(jié)果解析單片機(jī)采用Protues仿真軟件進(jìn)行仿真測試,由于進(jìn)行軟件仿真無法實(shí)現(xiàn)PC機(jī)程序與單片機(jī)系統(tǒng)通信測試,此次仿真只做單片機(jī)顯示結(jié)果測試。為了仿真單片機(jī)系統(tǒng)的顯示可否正常,在顯示緩沖區(qū)初始化后、顯示前加上以下測試程序:mov30h,#3fhmov31h,#06hmov32h,#5bhmov33h,#4fhmov34h,#66hmov35h,#6dhmov36h,#7dhmov37h,#07hmov38h,#7fhmov39h,#6fhmov3ah,#77hmov3bh,#7chmov3ch,#58hmov3dh,#5ehmov3eh,#7bhmov3fh,#71hmov08h,#dataaddmovdatanum,#3mov0ah,datanumsetbf0能夠經(jīng)過更正movdatanum,#3中3處的數(shù)值(1~16之間的數(shù)值來觀察不相同個(gè)數(shù)數(shù)據(jù)顯示結(jié)果,此處以3個(gè)數(shù)據(jù)為例進(jìn)行仿真測試。原程序用wave進(jìn)行編寫、編譯,編譯從前勾選“仿真器設(shè)置”對(duì)話框“目標(biāo)文件”選項(xiàng)卡中的“生成.Hex文件”。編譯后將.hex文件下載到仿真電路的AT89C51中,點(diǎn)擊“Play按”鈕獲取圖6-2仿真結(jié)果,經(jīng)過一段時(shí)間后獲取圖6-3所示的結(jié)果。ALE30EA31P1.0110P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.4/A1225P2.5/A1326P2.6/A1427U1T1IN11R1OUT12T2IN10R2OUT9T1OUT14R1IN13T2OUT7R2IN8C2+4C2-5C1+1C1-3VS+2VS-6U2C11uFC21uFC31uFC41uFR1510A02B01A13B11A24B21A35B31A46B41A57B51A68B61A79B71CE19AB/BA1U374LS245A02B01A13B11A24B21A35B31A46B41A57B51A68B61A79B71CE19AB/BA1U474LS245162738495J1CONN-D9F連接PC機(jī)ALE30EA31P1.018P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.4/A1225P2.5/A1326P2.6/A1427T1IN11R1OUT12T2IN10R2OUT9C2+4C2-5C1+1C1-3U2C11uFC21uFC41uFR1510A02B01A13B11A24B21A35B31A46B41A57B51A68B61A79B71CE19AB/BA1U374LS2450201A13B11A24B21A35B31A46B41A57B51A68B61A79B71CE19AB/BA1U474LS24538495J1圖6-2開始時(shí)的仿真結(jié)果圖6-3一段時(shí)間后的仿真結(jié)果由仿真結(jié)果能夠獲取這樣的結(jié)論:設(shè)計(jì)的單片機(jī)系統(tǒng)能夠?qū)崿F(xiàn)接收數(shù)據(jù)的動(dòng)向顯示。結(jié)語本文主要詳述了AT89C51單片機(jī)與PC機(jī)的串行通信實(shí)現(xiàn)的設(shè)計(jì)方法和內(nèi)容,AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀儲(chǔ)藏器(FPEROM—FlashProgrammableandErasableReadOnlyMemory的低電壓,高性能CMOS8位微辦理器。該器件采用ATMEL高密度非易失儲(chǔ)藏器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍儲(chǔ)藏器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,因此它的使用遠(yuǎn)景會(huì)是相當(dāng)廣泛與受歡迎。因此我們有必要來學(xué)習(xí)它與PC機(jī)的通信。主要論述內(nèi)容總結(jié)以下:1.介紹了單片機(jī)的在現(xiàn)實(shí)生活中的使用情況與應(yīng)用環(huán)境領(lǐng)域,市場遠(yuǎn)景與將來應(yīng)用,并對(duì)整體設(shè)計(jì)做了概括性的描述。詳述了單片機(jī)的發(fā)展大要、特點(diǎn)、應(yīng)用,各個(gè)部件的原理,串行口的通信方式,數(shù)碼顯示管的工作原理,使各個(gè)部件都能被讀者所認(rèn)識(shí),從而方便人們來認(rèn)識(shí)AT89C51與PC機(jī)串行通信的原理。介紹了軟件設(shè)計(jì),流程,通信協(xié)議,初始化,波特率計(jì)算等軟件上的準(zhǔn)備與設(shè)計(jì),從而為整個(gè)設(shè)計(jì)的匯編階段做好準(zhǔn)備。最后采用運(yùn)用匯編語言將整個(gè)圖紙上的設(shè)計(jì)變?yōu)閷?shí)質(zhì)的應(yīng)用。自然本設(shè)計(jì)也存在著很大的問題,比方說功能上相對(duì)簡單簡單出錯(cuò)等,這些問題能夠在今后的工作中連續(xù)完滿。經(jīng)過幾個(gè)月的畢業(yè)設(shè),由于計(jì)時(shí)間和任務(wù)的性質(zhì)的關(guān)系,沒有完滿依照上述的測試方法進(jìn)行測試,但經(jīng)過一些簡單的步驟的測試,證明本設(shè)計(jì)的串行通信的牢固性與合用性。在設(shè)計(jì)的過程中我領(lǐng)悟到了過程的快樂和結(jié)果的歡樂。人們常常說不要看重結(jié)果,主若是過程,這幾個(gè)月的過程也讓我深深的領(lǐng)悟到了自己知識(shí)的困窮和掌握的不牢固為此在將來必然要不斷地連續(xù)學(xué)習(xí)與深造,為此不斷地完滿自我。參照文件李長林.VisualBasic串口通信技術(shù)與典型實(shí)例[M].北京:清華大學(xué)初版社,2006.4李朝青,劉艷玲,沈怡麟.單片機(jī)與PC機(jī)網(wǎng)絡(luò)通信技術(shù)[M].北京:北京航空航天大學(xué)初版社,2007.2萬福軍,潘松峰,劉芳.MCS-51單片機(jī)原理、系統(tǒng)設(shè)計(jì)與應(yīng)用.[M]北京:清華大學(xué)初版社,2008.6周志敏,周紀(jì)海,紀(jì)愛華.LED驅(qū)動(dòng)電路設(shè)計(jì)與應(yīng)用[M].北京:人民郵電初版社,2006.12[5][6][7][8][9][10][11][12][13](20致謝經(jīng)過幾個(gè)月的努力,終于完成了PC機(jī)與單片機(jī)的串行通信這個(gè)畢業(yè)設(shè)計(jì)。在此,我要衷心感謝我的指導(dǎo)老師胡建東教授,在整個(gè)畢業(yè)設(shè)計(jì)過程中,他恩賜了我悉心的指導(dǎo)和無私的幫助,同時(shí)還要感謝同班的好多同學(xué),我們?cè)谙嗷W(xué)習(xí)和交流中,解決問題共同進(jìn)步。有了這么多的支持和無私幫助,才使我得以順利完成畢業(yè)設(shè)計(jì)。衷心感謝在百忙之中評(píng)閱論文和參加爭辯的各位老師及全部任課老師,感謝你們?yōu)槲覀兊膶W(xué)習(xí)與成才創(chuàng)辦的各種條件和付出的勤奮奮動(dòng)。室友、師兄、師姐和身邊的朋友們?cè)谄綍r(shí)的學(xué)習(xí)、生活中恩賜了我很大的支持,在此表示衷心的感謝!最后感謝家人,是他們恩賜我精神上的激勵(lì)、生活上的照顧、學(xué)業(yè)上的支持,使我順利完成大學(xué)學(xué)業(yè)。附錄1:PC機(jī)事件過程及編程DimhandAsBoolean'等待回應(yīng)時(shí)間到標(biāo)志位,為FALSE時(shí)時(shí)間沒有到,TRUE時(shí)時(shí)間到PrivateSubcancel_Click(UnloadMeEndEndSubPrivateSubsend_Click('變量定義Dimstrsend$,strbit$Dimintsend%'發(fā)送的字符長度DimwritebuffAsVariant'寫輸出緩沖區(qū)Dimreadbuff$'讀輸入緩沖區(qū)數(shù)據(jù)strsend=txtsend.Textintsend=Len(strsendIfintsend=0ThenMsgBox"請(qǐng)輸入數(shù)字字符!",,"錯(cuò)誤"ExitSubEndIf'數(shù)據(jù)完滿性考據(jù)Fori=1TointsendStep1strbit=Mid(strsend,i,1SelectCasestrbitCaseIs<"0",Is>"9"MsgBox"輸入的數(shù)據(jù)中存在非數(shù)字字符!"&vbCrLf&"請(qǐng)重新輸入!",vbRetryCancel,"錯(cuò)誤"txtsend.Text=""ExitSubEndSelectNextiOnErrorGoTocomrserror'串行通信口參數(shù)設(shè)置MSComm.CommPort=1'使用Com1做為串行通信口MSComm.Settings="9600,n,8,1"'串口屬性設(shè)置MSComm.InputLen=1'每次從接收緩沖區(qū)讀取一個(gè)字符MSComm.InputMode=comInputModeText'以字符形式從緩沖區(qū)中接受字符MSComm.InBufferCount=0'除去輸入緩沖區(qū)MSComm.OutBufferCount=0'除去輸出緩沖區(qū)MSComm.PortOpen=True打'開通行端口txtport.Text="COM"&MSComm.CommPorttxtmsg.Text="串口COM"&MSComm.CommPort&"打開成功!波特率=9600bps"'發(fā)送握手信號(hào)handle:hand=False開'始發(fā)送握手信號(hào)時(shí)回應(yīng)標(biāo)志位為FALSEwritebuff=Chr$(&HFF'準(zhǔn)備握手信號(hào)&HffhMSComm.Output=writebuff'發(fā)送握手信號(hào)Timer.Enabled=True'啟動(dòng)應(yīng)答準(zhǔn)時(shí)器DoDoEventsIfhandThenGoTohandle定'時(shí)時(shí)間到未收到回應(yīng)信號(hào)重發(fā)握手信號(hào)EndIfLoopUntilMSComm.InBufferCount'等待回應(yīng)'收到對(duì)方的回應(yīng)Timer.Enabled=False'讀取并判斷可否為規(guī)定的聯(lián)系信號(hào)readbuff=MSComm.InputIfAsc(readbuff=255Thenwritebuff=Chr$(intsendMSComm.Output=writebuff'收到正確的回應(yīng),發(fā)送字符個(gè)數(shù)和數(shù)據(jù)writebuff=strsendMSComm.Output=writebuffMSComm.PortOpen=False發(fā)'送完數(shù)據(jù)關(guān)閉端口ExitSubElseGoTohandleEndIfcomrserror:EndSubPrivateSubTimer_Timer(Timer.Enabled=Falsehand=True定'時(shí)間到關(guān)閉準(zhǔn)時(shí)器,設(shè)置標(biāo)志位EndSubPrivateSubtxtsend_Click(txtsend.Text=""EndSub附錄2:單片機(jī)源程序datanumequ20h存;放接收到的數(shù)據(jù)個(gè)數(shù)dataaddequ30h接;收到的數(shù)據(jù)存放的地址org0000hljmpmainorg000bhljmpt0_intorg0100h;主程序main:movsp,#0fh;從0fh開始設(shè)置貨倉movtmod,#22h;T0、T1工作于自動(dòng)重裝載方式movth1,#0fdhmovtl1,#0fdhsetbtr1;晶振頻率11.059Mhz,波特率設(shè)置為9600movscon,#50h;設(shè)置串行口工作于方式一mov50h,#40mov51h,#100movth0,#6movtl0,#6;1s準(zhǔn)時(shí)初始化setbtr0;開準(zhǔn)時(shí)器T0setbet0;開準(zhǔn)時(shí)器T0中斷setbea開;總中斷movdatanum,#0初;始時(shí)接收數(shù)據(jù)的個(gè)數(shù)為0display:movr7,#6movr0,#40hcl_next:mov@r0,#0incr0djnzr7,cl_next;數(shù)據(jù)顯示區(qū)初始化display0:movr0,#45h;r0執(zhí)行待輸出的數(shù)據(jù)地址處movr7,#6;掃描次數(shù)movr6,#0feh;r6存放數(shù)碼管的位碼,顯示初始
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人才評(píng)估報(bào)告范文
- 情感困惑的調(diào)查報(bào)告范文
- 橋梁造價(jià)實(shí)訓(xùn)報(bào)告范文
- 鉗工維修報(bào)告范文
- 二零二五年度帶車司機(jī)勞務(wù)派遣及車輛維護(hù)合同
- 二零二五年度生物制藥產(chǎn)業(yè)合作出資協(xié)議書
- 廣東省勞動(dòng)合同(2025年度)及企業(yè)員工健康體檢協(xié)議
- 2025年度環(huán)保產(chǎn)業(yè)銀行擔(dān)保免責(zé)合同
- 二零二五年度商鋪轉(zhuǎn)租定金及違約責(zé)任明確合同
- 二零二五年度挖掘機(jī)買賣及智能化升級(jí)合同
- 《汽車專業(yè)英語》2024年課程標(biāo)準(zhǔn)(含課程思政設(shè)計(jì))
- 煙草栽培(二級(jí))鑒定理論考試復(fù)習(xí)題庫-上(單選題匯總)
- 橋梁鋼筋加工安裝
- 動(dòng)物生物化學(xué)(全套577PPT課件)
- 中國傳統(tǒng)二十四節(jié)氣立春節(jié)氣介紹PPT模板課件
- 個(gè)人簡歷求職競聘自我介紹PPT模板課件
- 電廠粉煤灰儲(chǔ)灰場施工組織設(shè)計(jì)(DOC89頁)
- 活性炭生產(chǎn)工藝流程圖
- 《廣告學(xué)概論》教案
- 重量分析法實(shí)驗(yàn)
- [合同協(xié)議]車輛掛靠協(xié)議書
評(píng)論
0/150
提交評(píng)論