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

基于DELPHI的PC機和AT89C51單片機的串行通信實現(xiàn)

2011-08-30 06:11:14田淑娟韓琛曄
科技傳播 2011年2期
關(guān)鍵詞:單片機

劉 榮,田淑娟,燕 苗,韓琛曄

石家莊計算機職業(yè)學院,河北石家莊 050061

在工業(yè)生產(chǎn)實踐中,經(jīng)常要對某些儀器儀表進行監(jiān)測或是發(fā)送某些參數(shù),串口編程就顯得相當重要。PC機以其高的性價比、較強的數(shù)據(jù)處理能力、較快處理速度、以及單片機體積小、低功耗、低成本、高性能、使用靈活的特點,利用PC機作為上位機,單片機作為下位機的主從工作方式在工業(yè)控制領(lǐng)域中被廣泛采用。

1 下位機設(shè)計

1.1 單片機與PC機的RS-232標準接口通信電路的設(shè)計

RS-232C是目前最常用的串行接口標準,RS-232C提供了單片機與單片機、單片機與PC機之間串行數(shù)據(jù)通信的標準接口。但RS一232C規(guī)定的邏輯電平與單片機的邏輯電平是不一致的。因此,在應用中必須把單片機的TTL電平和RS-232C電平進行相互轉(zhuǎn)換,這里選用專用電平轉(zhuǎn)換集成芯片MAX232來實現(xiàn)的。

1.2 MCS51單片機與PC機串行通信接口的硬件電路設(shè)計

用MAX232芯片實現(xiàn)PC機與AT89C51單片機串行通信的典型電路如圖1所示。圖中外接電解電容C1、C2、C3、C4用于電源電壓變換,可提高抗干擾能力,它們可取相同容量的電容,一般取1.0μF/16V。電容C5的作用是對+5V電源的噪聲干擾進行濾波,一般取0.1μF。選用兩組中的任意一組電平轉(zhuǎn)換電路實現(xiàn)串行通信,中選Tlin、Rlout分別與AT89C51的TXD、RXD相連,Tlout、Rlin分別與PC機中R232接口的RXD、TXD相連。這種發(fā)送與接收的對應關(guān)系不能接錯,否則將不能正常工作。

圖1 MAX232芯片實現(xiàn)PC機與AT89C51單片機串行通信的典型電路

1.3 MCS51單片機與PC機串口通信協(xié)議設(shè)計

1.3.1 通信方式選擇

通信方式上,采用異步方式,微處理器對PC機的通信采用串口中斷方式。

AT89C51有一個標準的串行口,有4種工作方式,其中方式1是標準的10位異步通信方式,1O位數(shù)據(jù)和PC機的標準串口相對應,由串口控制寄存器SCON設(shè)置狀態(tài),設(shè)置SCON=0X50H。

1.3.2 89C51通信波特率設(shè)置

在串行通信中,一個重要的指標是波特率,它反映了串行通信的速率,也反映了對傳輸通道的要求。波特率越高,要求傳輸通道的頻帶越寬。由于異步通信雙方各自用自己的時鐘源,要保證捕捉到的信號正確,最好采用較高的時鐘。一般選擇時鐘頻率比波特率高16倍或64倍。如果時鐘頻率等于波特率,則頻率稍有偏差便會產(chǎn)生接收錯誤。這里選用l1.059MHz晶振。

89c51的串行通信的波特率由定時器T1的溢出率獲得,當串口工作于方式1時,波特率為:波特率=(2SMOD*TD)/32,其中SMOD為波特率加倍。取值為0或1。定時器工作于方式2時,波特率為 9 600bit/s,令 SMOD=0, THl=TL1=0Xfd。

傳送方式:PC機采用查詢方式接收數(shù)據(jù),單片機采用中斷方式接收、發(fā)送;校驗方式:奇偶校驗。

1.4 下位機通信軟件的設(shè)計

單片機通信程序分為接收中斷處理程序、發(fā)送中斷處理程序和通信處理程序3部分,構(gòu)成整個單片機的通信程序。

接收中斷處理程序主要負責接收微機發(fā)送到單片機接收緩沖區(qū)的數(shù)據(jù),接收數(shù)據(jù)時,串行數(shù)據(jù)的接收受到串行控制器SCON中的允許接收位REN控制。當REN為1時,接收控制器開始工作,對接收數(shù)據(jù)進行采樣。當接收到規(guī)定的字符數(shù)之后,置接收中斷位RI為1,以表明接收緩沖區(qū)中有待處理的數(shù)據(jù)并請求通信處理程序?qū)ζ溥M行處理。

