中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

藍(lán)牙無線控制臺燈(串口通訊電腦客戶端編程)教案

資源下載
  1. 二一教育資源

藍(lán)牙無線控制臺燈(串口通訊電腦客戶端編程)教案

資源簡介


通信
隨著計算機(jī)系統(tǒng)的應(yīng)用和微機(jī)網(wǎng)絡(luò)的發(fā)展,通信功能越來越顯的重要。
通信分為串行通信和并行通信。
串并口設(shè)備對比圖
串行通信
串行通信是指外設(shè)和計算機(jī)間使用一根數(shù)據(jù)信號線,數(shù)據(jù)在一根數(shù)據(jù)信號線上一位一位地進(jìn)行傳輸,每一位數(shù)據(jù)都占據(jù)一個固定的時間長度。
串行通信的普遍性
適合于遠(yuǎn)距離傳輸;
——所用的傳輸線少,并且可以借助現(xiàn)成的電話網(wǎng)進(jìn)行信息傳送
適合人-機(jī)交換設(shè)備和串行存儲的外部設(shè)備;
在實時控制和管理方面,采用多臺微機(jī)處理機(jī)組成分級分布控制系統(tǒng)中,各CPU之間的通信一般都是串行方式。
串行通信的基本概念
異步通信和同步通信
異步通信 是指通信的發(fā)送與接收設(shè)備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。
特點:一個字符一個字符地傳輸,每個字符一位一位地傳輸,并且傳輸一個字符時,總是以“起始位”開始,以“停止位”結(jié)束,字符之間沒有固定的時間間隔要求。
異步通信和同步通信
同步通信 時要建立發(fā)送方時鐘對接收方時鐘的直接控制,使雙方達(dá)到完全同步。同時傳送的字符間不留間隙,即保持位同步關(guān)系,或可以保持字符同步關(guān)系。
異步通信和同步通信的比較
(1)異步通信簡單,雙方時鐘可允許一定誤差。
同步通信較復(fù)雜,雙方時鐘的允許誤差較小。
(2)異步通信只適用于點<--> 點。
同步通信可用于點<--> 多。
(3)通信效率:異步通信低,
同步通信高。
1、單工 單工是指數(shù)據(jù)傳輸僅能沿一個方向,不能實現(xiàn)反向傳輸。
串行通信的傳輸方向
串行通信的傳輸方向
3、全雙工 全雙工是指數(shù)據(jù)可以同時進(jìn)行雙向傳輸。
信號的調(diào)制與解調(diào)
計算機(jī)的通信是要求傳送數(shù)字信號,而在進(jìn)行遠(yuǎn)程數(shù)據(jù)通信時,通信線路是要求傳送模擬信號。
利用調(diào)制器(Modulator)把數(shù)字信號轉(zhuǎn)換成模擬信號,然后送到通信線路上去,再由解調(diào)器(Demodulator)把從通信線路上收到的模擬信號轉(zhuǎn)換成數(shù)字信號。
由于通信是雙向的,調(diào)制器和解調(diào)器合并在一個裝置中,這就是調(diào)制解調(diào)器MODEM。
串行通信的錯誤校驗
奇偶校驗
根據(jù)被傳輸二進(jìn)制數(shù)據(jù)中的”1”的個數(shù)為 奇數(shù)或偶數(shù)來校驗,奇數(shù)為“0”,偶數(shù)為“1”
二進(jìn)制 校驗位
0000--------1
0001--------0
0010--------0
0011--------1
同步傳輸用奇校驗,即讓原有 數(shù)據(jù)(包括加上的一位)1的個數(shù)為奇數(shù)1000110()
異步傳輸用偶校驗,即讓原有 數(shù)據(jù)(包括加上的一位)1的個數(shù)為偶數(shù)1000110()
發(fā)送時鐘與接收時鐘
在串行通信中,二進(jìn)制數(shù)據(jù)以數(shù)字信號的形式出現(xiàn),不論是發(fā)送還是接收,都必須有時鐘信號對傳送的數(shù)據(jù)進(jìn)行定位。在TTL標(biāo)準(zhǔn)表示的二進(jìn)制數(shù)中,傳輸線上高電平表示二進(jìn)制1,低電平表示二進(jìn)制0,且每一位持續(xù)時間是固定的,由發(fā)送時鐘和接收時鐘的頻率決定。
接收時鐘和發(fā)射時鐘與波特率關(guān)系
傳輸速率
傳輸速率——波特率
波特率表示每秒鐘傳輸二進(jìn)制代碼的位數(shù)。
單位是:位/秒(bps)。
波特率因子
波特率因子。在波特率指定后,輸入移位寄存器/輸出移位寄存器在接收時鐘和發(fā)送時鐘控制下,按指定的波特率速度進(jìn)行移位,一般幾個時鐘脈沖移位一次,此時要求接收時鐘和發(fā)送時鐘的時鐘周期是波特率的16、32或64倍。波特率因子就是發(fā)送或接收1個數(shù)據(jù)(1個數(shù)據(jù)位)所需要的時鐘脈沖個數(shù),其單位是1/位,即1/Baud,或Baud-1
波特率因子常用為16、32或64倍。
【例1-5】 設(shè)波特率為9600,波特率因子為32,則接收時鐘和發(fā)送時鐘的頻率為多少?
解:根據(jù)公式F = n × B可知,波特率B為9600,波特率因子n為32,則接收時鐘和發(fā)送時鐘的頻率為:F = 9600 × 32 = 297200 Hz。
UART串口通信編程
MSCOMM控件的使用
一般有兩種實現(xiàn)途徑:其一就是使用MSCOMM控件,此控件提供很多方便操作的屬性和方法,利用它們可以很方便地實現(xiàn)你的目的;另外一種途徑就是使用Windows API,微軟為開發(fā)者提供了很多相關(guān)的串行操作的編程接口,使用這些接口,可以很完成更為強(qiáng)大的功能。
MSCOMM控件的使用
由于Visual Basic 的串行通信控件并不會出現(xiàn)在工具箱中,當(dāng)我們需要MSComm控件時,讓它出現(xiàn)在工具箱中的操作步驟如下 :
( 1 )單擊[工程]菜單。
( 2 )在工程菜單中選擇[部件]命令。
( 3 )打開[部件]對話框,選中Microsoft Comm Control 6.0 復(fù)選框。
( 4 )單擊[應(yīng)用]或[確定]按鈕,即可在工具箱中見到“電話盒(MSComm)”的圖標(biāo),如圖3.3所示,我們就可以將MSComm控件加載,進(jìn)行串行通信。
MSCOMM控件的使用
CommPort屬性
CommPort屬性用于設(shè)置或返回通信連接端口號碼。程序必須指定所要使用的串行端口的號碼,Windows系統(tǒng)會使用所設(shè)置的通信端口與外界進(jìn)行通信。程序可借助此屬性返回所使用的連接端口號碼。在此所設(shè)置的通信端口號由1開始往上遞增,MSComm控件的最大值是16,當(dāng)使用的通信端口號碼超過16時,此控件會生成錯誤信息。
例子:
MSComm1.CommPort = 1
指定使用COM1進(jìn)行通信傳輸。
MSCOMM控件的使用
Settings屬性用于設(shè)置初始化參數(shù)。以字符的形式設(shè)置或返回聯(lián)機(jī)速率、奇偶校驗、數(shù)據(jù)位、停止位等4個參數(shù)。其格式為為“BBBB,P,D,S”,其中BBBB表示聯(lián)機(jī)速率,P表示奇偶校驗位檢查方式,D表示數(shù)據(jù)位數(shù),S表示停止位數(shù)。默認(rèn)值是“9600,N,8,1”,它表示所使用的通信端口是以每秒9600位的速率進(jìn)行傳輸,不進(jìn)行奇偶校驗的檢查,每個數(shù)據(jù)單元是8個位,而停止位是1個位,而這4項必須是按照順序,不可前后對調(diào);其中的字母N可以是大寫或小寫。
Setting設(shè)置完成之后,所傳輸及接受的字符串便以此設(shè)置為準(zhǔn),使用RS-232通信的雙方,Setting必須完全一樣,彼此才能順利地通信,否則雙方將無法正確接收到彼此所傳輸?shù)男盘?br/> 例子:MSComm1.Settings = "9600,n,8,1"
MSCOMM控件的使用
PortOpen
PortOpen屬性用于設(shè)置或返回通信連接端口的狀態(tài)。使用串行端口之前必須先將要使用的串行端口打開,而在使用完畢之后,也必須執(zhí)行關(guān)閉操作。串行通信端口各項功能都是在PortOpen的True與False之間完成的,若尚未打開通信端口就進(jìn)行數(shù)據(jù)的傳輸,系統(tǒng)將顯示錯誤信息;而完成傳輸工作后若不關(guān)閉通信端口,在Visual Basic的設(shè)計中,會在應(yīng)用程序結(jié)束時同時關(guān)閉通信端口。
例子:MSComm1.PortOpen = True
MSComm1.PortOpen = False
MSCOMM控件的使用
Output屬性
Output屬性用于將要發(fā)送的數(shù)據(jù)輸入傳輸緩沖區(qū)。當(dāng)程序需要傳輸字符串到對方時,可將字符串使用此命令輸入輸出緩沖區(qū),一般的數(shù)據(jù)均是在送達(dá)輸出緩沖區(qū)后隨即被送出,當(dāng)MSComm控件設(shè)置有發(fā)送閾值屬性時,則會生成事件(SThreshold,請看隨后的說明)。
例如:MSComm1.Output=”ABCDE”,此即將ABCDE這5個字符通過RS-232串行通信端口發(fā)送出去。
MSCOMM控件的使用
InputLen屬性
InputLen屬性用于指定由串行端口讀入的字符串長度或字節(jié)數(shù)。Visual Basic程序可使用Input命令將存放在輸入緩沖區(qū)的字符讀入,但要指定所讀入的字符長度則需要設(shè)置本屬性。若指定讀取的單位是字節(jié),則是讀入的字節(jié)的個數(shù)。
例如:MSComm1.InputLen=10,當(dāng)程序執(zhí)行Input命令時,只會讀取10個字符。假設(shè)在輸入緩沖區(qū)中有55個字符,而設(shè)置的IputLen屬性是10,由于第一次的Input命令會按InputLen屬性而讀取10個字符進(jìn)來,因此要全部讀完所有的數(shù)據(jù)需要執(zhí)行6次Input命令。如果我們需要對固定的字符串的長度進(jìn)行特別的運(yùn)算或判斷時,就必須使用InputLen屬性。另外,若InputMode屬性指定的是讀入字節(jié),則本屬性批的就是每次讀入的字節(jié)數(shù)目。
MSCOMM控件的使用
通信步驟
通常我們以下面的步驟來使用Visual Basic的MSComm控件進(jìn)行通信控制:
( 1 ) 加入通信控件。也就是MSComm控件。
( 2 ) 設(shè)置通信端口號碼。即CommPort屬性。
( 3 ) 設(shè)置通信協(xié)議。即HandShaking屬性。
( 4 ) 設(shè)置傳輸速度等參數(shù)。即Settings屬性。
( 5 ) 設(shè)置其他參數(shù)。必要時再加上其他的屬性設(shè)置。
( 6 ) 打開通信端口。即PortOpen 屬性設(shè)成True。
( 7 ) 送出字符串或讀入字符串。使用Input及Output屬性。
8 ) 使用完MSComm通信控件后,將通信端口關(guān)閉。即PortOpen屬性設(shè)成False。
串口通信程序代碼
Private Sub Option1_Click()
On Error Resume Next
MSComm1.PortOpen = False
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
If MSComm1.PortOpen = True Then
Text1.Text = "藍(lán)牙可以使用"
Command1.Visible = True
Command2.Visible = True
Else
Text1.Text = "藍(lán)牙無法使用"
End If
End Sub
串口通信程序代碼
Private Sub Command1_Click()
Text1.Text = "正在連接...."
MSComm1.Output = "1"
Text1.Text = "發(fā)送開燈信號成功"
Image1.Picture = LoadPicture(App.Path + "open.bmp")
End Sub
串口通信程序代碼
Private Sub Command2_Click()
Text1.Text = "正在連接...."
MSComm1.Output = "2"
Text1.Text = "發(fā)送關(guān)燈信號成功"
Image1.Picture = LoadPicture(App.Path + "close.bmp")
End Sub

展開更多......

收起↑

資源預(yù)覽

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 田林县| 苍溪县| 萨迦县| 湘乡市| 金门县| 灌云县| 锡林郭勒盟| 金门县| 溧阳市| 鄂托克旗| 桓台县| 大同县| 德昌县| 万荣县| 石门县| 淳化县| 南汇区| 梅州市| 锡林郭勒盟| 桦南县| 柘城县| 兴仁县| 南召县| 岳西县| 和龙市| 依兰县| 盐山县| 陕西省| 嘉黎县| 湖北省| 黄龙县| 长兴县| 清水县| 临沭县| 临洮县| 福海县| 班戈县| 遂宁市| 曲阜市| 洪泽县| 定州市|