午夜亚洲国产日本电影一区二区三区,九九久久99综合一区二区,国产一级毛片视频,草莓视频在线观看精品最新

加急見刊

大連海事大學畢業(yè)設計(二)

未知

2、 C/T——功能選擇位。

C/T=1時,選擇計數(shù)功能;

C/T=0時,選擇定時功能。

T0、T1 的計數(shù)、定時功能是通過TMOD中的位來選擇的。

3、 M1、M0——工作方式選擇位。

由于有M1和M0兩位,可以有四種工作方式,如下表所示。

定時器/計數(shù)器的工作方式

M1M0 工作方式 計數(shù)器配置 0 0 方式0 13位計數(shù)器 0 1 方式1 16位計數(shù)器 1 0 方式2 自動重載的8位計數(shù)器 1 1 方式3 T0分為兩個8位計數(shù)器,T1停止計數(shù)

M1M0

工作方式

計數(shù)器配置

0 0

方式0

13位計數(shù)器

0 1

方式1

16位計數(shù)器

1 0

方式2

自動重載的8位計數(shù)器

1 1

方式3

T0分為兩個8位計數(shù)器,T1停止計數(shù)

3 串行數(shù)據(jù)通信程序設計

3.1 通信協(xié)議

本系統(tǒng)串行通信采用異步通信方式。協(xié)議如下:

1.一幀數(shù)據(jù)由1位起始位、8位數(shù)據(jù)位、無奇偶校驗位、1位停止位共10位組成。

2.波特率設為9600bps。單片機串行口按方式1工作,波特率由定時器T1控制,PC機串口波特率通過VB通訊控件的Settings屬性設置,為保證數(shù)據(jù)傳送的準確性,兩者的波特率必須一致。

本次通訊中,我們以一個測控系統(tǒng)的上位機和下位機之間的通信為背景,給出單片機部分和VB 環(huán)境下的通信程序?qū)嵗到y(tǒng)中單片機負責數(shù)據(jù)采集、處理和控制,上位機進行現(xiàn)場可視化檢測,通信協(xié)議采用異步串行通信方式,通過RS232 的RTS 信號進行收發(fā)轉(zhuǎn)換,傳輸數(shù)據(jù)采用二進制數(shù)據(jù),上位機與下位機之間采用主從式通訊。

3.2 下位機(單片機)串行通信及程序設計

平臺介紹及編程方法

匯編語言

匯編語言是針對一類(甚至幾類)計算機,抽象出來的一種符號語言并把這些符號加以統(tǒng)一規(guī)定,使得使用同類計算機的人都了解這些符號的意義,這樣,使得用匯編語言編寫的程序可以在這一類型的任何一臺計算機上使用。這就有了極大的靈活性,當然不同類型的計算機的匯編語言也不同。它們都必須由生產(chǎn)廠家提供的匯編語言來編寫。另外.匯編語言還增加了宏指令的功能。匯編語言是計算機衛(wèi)程控制中最常用的語言。

匯編語言的主要優(yōu)點就是可以直接控制計算機硬件,可以編寫在時間和空間兩方面更有效的程序。這些優(yōu)點使得匯編語言在程序設計中占有重要的地位。是不可取代的。

但匯編語言的缺點也是明顯的,它與處理器密切相關,要求程序員熟悉計算機硬件系統(tǒng),考慮許多細節(jié)問題,所以程序繁瑣,調(diào)試、維護、交流和移植困難。因此,有時可以采用高級語言和匯編語言混合編程的方怯,互相取長補短,更好地解決實際間題。

匯編語言生要應用場合有以下幾種:

l)程序要具有較短的運行時問,或者只能占用較小的存儲客量。例如操作系統(tǒng)的核心 程序段,實時控制系統(tǒng)的軟件等。

2)程序與計算機硬件密切相關,程序要直接控制硬件。例如to接口電路的初始化程序段,外部設備的底層驅(qū)動程序等。