發(fā)送中斷處理程序主要負責向微機發(fā)送數(shù)據(jù),發(fā)送數(shù)據(jù)時,通信處理程序?qū)⑿枰l(fā)送的數(shù)據(jù)寫入單片機的發(fā)送緩沖區(qū)SBUF,啟動了發(fā)送工作,并將緩沖區(qū)數(shù)據(jù)逐一發(fā)送給微機。當發(fā)送完指定長度的數(shù)據(jù)后(發(fā)送緩沖區(qū)為空),發(fā)送中斷處理程序?qū)l(fā)送中斷標志位TI置位為1,直到通信處理程序再一次發(fā)送數(shù)據(jù)。

只有在接收到上位機送來的一串數(shù)據(jù),且接收完畢標志為“1”時,才能真正進行處理。首先對接收緩沖區(qū)SBUF中的內(nèi)容進行校驗,完全無誤后再根據(jù)通信要求對緩沖區(qū)的內(nèi)容進行相應處理,同時判斷是否還需將發(fā)送緩沖區(qū)SBUF中的數(shù)據(jù)發(fā)送到微機,最后退出通信處理程序,執(zhí)行其它程序。當接收中斷程序再次接收到數(shù)據(jù)并將接收完標志置為“1”后,可再次進入通信處理程序進行相應的處理。

2 上位機設(shè)計

Borland公司推出的Delphi以其強大的功能并且友好的、有可視化用戶界面,特別適合Windows平臺下的圖形界面和用戶程序的編制從而得到廣大用戶的認可;同時采用第三方控件Spcomm的屬性和方法及事件來實現(xiàn)系統(tǒng)監(jiān)測控制和信息處理是工業(yè)企業(yè)通常采用的實現(xiàn)方法。

2.1 Spcomm控件的屬性、方法和事件

1)屬性

CommName:計算機串口端口號的名字,COM1、COM2;Parity:校驗位的設(shè)置。BaudRate:串口通信波特率;ByteSize:一個字節(jié)中,收發(fā)數(shù)據(jù)數(shù)據(jù)位數(shù);StopBits:一個字節(jié)中,使用停止位的位數(shù);SendDataEmpty:發(fā)送緩沖區(qū)是否為空。

2)方法

StartComm方法:用來打開通信串口,開始通信。

StopComm方法:用來停止通信串行口的所有進程,關(guān)閉串口。

WriteCommData(pDataToWriteChar;dwSizeofDataToWrite:Word)方法是帶有布爾型返回值的函數(shù),其中pDataToWrite是要寫入串行口的字符串,DwSizeaofDataToWrite是要寫入的字符串的長度。該函數(shù)通過一個寫線程向串行口輸出緩沖區(qū)發(fā)送數(shù)據(jù)。

3)事件

ata(Buffer:inter;BufferLength:Word),其中Buffer是指向輸入緩沖區(qū)的指針。BufferLength是從緩沖區(qū)收到的數(shù)據(jù)長度。當輸入緩沖區(qū)收到數(shù)據(jù)時,該事件被觸發(fā)。當輸入緩存有數(shù)據(jù)時將觸發(fā)該事件,對從串口收到的數(shù)據(jù)進行處理。

2.2 Spcomm控件串口通信的實現(xiàn)

Spcomm串口通信的實現(xiàn)

實現(xiàn)PC機與單片機之間的數(shù)據(jù)發(fā)送及接收需要以下步驟:

1)串口初始化,通過設(shè)置如下屬性完成。即分別設(shè)置屬性 Comm1.CommName:=com1;Comm1.BaudRate:=9600;Comm1.Parity:=None;Comm1.ByteSize:=8; Comm1.StopBits:=1; Comm1.StartComm。

要實現(xiàn)PC機與單片機之間的通信,首先要建立它們之間的握手信號,握手信號為約定的特定字符, 當PC發(fā)出一幀數(shù)據(jù)后,如果在接收事件能收到單片機返回的規(guī)定字符來判斷表示握手成功,系統(tǒng)通信正常。

2)發(fā)送數(shù)據(jù)。在編寫基于串口的監(jiān)測控制程序時,需要由PC機向單片機發(fā)送控制指令從而控制下位機的行為,同時向下位機發(fā)送相應數(shù)據(jù),調(diào)用相應的發(fā)送程序。

