亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Delphi環(huán)境下PC機與AVR單片機的串行通訊

        2008-04-12 00:00:00馬洪秋
        現(xiàn)代電子技術 2008年2期

        摘 要:提出基于AVR單片機的下位機數(shù)據(jù)采集系統(tǒng)與Delphi環(huán)境下PC機的串行通訊的軟硬件實現(xiàn)方法。簡要介紹系統(tǒng)的工作流程和通訊控制原理,詳細介紹單片機與PC機通訊的硬件控制電路、通訊協(xié)議以及上下位機軟件實現(xiàn)過程,重點介紹Delphi語言中SPComm控件的使用方法。采用軟硬件相結合的方法進行仿真和調試,成功實現(xiàn)了功能要求。實際應用表明,這種通訊方案穩(wěn)定可靠且控制簡單,具有很強的工程實用性和廣泛的應用前景。

        關鍵詞:AVR單片機;RS 232;串行通訊;Delphi;SPComm

        中圖分類號:TP336 文獻標識碼:B 文章編號:1004-373X(2008)02-123-03

        Serial Communication between PC and AVR Single Chip under Environment of Delphi

        LIAO Ping,CHEN Feng,MA Hongqiu

        (College of Mechanical and Electronic Engineering,Central South University,Changsha,410083,China)

        Abstract:This paper introduces the hardware and software actualization method of serial communication between computer under environment of Delphi and the data collecting system based on AVR single chip processor.Simply introduces the workflow of the system and the control principle of communication.Detailedly introduces the hardware circuit chart,communication agreement and actualization method of software of serial communication between computer and single chip.It specially places emphasis on the Operation of SPComm component in the programme language of Delphi,adoptes combining software and hardware to carry out emulation and debugging and succeeded to realize the required function.Physically application indicates that this proposal of communication got powerful stability and credibility and simple control,possess of strong engineering practicability and extensive market foreground.

        Keywords:AVR single chip;RS 232;serial communication;Delphi;SPComm

        1 引 言

        隨著現(xiàn)代計算機技術和電子技術的發(fā)展,采用價格低廉、現(xiàn)場控制能力強的單片機作為下位機直接對控制對象進行驅動控制和實時數(shù)據(jù)的采集、處理,并通過串口與上位PC機進行串行通訊,在現(xiàn)代工業(yè)測控領域中得到了廣泛的應用。近些年,在監(jiān)測與控制軟件系統(tǒng)的開發(fā)設計中,由于Delphi具有可視化開發(fā)環(huán)境,強大的數(shù)據(jù)庫開發(fā)功能,包含功能豐富的VCL庫,而且封裝了大量的Windows API函數(shù)等特點,使得Delphi在處理大量數(shù)據(jù)和實現(xiàn)PC機與單片機的串行通訊等方面應用十分方便。

        本文即介紹了X射線板材測厚系統(tǒng)中上下位機的串行通訊。下位機采用AVR單片機ATmega16進行數(shù)據(jù)采集,前置電路對3路檢測信號進行光電轉換和放大處理后送入到ATmega16單片機自帶的10位A/D轉換器中進行A/D轉換,單片機再將三路轉換值以16進制通過串行通訊發(fā)往PC機;上位機中采用Delphi編寫軟件,利用Delphi的強大數(shù)據(jù)庫功能管理下位機發(fā)送的數(shù)據(jù),供圖表顯示和產量、成品計算等;并在Delphi中利用SPComm控件實現(xiàn)與下位機的串行通訊。

        2 硬件電路圖

        串口是微機上的標準設備,在進行串行通訊時不需要給微機增加額外的硬件,電路簡單且技術可靠。在PC機與單片機構成的上下位機系統(tǒng)中,若采用軟件實現(xiàn)握手協(xié)議,則利用基本3線制(TXD,RXD,GND)的連接即可實現(xiàn)單片機與PC機的通訊,硬件電路如圖1所示。由于AVR單片機信號電平(TTL電平)與PC機配置的串行接口電平(RS 232電平)兩者電氣規(guī)范不一致,故采用MAX 232電平轉換芯片進行電平轉換。

        3 下位機軟件設計

        AVR單片機ATmega16的USART是一個高度靈活的串行通訊設備,能進行全雙工操作,可工作在異步方式或同步方式下,并具有多處理器通訊模式、倍速異步通訊模式等增強型通信功能。下位機的軟件設計主要是通訊協(xié)議的設定和相關程序的設計。

        (1) 通訊協(xié)議

        給上下位機設置適當?shù)耐ㄓ崊f(xié)議是保證上下位機能正常通訊的基礎。系統(tǒng)采用全雙工異步通訊模式,通訊協(xié)議設置如下:

        波特率 采用9 600幀格式,數(shù)據(jù)格式采用8位數(shù)據(jù)位,1位起始位,1位停止位。為使通訊更可靠,使能了奇偶校驗功能,采用奇校驗。但如果上位機檢測出所接收的數(shù)據(jù)錯誤,則丟棄不用,不再給下位機發(fā)信號請求重新發(fā)送數(shù)據(jù),以保證單片機穩(wěn)定的采樣頻率。

        握手協(xié)議 采用軟件實現(xiàn)上下位機的握手,下位機要往上位機發(fā)送數(shù)據(jù)時,先發(fā)送一個握手信號:aa;上位機收到后回發(fā)一個信號:bb,表示已經(jīng)做好數(shù)據(jù)接收準備。

        (2) 程序設計

        下位機通訊的程序采用C語言編寫,主要任務是完成USART的初始化、采集數(shù)據(jù)的A/D轉換、握手的實現(xiàn)和數(shù)據(jù)的發(fā)送。這里主要介紹串口的初始化程序以及通訊程序的流程圖。

        串口的初始化程序:主要設置相關的通信協(xié)議。

        void usart-init(void)[JY]//USART 初始化

        {

        UCSRB = 0x00;[JY]//初始化時先關閉USART

        UCSRC = (1<

        UBRRL = 0x33;

        UBRRH = 0x00;[JY]//波特率設為9600

        UCSRA = 0x00;[JY]//單機通訊

        UCSRB = <

        }

        通訊流程簡介:在完成相關的初始化工作后,啟動A/D轉換,當3路信號都轉換完成后單片機往上位機發(fā)握手信號,等待上位機的應答。串口發(fā)送采用查詢方式,即CPU不停地查詢數(shù)據(jù)寄存器是否為空,若為空則裝載新的數(shù)據(jù)開始發(fā)送;而接收則采用中斷方式,在數(shù)據(jù)接收結束后進入中斷服務程序,為使程序盡量少地在中斷中停留,中斷服務程序中僅完成對握手信號的判別和發(fā)送標志的置位。當握手成功后,單片機把轉換的數(shù)據(jù)往上位機發(fā)送,數(shù)據(jù)全部發(fā)送完成后即進入下一輪的采樣、轉換和發(fā)送。串行通訊流程如圖2所示:

        圖2 串行通訊流程圖

        4 上位機軟件設計

        Delphi是一種采用事件驅動方式、面向對象的可視化高級編程語言,本系統(tǒng)的通訊軟件設計采用Delphi 7.0。在Delphi可以利用的眾多串行通信控件中,SPComm控件是最簡單,功能比較強大的一種。該控件具有豐富的與串口通信密切相關的屬性及事件,提供對串口的各種操作。

        4.1 SPComm的主要屬性、方法和事件

        (1) 屬性

        Commonage:串口名,填寫COM1,COM2等串口的名字,字符型變量;

        Baud Rate:設定波特率。如9 600,19 200等,在串口打開后也可更改波特率;

        ParityCheck:是否使能奇偶校驗;

        ByteSize:字節(jié)長度。根據(jù)實際情況可設定為5,6,7或8位;

        Parity:奇偶校驗位;

        StopBits:停止位的位數(shù);

        SendDataEmpty:這是一個布爾屬性,為True時表示發(fā)送緩存為空,或者發(fā)送隊列里沒有信息;為False時表示發(fā)送緩存不為空,或者發(fā)送隊列里有信息。

        (2) 方法

        Startcomm:用于打開串口,若打開失敗通常會報錯;

        StopComm:用于關閉串口,沒有返回值。

        (3) 函數(shù)

        WriteCommData(pDataToWrite:PChar;dwSizeofDataToWrite:Word):boolean:用于發(fā)送一個字符串到寫線程,發(fā)送成功返回True,失敗則返回False,執(zhí)行此函數(shù)將立即得到返回值,發(fā)送操作隨后執(zhí)行。函數(shù)有2個參數(shù),其中pDataToWrite是需要發(fā)送的字符串,dwSizeofDataToWrite是發(fā)送的字符串的長度。

        (4) 事件

        OnReceiveData:procedure(Sender:TObject;Buffer:Pointer;Bufferlength:Word)of object:當輸入緩存有數(shù)據(jù)時觸發(fā)該事件,在這里可以對從串口收到的數(shù)據(jù)進行處理。Buffer中是收到的數(shù)據(jù),Bufferlength是收到的數(shù)據(jù)長度。

        OnReceiveError:procedure(Sender:TObject;EventMask:DW()RD):當接收數(shù)據(jù)時出現(xiàn)錯誤將觸發(fā)該事件。

        4.2 程序關鍵部分的實現(xiàn)

        Delphi中用于串口通訊的程序較少,集中在簡單的串口打開和關閉、握手信號的測試和下位機采集數(shù)據(jù)的接收這幾大板塊,以下僅做簡單介紹。

        (1) 打開串口并初始化

        procedure TForm1.Opencomm(Sender:TObject);

        begin

        Comm1.CommName:=comm;[JY]//選擇串口

        Comm1.BaudRage:=9600;[JY]//設定波特率為9 600

        Comm1.Parity:=odd;[JY]//奇校驗

        Comm1.StopBits:=-1;[JY]//1位停止位

        Comm1.ByteSize:=-8;[JY]//8位數(shù)據(jù)位

        Comm1.StartComm;[JY]//打開串口

        end;

        (2) 測試握手信號

        procedure TForm1.ButtonlClick(Sender:TObject);

        var

        i:byte;

        commflg:boolean;[JY]//變量定義

        begin

        sbuf[1]:=byte(aa);

        commflg:=true;[JY]//若信號正確標志設定true

        if not TForm1.comm1.writecommdata(@sbuf[1],1) then

        begin

        commflg:=1;[JY]//若接收的握手信號錯誤,標志設為1

        end;

        end;

        (3) 數(shù)據(jù)接收事件

        procedure TForm1.CommlReceiveData(Sender:TObject;Buffer:Pointer;BufferLength:Word);

        var

        i,j:integer;

        commRevstr:shortstring;

        RevP:RecData[1..1024] of byte;[JY]//變量定義

        begin

        SetLength(CommRevStr,BufferLength);[JY]//設置字符串長度與緩沖區(qū)大小相等;

        move(buffer,pchar(@rbuf),bufferlength);[JY]//將緩沖區(qū)內容拷貝到字符串地址上;

        for i:=1 to bufferlength do

        begin

        viewstring:=viewstring+inttohex(rbuf[i],2)+””;[JY]//接收到的數(shù)據(jù)在窗體中顯示

        RecData[i]:=integer(S[i]);[JY]//存儲接收到的數(shù)據(jù)

        ……[JY]//限于篇幅和論述目的,接收到的數(shù)據(jù)的后續(xù)處理程序在此省略

        end;

        end;

        (4) 關閉串口

        procedure TForm1.Button3Click(Sender:TObject);

        begin

        Comm1.StopComm;[JY]//關閉Comml

        end;

        5 結 語

        本文對實現(xiàn)上位機與單片機之間串行通信的方法進行了詳細的討論。通訊程序編程容易實現(xiàn),在實際X射線實時板材測厚系統(tǒng)應用中,這種串口通信方法表現(xiàn)出了很強的工程實用性,通訊穩(wěn)定可靠且成本低廉。同時由于上下位機軟件都是用高級語言編寫,稍加修改便可方便地移植到其他相類似的工程系統(tǒng)中,故在測控工程領域有著廣泛的應用前景。

        參 考 文 獻

        [1]黃軍,熊勇.Delphi串口通信編程[M].北京:人民郵電出版社,2002.

        [2]范逸之,陳立元.Delphi與RS 232串行通信控制[M].北京:清華大學出版社,2004.

        [3]孫濱,宋健.用Delphi實現(xiàn)上位機與PIC單片機的串行通訊[J].現(xiàn)代電子技術,2004,27(16):92-93.

        [4]桑開勇,陳鐵軍.Delphi環(huán)境下利用SPComm控件進行單片機串口通信[J].現(xiàn)代電子技術,2006,24(15):26-28.

        [5]徐新華,任曉,呂濤.基于Delphi的PC機與PIC單片機的串行通信[J].電子工程師,2006(3):58-59.

        [6]倪倩,程勇,高繪玲.Delphi環(huán)境下油泵測控系統(tǒng)PC機與單片機通訊的實現(xiàn)[J].福建電腦,2005(12):120-121.

        [7]丁易新.PC機與AVR單片機之間串行通信的實現(xiàn)[J].現(xiàn)代電子技術,2005,28(12):32-34.

        注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。

        在线综合网| 精品伊人久久香线蕉| 又大又粗欧美黑人aaaaa片 | 亚洲аv天堂无码| 50岁退休熟女露脸高潮| 亚洲精品1区2区在线观看| 中文字幕久区久久中文字幕| 中文字幕久久久久久精| 亚洲欧美日韩精品久久亚洲区| 人妻丰满av无码中文字幕| 美女露出奶头扒开内裤的视频| 久久精品国产一区二区涩涩| 久久青草伊人精品| 亚洲av永久无码精品国产精品 | 青青草原精品99久久精品66| 久久精品国产亚洲av久| 黄色影院不卡一区二区| 精品人妻久久av中文字幕| 亚洲成a∨人片在线观看无码| 国产精品毛片无码| 国产女主播白浆在线观看| 国产最新女主播福利在线观看| 亚洲大胆美女人体一二三区| 中文一区二区三区无码视频| 免费一区在线观看| 男男车车的车车网站w98免费| 白丝爆浆18禁一区二区三区| 久久久中文字幕日韩精品| 日本一区人妻蜜桃臀中文字幕| 亚洲色欲色欲欲www在线| 亚洲成av人片天堂网九九| 激情 人妻 制服 丝袜| 鸭子tv国产在线永久播放| 少妇高潮太爽了在线视频| 99精品国产一区二区三区| 日本国产一区在线观看| 亚洲蜜桃视频在线观看| 人妻无码一区二区19P| 98在线视频噜噜噜国产| 亚洲av永久无码精品秋霞电影影院| 4hu四虎永久在线观看|