【正文】
與RS232串行端口通信的目的。Windows API(以下簡(jiǎn)稱API)函數(shù)來(lái)自于操作系統(tǒng),API函數(shù)是唯一可以和操作系統(tǒng)進(jìn)行通信的函數(shù)。還可以在程序中選中需要的部分直接使用API函數(shù),完成在RDE中無(wú)法直接完成的部分。在C++Builder軟件系統(tǒng)中對(duì)串行端口的訪問(wèn)必須經(jīng)過(guò)API函數(shù)才能訪問(wèn)。 在API與串行通信之間有大量的函數(shù)關(guān)系,此次設(shè)計(jì)用到的函數(shù)為C Write File、1oseHandle、Set Comm State、Create File、Read File和Get Comm State等幾個(gè)函數(shù)。下面為所用到的各函數(shù)。 File函數(shù) Create File函數(shù)的聲明如下; HANDLE Create File( LPCTSTR 1pFileName, //文件名指針 DWORD d w Desired Access, //讀寫模式 DWORD d w Share M d e, //共享模式 LPSECURTY_ATTRIBUTES 1pSecurity Attributes, //Security Attributes //結(jié)構(gòu)指南 DWORD d w Creation Distribution , // 文件打開方式 DWORD d w Flags And Attributes, //文件屬性 HANDLE h Temp1ateFie //帶屬性復(fù)制的文件句柄 )。 有關(guān)參數(shù)說(shuō)明如下: 1pFileName:文件名,在串行通信中就是COM1或COM2。 dw Desired Access:讀寫模式設(shè)置,其值有GENERICREAD和GENERICWRITE兩個(gè),用于表示文字的讀寫。由于串行通信口即可以讀又可以寫,所以該值設(shè)置為這兩個(gè)。dwShare Mde;是否共享。正常情況下值為0,為不共享。 1pSecurityAttributes;這個(gè)參數(shù)通常不需要設(shè)置,一般設(shè)置為NULL。 dw Creation Distribution;指明文件打開的方式。如果打開的指串行口,則該參數(shù)值設(shè)置為OPENEXISTING,表示打開一個(gè)已經(jīng)存在的文件(其實(shí)就是串行端口)。 dwF1agsAndAttributes。文件屬性及相關(guān)標(biāo)志,在串行通信中,異步通信方式顯示結(jié)果為FILE FLAG OBERLAPPED,同步方式,其值為0。 hTemp1ateFie;在串行通信中,此值設(shè)置為0. 函數(shù)返回值;如果文件(串行端口)打開正確,則返回該文件的一個(gè)句柄(Handle);否則,返回INBALID HANDLE BALUE,表示文件打開錯(cuò)誤。 C1oseHandle函數(shù)聲明如下; BOOL C1oseHandle( RANDLE h Object //要關(guān)閉對(duì)象的句柄 }。 Comm State函數(shù) Get Comm State 函數(shù)聲明如下; BOOL C1oseHandle{ HABDKE h File //通信設(shè)備的句柄 LPDCB 1PDCB //設(shè)備控制塊結(jié)構(gòu)地址 }。 有關(guān)參數(shù)說(shuō)明如下; 1h File;串行端口的Handle值,即Create File函數(shù)返回的值。 1pDCB;設(shè)備控制塊(DCB)結(jié)構(gòu)地址。設(shè)備控制塊是用來(lái)設(shè)置端口的相關(guān)參數(shù)的,列如波特率,二進(jìn)制模式和奇偶校驗(yàn)等。函數(shù)返回值;如果函數(shù)正確執(zhí)行,返回非0值;否則返回0值。結(jié)論本次設(shè)計(jì)將主要針對(duì)在市電突然停電,導(dǎo)致服務(wù)器沒(méi)能及時(shí)的做出相關(guān)反應(yīng)而對(duì)其造成損害的現(xiàn)象所展開的。利用單片機(jī)系統(tǒng)體積小、節(jié)省空間、低功耗、低成本、執(zhí)行速度更快等高性能特點(diǎn)。以控制電源檢測(cè)系統(tǒng)電路作為研究對(duì)象,硬件部分以AT89C51單片機(jī)為重點(diǎn)。接口轉(zhuǎn)換電路和服務(wù)器做為輔助,利用MAX232芯片使RS232和TTL電路之間進(jìn)行電平和電壓的轉(zhuǎn)換使通信得以轉(zhuǎn)換,在繪制原理圖中用到了Pro tel 99SE,使硬件部分得以實(shí)現(xiàn)。軟件方面主要利用的是C++Builder軟件,軟件的主要任務(wù)就是接收來(lái)自計(jì)算機(jī)傳遞給RS232端口有關(guān)電源檢測(cè)的相關(guān)信號(hào)。C++Builder軟件通過(guò)Windows API函數(shù)可以實(shí)現(xiàn)與RS232串行端口通信的目的。在實(shí)際過(guò)程中上由單片機(jī)系統(tǒng)接收到停電信號(hào)后對(duì)此做出關(guān)機(jī)指令,經(jīng)由接口轉(zhuǎn)換電路的傳輸?shù)竭_(dá)服務(wù)器,使得服務(wù)器安全關(guān)機(jī)。從而達(dá)到保護(hù)服務(wù)器的作用。由于設(shè)計(jì)者能力有限,所提供的程序還可進(jìn)一步升級(jí),使系統(tǒng)更加簡(jiǎn)單、方便。參考文獻(xiàn)[1]王予,張培,[J].:8586[2]曹浩,[J].[3][D].[4][D].[5][D].[6][D].[7]韓潔瓊,甘曉燕,[J].:20—21[8]張秋紅,[J].:138[9][J].:5861[10][D].[11][D].[12][D].[13][D].南京理工大學(xué)。2008[14][D].[15]范鵬飛,[J].。2324附錄電路原理圖 21