3)接收數(shù)據(jù)。在控制中,常常需要實時接收下位機傳上來的數(shù)據(jù),但用SPCOMM時會出現(xiàn)必需緩存滿或者每幀之間的間隔大于ReadIntervalTimeout時才會觸發(fā)OnReceivedata,ReadIntervalTimeout屬性默認值是100ms,即在100ms內(nèi),屬于同一幀數(shù)據(jù)。編寫串口的監(jiān)控程序時,通常需要由下位機向PC機發(fā)送數(shù)據(jù)以使PC機了解系統(tǒng)的測試數(shù)據(jù)或下位機的運行狀態(tài),并進而控制下位機的行為。

4)關(guān)閉串口。在系統(tǒng)開發(fā)中,應注意在不使用串口時應及時關(guān)閉串口,釋放系統(tǒng)資源,否則可能會影響系統(tǒng)的其它應用。即調(diào)用comml.StopComm。

3 結(jié)論

在采用以PC機為控制中心的數(shù)據(jù)采集自動化控制系統(tǒng)中,通常需要單片機采集數(shù)據(jù),然后用異步串行通訊方式傳給PC機,在PC機上進行數(shù)據(jù)處理再傳送到單片機,是很有應用價值的。

[1]求是科技.elphi串口通信工程開發(fā)實例導航[M].人民郵電出版社,2003.

[2]張曉鄉(xiāng).89C51單片機實用教程[M].電子工業(yè)出版社,2010.

[3]黃軍,熊勇,劉艷,劉曉梅.delphi串口通信編程[M].人民郵電出版社,2010.

[4]李朝青.PC機及單片機通訊技術(shù)[M].北京航空航天大學出版社,2000.

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設(shè)計與實現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統(tǒng)設(shè)計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設(shè)計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統(tǒng)的仿真設(shè)計
主站蜘蛛池模板: 国产亚洲视频中文字幕视频 | 鲁鲁鲁爽爽爽在线视频观看| 免费在线不卡视频| 中文字幕无码电影| 99在线观看免费视频| 19国产精品麻豆免费观看| 2022国产91精品久久久久久| 91成人在线观看| 波多野结衣一区二区三区四区| 亚洲欧美日韩综合二区三区| 亚洲乱码精品久久久久..| a毛片免费观看| 国产亚洲欧美在线人成aaaa| 国产精品污视频| 超碰精品无码一区二区| 欧美五月婷婷| 欧美午夜视频| 51国产偷自视频区视频手机观看 | www.91中文字幕| 免费人成网站在线观看欧美| 福利在线不卡一区| 日本在线国产| a毛片免费看| 99这里只有精品6| 99这里只有精品免费视频| 亚洲日本中文字幕天堂网| 亚洲第一香蕉视频| 精品国产欧美精品v| 亚洲天堂伊人| 97视频精品全国在线观看| 不卡无码网| 人妻一区二区三区无码精品一区| 美女扒开下面流白浆在线试听| igao国产精品| 91精品综合| 久久网欧美| 国产成人亚洲欧美激情| 国产丝袜精品| 国产日韩精品欧美一区灰| 日本精品αv中文字幕| 欧美在线观看不卡| 国产成人精品高清不卡在线| 婷婷成人综合| 亚洲综合在线网| 中文字幕av无码不卡免费| 色偷偷av男人的天堂不卡| 最新日韩AV网址在线观看| 全部毛片免费看| 婷婷亚洲视频| 一本久道久久综合多人| 亚洲综合专区| 久久a级片| 伊人久久大香线蕉影院| 一本久道久综合久久鬼色| 国产 在线视频无码| 国产丝袜91| 污网站免费在线观看| 亚洲不卡av中文在线| 久久黄色一级片| 国产精品hd在线播放| 91蝌蚪视频在线观看| swag国产精品| 成人免费视频一区二区三区| 婷婷激情亚洲| 精品欧美视频| 不卡国产视频第一页| 毛片在线播放a| 91精品亚洲| 伊人色婷婷| 91精品国产91久久久久久三级| 国产经典在线观看一区| 日韩精品无码不卡无码| 五月婷婷综合网| 国产成人a毛片在线| 亚洲精品成人福利在线电影| 亚洲中文久久精品无玛| 97国产在线观看| 性色生活片在线观看| 欧美性猛交一区二区三区| 午夜视频免费试看| 精品视频福利| 高潮爽到爆的喷水女主播视频|