freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

門禁控制系統(tǒng)的研制畢業(yè)設(shè)計說明書-資料下載頁

2025-08-02 22:34本頁面
  

【正文】 口的情況。本章主要論述如何設(shè)計上位機(jī)界面,以及下位機(jī)與上位機(jī)的通信,以及數(shù)據(jù)庫的設(shè)計。 串口通信的實現(xiàn)在本門禁系統(tǒng)中,計算機(jī)與門禁控制器之間的通信接口采用計算機(jī)的串口。系統(tǒng)采用主從方式,由計算機(jī)發(fā)送命令,門禁控制器執(zhí)行命令,做出應(yīng)答,對所有硬件設(shè)備的訪問采用輪詢的方式,輪詢的間隔可以由管理員設(shè)定。通信過程分為以下兩步,如果系統(tǒng)中沒有多路通道控制器,通信過程可以直接進(jìn)行第二步。(1)通信時,首先選通某個通道,計算機(jī)發(fā)送命令與接收應(yīng)答相同表示成功,視為一條透明通道,通信成功,否則,重新選通。(2)通道選通后,開始計算機(jī)與硬件設(shè)備的應(yīng)答過程。計算機(jī)循環(huán)發(fā)送命令給此通道上的硬件設(shè)備,硬件設(shè)備作相應(yīng)的應(yīng)答。串口通信的參數(shù)包括:波特率、字長、校驗位的長度和是否有奇偶校驗。雙方參數(shù)的設(shè)置必須統(tǒng)一。存在以下兩種報文格式:①計算機(jī)發(fā)給控制器的報文格式(命令數(shù)據(jù))TAddrCommandLenData[0]…Data[m]BccINFO(0) INFO(0) T:呼叫字符,提醒門禁機(jī)注意(一個字節(jié))。Addr:門禁機(jī)地址(兩個字節(jié))。Command:命令碼(1字節(jié)),代表具體的通訊命令內(nèi)容,以十六進(jìn)制數(shù)表示。Len:數(shù)據(jù)長度(1字節(jié))。Data[I] 數(shù)據(jù)Len、Data[0]?Data[m]是通訊內(nèi)容對應(yīng)的數(shù)據(jù)長度及數(shù)據(jù)。Bcc 異或校驗碼(2個字節(jié))Bcc=INFO[N]=INFO[O]oINFO[1]o?oINFO[N一1]其中:o表示XOR(異或)gcc的發(fā)送方式與數(shù)據(jù)相同。發(fā)送格式如下:門禁控制器選通串+命令串+數(shù)據(jù)長度+數(shù)據(jù)串+校驗字(數(shù)據(jù)異或值=G)[T$十]+[Command]+[Len]+[DATA]十[LCR(INFO[O~N一1])]其中:[LCR(INFO[0~N—1])]=INFO[1]o INFO[2]o?o INFO[N一1]o=異或②控制器發(fā)給計算機(jī)的應(yīng)答報文格式(應(yīng)答報文)QAddrStatusLenData[0]…Data[m]BccINFO(0) INFO(0) Q:通訊開始引導(dǎo)符(一個字節(jié))。Addr:門禁機(jī)地址(兩個字節(jié))。Q+Addr成為門禁機(jī)選通命令。Status:指令調(diào)用的結(jié)果(1字節(jié))。Len:數(shù)據(jù)長度(1字節(jié))。Data[I] 數(shù)據(jù)。Bcc異或校驗碼(2個字節(jié))。Bcc=INFO[N]=INFO[0]oINFO[1]o?OINFO[N—1]。其中:O表示XOR(異或)。 控件MSComm使用方法Microsoft Communications Control(以下簡稱MSComm)是Microsoft公司提供的簡化Windows下串行通信編程的ActiveX控件,它為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡便方法。MSComm 控件通過串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通訊功能。MSComm控件在串口編程時非常方便,不必去花時間去了解較為復(fù)雜的API函數(shù),而且在VC、VB、Delphi等語言中均可使用。只需要利用MSComm控件就可實現(xiàn)串口編程。MSComm控件提供了兩種處理通信問題的方法:一是事件驅(qū)動(Event—Driven)方法,二是查詢法。事件驅(qū)動方式是處理串行端口交互作用的一種非常有效的方法。使用事件驅(qū)動法設(shè)計程序時,每當(dāng)有新字符到達(dá)或端口狀態(tài)改變,或發(fā)生錯誤時,MSCOmm控件的OnComm事件捕獲并處理這些通信事件。而應(yīng)用程序在捕獲該事件后,通過檢查MSComm控件的CommEvent屬性可以在Onm事件處理函數(shù)中加入自己的處理代碼,這種方法程序響應(yīng)及時可靠。查詢方式:查詢的實質(zhì)實際上仍然是事件驅(qū)動,這種方法應(yīng)用程序每當(dāng)執(zhí)行完某一串行口操作后,將不斷地檢查CommEvent屬性的值來查詢事件或錯誤,如果應(yīng)用程序較小,而且是自保持的,那么這種方法比較可取。MSComm控件有許多屬性,其中非常重要的幾個屬性如下:CommPort:設(shè)置并返回通信端El號。Setting:以字符串的形式設(shè)置并返回波特率,奇偶校驗位,數(shù)據(jù)位,停止位。PortOpen:設(shè)置并返回通信端口的狀態(tài)。也可以打開和關(guān)閉端口。Input:從接收緩沖區(qū)返回和刪除字符。Output:向傳輸緩沖區(qū)寫一個字符。(1)串口初始化:在MySCommTestDlg::OnlnitDialog()函數(shù)中寫入對串/21的初始化語句。通過串口初始化變量 m—ctrlm來設(shè)置串口控件的屬性。部分代碼示例如下:m ctrlm.SetlnBufferSize(1024); //設(shè)置輸人緩沖區(qū)大小m ctrlm.SetOutBufferSize(512); //設(shè)置輸出緩沖區(qū)大小m—ctrlm.SetSettings(”9600,n,8,1”);//波特率9600,無校驗,8個數(shù)據(jù)位,1個停止位m ctrlm.SetPortOpen(TRUE); //打開端口m ctrlm.SetRThreshold(1); //接收多余一個字符將觸發(fā)OnComm事件m—ctrlm.SetlnputLen(0); //設(shè)置當(dāng)前接收區(qū)數(shù)據(jù)長度為0m ctrlm.Getlnput(); //預(yù)讀緩沖區(qū)以清除殘留數(shù)據(jù)(2)串口事件處理:MsComm控件一般用事件驅(qū)動方式從串口接收數(shù)據(jù),事件驅(qū)動法完成對數(shù)據(jù)的監(jiān)視并在程序中捕捉并處理這些事件。為串口事件添加OnComm()消息處理函數(shù)。消息處理函數(shù)是對串口事件的處理,根據(jù)需要編寫。示例代碼為:CMySCommTestDlg::OnComm() //使用MSComm控件的事件驅(qū)動方式接收串口數(shù)據(jù) (3)串口讀寫操作:在串口數(shù)據(jù)的發(fā)送和就收過程中都是使用的VARIANT數(shù)據(jù)類型,因此我們必須把CString字符串?dāng)?shù)據(jù)轉(zhuǎn)換成variant數(shù)據(jù)進(jìn)行串口數(shù)據(jù)傳送。void CMySCommTestDlg:t OnButtonl()//把CString字符串類型數(shù)據(jù)強(qiáng)制轉(zhuǎn)換為variant類型數(shù)據(jù)從串口發(fā)送(4)關(guān)閉串口:串口在進(jìn)行數(shù)據(jù)處理完畢后,要關(guān)閉串口以釋放串口,即將PortOpen()的屬性設(shè)置為FALSE。至此一個完整的串口通信程序完成了。 界面設(shè)計Visual C++是開發(fā)Win32應(yīng)用程序的可視化編程工具,它為軟件開發(fā)人員提供完整的編輯,編譯,調(diào)試工具,以及建立基于Win32 API 基礎(chǔ)的MFC類庫,從而有效的縮短了Windows應(yīng)用程序的開發(fā)周期,Windows操作系統(tǒng)本身大部分是用C/C++語言寫成的,而Visual C++正是使用C/C++語言的Win32應(yīng)用程序集成開發(fā)環(huán)境,因此, Visual C++編寫軟件。用戶界面是人機(jī)對話的主要方法,本系統(tǒng)設(shè)計了一個良好的人機(jī)對話界面PC機(jī)軟件,給用戶一個簡單、實用、方便操作的界面。使用VC可以很方便的設(shè)計軟件的界面,以及程序代碼的編寫。設(shè)置使用串口的傳輸波特率為9600kbps。設(shè)計的界面如下圖所示: 門禁系統(tǒng)上位機(jī)界面設(shè)計步驟如下:(1)建立項目:打開VC++,建立一個基于對話框的MFC應(yīng)用程序,輸入文件名。(2)在項目中插入MSComm控件 選擇Project菜單下Add To Project子菜單中的 Components and Controls…選項,在彈出的對話框中雙擊Registered ActiveX Controls項,則所有注冊過的ActiveX控件出現(xiàn)在列表框中。選擇Microsoft Communications Control, version ,單擊Insert按鈕將它插入到我們的Project中來,接受缺省的選項。這時在ClassView視窗中就可以看到CMSComm類了,并且在控件工具欄Controls中出現(xiàn)了圖標(biāo),用鼠標(biāo)將此圖標(biāo)拖到對話框中。(3)刪除對話框原來的控件,用面板添加所需的控件按鈕,然后添加變量,在“查看”菜單中點擊鼠標(biāo)右鍵,打開“Class Wizard”對話框的“Member Variables”標(biāo)簽,選中所對應(yīng)的控件ID號,雙擊鼠標(biāo)或者單擊Add Variables按鈕,依次下表中的增加成員變量。 (4)為相應(yīng)的控件添加成員函數(shù),并添加函數(shù)代碼,編譯。生成過程如下:BuildSet Active configuration選中win32release,然后Buildrebuild All,完成后,就在工程目錄下多了一個Release文件夾。 (5).InstallShield環(huán)境下編譯生成文件,可以生成打包軟件了。打開工程文件夾disk1就可以看到安裝文件了。安裝成功后,點擊*exe就可以運行了。 數(shù)據(jù)庫設(shè)計SQL Server2000是Microsoft公司在SQL Server 7.0基礎(chǔ)上潛心研究而成功開發(fā)出的功能強(qiáng)大的數(shù)據(jù)庫管理系統(tǒng)。,使用SQLServer的企業(yè)管理器,可以非常方便地創(chuàng)建、配置、維護(hù)數(shù)據(jù)庫,使得沒有很多數(shù)據(jù)庫知識的管理員輕松上手,管理數(shù)據(jù)庫。本設(shè)計采用SQL Server2000關(guān)系數(shù)據(jù)庫作為數(shù)據(jù)庫管理系統(tǒng),在關(guān)系數(shù)據(jù)庫里,所有的數(shù)據(jù)都按表(稱為“關(guān)系”)進(jìn)行組織和管理。表容納著對個人或?qū)ζ髽I(yè)至關(guān)重要的數(shù)據(jù)。在進(jìn)行數(shù)據(jù)庫程序設(shè)計時,首先要做的工作就是設(shè)計數(shù)據(jù)庫表格的結(jié)構(gòu),即分析每個表格該由哪些項構(gòu)成,各表格之間的關(guān)系等。本系統(tǒng)構(gòu)數(shù)據(jù)庫主要包括持卡人信息,出入時間等 ADO連接訪問數(shù)據(jù)庫采用ADO技術(shù)實現(xiàn)數(shù)據(jù)庫的訪問,要用到ADO控件頁中的TADODataSet、TADOQuery、TADOConnection等組件,結(jié)合DataAccess控件頁中的DataSource組件來對數(shù)據(jù)庫進(jìn)行訪問。各控件使用方法如下:(1)TADOCormection組件:建立數(shù)據(jù)庫與ADO組件的連接,相當(dāng)于數(shù)據(jù)庫別名,避免每個組件都要建立自己的連接字符串。(2)ADODataSet組件:與表進(jìn)行連接,用于獲取和操縱ADO數(shù)據(jù),也可以執(zhí)行SQL語句和存儲過程,集ADOTable、ADOQuery、ADOStoredProc三者功能于一體,使用時,設(shè)定其Connection屬性為ADOConnection組件對象。(3)TADOQuery組件:通過SQL語句對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行功能強(qiáng)大的查詢來獲取和操作數(shù)據(jù)集的元素,它通過TADOConnection組件連接到數(shù)據(jù)庫。(4)Data Source組件:是聯(lián)系A(chǔ)DO組件與用戶應(yīng)用程序的橋梁。數(shù)據(jù)控件Data Control組件讓用戶能夠瀏覽和操作數(shù)據(jù)庫,充當(dāng)應(yīng)用程序的用戶接口。數(shù)據(jù)庫數(shù)據(jù)庫驅(qū)動ADO系列控件DATA ACESS控件Data control控件用戶界面 ADO訪問數(shù)據(jù)庫的結(jié)構(gòu)層次6 系統(tǒng)調(diào)試系統(tǒng)的應(yīng)用開發(fā)可分為以下五個過程。(1)硬件系統(tǒng)設(shè)計調(diào)試。如電路設(shè)計、PCB印制板繪制等。(2)應(yīng)用程序的設(shè)計。(3)應(yīng)用程序的仿真調(diào)試。 (4)單片機(jī)應(yīng)用程序的燒寫。 (5)系統(tǒng)運行檢查。進(jìn)行全面檢查,針對出現(xiàn)的問題修正硬件、軟件或總體設(shè)計方案。 硬件調(diào)試根據(jù)設(shè)計的原理電路做好實驗樣機(jī),便進(jìn)入硬件調(diào)試階段。調(diào)試工作的主要任務(wù)是排除樣機(jī)故障,其中包括設(shè)計錯誤和工藝性故障。在印制電路板工作完成之后,根據(jù)設(shè)計的步驟要求我對自己的硬件電路板進(jìn)行了調(diào)試工作,這里將調(diào)試的過程及在調(diào)試的過程中所遇到的問題提出來進(jìn)行討論,以便能夠進(jìn)一步的掌握設(shè)計工作的要領(lǐng)。(1)邏輯錯誤調(diào)試樣機(jī)硬件的邏輯錯誤是由于設(shè)計錯誤和加工過程中的工藝性錯誤所造成的,主要有錯線、開路、短路等幾種。因此要先對硬件線路進(jìn)行檢查。(2)檢測元器件檢測所有元器件的好壞,是否正常工作,導(dǎo)線是否導(dǎo)通等。具體的實現(xiàn)方法是先檢測電容、電阻及導(dǎo)線是否短接,采用的工具是萬用表。(3)檢測各個引腳信號給電路接通電源,大概用手摸一下元器件是否發(fā)熱,有的話,關(guān)掉電源,進(jìn)行再次檢測;沒有的話,則測試所有芯片的VCC端電壓是否達(dá)到要求,接地端是否都接地。(4)調(diào)試串口模塊,打開串口調(diào)試助手,將RXD,TXD連接起來,看能否接受和發(fā)送數(shù)據(jù)。當(dāng)以上檢測都沒有什么問題的時候,就可以燒寫單片機(jī)程序,進(jìn)行整體調(diào)試了,調(diào)試的結(jié)果能達(dá)到設(shè)計的要求,就算硬件設(shè)計工作完成。 軟件調(diào)試本設(shè)計系統(tǒng)的控制程序是采用C語言編程,編程所采用的軟件是keil編程軟件。關(guān)于單片機(jī)C語言軟件調(diào)試,在語句中出現(xiàn)的語法錯誤,該軟件會提示出來,以便于更正。其次,就是檢查初始化程序的正確性,根據(jù)設(shè)計的要求定義正確的初始化程序,為后面程序的執(zhí)行做好鋪墊作用。然后就是根據(jù)軟件實現(xiàn)步驟逐個檢查程序的可行性,以及程序的嵌套性是否都能達(dá)到設(shè)計的要求。本系統(tǒng)采用模塊程序設(shè)計術(shù),逐個模塊調(diào)好以后,再進(jìn)行系統(tǒng)程序總調(diào)試(1)調(diào)試控制的單片機(jī)是否能正常工作,可以通過測試其引腳是否可以按程序的要求變化。調(diào)試下載的單片機(jī)的引腳能否按要求高低電平變化。 (2)調(diào)試射頻模塊 根據(jù)射頻模塊的協(xié)議以及編寫的程序,進(jìn)行IC卡的刷卡識別,若是設(shè)定的IC卡則產(chǎn)生預(yù)期的反應(yīng),其他卡則不能。調(diào)試射頻模塊是否滿足要求。(3)打開串口調(diào)試助手,將串口的模塊的RXD和TXD短接,使用串口調(diào)試助手發(fā)送數(shù)據(jù),看下接收緩沖區(qū)能否接收所發(fā)送的數(shù)據(jù)。(4)聯(lián)機(jī)調(diào)試 按照要求,將硬件與電腦連接,打開所編譯好的軟件,以便綜合調(diào)試。首先點擊“打開”與“關(guān)閉”按鈕,看能否順利打開與關(guān)閉串口,如果成功,可以進(jìn)行下列的步驟,否則修改串口程序。然后進(jìn)行IC卡刷卡,看能否顯示卡的詳細(xì)信息,以及刷卡時間。否則修改程序。如果刷卡成功,點擊“保存數(shù)據(jù)”,看能否進(jìn)行數(shù)據(jù)保存,否則修改程序。
點擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1