版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
大連海事大學(xué)畢業(yè)設(shè)計(二)
2、C/T——功能選擇位。C/T=1時,選擇計數(shù)功能;C/T=0時,選擇定時功能。T0、T1的計數(shù)、定時功能是通過TMOD中的位來選擇的。3、M1、M0——工作方式選擇位。由于有M1和M0兩位,可以有四種工作方式,如下表所示。定時器/計數(shù)器的工作方式3串行數(shù)據(jù)通信程序設(shè)計3.1通信協(xié)議本系統(tǒng)串行通信采用異步通信方式。協(xié)議如下:1.一幀數(shù)據(jù)由1位起始位、8位數(shù)據(jù)位、無奇偶校驗位、1位停止位共10位組成。2.波特率設(shè)為9600bps。單片機串行口按方式1工作,波特率由定時器T1控制,PC機串口波特率通過VB通訊控件的Settings屬性設(shè)置,為保證數(shù)據(jù)傳送的準(zhǔn)確性,兩者的波特率必須一致。本次通訊中,我們以一個測控系統(tǒng)的上位機和下位機之間的通信為背景,給出單片機部分和VB環(huán)境下的通信程序?qū)嵗?,系統(tǒng)中單片機負(fù)責(zé)數(shù)據(jù)采集、處理和控制,上位機進行現(xiàn)場可視化檢測,通信協(xié)議采用異步串行通信方式,通過RS232的RTS信號進行收發(fā)轉(zhuǎn)換,傳輸數(shù)據(jù)采用二進制數(shù)據(jù),上位機與下位機之間采用主從式通訊。3.2下位機(單片機)串行通信及程序設(shè)計平臺介紹及編程方法匯編語言匯編語言是針對一類(甚至幾類)計算機,抽象出來的一種符號語言并把這些符號加以統(tǒng)一規(guī)定,使得使用同類計算機的人都了解這些符號的意義,這樣,使得用匯編語言編寫的程序可以在這一類型的任何一臺計算機上使用。這就有了極大的靈活性,當(dāng)然不同類型的計算機的匯編語言也不同。它們都必須由生產(chǎn)廠家提供的匯編語言來編寫。另外.匯編語言還增加了宏指令的功能。匯編語言是計算機衛(wèi)程控制中最常用的語言。匯編語言的主要優(yōu)點就是可以直接控制計算機硬件,可以編寫在時間和空間兩方面更有效的程序。這些優(yōu)點使得匯編語言在程序設(shè)計中占有重要的地位。是不可取代的。但匯編語言的缺點也是明顯的,它與處理器密切相關(guān),要求程序員熟悉計算機硬件系統(tǒng),考慮許多細節(jié)問題,所以程序繁瑣,調(diào)試、維護、交流和移植困難。因此,有時可以采用高級語言和匯編語言混合編程的方怯,互相取長補短,更好地解決實際間題。匯編語言生要應(yīng)用場合有以下幾種:l)程序要具有較短的運行時問,或者只能占用較小的存儲客量。例如操作系統(tǒng)的核心程序段,實時控制系統(tǒng)的軟件等。2)程序與計算機硬件密切相關(guān),程序要直接控制硬件。例如to接口電路的初始化程序段,外部設(shè)備的底層驅(qū)動程序等。3)大型軟件需要提高性能、優(yōu)化處理的部分。例如計算機系統(tǒng)頻繁調(diào)用的子程序、動態(tài)鏈接庫等。4)沒有適合的高級語言的時候。例如開發(fā)最新的處理器程序時。偉福軟件介紹:偉福系列仿真器偉福仿真品種多、功能強,特點如下:1)主機+POD組合,通過更換POD,可以對各種CPU進行仿真。2)雙平臺:DOS版本,WINDOWS版本。其中WINDOWS版本功能強大。3)雙工作模式:a.軟件模擬仿真(不要仿真器也能模擬仿真)。硬件仿真。4)雙CPU結(jié)構(gòu),100%不占用戶資源。5)雙集成環(huán)境:編輯、編譯、下載、調(diào)試全部集中在一個環(huán)境下。多種仿真器,多類CPU仿真全部集成在一個環(huán)境下??煞抡?1系列,196系列,PIC系列,飛利蒲公司的552、LPC764、DALLAS320,華邦438等51增強型CPU。為了跟上形勢,現(xiàn)在很多工程師需要面對和掌握不同和項目管理器、編輯器、編譯器。偉福WINDOWS調(diào)試軟件為您提供了一個全集成環(huán)境,統(tǒng)一的界面,包含一個項目管理器,一個功能強大的編輯器,匯編Make、Build和調(diào)試工具并提供一個與第三方編譯器的接口。6)強大的邏輯分析儀綜合調(diào)試功能:隨著科學(xué)技術(shù)的發(fā)展,單片機通訊方面的運用越來越多。有了邏輯儀,用它可以分別或者同時對發(fā)送方、接收方的輸入或者輸出波形進行記錄、存儲、對比、測量等各種直觀的分析,可以將實際輸出通訊報文的波形與源程序相比較,可立即發(fā)現(xiàn)問題所在。從而極大地方便了調(diào)試。7)強大的追蹤器功能:追蹤功能以總線周期為單位,實時記錄仿真過程中CPU發(fā)生的總線事件,其觸發(fā)條件方式同邏輯分析儀。追蹤窗口在仿真停止時可收集顯示追蹤的CPU指令記憶信息,可以以總線反匯編碼模式、源程序模式對應(yīng)顯示追蹤結(jié)果。屏幕窗口顯示波形圖最多追蹤記憶指令32K并通過仿真器的斷點、單步、全速運行或各種條件組合斷點來完成追蹤功能??偩€跟蹤可以跟蹤程序的運行軌跡??梢越y(tǒng)計軟件運行時間。編程方法本系統(tǒng)中傳輸協(xié)議為9600,8,N,1,即波特率為9600b/s,傳送8個數(shù)據(jù)位。沒有校驗位,一個停止位。在PC機中也設(shè)置為相同的協(xié)議。1)控制寄存器SCON的設(shè)置為:SM0、SM1為0、1,即為串行工作方式1,REN為1,即允許接收。這樣SCON中的值是0X50H,(使用匯編語言是MOVSCON,#50H。)2)TMOD寄存器的設(shè)置為:使用定時器1。M0=0,M1=1,工作于方式2,自動重新載入計數(shù)值。TMOD=0X20H。(使用匯編語言是MOVTMOD,#20H)3)波特率的設(shè)置:本系統(tǒng)上的工作時鐘為11.0592MHz,波特率為9600b/s,對TH1的重載入計數(shù)器值由下式計算可得:TH1=256-11059200/384*9600=253=FDHTH1=0XFDH(使用匯編語言是MOVTH1,#0FDH)。接收程序:MOV
TH1,#0FDH;MOV
TL1,#0FDH;SETBTR1;MOV
SCON,#50H;LOOP:JBC
RI,DISPSJMP
LOOPDISP:MOV
A,SBUFMOV
DPTR,#TABMOVCA,@A+DPTRMOVP2,ASJMPLOOPTAB:DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND發(fā)送程序:ORG0000HSTART:MOV
TMOD,#20H;MOV
TL1,#0FDHMOV
TH1,#0FDH;SETB
TR1MOV
SCON,#40HMOV
R0,#20HMOV
R7,#32MOV
A,#40LOOP1:MOV
@R0,AINC
AINC
R0DJNZ
R7,LOOP1MOV
R0,#20HMOV
R7,#32LOOP:
MOV
A,@R0ACALLYANSHIACALLSPOUTINC
R0DJNZ
R7,LOOPSJMP
STARTSPOUT:MOV
SBUF,AJNB
TI,$CLR
TIRETYANSHI:MOV
R6,#250D1:
MOV
R5,#250DJNZ
R5,$DJNZ
R6,D1RETEND3.3上位機(PC機)串行通信及程序設(shè)計3.3.1平臺介紹及編程方法VB語言簡介在本系統(tǒng)中PC機采用VisualBasic(簡稱VB)編程。VB已成為WINDOWS系統(tǒng)開發(fā)的主要語言,以其高效、簡單易學(xué)及功能強大的特點越來越為廣大程序設(shè)計人員及用戶所青睞。VB支持面向?qū)ο蟮某绦蛟O(shè)計,具有結(jié)構(gòu)化的事件驅(qū)動編程模式并可以使用無限擴增的控件,而且可以十分簡便地作出良好的人機界面。用VB6.0開發(fā)串行通信程序有兩種法,一種是利用Windows的API函數(shù);另一種是采用VB6.0的通信控件MSComm。利用API函數(shù)編寫串行通信程序較為復(fù)雜,需要掌握大量的通信知識,其優(yōu)點是可實現(xiàn)的功能更豐富、應(yīng)用面更廣泛,適合于編寫較為復(fù)雜的低層次通信程序。而VB6.0的MSComm通信控件提供了標(biāo)準(zhǔn)的事件處理函數(shù)、事件、方法,并通過控件屬性對串口參數(shù)進行設(shè)置,比較容易地解決了串口通信問題。該控件可設(shè)置串行通信的數(shù)據(jù)發(fā)送和接收,對串口狀態(tài)及串口通信的信息格式和協(xié)議進行設(shè)置。這是一個標(biāo)準(zhǔn)的十位串口通信,包括8位標(biāo)準(zhǔn)數(shù)據(jù)和數(shù)據(jù)的起始位和停止位。在發(fā)送或接收數(shù)據(jù)過程中觸發(fā)OnComm事件,通過編程訪問CommEvent屬性了解通信事件的類型,分別進行各自的處理。每個通信控件對應(yīng)一個串口,可以設(shè)計多個通信控件來訪問多個通信口。3.3.2VB6.0的通信控件及通信方式MSComm通訊控件簡介MSComm是VB6.0提供的ActiveX控件,使用前需將該控件添加到VB工具欄。MSComm控件串口具有完善的串口數(shù)據(jù)的發(fā)送和接收功能。通過此控件,PC機可以利用串行口與其它設(shè)備實現(xiàn)輕松連接,簡單高效地實現(xiàn)設(shè)備之間的通訊。此控件的事件響應(yīng)有兩種處理方式,事件驅(qū)動方式:由MSComm控件的OnComm事件捕獲并處理通訊錯誤及事件;查詢方式:通過檢查CommEvent屬性的值來判斷事件和錯誤。1)MSComm控件的主要屬性和方法a.
CommPort:設(shè)置或返回串行端口號,其取值范圍為1—99,缺省為1b.
Setting:設(shè)置或返回串行端口的波特率、奇偶校驗位、數(shù)據(jù)位數(shù)、停位。如:MSComm.Setting="9600,n,8,1”。c.
PortOpen:打開或關(guān)閉串行端口。d.
RThreshold:該屬性為一閥值,它確定當(dāng)接收緩沖區(qū)內(nèi)字節(jié)個數(shù)達到或超過該值后就產(chǎn)生MSComml--OnComm事件。e.
Input:從接收緩沖區(qū)移走一串字符。f.
Output:向發(fā)送緩沖區(qū)傳送一字符串。2)CommEvent屬性:如果在通訊過程中發(fā)生錯誤或事件,就會引發(fā)OnComm事件并由CommEvent屬性代碼反映錯誤類型,可根據(jù)該屬性值來執(zhí)行不同的程序操作或數(shù)據(jù)處理。以下是部分屬性常數(shù)值及其含義:a.
ComEvSend:其值為1,發(fā)送緩沖區(qū)的內(nèi)容少于SThreshold指定的值。b.
ComEvReceive:其值為2,接收緩沖區(qū)內(nèi)字符數(shù)達到RThreshold值,該事件在緩沖區(qū)中數(shù)據(jù)被移走前將持續(xù)產(chǎn)生。c.
ComEventRxParity:其值為1009,奇偶校驗。d.
ComEvEOF:其值為7,接收數(shù)據(jù)中出現(xiàn)文件結(jié)束字符。本系統(tǒng)采用事件驅(qū)動方式進行串口通信設(shè)計,下圖2為上位機通信界面,設(shè)計了2個命令按扭,分別為發(fā)送、清空數(shù)據(jù);兩個文本框,Text1用于輸入需從下位機讀取的數(shù),Text2用于顯示下位機發(fā)送來的數(shù)據(jù);3個Frame控件,一個Label控件,當(dāng)然還需要一個MSComm控件。MSComm控件屬性設(shè)置如圖1示:(圖2)下面是MSComm控件的初始化程序、部分?jǐn)?shù)據(jù)發(fā)送和接受程序4調(diào)試與結(jié)論該系統(tǒng)目前已調(diào)試成功,完成了PC機與51單片機之間的串行通信。并且實現(xiàn)了下列功能:1)在VB界面上發(fā)送任一數(shù)字在51單片機的數(shù)碼管上都能成功的接收2)同樣通過向51單片機內(nèi)寫入的程序,在VB界面上可以接收到相對應(yīng)的內(nèi)容且運行良好。調(diào)試過程如下:硬件方面:該系統(tǒng)的硬件調(diào)試主要是排查單片機印刷電路板的問題和連接上的一些問題。在該系統(tǒng)中,首先通過了仔細地推敲系統(tǒng)原理,確認(rèn)無誤;其次對照設(shè)計圖紙查印制電路板,看是否有粘接等工藝現(xiàn)象;最后,檢查外圍連接是否有誤,通過這幾個方面的反復(fù)調(diào)試,可確保電路板的無誤性。在本系統(tǒng)的硬件調(diào)試過程中,出現(xiàn)了下列兩種情況1)電壓不穩(wěn)定而導(dǎo)致程序無法寫入的情況,使電壓穩(wěn)定的方法是改用新的電池,或者是再次設(shè)計電源方案,在這里是用電源接通教學(xué)實驗板,然后再把教學(xué)實驗板與本系統(tǒng)相
連接,這樣,就可以得到穩(wěn)定的電壓了。2)還出現(xiàn)的一個問題是數(shù)碼管不顯示,檢查后是焊接上出現(xiàn)了一點的失誤。軟件方面:本系統(tǒng)在軟件調(diào)試方面也沒有規(guī)律可循,調(diào)試時更多的是憑經(jīng)驗。軟件調(diào)試的主要任務(wù)是排查錯誤。通過在WaveE2000編譯器下調(diào)試程序,有兩種錯誤,一種邏輯錯誤,也就是語法錯誤,是很容易被發(fā)現(xiàn)的,另一種是功能錯誤,是指在沒有語法錯誤的基礎(chǔ)上,由于設(shè)計思想或算法的問題導(dǎo)致不能實現(xiàn)軟件功能的一種錯誤。調(diào)試過程中出現(xiàn)的問題主要有以下四個方面:1)用其它串口調(diào)試軟件能夠很好的實現(xiàn)兩者之間的串行通信,成功的接收和發(fā)送數(shù)據(jù),但使用我們的VB程序卻不能實現(xiàn),要么只能實現(xiàn)接收功能,要么只能實現(xiàn)發(fā)送功能。之后通過對VB程序做多次的改動與測試才達到理想的結(jié)果。2)在VB界面上發(fā)送的數(shù)據(jù)與單片機的數(shù)碼管上顯示的數(shù)字不相符,這個問題是我們匯編程序的問題,由于匯編語言符號的繁多加上我們的粗心在輸入代碼的過程中難免出現(xiàn)一些看不見的問題,造成調(diào)試過程中出現(xiàn)意外。借此我想提醒大家的是搞設(shè)計搞研究必須做到細心,要有一顆敬業(yè)的心對待我們接受的任務(wù),有耐心面臨出現(xiàn)的困難。3)由于要實現(xiàn)上下位機的串行通信,所以兩者之間的波特率是否一致也是一個不容忽視的問題,在開始我并沒有太注意這個方面的情況,到各方面的準(zhǔn)備工作都做好要進行調(diào)試的時候,才發(fā)現(xiàn)有個二者波特率設(shè)置是否相同將影響到整個通信過程,我趕緊作了修改才免遭一次調(diào)試失敗。4)還有最后一點注意的地方是,利用MSComm控件比較方便地開發(fā)串行通信程序,實現(xiàn)串行通訊原理已經(jīng)得到實驗結(jié)果驗證,考慮到將來對系統(tǒng)實時性的要求,采用了MSComm控件的查詢處理機制,避免了中斷處理機制的不穩(wěn)定和不連續(xù)性,而且還可以很方便地控制多個串口,只需插入多個MSComm控件,并為每個MSComm控件編寫OnComm()函數(shù)。但是我們也清楚的體會到MSComm控件在VB中的使用較為復(fù)雜。這一點是我們以后在運用中需要加強的地方。伴隨著單片微型機技術(shù)的發(fā)展,人們已越來越多地采用單片機來對一些工業(yè)控制系統(tǒng)中如溫度、流量和壓力等參數(shù)進行檢測和控制。希望通過大家的共同努力能在PC機與單片機這方面取得新的成績有突出的表現(xiàn),能夠很好的將學(xué)到知識運用到實際生活中,比如上面提到的利用單片機實現(xiàn)對溫度的實時檢測與控制已經(jīng)得到廣泛的應(yīng)用。另外我們還可以在單片機的接口上再加接顯示器,這樣就更能方便的對系統(tǒng)進行操作與控制。通過這次畢業(yè)設(shè)計,我深刻體會到專業(yè)知識、專業(yè)技能分析和解決問題的能力在實際生活中是多么的重要,在完成設(shè)計任務(wù)的同時我這些方面的能力有了一個全面的提高和鍛煉。具體表現(xiàn)在對單片機與PC機的串行通信的基本原理、單片機應(yīng)用系統(tǒng)開發(fā)過程,以及在常用編程設(shè)計思路技巧(匯編語言與VB)的掌握方面都向前邁了一大步,為日后使我能成為合格的應(yīng)用型人才打下了良好的基礎(chǔ)。采用本系統(tǒng)實現(xiàn)PC機與單片機串行通信與一般其它系統(tǒng)的比較:一般的PC機與單片機之間的串行通信,需要單片機采集數(shù)據(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)澆鋼筋混凝土課程設(shè)計
- 2024年度田土承包經(jīng)營權(quán)租賃與農(nóng)產(chǎn)品加工合同3篇
- 2024年特定醫(yī)療服務(wù)授權(quán)代理協(xié)議版B版
- 投標(biāo)主體誠信承諾書(7篇)
- 我的前半生看后感言
- 2025年山東濟寧梁山縣公開招聘縣屬國企業(yè)高級經(jīng)營管理人員管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東濟寧市兗州區(qū)事業(yè)單位招聘工作人員(教育類)166人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東濟南市歷城區(qū)事業(yè)單位招聘工作人員59人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東泰安市岱岳區(qū)直事業(yè)單位招考管理單位筆試遴選500模擬題附帶答案詳解
- 2025年山東棗莊滕州市事業(yè)單位招聘工作人員60人歷年管理單位筆試遴選500模擬題附帶答案詳解
- 常見皮膚病與護理
- 安全生產(chǎn)法律法規(guī)注冊安全工程師考試(初級)試題與參考答案(2024年)一
- 2024年人教版小學(xué)六年級上學(xué)期期末英語試題與參考答案
- 華東師范大學(xué)《法學(xué)導(dǎo)論(Ⅰ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年公文寫作基礎(chǔ)知識競賽試題庫及答案(共130題)
- 數(shù)據(jù)管理制度完整
- 醫(yī)療組長競聘
- 防止食品安全傳染病
- 3外架專項施工方案
- 工程施工日志60篇
- 期末復(fù)習(xí)試題 (試卷)-2024-2025學(xué)年四年級上冊數(shù)學(xué)人教版
評論
0/150
提交評論