999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C#實現PC機與單片機(89C51)的串行通訊

2008-12-31 00:00:00夏春飛
網絡與信息 2008年9期

摘要:本文主要論述PC機與單片機之間實現異步串行通訊需要解決的問題以及如何利用C#提供的串行通訊SerialPort類來實現PC機與51單片機的通訊。

關鍵詞: SerialPort;串行通訊;波特率

1 引言

PC機具有強大的監控和管理功能,而單片機則具有快速及靈活的控制特點,通過PC機的RS-232串行接口與外部設備進行通訊,是許多測控系統中常用的一種通信解決方案。

在Microsoft.Net技術廣泛應用的今天人們采用了許多方法在Visual Studio.Net中來編寫串口通訊程序:第一種方法是通過采用Visual Studio 6.0中原來的MSComm控件,這是最簡單、最方便的方法,但需要注冊;第二種方法是自己用API寫串口通信;第三種方法是采用微軟推出的最新版本Visual Studio 2005開發工具,NET Framework 2.0類庫中包含的SerialPort類,方便地實現了所需要串口通訊的多種功能。本文著重討論了Visual Studio 2005開發工具中SerialPort類的設計方法。

2 SerialPort類常用屬性、方法和事件

2.1 命名空間

System.IO.Ports命名空間包含了控制串口重要的SerialPort類,該類提供了同步I/O 和事件驅動的I/O、對管腳和中斷狀態的訪問以及對串行驅動程序屬性的訪問。

2.2 串口的通訊參數

①通訊端口號:

[PortName]屬性獲取或設置通信端口,包括但不限于所有可用的COM端口,該屬性返回類型為String。

②通訊格式:

SerialPort類分別用[BaudRate]、[Parity]、[DataBits]、[StopBits]屬性設置通訊格式中的波特率、校驗位、數據位和停止位。

2.3 串口的打開和關閉

SerialPort類中打開關閉串口相應的是調用類的Open()和Close()方法。

2.4 數據的發送和讀取

SerialPort類調用重載的Write和WriteLine方法發送數據,其中WriteLine可發送字符串并在字符串末尾加入換行符。讀取串口緩沖區的方法有許多,其中除了ReadExisting和ReadTo,其余的方法都是同步調用,線程被阻塞直到緩沖區有相應的數據或大于ReadTimeOut屬性設定的時間值后,引發ReadExisting異常。

2.5 DataReceived事件

DataReceived事件在接收到了[ReceivedBytesThreshold]設置的字符個數或接收到了文件結束字符并將其放入了輸入緩沖區時被觸發。

3 PC機與8051實現串行通訊需要解決的問題

3.1 TTL電平與RS232電平的轉換

89C51單片機采用的是TTL電平且采用正邏輯[1],而PC機采用RS232與外部設備進行通訊,RS232采用負邏輯,因此MCS51單片機串行口與PC機的RS232接口相連進行通訊時必須進行電平的轉換。通常采用MAX232電平轉換芯片。

3.2 單片機與PC機通訊時波特率的設定

PC機與51單片機雙方進行通訊時必須采用相同的波特率,PC機的波特率默認為9600b/s, 51系列單片機有兩個定時/計數器,四種工作方式,一般用定時器工作于方式2(可重新裝載的8位定時器/計數器)作為定時波特率發生器。因此單片機與PC機進行異步通訊時的波特率可由公式3.1得出:

其中SMOD是單片機電源控制寄存器(PCON)中的位7,開機(RESET)時,SMOD的設定值為0,亦可用指令“ANL PCON,#7FH”清除為0。fosc為單片機的晶振頻率。根據需要的波特率即可得計數初值TH1。

4 單片機與PC機通訊時通訊協議的約定及部分初始化程序

在單片機與PC機的通訊中,單片機一般作為下位機負責從控制對象采集數據(如壓力、流量等),上位機則進行現場可視化檢測。傳輸數據采用二進制數據,上位機與下位機之間采用主從式通訊。以下給出單片機和VC# 環境下部分的通訊程序。

4.1 串口通訊協議約定

波特率為9600b/s,無奇偶校驗位,傳輸的數據位為8位,停止位為1位,用串行口工作于方式1。單片機的晶振頻率fosc=11.059MHz,定時器T1工作于方式2作為波特率發生器,根據計數初值的計算公式(3.1)可得計數初值TH1為0FDH 。

4.2 單片機的串行通訊程序

單片機串行通訊程序,給出了初始化程序:

ORG0000H

AJMP START;轉到初始化程序

ORG0023H

AJMP PGUART ;轉到串行中斷服務子程序

START: MOVSP,#60H ;堆棧指針初始化