3)大型軟件需要提高性能、優(yōu)化處理的部分。例如計算機系統(tǒng)頻繁調(diào)用的子程序、動態(tài)鏈接庫等。

4)沒有適合的高級語言的時候。例如開發(fā)最新的處理器程序時。

偉福軟件介紹:

偉福系列仿真器偉福仿真品種多、功能強,特點如下:

1)主機+POD組合,通過更換POD,可以對各種CPU進行仿真。

2) 雙平臺:DOS版本,WINDOWS版本。其中WINDOWS版本功能強大。

3) 雙工作模式:a.軟件模擬仿真(不要仿真器也能模擬仿真)。 硬件仿真。

4) 雙CPU結構,100% 不占用戶資源。

5) 雙集成環(huán)境:編輯、編譯、下載、調(diào)試全部集中在一個環(huán)境下。多種仿真器,多類CPU仿真全部集成在一個環(huán)境下。可仿真51系列,196系列,PIC系列,飛利蒲公司的552、LPC764、DALLAS320,華邦438等51增強型CPU。為了跟上形勢,現(xiàn)在很多工程師需要面對和掌握不同和項目管理器、編輯器、編譯器。偉福 WINDOWS調(diào)試軟件為您提供了一個全集成環(huán)境,統(tǒng)一的界面,包含一個項目管理器,一個功能強大的編輯器,匯編Make、Build和調(diào)試工具并提供一個與第三方編譯器的接口。

6) 強大的邏輯分析儀綜合調(diào)試功能:隨著科學技術的發(fā)展,單片機通訊方面的運用越來越多。有了邏輯儀,用它可以分別或者同時對發(fā)送方、接收方的輸入或者輸出波形進行記錄、存儲、對比、測量等各種直觀的分析,可以將實際輸出通訊報文的波形與源程序相比較,可立即發(fā)現(xiàn)問題所在。從而極大地方便了調(diào)試。

7) 強大的追蹤器功能:追蹤功能以總線周期為單位,實時記錄仿真過程中CPU發(fā)生的總線事件,其觸發(fā)條件方式同邏輯分析儀。追蹤窗口在仿真停止時可收集顯示追蹤的CPU指令記憶信息,可以以總線反匯編碼模式、源程序模式對應顯示追蹤結果。屏幕窗口顯示波形圖最多追蹤記憶指令32K并通過仿真器的斷點、單步、全速運行或各種條件組合斷點來完成追蹤功能。總線跟蹤可以跟蹤程序的運行軌跡。可以統(tǒng)計軟件運行時間。

編程方法

