版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、WORD29/32專業(yè)綜合課程設(shè)計任務(wù)書學(xué)生:專業(yè)班級:指導(dǎo)教師:工作單位: 題 目: 基于PC機(jī)Windows環(huán)境下數(shù)據(jù)通信、處理與存儲程序設(shè)計與實現(xiàn)。初始條件:提供實驗室機(jī)房與安裝Windows系統(tǒng)的PC機(jī);數(shù)據(jù)通信的基本理論學(xué)習(xí)。 要求完成的主要任務(wù):(包括課程設(shè)計工作量與其技術(shù)要求,以與說明書撰寫等具體要求):(1)在PC機(jī)Windows環(huán)境下設(shè)計出一款集數(shù)據(jù)發(fā)送、接收處理與存儲程序;(2)通信接口為RS-232,USB,網(wǎng)卡任意一款;(3)通信的數(shù)據(jù)流自定,處理操作自定;(4)接收的數(shù)據(jù)以文件的形式存在硬盤上;(5)對結(jié)果進(jìn)行分析; (6)要求閱讀相關(guān)參考文獻(xiàn)不少于5篇;(7)根據(jù)課
2、程設(shè)計有關(guān)規(guī),按時、獨立完成課程設(shè)計說明書。時間安排: (1) 布置課程設(shè)計任務(wù),查閱資料,確定方案 四天; (2) 進(jìn)行編程設(shè)計 一周; (3) 完成課程設(shè)計報告書 三天;指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日目錄 TOC o 1-3 h z u HYPERLINK l _Toc377116591摘要 PAGEREF _Toc377116591 h IHYPERLINK l _Toc3771165921 Proteus軟件簡介 PAGEREF _Toc377116592 h 1HYPERLINK l _Toc3771165932 Visual Basic 6.0簡介
3、 PAGEREF _Toc377116593 h 2HYPERLINK l _Toc3771165943 串口通信原理 PAGEREF _Toc377116594 h 3HYPERLINK l _Toc3771165953.1串行通信定義 PAGEREF _Toc377116595 h 3HYPERLINK l _Toc3771165963.2串行通信的異步通信 PAGEREF _Toc377116596 h 4HYPERLINK l _Toc3771165973.3波特率 PAGEREF _Toc377116597 h 4HYPERLINK l _Toc3771165983.4串行接口的基本
4、特點 PAGEREF _Toc377116598 h 5HYPERLINK l _Toc3771165993.4.1串行端口工作方式 PAGEREF _Toc377116599 h 5HYPERLINK l _Toc3771166004單片機(jī)與PC機(jī)通信 PAGEREF _Toc377116600 h 8HYPERLINK l _Toc3771166014.1 AT89C51單片機(jī)上對應(yīng)端口介紹 PAGEREF _Toc377116601 h 8HYPERLINK l _Toc3771166024.3單片機(jī)通信代碼 PAGEREF _Toc377116602 h 9HYPERLINK l _T
5、oc3771166034.4仿真電路圖 PAGEREF _Toc377116603 h 11HYPERLINK l _Toc3771166045 VB設(shè)計PC機(jī) PAGEREF _Toc377116604 h 12HYPERLINK l _Toc3771166055.1界面設(shè)計 PAGEREF _Toc377116605 h 12HYPERLINK l _Toc3771166065.2 VB設(shè)計的窗體 PAGEREF _Toc377116606 h 12HYPERLINK l _Toc3771166075.3 VB代碼 PAGEREF _Toc377116607 h 12HYPERLINK l
6、 _Toc3771166086 串口通信結(jié)果與其分析 PAGEREF _Toc377116608 h 22HYPERLINK l _Toc3771166096.1通信結(jié)果 PAGEREF _Toc377116609 h 22HYPERLINK l _Toc3771166106.2結(jié)果分析 PAGEREF _Toc377116610 h 24HYPERLINK l _Toc3771166117 實物圖 PAGEREF _Toc377116611 h 25HYPERLINK l _Toc3771166128心得體會 PAGEREF _Toc377116612 h 26HYPERLINK l _To
7、c377116613參考文獻(xiàn) PAGEREF _Toc377116613 h 27摘要為了實現(xiàn)本次課設(shè)的要求,完成基于PC機(jī)Windows環(huán)境下數(shù)據(jù)通信、處理與存儲程序設(shè)計與實現(xiàn)。我們采用Visual Basic 6.0軟件設(shè)計和Proteus單片機(jī)串口仿真來完成課程設(shè)計的要求。我們選取的是通信接口為RS-232,利用單片機(jī)與PC機(jī)的之間相互通信來實現(xiàn)課設(shè)要求,Visual Basic軟件主要用于設(shè)計代表PC機(jī)的窗體,實現(xiàn)PC機(jī)進(jìn)行串口通信的基本功能;Proteus軟件仿真的單片機(jī)用于模擬單片機(jī),完成與PC機(jī)的通信。本次課設(shè)除了要用到VB和Proteus軟件外,還需使用KEIL軟件生成適用于5
8、1單片機(jī)的.HEX文件,以與用到Virtual Serial Port Driver軟件來對PC機(jī)和單片機(jī)之間串口進(jìn)行連接,使用VSPD軟件來設(shè)置連接串口的時候我將單片機(jī)設(shè)為COM3,PC機(jī)設(shè)為COM1。關(guān)鍵字:RS-232 ,串口通信,Proteus,Visual Basic 6.01 Proteus軟件簡介Proteus是世界上著名的EDA工具( HYPERLINK :/baike.baidu /view/561380.htm t _blank 仿真軟件),從原理圖布圖、代碼調(diào)試到 HYPERLINK :/baike.baidu /view/1012.htm t _blank 單片機(jī)與外圍
9、電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界上唯一將 HYPERLINK :/baike.baidu /view/4952740.htm t _blank 電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種 HYPERLINK :/baike.baidu /view/487018
10、.htm t _blank 編譯器。Proteus HYPERLINK :/baike.baidu /view/37.htm t _blank 軟件具有其它EDA HYPERLINK :/baike.baidu /view/1928598.htm t _blank 工具軟件(例:multisim)的功能。這些功能是:1原理布圖2PCB自動或人工布線3SPICE電路仿真4互動的 HYPERLINK :/baike.baidu /view/4952740.htm t _blank 電路仿真5仿真處理器與其外圍電路Proteus擁有豐富的資源,它體現(xiàn)在:1Proteus可提供的仿真元器件資源:仿真數(shù)
11、字和模擬、交流和直流等數(shù)千種元器件,有30多個元件庫。2Proteus可提供的仿真儀表資源 :示波器、邏輯分析儀、 HYPERLINK :/baike.baidu /view/694267.htm t _blank 虛擬終端、SPI調(diào)試器、I2C調(diào)試器、信號發(fā)生器、模式發(fā)生器、交直流電壓表、 HYPERLINK :/baike.baidu /view/4027312.htm t _blank 交直流電流表。理論上同一種儀器可以在一個電路中隨意的調(diào)用。3除了現(xiàn)實存在的儀器外,Proteus還提供了一個圖形顯示功能,可以將線路上變化的信號,以圖形的方式實時地顯示出來,其作用與示波器相似,但功能更多
12、。這些虛擬儀器儀表具有理想的參數(shù)指標(biāo),例如極高的輸入阻抗、極低的輸出阻抗。這些都盡可能減少了儀器對測量結(jié)果的影響。4Proteus可提供的調(diào)試手段 Proteus提供了比較豐富的測試信號用于電路的測試。這些測試信號包括 HYPERLINK :/baike.baidu /view/38288.htm t _blank 模擬信號和數(shù)字信號。Proteus不僅可將許多 HYPERLINK :/baike.baidu /view/2617826.htm t _blank 單片機(jī)實例功能形象化,也可將許多單片機(jī)實例運行過程形象化。前者可在相當(dāng)程度上得到實物演示實驗的效果,后者則是實物演示實驗難以達(dá)到的效
13、果。課程設(shè)計、畢業(yè)設(shè)計是學(xué)生走向就業(yè)的重要實踐環(huán)節(jié)。由于PROTEUS提供了實驗室無法相比的大量的元器件庫,提供了修改電路設(shè)計的靈活性、提供了實驗室在數(shù)量、質(zhì)量上難以相比的 HYPERLINK :/baike.baidu /view/47823.htm t _blank 虛擬儀器、儀表,因而也提供了培養(yǎng)學(xué)生實踐精神、創(chuàng)造精神的平臺隨著科技的發(fā)展,“ HYPERLINK :/baike.baidu /view/300793.htm t _blank 計算機(jī)仿真技術(shù)”已成為許多設(shè)計部門重要的前期設(shè)計手段。它具有設(shè)計靈活,結(jié)果、過程的統(tǒng)一的特點??墒乖O(shè)計時間大為縮短、耗資大為減少,也可降低工程制造的
14、風(fēng)險。相信在單片機(jī)開發(fā)應(yīng)用中PROTEUS也能茯得愈來愈廣泛的應(yīng)用。2 Visual Basic 6.0簡介Visual Basic(VB)是由 HYPERLINK ://wiki/%E5%BE%AE%E8%BD%AF o 微軟 微軟公司開發(fā)的包含 HYPERLINK ://w/index.php?title=%E5%8D%8F%E5%8A%A9%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83&action=edit&redlink=1 o 協(xié)助開發(fā)環(huán)境(頁面不存在) 協(xié)助開發(fā)環(huán)境的 HYPERLINK :
15、//wiki/%E4%BA%8B%E4%BB%B6%E9%A9%85%E5%8B%95 o 事件驅(qū)動 事件驅(qū)動編程語言。它源自于 HYPERLINK ://wiki/BASIC o BASIC BASIC編程語言。VB擁有 HYPERLINK ://wiki/%E5%9B%BE%E5%BD%A2%E7%94%A8%E6%88%B7%E7%95%8C%E9%9D%A2 o 圖形用戶界面 圖形用戶界面( HYPERLINK ://wiki/GUI o GUI GUI) H
16、YPERLINK ://wiki/%E5%BF%AB%E9%80%9F%E6%87%89%E7%94%A8%E7%A8%8B%E5%BC%8F%E9%96%8B%E7%99%BC o 快速應(yīng)用程序開發(fā) 快速應(yīng)用程序開發(fā)( HYPERLINK ://wiki/RAD o RAD RAD)系統(tǒng),可以輕易的使用 HYPERLINK ://w/index.php?title=DAO&action=edit&redlink=1 o DAO(頁面不存在) DAO、 HYPERLINK :/zh.wikipedi
17、/w/index.php?title=RDO&action=edit&redlink=1 o RDO(頁面不存在) RDO、 HYPERLINK ://wiki/ADO o ADO ADO連接 HYPERLINK ://wiki/%E6%95%B0%E6%8D%AE%E5%BA%93 o 數(shù)據(jù)庫 數(shù)據(jù)庫,或者輕松的創(chuàng)建 HYPERLINK ://wiki/ActiveX o ActiveX ActiveX控件。程序員可以輕松的使用VB提供的組件快速創(chuàng)建一個 HYPERLINK :/zh.w
18、/wiki/%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F o 應(yīng)用程序 應(yīng)用程序。VB的中心思想就是要便于HYPERLINK ://wiki/%E7%A8%8B%E5%BA%8F%E5%91%98 o 程序員程序員使用,無論是新手或者專家。VB使用了可以簡單創(chuàng)建應(yīng)用程序的 HYPERLINK ://wiki/GUI o GUI GUI系統(tǒng),但是又可以開發(fā)相當(dāng)復(fù)雜的程序。VB的程序是一種基于HYPERLINK ://w/index.php?title
19、=%E7%AA%97%E4%BD%93&action=edit&redlink=1 o 窗體(頁面不存在)窗體的可視化組件安排的聯(lián)合,并且增加代碼來指定組建的屬性和方法。因為默認(rèn)的屬性和方法已經(jīng)有一部分定義在了組件,所以程序員不用寫多少代碼就可以完成一個簡單的程序。過去的版本里面VB程序的性能問題一直被放在了桌面上,但是隨著HYPERLINK ://wiki/%E8%AE%A1%E7%AE%97%E6%9C%BA o 計算機(jī)計算機(jī)速度的飛速增加,關(guān)于性能的爭論已經(jīng)越來越少。窗體控件的增加和改變可以用HYPERLINK ://wik
20、i/%E6%8B%96%E6%94%BE o 拖放拖放技術(shù)實現(xiàn)。一個排列滿控件的工具箱用來顯示可用控件(比如文本框或者按鈕)。每個控件都有自己的HYPERLINK ://w/index.php?title=%E5%B1%9E%E6%80%A7&action=edit&redlink=1 o 屬性(頁面不存在)屬性和 HYPERLINK ://wiki/%E4%BA%8B%E4%BB%B6 o 事件 事件。默認(rèn)的屬性值會在控件創(chuàng)建的時候提供,但是程序員也可以進(jìn)行更改。很多的屬性值可以在運行時候隨著用戶的動作和修改進(jìn)行改動,這樣就形成
21、了一個動態(tài)的程序。舉個例子來說:窗體的大小改變事件中加入了可以改變控件位置的代碼,在運行時候每當(dāng)用戶更改窗口大小,控件也會隨之改變位置。在文本框中的文字改變事件中加入相應(yīng)的代碼,程序就能夠在文字輸入的時候自動翻譯或者阻止某些字符的輸入。VB的程序可以包含一個或多個窗體,或者是一個主窗體和多個子窗體,類似于HYPERLINK ://wiki/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F o 操作系統(tǒng)操作系統(tǒng)的樣子。有很少功能的對話框 HYPERLINK ://wiki/%E7%AA%97%E5%8F%A3
22、 o 窗口 窗口(比如沒有HYPERLINK ://w/index.php?title=%E6%9C%80%E5%A4%A7%E5%8C%96&action=edit&redlink=1 o 最大化(頁面不存在)最大化和 HYPERLINK ://w/index.php?title=%E6%9C%80%E5%B0%8F%E5%8C%96&action=edit&redlink=1 o 最小化(頁面不存在) 最小化按鈕的窗體)可以用來提供彈出功能。VB的組件既可以擁有用戶界面,也可以沒有。這樣一來HYPERLINK :/zh.wik
23、/wiki/%E6%9C%8D%E5%8A%A1%E5%99%A8 o 服務(wù)器服務(wù)器端程序就可以處理增加的 HYPERLINK ://wiki/%E6%A8%A1%E5%9D%97 o 模塊 模塊。VB使用HYPERLINK ://wiki/%E5%BC%95%E7%94%A8%E8%AE%A1%E6%95%B0 o 引用計數(shù)引用計數(shù)的方法來進(jìn)行垃圾收集,這個方法中包含有大量的對象,提供基本的 HYPERLINK ://wiki/%E9%9D%A2%E5%90%91%E5%AF%
24、B9%E8%B1%A1%E7%9A%84%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1 o 面向?qū)ο蟮某绦蛟O(shè)計 面向?qū)ο笾С?。因為越來越多組建的出現(xiàn),程序員可以選用自己需要的擴(kuò)展庫。和有些語言不一樣,VB對大小寫不敏感,但是能自動轉(zhuǎn)換關(guān)鍵詞到標(biāo)準(zhǔn)的大小寫狀態(tài),以與強(qiáng)制使得符號表入口的實體的變量名稱遵循書寫規(guī)則。默認(rèn)情況下字符串的比較是對大小寫敏感的,但是可以關(guān)閉這個功能。VB使得大量的外界控件有了自己的生存空間。大量的第三方控件針對VB提供。VB也提供了創(chuàng)建、使用和重用這些控件的方法,但是由于語言問題,從一個應(yīng)用程序創(chuàng)建另外一個并不簡單。3 串口通信原理3.1串行通信
25、定義串口是計算機(jī)上一種非常通用設(shè)備通信的協(xié)議。大多數(shù)計算機(jī)包含兩個基于RS-232的串口。串口同時也是儀器儀表設(shè)備通用的通信協(xié)議;很多GPIB兼容的設(shè)備也帶有RS-232口。同時,串口通信協(xié)議也可以用于獲取遠(yuǎn)程采集設(shè)備的數(shù)據(jù)。3.2串行通信的異步通信字符幀也叫數(shù)據(jù)幀,由起始位、數(shù)據(jù)位、奇偶校驗位和停止位等四部分組成。在串行通信中,發(fā)送端一幀一幀發(fā)送信息,接收端一幀一幀接收信息。兩相鄰字符幀之間可以無空閑位,也可以由若干空閑位,自行定義。串行通信的數(shù)據(jù)或者字符是一幀一幀地傳送,在異步通信中,一幀數(shù)據(jù)先用一個起始位“0”表示字符的開始,然后是58位上數(shù)據(jù),即該字符的代碼,規(guī)定低位在前,高位在后,接
26、下來是奇偶校驗位,最后一個停止位“1”表示字符的結(jié)束。下面是異步通信一幀數(shù)據(jù)為10位的幀格式見圖3-1。圖3-1字符幀格式圖3.3波特率波特率是通信中對數(shù)據(jù)傳送速率的要求。在計算機(jī)通信中,其意義是每秒鐘傳送多少位二進(jìn)制數(shù)。假如異步傳送速率為每秒120個字符,每個字符有1個起始位,8個數(shù)據(jù)位,1個停止位組成,則其傳送波特率為 QUOTE 傳送一位所需要的時間為波特率的倒數(shù),即 QUOTE 在串行傳輸中,二進(jìn)制數(shù)據(jù)序列是以數(shù)字波形出現(xiàn)的,發(fā)送時在發(fā)送時鐘下將通信線上傳來的數(shù)據(jù)串行移入移位寄存器,所以,發(fā)送時鐘和接受時鐘也可作移位時鐘。能產(chǎn)生該時鐘的電路稱為波特率發(fā)生器。為提高采樣的分辨率,準(zhǔn)確地測
27、定數(shù)據(jù)位的上升沿或下降沿,時鐘頻率總是高于波特率的若干倍,這個倍數(shù)稱為波特率因子。在單片機(jī)中,發(fā)送和接收時鐘可以由系統(tǒng)時鐘f QUOTE osc QUOTE 產(chǎn)生,其波特率因子為12,32,64.如果波特率由f QUOTE osc決定稱為固定波特率方式。也可以由單片機(jī)的部定時器T1產(chǎn)生,它工作于自動重裝8位定時方式,由于定時器的計數(shù)初值可以人為的改變,T1產(chǎn)生的時鐘頻率就可以改變,稱為可變波特率方式。3.4串行接口的基本特點3.4.1串行端口工作方式MCS-51 HYPERLINK :/ go-gddq /html/2009-05/460278.htm o 就是一個微型的電腦,麻雀雖小,五臟俱
28、全 單片機(jī)的串行端口有4種基本工作方式,通過編程設(shè)置,可以使其工作在任一方式,以滿足不同場合的需要。其中,方式0主要用于外接移位寄存器,以擴(kuò)展單片機(jī)的IO HYPERLINK :/ go-gddq /html/2007-08/423216.htm o 電流流過的路叫做電路 電路;工作方式1多用于雙機(jī)之間或與外設(shè)電路的通信;方式2、3除有方式1的功能外,還可以作多機(jī)通信,以構(gòu)成分布式多微機(jī)系統(tǒng)。 串行端口有兩個控制寄存器SCON、PCON,用于設(shè)置工作方式、發(fā)送或接收的狀態(tài)、特征位、數(shù)據(jù)傳送波特率每秒傳送的位數(shù)以與作為中斷標(biāo)志等。串行端口有一個數(shù)據(jù)寄存器SBUF在特殊功能寄存器中的字節(jié)地址為99
29、H,該寄存器為發(fā)送和接收所共用。串行端口的波特率可以用程序來控制。在不同工作方式中,由時鐘振蕩 HYPERLINK :/ go-gddq /html/2007-02/412789.htm o 頻率 頻率的 HYPERLINK :/ go-gddq /html/2007-08/423322.htm 分頻值或由定時器T1的定時溢出時間確定,使用十分方便靈活。串口控制寄存器:輸入:在 QUOTE 時,串行口采樣RXD引腳,當(dāng)采樣到1至O的跳變時,確認(rèn)是串行發(fā)送來的一幀數(shù)據(jù)的開始位0,從而開始接收一幀數(shù)據(jù)。只有當(dāng)8位數(shù)據(jù)接收完,并檢測到高 HYPERLINK :/ go-gddq /html/2006
30、-12/409054.htm o 電平 電平停止位后,只有滿足 QUOTE ;或接收到的第9位數(shù)據(jù)為1時,停止位才進(jìn)入RB8,8位數(shù)據(jù)才能進(jìn)入接收寄存器,并由硬件置位中斷標(biāo)志RI;否則信息丟失。所以在方式1接收時,應(yīng)先用軟件清零RI和SM2標(biāo)志。1. 方式2方式2為固定波特率的11位UART方式。它比方式1增加了一位可程控為1或0的第9位數(shù)據(jù)。輸出:發(fā)送的串行數(shù)據(jù)由TXD端輸出一幀信息為11位,附加的第9位來自SCON寄存器的TB8位,用軟件置位或復(fù)位。它可作為多機(jī)通訊中地址數(shù)據(jù)信息的標(biāo)志位,也可以作為數(shù)據(jù)的奇偶校驗位。當(dāng)CPU執(zhí)行一條數(shù)據(jù)寫入SUBF的指令且 QUOTE 時,就啟動發(fā)送器發(fā)送
31、。發(fā)送一幀信息后,置位中斷標(biāo)志TI。輸入:在 QUOTE 時,串行口采樣RXD引腳,當(dāng)采樣到1至O的跳變時,確認(rèn)是串行發(fā)送來的一幀數(shù)據(jù)的開始位0,從而開始接收一幀數(shù)據(jù)。在接收到附加的第9位數(shù)據(jù)后,當(dāng)滿足 QUOTE ; QUOTE 或接收到的第9位數(shù)據(jù)為1時,第9位數(shù)據(jù)才進(jìn)入RB8,8位數(shù)據(jù)才能進(jìn)入接收寄存器,并由硬件置位中斷標(biāo)志RI;否則信息丟失。且不置位RI。2. 工作方式3方式3為波特率可變的11位UART方式。除波特率外,其余與方式2一樣。波特率的選擇如前所述,在串行通訊中,收發(fā)雙方的數(shù)據(jù)傳送率(波特率)要有一定的約定。在MCS-51串行口的四種工作方式中,方式0和2的波特率是固定的,
32、而方式1和3的波特率是可變的,由定時器T1的溢出率控制。1方式O方式0的波特率固定為主振 HYPERLINK :/ go-gddq /html/2007-02/412789.htm o 頻率 頻率 的 QUOTE 。2方式2 方式2的波特率由PCON中的選擇位SMOD來決定,可表示為: QUOTE 也就是當(dāng) QUOTE 時,波特率為 QUOTE ,當(dāng) QUOTE 時,波特率為 QUOTE 。3方式1和方式3定時器T1作為波特率發(fā)生器,其公式如下:式中T1計數(shù)率取決于它工作在定時器狀態(tài)還是計數(shù)器狀態(tài)。當(dāng)工作于定時器狀態(tài)時,T1計數(shù)率為fosc門2:當(dāng)工作于計數(shù)器狀態(tài)時,T1計數(shù)率為外部輸入 HY
33、PERLINK :/ go-gddq /html/2007-02/412789.htm o 頻率 頻率,此頻率應(yīng)小于 QUOTE 。產(chǎn)生溢出所需 HYPERLINK :/ go-gddq /html/2007-08/423217.htm o 交流電完成一次完整的變化所需要的時間叫做周期 周期與定時器T1的工作方式、T1的預(yù)置值有關(guān)。定時器T1工作于方式O: QUOTE 定時器T1工作于方式1: QUOTE 定時器T1工作于方式2: QUOTE 因為方式2為自動重裝入初值的8位定時器計數(shù)器模式,所以用它來做波特率發(fā)生器最恰當(dāng)。這種方式下,T1的溢出率次秒計算式可以表示為:(二) 串行口的通信波特
34、率串行口的通信波特率恰好反映串行口傳輸數(shù)據(jù)的速率。通信波特率的選用,不僅和所選通信設(shè)備、傳輸距離有關(guān),還受傳輸線狀況所制約。波特率設(shè)計 1、方式0的波特率 工作方式0時,移位脈沖由機(jī)器周期的第6個狀態(tài)周期S6給出,每個機(jī)器周期產(chǎn)生一個移位脈沖,發(fā)送或接收一位數(shù)據(jù)。因此,波特率是固定的,為振蕩頻率的 QUOTE ,不受PCON寄存器中SMOD的影響。用公式表示為:工作方式0的 QUOTE 2、方式2的波特率 工作方式2時,移位脈沖由振蕩頻率fosc的第二節(jié)拍P2時鐘(即)給出,所以,方式2波特率取決于PCON中的SMOD位的值,當(dāng) QUOTE 時,波特率為fosc的 QUOTE ;當(dāng) QUOTE
35、 時,波特率為fosc的 QUOTE ,用公式表示為;工作方式2: QUOTE 3、工作方式1和方式3的波特率 在這兩種方式下,串行口波特率是由定時器的溢出率決定的,因而波特率也是可變的。相應(yīng)公式為: QUOTE QUOTE 實際上定時器T1通常采用方式2,因為定時器T1在方式2下工作,TH1和TL1分別設(shè)定為兩個8位重裝計數(shù)器。4單片機(jī)與PC機(jī)通信4.1 AT89C51單片機(jī)上對應(yīng)端口介紹本次課設(shè)主要用到AT89C51單片機(jī)上的P3口,P3口的功能簡介如下:P3口管腳是8個帶部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被部上拉為高電平,并用作輸入。作為輸入
36、,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(計時器0外部輸入)P3.5 T1(計時器1外部輸入)P3.6 /WR( HYPERLINK :/baike.baidu /view/1273932.htm t _blank 外部數(shù)據(jù) HYPERLINK :/baike.baidu /view/87697.htm t _blank 存儲器寫選通)P3.7 /RD( HYPERL
37、INK :/baike.baidu /view/1273932.htm t _blank 外部數(shù)據(jù) HYPERLINK :/baike.baidu /view/87697.htm t _blank 存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些 HYPERLINK :/baike.baidu /view/8407048.htm t _blank 控制信號本次單片機(jī)部分只需用到P3口的P3.0口和P3.1口,用于和PC連接通信。4.2 RS-232簡介通常 RS-232 接口以9個引腳 (DB-9) 或是25個引腳 (DB-25) 的型態(tài)出現(xiàn),RS-232的電器特性、邏輯電平和各種信號線功
38、能也有規(guī)定。 在TxD和RxD上:邏輯1:-3V -15V 邏輯0:+3V+15V 發(fā)送數(shù)據(jù)(TxD)通過TxD終端將串行數(shù)據(jù)發(fā)送到MODEM,(DTEDCE)。 接收數(shù)據(jù)(RxD)通過RxD線終端接收從MODEM發(fā)來的串行數(shù)據(jù),(DCEDTE)。4.3單片機(jī)通信代碼#include #include#define uchar unsigned char#define uint unsigned intunsigned char flag,a,i;uchar code table=OH MY GOD;void delay1ms()uchar i,j;for(i=0;i10;i+)for(j=0
39、;j33;j+);void delay(uchar n)/延時n毫秒uchar i;for(i=0;in;i+)delay1ms();void init() TMOD=0 x20;/T1定時器方式2 TH1=0 xfd; TL1=0 xfd;/T1定時器裝初值 TR1=1;/啟動定時器T1 REN=1;/數(shù)據(jù)允許接受 SM0=0;設(shè)定串口方式1 SM1=1;/ EA=1;/開總中斷 ES=1;/允許串口中斷void main() uchar k; init(); while(1) if(flag=1) ES=0;/關(guān)閉串口中斷 for(i=0;i= 0 And c = a And c = A
40、And c = F Then IsHex = Asc(c) - Asc(A) + 10 Else IsHex = 16 End IfEnd FunctionPrivate Sub Command6_Click() Dim outs As String outs = Text2.Text Call ToChar(out, CStr(outs) MSComm1.Output = out Exit Sub Dim s As String Dim l As Integer Dim i As Integer, j As Integer,t As Integer Dim a As Integer Dim
41、tmp As String Dim send_buf() As Byte ReDim send_buf(1024) t = 0 s = Trim(Text2.Text) l = Len(s) Do While (l) Do Until IsHex(Left(s, 1) 16 l = l - 1 If l = 0 Then Exit Do tmp = Right(s, l) Loop a = IsHex(Left(s, 1) l = l - 1 s = Right(s, l) If l 0 And IsHex(Left(s, 1) 16 Then a = a * 16 + IsHex(Left(
42、s, 1) l = l - 1 s = Right(s, l) End If t =t + 1 send_buf(cnt) = a Loop Ift 128 Thent = 128 ReDim Preserve send_buf(cnt) MSComm1.Output = send_buf()End SubPrivate Sub Command7_Click() Unload MeEnd SubPrivate Sub Form_Activate() On Error Resume Next mut = False Combo1.ListIndex = 0 Combo2.ListIndex =
43、5 Combo3.ListIndex = 0 Combo4.ListIndex = 0 mut = True MSComm1.PortOpen = True If Err.Number Then MsgBox 串口1已打開!, vbOKOnly, 警告 Option1.BackColor = RGB(0, 0, 0) Command1.Enabled = False Command6.Enabled = False Err.Clear End If Command1.SetFocusEnd SubPrivate Sub Form_Load() MSComm1 mPort = 1 設(shè)置串行端口c
44、om1 MSComm1.Settings = 9600,N,8,1 設(shè)置波特率與數(shù)據(jù)幀格式 MSComm1.InputLen = 0 讀取接收緩沖區(qū)的所有字符 MSComm1.InBufferSize = 256 數(shù)據(jù)接受緩沖區(qū)大小為4000字節(jié) MSComm1.OutBufferSize = 256 數(shù)據(jù)發(fā)送緩沖區(qū)大小為4000字節(jié) MSComm1.RThreshold = 1 每10位數(shù)據(jù)到接收緩沖區(qū)都觸發(fā)接收事件 MSComm1.SThreshold = 1 發(fā)送緩沖區(qū)空觸發(fā)發(fā)送事件 MSComm1.InputMode = comInputModeText 字節(jié)模式 設(shè)定 InputMo
45、de 以讀取二進(jìn)位資料 MSComm1.InputMode = comInputModeBinary disp_on = 1 comport = 1 rate = 9600 data_cnt = 8 stop_cnt = 1End SubPrivate Sub Label3_Click()End SubPrivate Sub MSComm1_OnComm() Statict As Integer Dim receive_cnt As Integer Dim i As Integer Dim Buffer As Variant Dim Arr() As Byte Dim s As String
46、Select Case MSComm1 mEvent Case comEvReceive receive_cnt = MSComm1.InBufferCount 接收緩沖區(qū)的字節(jié)數(shù) 往暫存區(qū)存二進(jìn)位資料 Buffer = MSComm1.Input 指定給位元組陣列以便處理 Arr = Buffer s = For i = 0 To receive_cnt - 1 If Arr(i) = 32 And Arr(i) = 300 Then Text1.Text = t = 0 Exit Sub End If Case comEvSend End SelectEnd SubFunction ToC
47、har(ByRef f() As Byte, ByVal s As String) ReDim f(0) Dim i As Long For i = 0 To Len(s) - 1 ReDim Preserve f(i) f(i) = Asc(Mid(s, i + 1, 1) Next i ReDim Preserve f(i) f(i) = 0End Functio6 串口通信結(jié)果與其分析6.1通信結(jié)果圖6-1 VSPD設(shè)置串口圖6-2單片機(jī)向PC端發(fā)送圖6-3 PC端接受單片機(jī)通信圖6-4 PC端向單片機(jī)發(fā)送數(shù)據(jù)圖6-5 單片機(jī)接收PC發(fā)送數(shù)據(jù)6.2結(jié)果分析先使用VSPD軟件將所涉與的VB程序與單片機(jī)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報書:俄蘇中亞歷史地理學(xué)史研究
- 13《湖中心亭看雪》公開課一等獎創(chuàng)新教學(xué)設(shè)計
- 上海閔行職業(yè)技術(shù)學(xué)院《基礎(chǔ)教育改革研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海旅游高等??茖W(xué)校《現(xiàn)代通信系統(tǒng)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海立信會計金融學(xué)院《康復(fù)護(hù)理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上??茖W(xué)技術(shù)職業(yè)學(xué)院《高分子材料助劑與配方設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 4.1+光的直線+教學(xué)課件+2024-2025學(xué)年人教版物理八年級上冊+
- 上海交通大學(xué)《環(huán)境儀器分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 歷史與社會:人教版九年級第五單元第一課第三框《西歐的復(fù)興與聯(lián)合》教學(xué)實錄
- 上海濟(jì)光職業(yè)技術(shù)學(xué)院《礦床學(xué)前沿》2023-2024學(xué)年第一學(xué)期期末試卷
- 老年科護(hù)理查房護(hù)理病歷臨床病案
- Python語言基礎(chǔ)與應(yīng)用學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 消除“艾梅乙”醫(yī)療歧視-從我做起
- 古代名劇鑒賞學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024年廣西公需科目一帶-路題庫參考答案
- 2024年秋國家開放大學(xué)《形勢與政策》大作業(yè):建設(shè)中華民族現(xiàn)代文明的路徑是什么?中華民族現(xiàn)代文明有哪些鮮明特質(zhì)?附答案【供參考】
- GB/T 35136-2024智能家居自動控制設(shè)備通用技術(shù)要求
- 腕管綜合征護(hù)理常規(guī)
- Unit 3 Lesson 13 At School(教學(xué)設(shè)計)-2024-2025學(xué)年冀教版(三起)英語四年級上冊
- 期末達(dá)標(biāo)測試卷(試題)-2024-2025學(xué)年人教PEP版英語四年級上冊
- 抗腫瘤治療相關(guān)性心肌并發(fā)癥
評論
0/150
提交評論