MOVP0,#0FFH ;端口初始化

MOVP1,#0FFH

MOVP2,#0FFH

MOVP3,#0FFH

MOVTMOD,#20H;定時器T1工作于模式2,自動重裝載

MOVTH1,#0FDH;TH1、TL1初值為\"0FDH\",9600bps

MOVTL1,#0FDH

MOVSCON,#50H;串行口工作于方式1,允許接收

SETB TR1 ;啟動定時器T1

SETB ES ;允許串行口中斷

SETB EA ;開總中斷

MAIN:...... ;主程序處理其他任務,等待串口中斷

AJMP MAIN

PAUSE:...... ;串口中斷服務子程序,接收處理數據

RETI

END

4.3 上位機的串行通訊程序

例:發送及接收數據的程序:

private void button1_Click(object sender, EventArgs e)

{

string a;

SerialPort Ser1 = new SerialPort(\"com1\", 9600, Parity.None, 8, StopBits.One);

Try

{

Ser1.Open();

}

catch (InvalidOperationException ex)

{

MessageBox.Show(ex.ToString());

}

if (textBox1.Text == \"\")

{

MessageBox.Show(\"Err\");

Ser1.Close();

}

else

{

a=textBox1.Text;

try

{

//p.WriteLine(a);

p.Write(a);

}

catch(InvalidOperationException ex)

{

MessageBox.Show(ex.ToString());

}

textBox2.Text = Ser1.ReadByte().ToString();

Ser1.Close();

}

}

5 結束語

單片機與上位機的通訊在工業現場中應用的比較廣泛,本文對C#提供的串行通訊SerialPort類來實現PC機與51單片機的通訊進行了探討。實踐證明,這種方案是可行的,能保證雙方通訊正常。

參考文獻

[1]蔡朝洋.單片機控制實習與專題制作.北京航空航天大學出版社.

[2]張洪潤,易濤.單片機應用技術教程.清華大學出版社.

主站蜘蛛池模板: 久久久久亚洲AV成人人电影软件| 国产精品免费p区| 天堂在线亚洲| 国产精品妖精视频| 污网站免费在线观看| 国产一区二区三区免费观看| 中文字幕不卡免费高清视频| 波多野结衣一二三| 色婷婷视频在线| 韩日午夜在线资源一区二区| 欧美a在线视频| 国产一区二区三区在线观看视频 | 手机看片1024久久精品你懂的| 国产亚洲精| 老司机久久精品视频| 久久久波多野结衣av一区二区| 国产农村妇女精品一二区| 在线观看国产黄色| 欧美在线导航| 日韩123欧美字幕| 久草视频中文| 欧美日韩中文国产| 人妻丰满熟妇αv无码| 亚洲国产天堂久久综合226114| 国产丝袜丝视频在线观看| 国产国产人在线成免费视频狼人色| 最新日韩AV网址在线观看| 国产精品永久免费嫩草研究院| 亚洲无码日韩一区| 伊人色综合久久天天| 久久精品这里只有国产中文精品 | 亚洲国产一成久久精品国产成人综合| 日本免费a视频| 日韩午夜福利在线观看| 国产成人无码AV在线播放动漫 | 国产欧美日韩视频怡春院| a级毛片在线免费观看| 久久久久亚洲精品无码网站| 无码网站免费观看| 日韩毛片视频| 国产一区二区网站| 免费在线国产一区二区三区精品| 亚洲福利网址| 欧美性久久久久| 国产美女在线观看| 中文字幕一区二区人妻电影| 中文字幕亚洲电影| 国产美女一级毛片| 激情国产精品一区| 国产女人在线观看| 色老二精品视频在线观看| 日韩高清在线观看不卡一区二区| 免费无码一区二区| 国产凹凸视频在线观看| 日韩精品成人在线| 2024av在线无码中文最新| 99无码中文字幕视频| 激情综合图区| 孕妇高潮太爽了在线观看免费| 精品亚洲欧美中文字幕在线看| 熟女日韩精品2区| 麻豆精品在线播放| 亚洲美女一级毛片| 国产在线专区| 国产久草视频| 99在线免费播放| 国产sm重味一区二区三区| 欧美成人日韩| 欧美精品综合视频一区二区| 国产精品极品美女自在线| 亚洲人成电影在线播放| 成人在线不卡视频| 久久精品视频一| 日韩美一区二区| 国产剧情伊人| 国产成人亚洲综合a∨婷婷| 97在线碰| 伊人婷婷色香五月综合缴缴情| 成年人福利视频| 国产性生大片免费观看性欧美| 日本一区高清| 高清码无在线看|