本系統(tǒng)中傳輸協(xié)議為9600,8,N,1,即波特率為9600b/s,傳送8個數(shù)據(jù)位。沒有校驗位,一個停止位。在PC機中也設置為相同的協(xié)議。1)控制寄存器SCON的設置為:SM0、SM1為0、1,即為串行工作方式1,REN為1,即允許接收。這樣SCON中的值是0X50H,(使用匯編語言是MOV SCON,#50H。)2)TMOD寄存器的設置為:使用定時器1。M0=0,M1=1,工作于方式2,自動重新載入計數(shù)值。TMOD=0X20H。(使用匯編語言是MOV TMOD,#20H)3) 波特率的設置:本系統(tǒng)上的工作時鐘為11.0592MHz, 波特率為9600b/s,對TH1的重載入計數(shù)器值由下式計算可得:TH1=256-11059200/384*9600=253=FDH TH1=0XFDH(使用匯編語言是MOV TH1,#0FDH)。

流程圖如右:

接收程序:

MAIN: MOVTMOD,#20H ;

MOVTH1,#0FDH;

MOVTL1,#0FDH;

SETB TR1;

MOVSCON,#50H;

LOOP: JBCRI,DISP

SJMPLOOP

DISP: MOVA,SBUF

MOVDPTR,#TAB

MOVC A,@A+DPTR

MOV P2,A

SJMP LOOP

TAB: DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

END

發(fā)送程序:

ORG 0000H

START: MOVTMOD,#20H;

MOV TL1,#0FDH

MOV TH1,#0FDH;

SETB TR1

MOV SCON,#40H

MOV R0,#20H

MOV R7,#32

MOV A,#40

LOOP1:

MOV @R0,A

INC A

INC R0

DJNZ R7,LOOP1

MOV R0,#20H

MOV R7,#32

LOOP:MOV A,@R0

ACALL YANSHI

ACALL SPOUT

INC R0

DJNZ R7,LOOP

SJMP START

SPOUT:

MOV SBUF,A

JNB TI,$

CLR TI

RET

YANSHI: MOV R6,#250

D1: MOV R5,#250

DJNZ R5,$

DJNZ R6,D1

RET

END

3.3上位機(PC機)串行通信及程序設計

3.3.1 平臺介紹及編程方法

VB語言簡介

在本系統(tǒng)中PC機采用Visual Basic(簡稱VB)編程。VB已成為WINDOWS系統(tǒng)開發(fā)的主要語言,以其高效、簡單易學及功能強大的特點越來越為廣大程序設計人員及用戶所青睞。VB支持面向?qū)ο蟮某绦蛟O計,具有結構化的事件驅(qū)動編程模式并可以使用無限擴增的控件,而且可以十分簡便地作出良好的人機界面。

用VB6.0開發(fā)串行通信程序有兩種法,一種是利用Windows的API函數(shù);另一種是采用VB6.0的通信控件MSComm。利用API函數(shù)編寫串行通信程序較為復雜,需要掌握大量的通信知識,其優(yōu)點是可實現(xiàn)的功能更豐富、應用面更廣泛,適合于編寫較為復雜的低層次通信程序。而VB6.0的MSComm通信控件提供了標準的事件處理函數(shù)、事件、方法,并通過控件屬性對串口參數(shù)進行設置,比較容易地解決了串口通信問題。該控件可設置串行通信的數(shù)據(jù)發(fā)送和接收,對串口狀態(tài)及串口通信的信息格式和協(xié)議進行設置。這是一個標準的十位串口通信,包括8位標準數(shù)據(jù)和數(shù)據(jù)的起始位和停止位。在發(fā)送或接收數(shù)據(jù)過程中觸發(fā)OnComm事件,通過編程訪問 CommEvent屬性了解通信事件的類型,分別進行各自的處理。每個通信控件對應一個串口,可以設計多個通信控件來訪問多個通信口。

3.3.2 VB6.0的通信控件及通信方式

MSComm通訊控件簡介

MSComm是VB6.0提供的ActiveX控件,使用前需將該控件添加到VB工具 欄。MSComm控件串口具有完善的串口數(shù)據(jù)的發(fā)送和接收功能。通過此控件,PC機可以利用串行口與其它設備實現(xiàn)輕松連接,簡單高效地實現(xiàn)設備之間的通訊。此控件的事件響應有兩種處理方式,事件驅(qū)動方式:由MSComm控件的OnComm事件捕獲并處理通訊錯誤及事件;查詢方式:通過檢查CommEvent屬性的值來判斷事件和錯誤。

1)MSComm控件的主要屬性和方法

a.CommPort:設置或返回串行端口號,其取值范圍為1—99,缺省為1

b.Setting: 設置或返回串行端口的波特率、奇偶校驗位、數(shù)據(jù)位數(shù)、停位。如:MSComm.Setting="9600, n, 8, 1”。

c.PortOpen:打開或關閉串行端口。

d.RThreshold:該屬性為一閥值,它確定當接收緩沖區(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)文件結束字符。

本系統(tǒng)采用事件驅(qū)動方式進行串口通信設計,下圖2為上位機通信界面,設計了2個命令按扭,分別為發(fā)送、清空數(shù)據(jù);兩個文本框,Text1用于輸入需從下位機讀取的數(shù),Text2用于顯示下位機發(fā)送來的數(shù)據(jù);3個Frame控件,一個Label控件,當然還需要一個MSComm控件。

