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

正文內(nèi)容

基于串口通信的考勤管理系統(tǒng)(編輯修改稿)

2024-10-19 09:13 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 設(shè)和計(jì)算機(jī)間使用一根數(shù)據(jù)信號(hào)線(xiàn) ,數(shù)據(jù)在一根數(shù)據(jù)信號(hào)線(xiàn)上按位進(jìn)行傳輸,每一位數(shù)據(jù)都占據(jù)一個(gè)固定的時(shí)間長(zhǎng)度。 這種通信方式使用的數(shù)據(jù)線(xiàn)少,在遠(yuǎn)距離通信中可以節(jié)約通信成本,當(dāng)然,其傳輸速度比并行傳輸慢。相比之下,由于高速率的要求,處于計(jì)算機(jī)內(nèi)部的 CPU與串口之間的通訊仍然采用并行的通訊方式,所以串行口的本質(zhì)就是實(shí)現(xiàn) CPU 與外圍數(shù)據(jù)設(shè)備的數(shù)據(jù)格式轉(zhuǎn)換(或者稱(chēng)為串并轉(zhuǎn)換器),即當(dāng)數(shù)據(jù)從外圍設(shè)備輸入計(jì)算機(jī)時(shí),數(shù)據(jù)格式由位 (bit)轉(zhuǎn)化為字節(jié)數(shù)據(jù);反之,當(dāng)計(jì)算機(jī)發(fā)送下行數(shù)據(jù)到外圍設(shè)備時(shí),串口又將字節(jié)數(shù)據(jù)轉(zhuǎn)化為位數(shù)據(jù)。 串行端口的本質(zhì)功能 是作為 CPU 和串行設(shè)備間的編碼轉(zhuǎn)換器。當(dāng)數(shù)據(jù)從 CPU 經(jīng)過(guò)串行端口發(fā)送出去時(shí),字節(jié)數(shù)據(jù)轉(zhuǎn)換為串行的位。在接收數(shù)據(jù)時(shí),串行的位被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。 在 Windows 環(huán)境( Windows NT、 Win9 Windows2020)下,串口是系統(tǒng)資源的一部分。 應(yīng)用程序要使用串口進(jìn)行通信,必須在使用之前向操作系統(tǒng)提出資源申請(qǐng)要求(打開(kāi)串口),通信完成后必須釋放資源(關(guān)閉串口)。 串口信號(hào)線(xiàn) 串口信號(hào)線(xiàn)的一個(gè)完整的 RS232C 接口有 22 根線(xiàn),采用標(biāo)準(zhǔn)的 25 芯插頭座(或者 9芯插頭座)。 25芯和 9 芯的主要信號(hào)線(xiàn) 相同。以下的介紹是以 25 芯的 RS232C***計(jì)算機(jī)系畢業(yè)設(shè)計(jì) 10 為例。 : 2腳:發(fā)送數(shù)據(jù) TXD; 3腳:接收數(shù)據(jù) RXD; 4腳:請(qǐng)求發(fā)送 RTS; 5腳:清除發(fā)送 CTS; 6腳:數(shù)據(jù)設(shè)備就緒 DSR; 20腳:數(shù)據(jù)終端就緒 DTR; 8腳:數(shù)據(jù)載波檢測(cè) DCD; 1腳:保護(hù)地; 7腳:信號(hào)地。 : 數(shù)據(jù)傳輸速率最大可到 20K bps,最大距離僅 15m. 注:看了微軟的 MSDN ,其 Windows API 中關(guān)于串行通訊設(shè)備(不一定都是串口 RS232C 或 RS422 或 RS449)速率的設(shè) 置,最大可支持到 RS_256000,即 256K bps! 也不知道到底是什么串行通訊設(shè)備?但不管怎樣,一般主機(jī)和單片機(jī)的串口通訊大多都在 9600 bps,可以滿(mǎn)足通訊需求。 : 大多數(shù)計(jì)算機(jī)應(yīng)用系統(tǒng)與智能單元之間只需使用 3到 5根信號(hào)線(xiàn)即可工作。這時(shí),除了 TXD、 RXD 以外,還需使用 RTS、 CTS、 DCD、 DTR、 DSR 等信號(hào)線(xiàn)。(當(dāng)然,在程序中也需要對(duì)相應(yīng)的信號(hào)線(xiàn)進(jìn)行設(shè)置。) 以上接法,在設(shè)計(jì)程序時(shí),直接進(jìn)行數(shù)據(jù)的接收和發(fā)送就可以了,不需要對(duì)信號(hào)線(xiàn)的狀態(tài)進(jìn)行判斷或設(shè)置。(如果應(yīng)用的場(chǎng) 合需要使用握手信號(hào)等,需要對(duì)相應(yīng)的信號(hào)線(xiàn)的狀態(tài)進(jìn)行監(jiān)測(cè)或設(shè)置。 所謂 串行通信 是指外設(shè)和計(jì)算機(jī)間使用一根數(shù)據(jù)信號(hào)線(xiàn) ,數(shù)據(jù)在一根數(shù)據(jù)信號(hào)線(xiàn)上按位進(jìn)行傳輸,每一位數(shù)據(jù)都占據(jù)一個(gè)固定的時(shí)間長(zhǎng)度。 這種通信方式使用的數(shù)據(jù)線(xiàn)少,在遠(yuǎn)距離通信中可以節(jié)約通信成本,當(dāng)然,其傳輸速度比并行傳輸慢。相比之下,由于高速率的要求,處于計(jì)算機(jī)內(nèi)部的 CPU 與串口之間的通訊仍然采用并行的通訊方式,所以串行口的本質(zhì)就是實(shí)現(xiàn) CPU 與外圍數(shù)據(jù)設(shè)備的數(shù)據(jù)格式轉(zhuǎn)換(或者稱(chēng)為串并轉(zhuǎn)換器),即當(dāng)數(shù)據(jù)從外圍設(shè)備輸入計(jì)算機(jī)時(shí),數(shù)據(jù)格式由位 (bit)轉(zhuǎn)化為字節(jié)數(shù)據(jù);反之,當(dāng)計(jì)算機(jī)發(fā)送下行數(shù)據(jù)到外圍設(shè)備時(shí),串口又將字節(jié)數(shù)據(jù)轉(zhuǎn)化為位數(shù)據(jù)。 串行端口的本質(zhì)功能是作為 CPU 和串行設(shè)備間的編碼轉(zhuǎn)換器。當(dāng)數(shù)據(jù)從 CPU 經(jīng)過(guò)串行端口發(fā)送出去時(shí),字節(jié)數(shù)據(jù)轉(zhuǎn)換為串行的位。在接收數(shù)據(jù)時(shí),串行的位被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。 ***計(jì)算機(jī)系畢業(yè)設(shè)計(jì) 11 在 Windows 環(huán)境( Windows NT、 Win9 Windows2020)下,串口是系統(tǒng)資源的一部分。 應(yīng)用程序要使用串口進(jìn)行通信,必須在使用之前向操作系統(tǒng)提出資源申請(qǐng)要求(打開(kāi)串口),通信完成后必須釋放資源(關(guān)閉串口)。 C中如何進(jìn)行 串口通信 通常,在 C中實(shí)現(xiàn)串口通信,我們有四種方法: MSCOMM 控件 ,但 這個(gè)控件并不是系統(tǒng)本身所帶,所以還得注冊(cè)。 .NET 新推出了一個(gè)串口控件,基于 .NET 的 P/Invoke 調(diào)用方法實(shí)現(xiàn) 。 ,可 是 一般都 需 要付費(fèi)的, 由于這是畢業(yè)設(shè)計(jì),設(shè)計(jì)費(fèi)用不是太充足,所以不給予考慮。 API 寫(xiě)串口通信, 我在剛開(kāi)始程序設(shè)計(jì)是有寫(xiě)過(guò)一個(gè),但由于寫(xiě)這個(gè)控件難度很大,設(shè)計(jì)時(shí)間比較緊,寫(xiě)的那個(gè)只能實(shí)現(xiàn)基本數(shù)字的串口傳輸,離自己這個(gè)考勤程序的要求還有一定距離,所以放棄了同時(shí)也浪 費(fèi)自己不少時(shí)間。 最后通過(guò)對(duì)考勤系統(tǒng)的需求分析,這次我 串口通信用 就選用了 第一種方法 通過(guò)MSCOMM 控件 MSCOMM 不是 C.Net 直接提供的串口命令,所以 必須有 文件在你的Windows 的 System32 目錄下,而且它必須正確的注冊(cè)。 我們 可以裝 來(lái)獲得,微軟也指出這樣不會(huì)有沖突。當(dāng)然我們可以自己注冊(cè)而不用裝龐大的 。 首先在 VB 安裝目錄下找到下列三個(gè)文件 : , ,, 把這三個(gè)文件拷貝到 Windows 的 system 目錄下(注意 WinNT 下是 System32)。 然后使用 edit 工具編輯一個(gè)以 .reg 擴(kuò)展名的文件,在文件里輸入以下的文字 REGEDIT HKEY_CLASSES_ROOT\Licenses = Licensing: Copying the keys may be a violation of established copyrights. // The MsComm32 Control License follows: HKEY_CLASSES_ROOT\Licenses\4250E8306AC211cf8ADB00AA00C00905 = kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun 然后,存盤(pán)。雙擊文件就完成了注冊(cè)。 這樣我們就可以在 C中用 MSCOMM 這個(gè)控件了。 ***計(jì)算機(jī)系畢業(yè)設(shè)計(jì) 12 控件簡(jiǎn)介 MSComm 控件通過(guò)串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通訊功能。MSComm 控件在串口編程時(shí)非常方便,程序員不必去花時(shí)間去了解較為復(fù)雜的 API函數(shù),而且在 VC、 VB、 Delphi 等語(yǔ)言中均可使用。 Microsoft Communications Control(以下簡(jiǎn)稱(chēng) MSComm)是 Microsoft 公司提供的簡(jiǎn)化 Windows 下串行通信編程的 ActiveX 控件,它為應(yīng)用程序提供了通過(guò)串行接口收發(fā)數(shù)據(jù)的簡(jiǎn)便方法。具體的來(lái)說(shuō),它提供了兩種處理通信問(wèn)題的方法:一是事件驅(qū)動(dòng) (Event- driven)方法,一是查詢(xún)法。 控件兩種處理通訊的方式 MSComm 控件提供下列兩種處理通訊的方式:事件驅(qū)動(dòng)方式和查詢(xún)方式。 事件驅(qū)動(dòng)通訊是處理串行端口交互作用的一種非常有效的方法。在許多情況下,在事件發(fā)生時(shí)需要 得到通知,例如,在串口接收緩沖區(qū)中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 線(xiàn)上一個(gè)字符到達(dá)或一個(gè)變化發(fā)生時(shí)。在這些情況下,可以利用 MSComm 控件的 OnComm 事件捕獲并處理這些通訊事件。OnComm 事件還可以檢查和處理通訊錯(cuò)誤。所有通訊事件和通訊錯(cuò)誤的列表,參閱 CommEvent 屬性。在編程過(guò)程中,就可以在 OnComm 事件處理函數(shù)中加入自己的處理代碼。這種方法的優(yōu)點(diǎn)是程序響應(yīng)及時(shí),可靠性高。每個(gè) MSComm 控件對(duì)應(yīng)著一個(gè)串行端口 。如果應(yīng)用程序需要訪(fǎng)問(wèn)多個(gè)串行端口,必須使用多個(gè) MSComm 控件。 查詢(xún)方式實(shí)質(zhì)上還是事件驅(qū)動(dòng),但在有些情況下,這種方式顯得更為便捷。在程序的每個(gè)關(guān)鍵功能之后,可以通過(guò)檢查 CommEvent 屬性的值來(lái)查詢(xún)事件和錯(cuò)誤。如果應(yīng)用程序較小,并且是自保持的,這種方法可能是更可取的。例如,如果寫(xiě)一個(gè)簡(jiǎn)單的電話(huà)撥號(hào)程序,則沒(méi)有必要對(duì)每接收一個(gè)字符都產(chǎn)生事件,因?yàn)槲ㄒ坏却邮盏淖址钦{(diào)制解調(diào)器的 “ 確定 ” 響應(yīng)。 控件的常用屬性 MSComm 控件有很多重要的屬性 ,但首先必須熟悉幾個(gè)屬性。 CommPort 設(shè)置并返回通訊端口號(hào)。 ***計(jì)算機(jī)系畢業(yè)設(shè)計(jì) 13 Settings 以字符串的形式設(shè)置并返回波特率、奇偶校驗(yàn)、數(shù)據(jù)位、停止位。 PortOpen 設(shè)置并返回通訊端口的狀態(tài)。也可以打開(kāi)和關(guān)閉端口。 Input 從接收緩沖區(qū)返回和刪除字符。 Output 向傳輸緩沖區(qū)寫(xiě)一個(gè)字符串。 下面分別描述: CommPort 屬性 設(shè)置并返回通訊端口號(hào)。 說(shuō)明 在設(shè)計(jì)時(shí), value 可以設(shè)置成從 1 到 16 的任何數(shù)(缺省值為 1)。但是如果用 PortOpen 屬性打開(kāi)一個(gè)并不存在的 端口時(shí), MSComm 控件會(huì)產(chǎn)生錯(cuò)誤 68(設(shè)備無(wú)效)。 注意:必須在打開(kāi)端口之前設(shè)置 CommPort 屬性。 RThreshold 屬性:在 MSComm 控件設(shè)置 CommEvent 屬性為 EvReceive 并產(chǎn)生 OnComm 之前,設(shè)置并返回的要接收的字符數(shù)。 說(shuō)明 當(dāng)接收字符后,若 Rthreshold 屬性設(shè)置為 0(缺省值)則不產(chǎn)生 OnComm 事件。例如,設(shè)置 Rthreshold 為 1,接收緩沖區(qū)收到每一個(gè)字符都會(huì)使 MSComm 控件產(chǎn)生 OnComm 事件。 CTSHolding 屬性:確定是否可通過(guò)查詢(xún) Clear To Send (CTS) 線(xiàn)的狀態(tài)發(fā)送數(shù)據(jù)。 Clear To Send 是調(diào)制解調(diào)器發(fā)送到相聯(lián)計(jì)算機(jī)的信號(hào),指示傳輸可以進(jìn)行。該屬性在設(shè)計(jì)時(shí)無(wú)效,在運(yùn)行時(shí)為只讀。 Msm 控件的 CTSHolding 屬性設(shè)置值: True Clear To Send 線(xiàn)為高電平。 False Clear To Send 線(xiàn)為低電平。 說(shuō)明:如果 Clear To Send 線(xiàn)為低電平 (CTSHolding = False) 并且超時(shí)時(shí),MSComm 控件設(shè)置 CommEvent 屬性為 EventCTSTO (Clear To Send Timeout) 并產(chǎn)生 OnComm 事件。 Clear To Send 線(xiàn)用于 RTS/CTS (Request To Send/Clear To Send) 硬件握手。如果需要確定 Clear To Send 線(xiàn)的狀態(tài), CTSHolding 屬性給出一種手工查詢(xún)的方法。 詳細(xì)信息 有關(guān)握手協(xié)議,請(qǐng)參閱 Handshaking 屬性。 SThreshold 屬性: MSComm 控件設(shè)置 CommEvent 屬性為 EvSend 并產(chǎn)生 OnComm 事件之前,設(shè)置并返回傳輸緩沖區(qū)中允許的最小字符數(shù)。 ***計(jì)算機(jī)系畢業(yè)設(shè)計(jì) 14 value 整形表達(dá)式,代表在 OnComm 事件產(chǎn)生之前在傳輸緩沖區(qū)中的最小字符數(shù)。 說(shuō)明:若設(shè)置 Sthreshold 屬性為 0(缺省值),數(shù)據(jù)傳輸事件不會(huì)產(chǎn)生 OnComm 事件。若設(shè)置 Sthreshold 屬性為 1,當(dāng)傳輸緩沖區(qū)完全空時(shí), MSComm 控件產(chǎn)生 OnComm 事件。如果在傳輸緩沖區(qū)中的字符數(shù)小于 value, CommEvent 屬性設(shè)置為 EvSend,并產(chǎn) 生 OnComm 事件。 EvSend 事件僅當(dāng)字符數(shù)與 Sthreshold 交叉時(shí)被激活一次。例如,如果 Sthreshold 等于 5,僅當(dāng)在輸出隊(duì)列中字符數(shù)從 5 降到 4 時(shí), EvSend 才發(fā)生。如果在輸出隊(duì)列中從沒(méi)有比 Sthreshold 多的字符, EvSend 事件將絕不會(huì)發(fā)生。 Handshake 常數(shù) 常數(shù) 值 描述 None 0 無(wú)握手。 XonXoff 1 XOn/Xoff 握手。 RTS 2 Requesttosend/cleartosend 握手。 RTSXOnXOff 3 Requesttosend 和 cleartosend 握手皆可。 OnComm 常數(shù) 常數(shù) 值 描述 EvSend 1 發(fā)送事件。 EvReceive 2 接收事件。 EvCTS 3 cleartosend 線(xiàn)變化。 EvDSR 4 dataset ready 線(xiàn)變化。 EvCD 5 carrier detect 線(xiàn)變化。 EvRing 6 振鈴檢測(cè)。 EvEOF 7 文件結(jié) 束。 Error 常數(shù) 常數(shù) 值 描述 EventBreak 1001 接收到中斷信號(hào) EventCTSTO 1002 Cleartosend 超時(shí) EventDSRTO 1003 Dataset ready 超時(shí) EventFrame 1004 幀錯(cuò)誤 EventOverrun 1006 端口超速 ***計(jì)算機(jī)系畢業(yè)設(shè)計(jì) 15 EventCDTO 1007 Carrier detect 超時(shí) EventRxOver 1008 接收緩沖區(qū)溢出 EventRxParity 1009 Parity 錯(cuò)誤 EventTxFu
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1