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

正文內(nèi)容

基于51單片機(jī)的紅外計(jì)數(shù)系統(tǒng)設(shè)計(jì)畢業(yè)論文(已改無錯(cuò)字)

2023-07-25 16:35:19 本頁(yè)面
  

【正文】 第二個(gè)元素中;當(dāng)處理人離開圖書館的人數(shù)變量OUT時(shí),給i賦值為4,即選擇編號(hào)為out的數(shù)碼管,給s賦值為離開圖書館的人數(shù),隨即處理該人數(shù),分別算出其各位數(shù)和十位數(shù),然后將可供數(shù)碼管顯示的顯示信息從數(shù)組tab中調(diào)出,存入定義的緩存數(shù)組disbuff第五個(gè)元素和第六個(gè)元素中;當(dāng)處理所留在圖書館的人數(shù)變量STAND時(shí),給i賦值為2,即選擇編號(hào)為stand的數(shù)碼管,給s賦值為所留在圖書館的人數(shù),隨即處理該人數(shù),分別算出其各位數(shù)和十位數(shù),然后將可供數(shù)碼管顯示的顯示信息從數(shù)組tab中調(diào)出,存入定義的緩存數(shù)組disbuff第三個(gè)元素和第四個(gè)元素中;數(shù)碼管賦值的子函數(shù)核心代碼為:void Quzhi(uchar i, uchar s) //給數(shù)碼管賦值{uchar unitPlace = s / 1 % 10。 uchar tenPlace = s / 10 % 10。 if (tenPlace == 0) {tenPlace=10。} disbuff[i]=tab[unitPlace]。 disbuff[i+1]=tab[tenPlace]。} 上位機(jī)程序設(shè)計(jì) 本次設(shè)計(jì)用vb語(yǔ)言編寫上位機(jī),即用戶窗口。如圖34所示: 圖34 用戶窗口在這里介紹上位機(jī)的程序時(shí)我們也將按照功能類型的結(jié)構(gòu)分為:串口通信功能程序設(shè)計(jì),數(shù)據(jù)顯示及存儲(chǔ)功能程序設(shè)計(jì),控制命令功能程序設(shè)計(jì),三部分來介紹。 VB是Visual Basic的簡(jiǎn)稱,是由美國(guó)微軟公司于1991年開發(fā)的一種可視化的、面向?qū)ο蠛筒捎檬录?qū)動(dòng)方式的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì)語(yǔ)言,可用于開發(fā) Windows 環(huán)境下的各類應(yīng)用程序。它簡(jiǎn)單易學(xué)、效率高,且功能強(qiáng)大。在Visual Basic環(huán)境下,利用事件驅(qū)動(dòng)的編程機(jī)制、新穎易用的可視化設(shè)計(jì)工具,使用Windows內(nèi)部的廣泛應(yīng)用程序接口(API)函數(shù),動(dòng)態(tài)鏈接庫(kù)(DLL)、對(duì)象的鏈接與嵌入(OLE)、開放式數(shù)據(jù)連接(ODBC)等技術(shù),可以高效、快速地開發(fā)Windows環(huán)境下功能強(qiáng)大、圖形界面豐富的應(yīng)用軟件系統(tǒng)[8]。 串口通信部分程序部分串行通信控件MSComm全稱為Microsoft Communications Control,是微軟公司提供的簡(jiǎn)化Windows下串行通信編程的ActiveX控件,它既可以用來提供簡(jiǎn)單的串行端口通信功能,也可以用來創(chuàng)建功能完備的、事件驅(qū)動(dòng)的高級(jí)通信工具。使用MSComm控件進(jìn)行串口編程時(shí)非常方便,程序員不必花更多時(shí)間去了解較為復(fù)雜的API函數(shù),而且在VB、VisualC++、Delphi等語(yǔ)言中均可使用。使用它可以建立與串行端口的連接,通過串行端口連接到其他通信設(shè)備(如調(diào)制解調(diào)器),發(fā)出命令,交換數(shù)據(jù),以及監(jiān)視和響應(yīng)串行連接中發(fā)生的事件。利用它可以進(jìn)行諸如撥打電話、監(jiān)視串行端口的輸入數(shù)據(jù)程序,以及創(chuàng)建功能完備的終端程序等[9]。在做串口通信時(shí),最基礎(chǔ)的部分是設(shè)定好使用的串口以及波特率。這是串行通信控件MSComm可以運(yùn)行的前提,在本設(shè)計(jì)的用戶界面上也可看到串口選項(xiàng)模塊中的選擇串口,打開串口,波特率,三個(gè)操作對(duì)象。在打開串口以及波特率的設(shè)定兩個(gè)條目上,我們選擇了Combo Box (組合框)控件,Combo Box (組合框)控件很簡(jiǎn)單,而且占用面積小,可以節(jié)省空間。從用戶角度來看,這個(gè)控件是由一個(gè)文本輸入控件和一個(gè)下拉菜單組成的。用戶可以從一個(gè)預(yù)先定義的列表里選擇一個(gè)選項(xiàng),同時(shí)也可以直接在文本框里面輸入文本(本次設(shè)計(jì)中不需要將用戶自行輸入文字,直接在列表中選擇即可)。用戶使用時(shí)也十分方便。,以及波特率可以選擇9600或者4800,來進(jìn)行通信。波特率以及選擇串口選項(xiàng)的界面如圖35:圖35 波特率以及選擇串口選項(xiàng)的界面波特率以及選擇串口選項(xiàng)的源程序如下:Select Case Case 0 = 1 Case 1 = 2 Case 2 = 3 Case 3 = 4End SelectSelect Case Case 0 = 4800, n, 8, 1 Case 1 = 9600, n, 8, 1End Select在打開串口這個(gè)功能上我們選用了CommandButton簡(jiǎn)單控件以及shape控件。其中CommandButton控件用來單擊觸發(fā)事件,shape控件我們?cè)趯傩灾袑⑵湔{(diào)整為圓形。當(dāng)我們單擊打開串口時(shí),shape控件變?yōu)榫G色;當(dāng)串口處于關(guān)閉狀態(tài)時(shí),shape控件變?yōu)榧t色。在這里,shape控件類似于一個(gè)指示燈的作用,方便用戶了解串口的工作狀態(tài)。CommandButton控件是vb中最常用的控件之一。在本次設(shè)計(jì)的用戶窗口上我們也可以看到大量的引用CommandButton控件。用戶通過簡(jiǎn)單的敲擊按鈕來執(zhí)行操作。當(dāng)用戶選中按鈕時(shí),不僅會(huì)執(zhí)行相應(yīng)操作,還會(huì)使該按鈕看上去象被按下并釋放一樣。無論何時(shí),只要用戶單擊按鈕,就會(huì)調(diào)用 Click 事件過程。將代碼寫入 Click 事件過程,執(zhí)行想要執(zhí)行的動(dòng)作。在這里用戶單擊標(biāo)有打開串口的CommandButton控件時(shí),程序就會(huì)執(zhí)行四部分內(nèi)容:;2選擇串口端;3選擇波特率;4根據(jù)端口的工作狀態(tài)調(diào)整shape控件的顏色其核心代碼如下:Private Sub btnOpenSerial_Click()If = 關(guān)閉串口 Then = False = amp。H404040 = 打開串口ElseIf = 打開串口 ThenSelect Case Case 0 = 1 Case 1 = 2 Case 2 = 3 Case 3 = 4End SelectSelect Case Case 0 = 4800, n, 8, 1 Case 1 = 9600, n, 8, 1End Select = True = 關(guān)閉串口 = vbGreenEnd IfEnd Sub串口通信控件配置程序如下: = vbGreen = 4800,n,8,1 = 1 = True = InputModeBinary 39。16進(jìn)制傳輸數(shù)據(jù) = 關(guān)閉串口 = 0 39。清除接收緩沖區(qū) = 1 39。當(dāng)接收到1個(gè)字節(jié)的數(shù)據(jù)時(shí),產(chǎn)生OnComm事件本次設(shè)計(jì)中,上位機(jī)與下位機(jī)是雙向通信。上位機(jī)每次通信向下位機(jī)發(fā)送兩個(gè)字節(jié)的數(shù)據(jù)。其中一個(gè)字節(jié)表示是否將數(shù)據(jù)(統(tǒng)計(jì)的人數(shù))清零。另外一個(gè)字節(jié)表示飽和人數(shù)的設(shè)定。上位機(jī)向下位機(jī)發(fā)送數(shù)據(jù)的源程序?yàn)椋?= 0 39。清除發(fā)送緩沖區(qū)Fwordsend(1) = 1 39。下位機(jī)清零Fwordsend(2) = baohesendBuffer = Fwordsend() = sendBuffer而下位機(jī)向上位機(jī)通信時(shí)只發(fā)送一個(gè)字節(jié)數(shù)據(jù)。當(dāng)發(fā)送“1”時(shí)表示有人進(jìn)入圖書館,進(jìn)入人數(shù)增加1,余留人數(shù)增加1,離去人數(shù)不變。當(dāng)發(fā)送“2”時(shí),表示有人離開圖書館,離去人數(shù)增加1,余留人數(shù)減少1,進(jìn)入人數(shù)不變。上位機(jī)接收下位機(jī)數(shù)據(jù)的源程序:receivebuffer = 39。檢測(cè)接收緩存區(qū)Rwordsend(1) = receivebuffer(0)If Rwordsend(1) = 1 ThenINren = INren + 1STAYren = STAYren + 1 控制及功能程序部分控制命令大多數(shù)是由CommandButton控件構(gòu)成,同時(shí)通過CommandButton控件協(xié)調(diào)時(shí)間,顯示,通信等功能。理解好每個(gè)CommandButton控件的功能以及控件所牽連的單擊事件就能深刻了解整個(gè)上位機(jī)程序的系統(tǒng)。下面,通過一一介紹各個(gè)功能,來了解上位機(jī)的控制命令程序。飽和人數(shù)設(shè)定功能是本次設(shè)計(jì)重要組成功能。也是上位機(jī)向下位機(jī)通信時(shí)要發(fā)送的數(shù)據(jù)內(nèi)容。TextBox控件可以供用戶自由填寫數(shù)字,并且可以將數(shù)據(jù)記錄起來,供通信程序調(diào)用。所以飽和人數(shù)的設(shè)定選用了TextBox控件。如圖36所示:圖36 飽和人數(shù)設(shè)定欄實(shí)時(shí)記錄功能與列表清零功能由CommandButton控件組成。實(shí)時(shí)記錄功能在列表中寫入數(shù)據(jù),當(dāng)用戶在需要時(shí)可以通過列表清零按鈕將列表清空。當(dāng)單擊事件被觸發(fā)時(shí),程序便開始處理和準(zhǔn)備所需要的數(shù)據(jù)。首先判斷飽和人數(shù)(由于用2位八段數(shù)碼管,所以飽和人數(shù)最大為99)是否設(shè)定。如果飽和人數(shù)設(shè)為最大值,則系統(tǒng)會(huì)認(rèn)定為未飽和。即baoheStr(用于記錄是否飽和的字符串)的值為“無”。然后判斷余留人數(shù)與設(shè)置的飽和人數(shù)的關(guān)系。當(dāng)存儲(chǔ)余留人數(shù)的變量STAYren大于或等于飽和人數(shù)變量baohe時(shí),圖書館人數(shù)達(dá)到飽和,baoheStr的值為“有”;當(dāng)存儲(chǔ)余留人數(shù)的變量STAYren小于飽和人數(shù)變量baohe時(shí),圖書館人數(shù)沒有達(dá)到飽和,baoheStr的值為“無”。然后將借用Format函數(shù)將xuhaoStr(表示記錄表中的序號(hào))轉(zhuǎn)化為字符型方便表格中表示。同理也借用Format函數(shù)將INrenStr(表示進(jìn)入圖書館的人數(shù)),OUTrenStr(表示離開圖書館的人數(shù)),STAYrenStr(表示余留在圖書館的人數(shù))轉(zhuǎn)化為字符型方便表格中表示。 amp。 xuhaoStr amp。 amp。 Date amp。 amp。 Time amp。 amp。 INrenStr amp。 amp。 OUTrenStr amp。 amp。 STAYrenStr amp。 amp。 baoheStr39。的次序?qū)懭氡砀癫⑶倚蛱?hào)自加1。即xuhao = xuhao + 1。列表選用了TextBox控件,當(dāng)單機(jī)列表清零按鈕時(shí),程序會(huì)將TextBox的text改為“”(表示空,即將列表中的數(shù)據(jù)清零)。然后將列表序號(hào)初始化,即xuhao變量改為1.其單擊事件的核心代碼為:Private Sub JILU_Click()If baohe = 99 Then 39。判斷是否飽和baoheStr = 無ElseIf STAYren (baohe 1) ThenbaoheStr = 是 amp。 amp。 baoheElsebaoheStr = 否 amp。 amp。 baoheEnd IfEnd IfxuhaoStr = Format(xuhao, 00) 39。轉(zhuǎn)化為字符型方便表格中表示 eg:其中00為多少位,xuhao為數(shù)值INrenStr = Format(INren, 00)OUTrenStr = Format(OUTren, 00)STAYrenStr = Format(STAYren, 00) = amp。 xuhaoStr amp。 amp。 Date amp。 amp。 Time amp。 amp。 INrenStr amp。 amp。 OUTrenStr amp。 amp。 STAYrenStr amp。 amp。 baoheStr39。寫入表格 = amp。 vbCrLfxuhao = xuhao + 1列表清零功能的核心代碼:Private Sub LIEBIAOQL_Click() = 39。清空記錄表xuhao = 1End Sub飽和警報(bào)啟動(dòng)功能也用的是CommandButton控件。當(dāng)用戶單擊此控件時(shí),會(huì)觸發(fā)clink事件。在此事件中,程序會(huì)處理處理4個(gè)事件:,由飽和警報(bào)啟動(dòng)變?yōu)轱柡途瘓?bào)取消,即程序改變此控件的Caption屬性, = 飽和警報(bào)啟動(dòng) = 飽和警報(bào)取消。同時(shí)將用戶輸入的飽和人數(shù)值賦給變量飽和,供與下位機(jī)通信時(shí)使用。,來改變報(bào)警燈的狀態(tài)。當(dāng)余留人數(shù)小于用戶設(shè)定的飽和人數(shù)時(shí),不執(zhí)行報(bào)警,即報(bào)警燈依然為初始的白色;當(dāng)余留人數(shù)小于用戶設(shè)定的飽和人數(shù)時(shí),執(zhí)行報(bào)警,即報(bào)警燈變?yōu)榫o急狀態(tài)的紅色。,與下位機(jī)實(shí)時(shí)同步標(biāo)準(zhǔn)。將發(fā)送緩存器清零,然后將baohe(存儲(chǔ)了用戶設(shè)定的飽和人數(shù)值)變量的值賦給Fwordsend的第二個(gè)元素中(該數(shù)組第一個(gè)元素用于暫存是否需要清零的信號(hào),第二個(gè)元素用來存儲(chǔ)用戶設(shè)定的飽和人數(shù))。然后然后將此信息發(fā)給下位機(jī),即將Fwordsend的值賦給sendBuffer。此功能的核心代碼為:Private Sub JINGBAO_Click()If = 飽和警報(bào)啟動(dòng) Then = 飽和警報(bào)取消baohe = = TrueIf STAYren baohe Then 39。報(bào)警燈判斷 = vbWhiteElse: = vbRedEnd If = 0 39。清除發(fā)送緩沖區(qū)Fwordsend(1) = 0Fwordsend(2) = baohesendBuffer = Fwordsend()ElseIf = 飽和警報(bào)取消 Then = 飽和警報(bào)啟動(dòng)baohe = 99 = FalseIf STAYren baohe Then 39。報(bào)警燈判斷 = vbWhite
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1