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

正文內(nèi)容

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

2024-10-19 09:13 本頁面
 

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