MSComm控件屬性設置如圖1示:

(圖2)

下面是MSComm控件的初始化程序、部分數(shù)據(jù)發(fā)送和接受程序

4調(diào)試與結論

該系統(tǒng)目前已調(diào)試成功,完成了PC機與51單片機之間的串行通信。并且實現(xiàn)了下列功能:1)在VB界面上發(fā)送任一數(shù)字在51單片機的數(shù)碼管上都能成功的接收 2)同樣通過向51單片機內(nèi)寫入的程序,在VB界面上可以接收到相對應的內(nèi)容且運行良好。

調(diào)試過程如下:

硬件方面:

該系統(tǒng)的硬件調(diào)試主要是排查單片機印刷電路板的問題和連接上的一些問題。在該系統(tǒng)中,首先通過了仔細地推敲系統(tǒng)原理,確認無誤;其次對照設計圖紙查印制電路板,看是否有粘接等工藝現(xiàn)象;最后,檢查外圍連接是否有誤,通過這幾個方面的反復調(diào)試,可確保電路板的無誤性。

在本系統(tǒng)的硬件調(diào)試過程中,出現(xiàn)了下列兩種情況

1)電壓不穩(wěn)定而導致程序無法寫入的情況,使電壓穩(wěn)定的方法是改用新的電池,或者是再次設計電源方案,在這里是用電源接通教學實驗板,然后再把教學實驗板與本系統(tǒng)相連接,這樣,就可以得到穩(wěn)定的電壓了。

2)還出現(xiàn)的一個問題是數(shù)碼管不顯示,檢查后是焊接上出現(xiàn)了一點的失誤。

軟件方面:

本系統(tǒng)在軟件調(diào)試方面也沒有規(guī)律可循,調(diào)試時更多的是憑經(jīng)驗。軟件調(diào)試的主要任務是排查錯誤。通過在Wave E2000編譯器下調(diào)試程序,有兩種錯誤,一種邏輯錯誤,也就是語法錯誤,是很容易被發(fā)現(xiàn)的,另一種是功能錯誤,是指在沒有語法錯誤的基礎上,由于設計思想或算法的問題導致不能實現(xiàn)軟件功能的一種錯誤。調(diào)試過程中出現(xiàn)的問題主要有以下四個方面:

1)用其它串口調(diào)試軟件能夠很好的實現(xiàn)兩者之間的串行通信,成功的接收和發(fā)送數(shù)據(jù),但使用我們的VB程序卻不能實現(xiàn),要么只能實現(xiàn)接收功能,要么只能實現(xiàn)發(fā)送功能。之后通過對VB程序做多次的改動與測試才達到理想的結果。

2)在VB界面上發(fā)送的數(shù)據(jù)與單片機的數(shù)碼管上顯示的數(shù)字不相符,這個問題是我們匯編程序的問題,由于匯編語言符號的繁多加上我們的粗心在輸入代碼的過程中難免出現(xiàn)一些看不見的問題,造成調(diào)試過程中出現(xiàn)意外。借此我想提醒大家的是搞設計搞研究必須做到細心,要有一顆敬業(yè)的心對待我們接受的任務,有耐心面臨出現(xiàn)的困難。

3)由于要實現(xiàn)上下位機的串行通信,所以兩者之間的波特率是否一致也是一個不容忽視的問題,在開始我并沒有太注意這個方面的情況,到各方面的準備工作都做好要進行調(diào)試的時候,才發(fā)現(xiàn)有個二者波特率設置是否相同將影響到整個通信過程,我趕緊作了修改才免遭一次調(diào)試失敗。

4)還有最后一點注意的地方是,利用MSComm控件比較方便地開發(fā)串行通信程序,實現(xiàn)串行通訊原理已經(jīng)得到實驗結果驗證,考慮到將來對系統(tǒng)實時性的要求,采用了MSComm控件的查詢處理機制,避免了中斷處理機制的不穩(wěn)定和不連續(xù)性,而且還可以很方便地控制多個串口,只需插入多個MSComm控件,并為每個MSComm控件編寫OnComm()函數(shù)。但是我們也清楚的體會到MSComm控件在VB中的使用較為復雜。這一點是我們以后在運用中需要加強的地方。

伴隨著單片微型機技術的發(fā)展,人們已越來越多地采用單片機來對一些工業(yè)控制系統(tǒng)中如溫度、流量和壓力等參數(shù)進行檢測和控制。希望通過大家的共同努力能在PC機與單片機這方面取得新的成績有突出的表現(xiàn),能夠很好的將學到知識運用到實際生活中,比如上面提到的利用單片機實現(xiàn)對溫度的實時檢測與控制已經(jīng)得到廣泛的應用。另外我們還可以在單片機的接口上再加接顯示器,這樣就更能方便的對系統(tǒng)進行操作與控制。

通過這次畢業(yè)設計,我深刻體會到專業(yè)知識、專業(yè)技能分析和解決問題的能力在實際生活中是多么的重要,在完成設計任務的同時我這些方面的能力有了一個全面的提高和鍛煉。具體表現(xiàn)在對單片機與PC機的串行通信的基本原理、單片機應用系統(tǒng)開發(fā)過程,以及在常用編程設計思路技巧(匯編語言與VB)的掌握方面都向前邁了一大步,為日后使我能成為合格的應用型人才打下了良好的基礎。

采用本系統(tǒng)實現(xiàn)PC機與單片機串行通信與一般其它系統(tǒng)的比較:一般的PC機與單片機之間的串行通信,需要單片機采集數(shù)據(jù),然后用異步串行通訊方式傳給PC機。相對而言通訊速率不是很理想,在一些要求通訊傳輸速率比較快的地方,普通的PC機與單片機之間的串行通信顯然是不能滿足其要求的。利用VB6.0 的事件驅(qū)動方式可以很方便地開發(fā)數(shù)據(jù)采集與監(jiān)控系統(tǒng),用單臺PC 機可以測量和監(jiān)控多路控制信號,整控制系統(tǒng)設計方便,對小型測控系統(tǒng)的設計具有很大的實用性。且傳輸數(shù)據(jù)的速率要比普通的串行通信要快些。

對于目前廣泛應用的Windows環(huán)境下實現(xiàn)PC機與單片機之間的通信問題,希望大家能提出寶貴的意見。

參考文獻

[1]蔡美琴等.MCS-51系列單片機系統(tǒng)及其應用(第二版).高等教育出版社,2004.

[2]楊毓,李明.Visual Basic6.0實用開發(fā)教程[M].成都:電子科技大學出版社,2001.

[3]劉新民,蔡瓊等.VB6.0程序設計.北京:清華大學大學出版社,2004.

[4]李華.單片機通用接口技術[M].北京:北京航空航天大學出版社,1999

[5]魏慶福,姚亦鳴,等STD總線工業(yè)控制機的設計與應用[M].北京:科學出版社,1992

[6]何立民,單片機應用系統(tǒng)設計.北京:航空航天大學出版社,1992

[7]美Jan Axelson 著,串行端口大全,精英科技譯,2001.5四

[8]劉瑞新等. Visual Basic程序設計教程,北京:機械工業(yè)出版社, 2002

[9]傅揚烈 單片機原理與應用教程,電子工業(yè)出版社, 2002.1

[10]余錫存 曹國華.單片機原理及接口技術[M].陜西:西安電子科技大學出版社,2000.7

[11]David Jung等著.前導工作室譯. Visual Basic6.0開發(fā)人員參考手冊. 北京:機械工業(yè)出版社, 2000

下載