2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(論文)</b></p><p><b>  摘 要</b></p><p>  單片機控制無疑是人們追求的目標(biāo)之一。單片機是一個單芯片形態(tài),面向控制對象的嵌入式應(yīng)用計算機系統(tǒng)。</p><p>  文章介紹的指紋考勤系統(tǒng)是基于單片機系統(tǒng)實現(xiàn)的。以單片機系統(tǒng)為核心的指紋考勤系統(tǒng)是一個

2、相對獨立的系統(tǒng),可以完成指紋信息的采集處理。通過串口與上位機實現(xiàn)通信,可以將指紋信息傳給VC電腦端,實現(xiàn)指紋信息的管理,以應(yīng)對實際應(yīng)用。</p><p>  本文基本實現(xiàn)了串口通信與上位機的指紋信息處理。在整個指紋考勤系統(tǒng)中利用VC++實現(xiàn)上位機編程,利用ODBC對信息作出合理的分類,該應(yīng)用程序能夠較好的實現(xiàn)上班時間的設(shè)定;能夠提供員工出入單位的情況記錄;能夠提供請假、加班和出差情況的記錄,并實現(xiàn)查詢、添加、修改

3、、刪除、瀏覽等處理功能;能夠擁有一定的安全性、協(xié)調(diào)性和完整性。</p><p>  關(guān)鍵字:指紋考勤;單片機系統(tǒng);FPS200;串口通信;上位機編程</p><p><b>  Abstract</b></p><p>  SCM is undoubtedly one of the goals that people pursue. The m

4、icrocontroller is a single-chip form, the computer system of the control object-oriented embedded applications.</p><p>  The article describes the fingerprint attendance system is implemented based on the SC

5、M system. SCM system as the core fingerprint attendance system is a relatively independent system, fingerprint information acquisition and processing can be completed. Communication through the serial port with the host

6、computer, the fingerprint information can be passed to the VC PC fingerprint information management to cope with the practical application.</p><p>  The basic serial communication between PC and the fingerpr

7、int information processing. Entire fingerprint attendance system using VC + + host computer programming, using ODBC to make a reasonable classification of the information, the application can better achieve the setting o

8、f working hours; to provide employees access units recorded; to provide leave, overtime and travel records of query, add, modify, delete, browse and other processing functions; to have a certain security, coordination an

9、d </p><p>  Keywords: fingerprint time and attendance; SCM system; FPS200; serial communication; host computer programming</p><p><b>  目 錄</b></p><p>  第一章 系統(tǒng)總體設(shè)計方案1&l

10、t;/p><p>  第二章 指紋識別系統(tǒng)的硬件設(shè)計2</p><p>  2.1系統(tǒng)硬件的總體描述2</p><p>  2.2單片機最小系統(tǒng)2</p><p>  2.2.1 AT89S51單片機的基本組成2</p><p>  2.2.2 AT89S51引腳功能4</p><p> 

11、 2.2.3 AT89S51的CPU5</p><p>  2.2.4 AT89S51的存儲器結(jié)構(gòu)5</p><p>  2.2.5 74LS373芯片結(jié)構(gòu)介紹6</p><p>  2.3指紋傳感器FPS2006</p><p>  2.4.1串行通信接口8</p><p>  2.4.2 串行口的特殊功能

12、控制寄存器8</p><p>  2.4.3串行口的工作方式9</p><p>  2.4.4波特率的設(shè)置10</p><p>  2.5常用串行通信接口標(biāo)準(zhǔn)11</p><p>  2.5.1 RS-232C接口11</p><p>  2.5.2 RS-232C的EIA電平和TTL電平轉(zhuǎn)換12<

13、;/p><p>  2.6基于單片機的指紋采集系統(tǒng)的基本結(jié)構(gòu)14</p><p>  第三章 指紋識別系統(tǒng)軟件實現(xiàn)部分15</p><p>  3.1 控件MSComm串口編程15</p><p>  3.2控件MSComm串口編程 實例15</p><p><b>  附錄24</b&

14、gt;</p><p><b>  結(jié)束語41</b></p><p><b>  致謝42</b></p><p><b>  參考文獻(xiàn)43</b></p><p>  第一章 系統(tǒng)總體設(shè)計方案</p><p>  硬件平臺大致可以分為5個部分

15、:成像系統(tǒng)(傳感器FPS200)、核心部分AT89S51單片機、RAM、EEPROM等器件。在工作過程中,指紋經(jīng)傳感器采集后,由傳感器直接轉(zhuǎn)成RGB格式,并且數(shù)據(jù)傳輸?shù)組CU。MCU需要執(zhí)行大量的模式識別和圖像處理相關(guān)計算。固化的程序存儲在EEPROM中,這些指令控制了整個指紋識別系統(tǒng)的工作流程。RAM為內(nèi)存,存儲臨時數(shù)據(jù)。構(gòu)成數(shù)據(jù)通道。文章對每部分硬件將分類作出介紹,如單片機的結(jié)構(gòu)與連接方法,外設(shè)寄存器選取,串口通信的實現(xiàn)等。而對于整

16、個硬件部分單獨拿出來就是一個完整的考勤模塊,實現(xiàn)指紋信息采集與處理。在不需上位機參與下也可實現(xiàn)指紋采集功能。</p><p>  在系統(tǒng)的軟件實現(xiàn)方面介紹了單片機系統(tǒng)與PC端實現(xiàn)通訊的過程,可以完成指紋信息的傳輸,在上位機建立數(shù)據(jù)庫,通過VC編程實現(xiàn)指紋信息的存儲。最終達(dá)到實際的應(yīng)用目的。當(dāng)然,對于單片機所處理的指紋算法方面的程序,沒有做出學(xué)習(xí)研究。</p><p>  第二章 指紋識別系

17、統(tǒng)的硬件設(shè)計</p><p>  2.1系統(tǒng)硬件的總體描述</p><p>  基于單片機的指紋識別系統(tǒng)是由AT89S51單片機、62128片外RAM、EEPROM芯片、FPS200等構(gòu)成,在無需上位機的管理下,具有指紋錄入、圖像處理、指紋對比、存儲信息功能。是一個相對獨立的指紋識別系統(tǒng)、一個獨立的外部設(shè)備。</p><p>  過程中,指紋傳感器FPS200采集指

18、紋信息,經(jīng)過串口傳遞給單片機接收命令,單片機同意接收信息后,指紋傳感器將轉(zhuǎn)換的數(shù)據(jù)傳到單片機,單片機通過存儲在EEPROM中的固化程序執(zhí)行大量模式識別的相關(guān)計算,當(dāng)用戶指紋被確認(rèn),單片機將命令執(zhí)行機構(gòu)動作,開關(guān)開。</p><p>  指紋系統(tǒng)主要包括:單片機最小系統(tǒng)、指紋采集部分、串口通信部分、開關(guān)按鈕、供電系統(tǒng)組成。本章分別做出介紹,最后給出總的電路設(shè)計圖。</p><p>  2.2

19、單片機最小系統(tǒng)</p><p>  單片機最小系統(tǒng)以AT89S51單片機位核心,連同外設(shè)的62128RAM芯片和EEPROM芯片等組成。此系統(tǒng)能夠?qū)崿F(xiàn)指紋算法的處理,串行通信的設(shè)定,數(shù)據(jù)處理方面內(nèi)容。</p><p>  2.2.1 AT89S51單片機的基本組成</p><p>  選取單片機AT89S51主要原因是功耗低、可通過軟件設(shè)置省電模式??臻e模式下,C

20、PU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,128B內(nèi)部RAM,能滿足設(shè)計要求。</p><p>  AT89S51S是一個低功耗、高性能CMOS8位單片機,片內(nèi)含4KB ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash片內(nèi)程序存儲器,器件采用Atmel公司的高密度、非易失性 存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu)。

21、 </p><p>  AT89S51 單片機的基本組成如圖1.1所示。從AT89S51單片機的結(jié)構(gòu)框圖可以看到,該芯片上集成了一個微型計算機,它包括如下幾個部分:</p><p> ?。?)8位微處理器(CPU)</p>

22、;<p> ?。?)數(shù)據(jù)存儲器(128B RAM);</p><p> ?。?)程序存儲器(4KB Flash ROM);</p><p>  (4)4個8位可編程并行I/O口(P0口、P1口、P2口、P3口);</p><p> ?。?)一個全雙工的異步串行口;</p><p> ?。?)2個可編程的16位定時器/計數(shù)器;&l

23、t;/p><p> ?。?)一個看門狗定時器;</p><p> ?。?)中斷系統(tǒng)具有五個中斷源、5個中斷向量;</p><p> ?。?)特殊功能寄存器(SFR)26個;</p><p> ?。?0)低功耗模式有空閑模式和掉電模式,具有掉電模式下的中斷恢復(fù)模式;</p><p> ?。?1)3個程序加密鎖存位。</

24、p><p>  其基本結(jié)構(gòu)圖如1.1</p><p>  圖2-1 AT89S51單片機的基本結(jié)構(gòu)示意圖</p><p>  2.2.2 AT89S51引腳功能</p><p>  P0口是8位的漏極開路的雙向I/O口。當(dāng)外擴存儲器及I/O接口芯片時,P0口作為低8位地址總線及數(shù)據(jù)總線的分時復(fù)用端口。另外,P0口也可用作通用的I/O口,需加上拉

25、電阻,這時為準(zhǔn)雙向口。作為通用I/O輸入,應(yīng)先向端口寫入1??沈?qū)動8個LS型TTL負(fù)載。</p><p>  P1口是8位的準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。準(zhǔn)雙向I/O口,作為通用I/O輸入時,應(yīng)先向端口鎖存器寫1。P1口可驅(qū)動4個LS型TTL負(fù)載。</p><p>  P2口是準(zhǔn)雙向的8位I/O口,具有內(nèi)部上拉電阻,當(dāng)AT89S51擴展外部存儲器及I/O口時,P2口作為高8位地址總線用

26、,輸出高8位地址。P2口也可作為普通的I/O口使用。當(dāng)作為通用I/O輸入時, 應(yīng)先向端口輸出鎖存器寫1。P2口可驅(qū)動4個LS型TTL負(fù)載。</p><p>  圖2-2 AT89S51管腳圖</p><p>  P3口也是準(zhǔn)雙向的8位I/O口,具有內(nèi)部上拉電阻。作為準(zhǔn)向口,其功能和前兩個相似。另外P3口還有重要的第二功能。</p><p>  2.2.3 AT89

27、S51的CPU</p><p>  AT89S51的CPU由運算器和控制器組成。其中,運算器對操作數(shù)進(jìn)行算術(shù)、邏輯和位操作運算。主要包括算術(shù)邏輯運算單元ALU、累加器A、位處理器、程序狀態(tài)字寄存器PSW及兩個暫存器等。而控制器的任務(wù)是識別指令,并根據(jù)指令的性質(zhì)控制單片機各功能部件,從而保證單片機各部分能自動協(xié)調(diào)地工作??刂破靼ǎ撼绦蛴嫈?shù)器、指令寄存器、指令譯碼器、定時及控制邏輯電路等。</p>&

28、lt;p>  2.2.4 AT89S51的存儲器結(jié)構(gòu)</p><p>  存儲器的結(jié)構(gòu)特點之一是將程序存儲器和數(shù)據(jù)存儲器分開(哈佛結(jié)構(gòu)),并有各自的訪問指令。</p><p>  存儲器的空間可以分為以下四類:</p><p>  1.程序存儲器空間。分為片內(nèi)和片外兩部分。片內(nèi)4KB Flash ,編程和擦除完全是電氣實現(xiàn)??捎猛ㄓ镁幊唐鲗ζ渚幊?,也可在線編程

29、。當(dāng)片內(nèi)4KB Flash 存儲器不夠用時,可片外擴展,最多可擴展至64KB程序存儲器。存放程序和表格之類的固定常數(shù)。片內(nèi)為4KB的 Flash ,地址為0000H~0FFFH。16位地址線,可外擴的程序存儲器空間最大為64KB,地址為0000H~FFFFH。在使用時訪問片內(nèi)的還是片外的程序存儲器,由EA引腳電平?jīng)Q定。當(dāng)EA=1時CPU從片內(nèi)0000H開始取指令,當(dāng)PC值沒有超出0FFFH時,只訪問片內(nèi)Flash 存儲器,當(dāng)PC值超出0

30、FFFH自動轉(zhuǎn)向讀片外程序存儲器空間1000H~FFFFH 內(nèi)的程序。 =0時,只能執(zhí)行片外程序存儲器(0000H~FFFFH)中的程序。不理會片內(nèi)4KB Flash 存儲器。在本系統(tǒng)中選用的片外EEPROM是SST29EE010。</p><p>  2.數(shù)據(jù)存儲器空間。也分片內(nèi)與片外兩部分。片內(nèi)有128 B RAM(52子系列為256B)。片內(nèi)RAM 不夠用時,在片外可擴展至64KB RAM 。片內(nèi)RAM與

31、片外RAM兩個空間是相互獨立的,片內(nèi)RAM與片外RAM的低128B的地址是相同的,但由于使用的是不同的訪問指令,所以不會發(fā)生沖突。</p><p><b>  3.特殊功能寄存器</b></p><p><b>  4.位地址空間</b></p><p>  2.2.5 74LS373芯片結(jié)構(gòu)介紹</p>&

32、lt;p>  本系統(tǒng)在擴展外部存儲器時選用77LS373芯片實現(xiàn)外部存儲器的擴展。因此,文章在這里介紹下74LS373芯片。74ls373是常用的地址鎖存器芯片,它實質(zhì)是一個是帶三態(tài)緩沖輸出的8D觸發(fā)器。在MCS-51單片機系統(tǒng)中,常采用74LS373作為地址鎖存器使用,其連接方法如上圖所示。其中輸入端1D~8D接至單片機的P0口,輸出端提供的是低8位地址,C端接至單片機的地址鎖存允許信號ALE。輸出允許端OE接地。</p&

33、gt;<p>  其中,1D~8D為8個輸入端。1Q~8Q為8個輸出端。C是數(shù)據(jù)鎖存控制端,接入單片機的地址鎖存允許信號ALE。</p><p>  圖2-3 74L373外接RAM和ROM的連接方法</p><p>  2.3指紋傳感器FPS200</p><p>  FPS200是一種非光學(xué)的CMOS器件,其傳感區(qū)為1.28cm×1.50

34、cm,256×300傳感陣列,分辨率為500dpi,工作電壓為3~5.5V,內(nèi)置8位FLASH模數(shù)轉(zhuǎn)換器(ADC)。三種總線接口為8位微處理器總線接口、內(nèi)置USB全速接口和內(nèi)置串行接口。由MODE0和MODE1決定所處的接口模式。指紋可自動檢測,并可直接與8位微處理器接口。</p><p>  FPS200基于電容器充放電原理。傳感器陣列的沒點都是一個金屬電極,充當(dāng)電容器的一極,按照手指頭上對應(yīng)的點作為

35、令一極。傳感面形成兩極之間的介電層。由于指紋的脊和谷,導(dǎo)致各點的電容值不同,這個電容值陣列就形成一幅指紋圖形。相關(guān)公式C=</p><p>  FPS200是面向行的器件,每次可獲得一行圖像。每列接有兩個采樣保持(S/H)電路。當(dāng)選定一行后,對此行的所有電容充電至VDD。充電結(jié)束時,第一組采樣保持電路將保存該電壓值。接著,該行電容將被放電,經(jīng)過一段放電時間,令一組采樣保持電路將保存剩余電壓值。那么,兩組S/H電路

36、電壓值之差正比于電容值,將其數(shù)字化就可表示該行的指紋圖像。采集時的行,放電時間,電流等寫入FPS200里的相關(guān)寄存器,結(jié)合A/D轉(zhuǎn)換的灰度值,以及自動換行等設(shè)置實現(xiàn)指紋圖像的獲取。</p><p>  設(shè)計過程中以單片機系統(tǒng)作為控制核心。指紋經(jīng)傳感器采集后,由傳感器直接轉(zhuǎn)成RGB格式,并且數(shù)據(jù)傳輸?shù)組CU。MCU需要執(zhí)行大量的模式識別和圖像處理相關(guān)計算。固化的程序存儲在EEPROM中,這些指令控制了整個指紋識別系

37、統(tǒng)的工作流程。RAM為內(nèi)存存儲臨時數(shù)據(jù)。構(gòu)成數(shù)據(jù)通道。</p><p>  圖2-4 基于單片機的考勤硬件圖</p><p>  FPS200具有自動指紋檢測功能。當(dāng)手指按到傳感器上,F(xiàn)PS200便會發(fā)出中斷信號給MCU,MCU查詢到中斷,開始采集指紋數(shù)據(jù)并將數(shù)據(jù)傳給PC機。在后面軟件部分文章介紹串口通信部分,主要是上位機編程。而對下位機,指紋提取的程序不做介紹。</p>&

38、lt;p>  圖2-5 FPS200引腳與單片機管腳連接圖實例</p><p><b>  2.4串行通信</b></p><p>  89S51單片機有一個全雙工異步串行I\O口,占用P3.0(串行數(shù)據(jù)接收端RXD)和P3.1(串行數(shù)據(jù)發(fā)送端TXD)兩個引腳,是P3口的第二個功能。該接口電路不僅可以同時進(jìn)行數(shù)據(jù)的接收和發(fā)送,也可以作為一個同步移位寄存器使用。

39、 </p><p>  2.4.1串行通信接口</p><p>  串行口由發(fā)送控制器、接受控制器、波特率輸入管理和發(fā)送/接收緩沖器SBUF組成。通常定時器T1作為串行口波特率發(fā)生器使用。串行口的通信操作視為累加器A與發(fā)送/接受緩沖器SBUF之間的數(shù)據(jù)傳送操作。</p><p>  串行口的工作過程可概括如下。</p><p>  用戶通

40、過串行口的初始化操作規(guī)定串行口的工作方式。</p><p>  串行口自動完成發(fā)送和接受。</p><p> ?、侔l(fā)送:將待發(fā)送的數(shù)據(jù)由A送入SBUF(以指令“MOV SBUF,A”實現(xiàn),在發(fā)送控制器的控制下組成幀結(jié)構(gòu),并自動以串行方式發(fā)送到TXD端。在發(fā)送完畢后自動將T1置1,向CPU申請中斷。</p><p>  ②接受:先用指令(SETB REN)置位接受允許

41、位才能開始串行接受操作。在接受控制器的控制下,通過移位寄存器將串行數(shù)據(jù)送入SBUF中。在接收完畢后自動將RI置1,向CPU申請中斷。</p><p>  2.4.2 串行口的特殊功能控制寄存器</p><p>  與串行口有關(guān)的特殊功能寄存器有SBUF、SCON、PCON,與串行口中斷有關(guān)的特殊功能寄存器有IE、IP。</p><p>  串口的發(fā)送/接收緩沖器SB

42、UF</p><p>  SBUF是兩個在物理上獨立的接收、發(fā)送緩沖器,它們占用同一字地址99H,可同時發(fā)送、接收數(shù)據(jù)。CPU能通過對SBUF的讀/寫指令來區(qū)別是對接收緩沖器操作還是對發(fā)送緩沖器操作,不會產(chǎn)生錯誤。</p><p>  串行口控制寄存器SCON</p><p>  SCON是可以按位尋址的8位控制寄存器,用于串行口的方式設(shè)定和數(shù)據(jù)傳送控制,地址為98

43、H。SCON各位的定義和功能如下:</p><p> ?。?)SM0、SM1:串行口工作方式選擇位。</p><p>  SM2:多機通信控制位。</p><p>  REN:串行接收允許位。由軟件對其置一或清零。軟件置一時,串行口允許接收,清零后則禁止接收。</p><p>  TB8:在方式2和方式3中時發(fā)送的第九位數(shù)據(jù)。</p&g

44、t;<p>  RB8:在方式2和方式3中是接收的第9位數(shù)據(jù)。</p><p>  TI:發(fā)送中斷標(biāo)志位,發(fā)送結(jié)束時由硬件置位。該位必須用軟件清零。</p><p>  RI:接收中斷標(biāo)志位,接收結(jié)束時由硬件置位。該位必須用軟件清零。</p><p>  3.電源控制寄存器PCON</p><p>  串行口借用了電源控制寄存器

45、PCON的最高位。PCON是8位寄存器,字節(jié)地址為87H,不可進(jìn)行位尋址。它的低四位全部用于單片機的電源控制,只有最高位SMOD位用于串行口波特率系數(shù)的控制。當(dāng)SMOD=1時,方式1、2、3的波特率加倍,否則不加倍。PCON的格式如下:</p><p>  2.4.3串行口的工作方式</p><p>  89S51單片機串行口有4種工作方式,用特殊功能寄存器SM0、SM1兩位進(jìn)行設(shè)定,如下

46、表所示</p><p>  其中,定時器T1溢出率=fosc/[12×(12×(-N))](K=13、16、8分別對應(yīng)于方式0、1、2)。</p><p><b>  1.方式0</b></p><p><b>  1)特點。</b></p><p>  ①用于串行I/ O(口擴

47、展,有固定的波特率,為fosc/12。</p><p>  ②同步發(fā)送/接收功能,由TXD提供移位脈沖,RXD用作數(shù)據(jù)的輸入/輸出通道。</p><p> ?、郯l(fā)送/接收8位數(shù)據(jù),低位在前高位在后。</p><p><b> ?。?)發(fā)送操作。</b></p><p>  由指令“MOV SBUF,A”啟動發(fā)送操作,發(fā)送

48、時由TXD輸出移位脈沖,RXD發(fā)送SBUF中的數(shù)據(jù)。發(fā)送完8位數(shù)據(jù)后,TI自動置1,請求中斷。要繼續(xù)發(fā)送時,T1必須由指令清零(CLR TI)。</p><p><b> ?。?)接受操作。</b></p><p>  在RI=0的前提下,用指令置REN=1,可以啟動一陣數(shù)據(jù)接收。同樣由TXD輸出移位脈沖,由RXD接收串行數(shù)據(jù)。接收完一幀后RI自動置1,請求中斷。要繼

49、續(xù)接收時,要用指令清除RI。</p><p><b>  2.方式1</b></p><p><b> ?。?)特點。</b></p><p> ?、?位異步串行通信UART接口。</p><p>  ②幀結(jié)構(gòu)為10位,包括起始位0、8位數(shù)據(jù)位和1位停止位。</p><p>

50、 ?、鄄ㄌ芈视绍浖O(shè)置,由T1的溢出率決定。</p><p><b> ?。?)發(fā)送操作。</b></p><p>  由指令“MOV SBUF,A”啟動A中的數(shù)據(jù)從TXD端異步發(fā)送。發(fā)送完一幀數(shù)據(jù)后,TI自動置1,請求中斷。要繼續(xù)發(fā)送時,TI必須由指令清零(CLR TI)。</p><p><b> ?。?)接收操作。</b&

51、gt;</p><p>  在RI=0的前提下,用指令置REN=1,啟動一幀數(shù)據(jù)的接收。串行口采樣RXD,當(dāng)采用到由1至0的跳變時,表明接收到穿行數(shù)據(jù)的起始位,開始接收一陣數(shù)據(jù),直至停止位到來時,把停止位送到RB8中,此RI自動置1,請求中斷并通知CPU從工作出發(fā)SBUF中取走已接收的數(shù)據(jù)。</p><p><b>  3.方式2和方式3</b></p>

52、<p>  方式2和方式3具有多機通信功能。兩種方式除了波特率設(shè)置不同之處外,其余功能完全相同。</p><p>  2.4.4波特率的設(shè)置</p><p>  串行通信的波特率取決于串行口的工作方式。</p><p><b>  1.方式0的波特率</b></p><p>  方式0的波特率是固定的,為fo

53、sc/12.</p><p><b>  2.方式2的波特率</b></p><p>  方式2的波特率有兩種,取決于SMOD(PCON.7),SMOD=1時為fosc/32;SMOD=0時為fosc/64。由于PCON無位尋址功能,通常用以下指令清零或置1:ANL PCON,#7FH</p><p>  ORL PCON#80H<

54、/p><p>  3.方式1和方式3的波特率</p><p>  這兩種方式下波特率取決于定時器/計數(shù)器1的溢出率及SMOD,并有以下關(guān)系式: 波特率=×T1溢出率/32</p><p>  式中T1溢出率/T1溢出周期,而溢出周期即為T1定時時間。</p><p><b>  4.應(yīng)用</b></p>

55、<p>  在應(yīng)用時往往根據(jù)所需要波特率,先選取SMOD,計算出T1的溢出率,然后計算出T1的時間常數(shù)。T1可以工作在方式0、方式1和方式2。方式2為自動裝入時間常數(shù)的8位定時器,使用時只需進(jìn)行初始化,不需在中斷服務(wù)程序中重裝時間常數(shù),是一種常用方式。</p><p>  2.5常用串行通信接口標(biāo)準(zhǔn) </p><p>  常用的串行通信接口標(biāo)準(zhǔn)有RS-232C、RS-422

56、A和RS-485等。文章將對RS-232接口作出介紹。</p><p>  2.5.1 RS-232C接口</p><p>  RS-232接口實際上是一種串行通信標(biāo)準(zhǔn),是由美國EIA(電子工業(yè)協(xié)會)和Bell公司一起開發(fā)的通信協(xié)議,它對信號的功能、電器特性、連接器等都作了明確的規(guī)定,RS-232C是廣泛應(yīng)用的一個版本。RS-232C采用的是EIA電平,采用反邏輯,其規(guī)定如下:<

57、/p><p>  *邏輯1(MARK)時,電壓為-3~-15V;</p><p>  *邏輯0(SPACE)時,電壓為+3~+15V;</p><p>  RS-232C是通過提高傳輸電壓來延長傳輸距離的,一般可以達(dá)到15m。 RS-232C有25針的D型連接器和9針的D型連接器,目前PC機都是采用9針的D型連接器。9針D型連接器的信號及引腳如下圖所示。</p&g

58、t;<p>  圖2-6 RS232管腳結(jié)構(gòu)</p><p>  RS-232C除通過它傳送數(shù)據(jù)(TXD和RXD)外,還對雙方的互傳起協(xié)調(diào)作用,這就是握手信號,9根信號分為兩類:</p><p><b>  基本的數(shù)據(jù)傳送引腳</b></p><p>  TXD(Transmitted Date):數(shù)據(jù)發(fā)送引腳。串行數(shù)據(jù)從該引腳出

59、發(fā)。</p><p>  RXD(Received Date):數(shù)據(jù)接收引腳。串行數(shù)據(jù)由此輸入。</p><p>  GND(Ground):信號地線。</p><p>  在串行通信中最簡單的通信只需連接這三根線。在PC機PC機、PC機與單片機、單片機與單片機間,多采用這種連接方式。</p><p><b>  握手信號</

60、b></p><p>  RTS(request to send):請求發(fā)送信號。輸出信號。</p><p>  CTS(clear to send):清除傳送。它是對RTS的響應(yīng)信號,輸入信號。</p><p>  DCD(date carrier detection):數(shù)據(jù)載波檢測。輸入信號。</p><p>  DSR(date

61、 set ready):數(shù)據(jù)通信準(zhǔn)備就緒。輸入信號。</p><p>  DTR(data terminal ready):數(shù)據(jù)終端就緒。輸出信號,表面計算機已做好接受準(zhǔn)備。</p><p>  2.5.2 RS-232C的EIA電平和TTL電平轉(zhuǎn)換</p><p>  RS-232的EIA標(biāo)準(zhǔn)是以正負(fù)電壓來表示邏輯狀態(tài),與TTL以高低電平表示邏輯狀態(tài)的規(guī)定不同。

62、所以,為了能夠同計算機接口或終端的TTL器件連接,必須在EIA電平與TTL電平之間進(jìn)行電平變換。目前較廣泛地采用集成電路轉(zhuǎn)換器件MAX232可實現(xiàn)兩者的雙向電平轉(zhuǎn)換。</p><p>  單片機與傳感器或單片機與計算機之間直接使用RS-232C通訊標(biāo)準(zhǔn)進(jìn)行串行通訊時,信號在通訊過程之中可能會被全部或部分使用。最簡單的通訊僅需TXD及RXD及SG最基本的信號線完成,其他的握手信號可以做適當(dāng)處理或直接懸空。</

63、p><p>  在設(shè)計單片機和PC機的硬件電路時,使用MAX232芯片實現(xiàn)TTL電平和PC機RS-232電平的轉(zhuǎn)換,使用該芯片使電路外圍電路簡單,工作可靠[9]。</p><p>  MAX232是一種雙組驅(qū)動器/接收器,片內(nèi)含有一個電容性電壓發(fā)生器以便在單5V電源供電時提供EIA/T工A-232-E電平。每個接收器將EIA/TIA-232-E電平輸入轉(zhuǎn)換為5V TTL/CMOS電平。這些接收

64、器具有1. 3V的典型門限值及0. 5V的典型遲滯,而且可以接收士30V的輸入。每個驅(qū)動器將TTL/CMOS輸入電平轉(zhuǎn)換為EIA/TIA-232-E電平。工作溫度范圍為0℃至70℃。</p><p>  MAX232芯片的性能特點如下:</p><p>  圖2-7 MAX232管腳結(jié)構(gòu)</p><p>  1.單5V電源工作;</p><p&g

65、t;  2.兩個驅(qū)動器及兩個接收器;</p><p>  3.士30v輸入電平;</p><p>  4.低電源電流:典型值是8mA;</p><p>  5.符合甚至優(yōu)于ANSI標(biāo)準(zhǔn)EIA/TIA-232-E及工TU推薦標(biāo)準(zhǔn)V. 28MAX232引腳中1~6腳為電容端,7~14腳包含4路RS232/TTL電平轉(zhuǎn)換器。</p><p>  圖

66、2-8 MAX232工作電路圖</p><p>  2.6基于單片機的指紋采集系統(tǒng)的基本結(jié)構(gòu)</p><p>  本系統(tǒng)采用AT89S51作為指紋識別系統(tǒng)的核心處理器,使用單片機內(nèi)部的4K程序存儲器,接+5V電源。。</p><p>  復(fù)位電路則采用簡單RC復(fù)位電路,同時又可與一些需要復(fù)位的外圍電路相連,達(dá)到復(fù)位與單片機同步。</p><p&g

67、t;  /Vpp為訪問內(nèi)部或外部程序存儲器的選擇信號.由于AT89S51單片機有4K的內(nèi)部程序存儲器,又外接了128Kx8的EEPROM存儲器,故該引腳必須接+5V高電平.為外部程序存儲器讀選通控制信號.此電路中無擴展程序存儲器.故該腳懸空.</p><p>  串口通信接口設(shè)計采用MAX232實現(xiàn)TTL與RS-232的轉(zhuǎn)換,實現(xiàn)與計算機通信。</p><p>  下圖為總的基于單片機的指

68、紋識別系統(tǒng)的硬件電路圖。</p><p>  圖2-9 基于單片機的考勤系統(tǒng)的電路原理圖</p><p>  第三章 指紋識別系統(tǒng)軟件實現(xiàn)部分</p><p>  軟件部分總的設(shè)計思路是:先把用戶的指紋信息存入數(shù)組,然后通過單片機串口發(fā)送數(shù)據(jù),VC電腦端接收到數(shù)據(jù)后把相應(yīng)的數(shù)據(jù)存入數(shù)據(jù)庫中。因為在下位機部分需要處理大量關(guān)于指紋的模式識別算法,所以沒有研究,文章著重從

69、上位機的串口通信,簡單數(shù)據(jù)庫存儲方面來介紹。文章運用MFC Windows程序設(shè)計實現(xiàn),介紹了一個比較好用的串口控件MCSomm,并做了簡單數(shù)據(jù)庫。</p><p>  3.1 控件MSComm串口編程 </p><p>  本系統(tǒng)采用MSComm控件來實現(xiàn)上位機的串口通信過程。MSComm控件通過串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通信功能。選用這個控件的原因是在串口編

70、程時比較方便,不必花時間去了解較為復(fù)雜的API函數(shù)。當(dāng)然,也要知道一點:那就是這個控件通信功能的實現(xiàn),還是間接調(diào)用Windows API編程的結(jié)果,只是先通過Comm.drv解釋,然后再傳遞給設(shè)備驅(qū)動程序進(jìn)行的。</p><p>  它提供了一系列標(biāo)準(zhǔn)通信命令的使用接口,利用它可以建立與串口的連接,發(fā)出命令,交換數(shù)據(jù)以及監(jiān)視和響應(yīng)串行連接中發(fā)生的事件和錯誤。MSComm控件可以用于創(chuàng)建電話撥號程序、串口通信程序和

71、功能完備的終端程序。</p><p>  首先,簡單總結(jié)一下用MSComm控件進(jìn)行串口編程的步驟:</p><p>  (1)在建立的程序工程中插入Microsoft Communications Control控件;</p><p>  (2)添加MSComm控件ID的控制變量(或者對象);</p><p> ?。?)對串口進(jìn)行初始化,設(shè)置

72、MSComm控件的屬性;</p><p>  (4)添加串口事件的消息處理函數(shù)OnComm()函數(shù),在函數(shù)中根據(jù)應(yīng)用需要,編寫數(shù)據(jù)處理代碼;</p><p> ?。?)編寫串口發(fā)送等其他代碼</p><p><b>  (6)關(guān)閉串口</b></p><p>  3.2 控件MSComm串口編程 實例<

73、;/p><p>  在系統(tǒng)中單片機傳來的指紋信息通過串口傳遞給PC,對于PC上串口的編程大體分為:打開串口,設(shè)定串口,讀取串口和關(guān)閉串口四個部分。下面通過一個簡單的實例演示下串口的收發(fā)過程。在這個過程中還用到串口調(diào)試助手,虛擬串口VSPD等軟件。下面介紹其簡單過程。</p><p>  1.在當(dāng)前Project中插入MSComm控件。</p><p>  選擇 ,那么M

74、SComm控件就插入到當(dāng)前的工程中,結(jié)果就添加了類CMSComm,類CMSComm的相關(guān)的文件mscomm.h和mxcomm.cpp也一并加入Project中。</p><p>  打開所需串口后,需要考慮通信時機。在接受和或發(fā)送數(shù)據(jù)的過程中,要監(jiān)視并響應(yīng)一些事件和錯誤,所以事件驅(qū)動是處理串口交互作用的一種非常有效的方法。使用OnComm事件和CommEvent屬性捕捉并檢查通信事件和錯誤的值。發(fā)生通信事件或錯誤

75、時,將觸發(fā)OnComm事件,CommEvent屬性的值將該變,應(yīng)用程序檢查CommEvent屬性值并作出相應(yīng)反應(yīng)。</p><p>  利用ClassWizard定義CMSComm類控制對象。</p><p>  打開ClassWizard中的Member Viariables選項卡,選擇CSCommTestDlg類,為IDC_MSCOMM1添加控制變量:m_ctrlComm,這是對話框里

76、自動加入:</p><p>  //{{AFX_INCLUDES()</p><p>  #include "mscomm.h"(這時運行程序,如果有錯,那就再從頭開始)。</p><p>  2. 在對話框中添加控件。</p><p>  向主對話框中添加兩個編輯框,一個用于接收顯示數(shù)據(jù)ID為IDC_EDIT_RXDAT

77、A,令一個用于輸入發(fā)送數(shù)據(jù),ID為IDC_EDIT_TXDATA,再添加一個按鈕,功能是按一次就把發(fā)送編輯框中的內(nèi)容發(fā)送一次,將其ID設(shè)為IDC_BUTTON_MANUALSEND。再打開ClassWizard的Member Viariables選項卡,選擇CSCommTestDlg類,為IDC_EDIT_RXDATA添加CString變量m_strRXData,為IDC_EDIT_TXDATA添加CString變量m_strTXDat

78、a,指明分別用來放入接收和發(fā)送的字符數(shù)據(jù)。</p><p>  圖3-1 設(shè)計完的通信對話框</p><p>  下面,在CSCommTestDlg::OnInitDialog()函數(shù)中寫入對串口的初始化語句,串口初始化語句由IDC_MSCOMM1的CMSComm控制變量m_ctrlComm來設(shè)置串口控件屬性。要添加的代碼如下:</p><p>  m_ctrlCo

79、mm.SetCommPort(1);//選擇COM1</p><p>  //波特率為9600,無校驗,8個數(shù)據(jù)位,1個停止位</p><p>  m_ctrlComm.SetInputMode(1);</p><p>  //輸入方式為二進(jìn)制方式</p><p>  m_ctrlComm.SetInBufferSize(1024);//設(shè)置

80、輸入緩沖區(qū)大小</p><p>  m_ctrlComm.SetOutBufferSize(512);//設(shè)置輸出緩沖區(qū)大小</p><p>  //波特率9600,無校驗,8個數(shù)據(jù)位,1個停止位</p><p>  m_ctrlComm.SetSettings("9600,n,8,1");</p><p>  //參數(shù)1

81、表示每當(dāng)串口接收緩沖區(qū)有多于或等于1個字符時將引發(fā)一個數(shù)據(jù)的ONcomm事件</p><p>  if(!m_ctrlComm.GetPortOpen())</p><p>  m_ctrlComm.SetPortOpen(TRUE);//打開串口</p><p>  m_ctrlComm.SetRThreshold(1);</p><p>

82、  m_ctrlComm.SetInputLen(0);//設(shè)置當(dāng)前接收去數(shù)據(jù)長度為0</p><p>  m_ctrlComm.GetInput();//先預(yù)存緩沖區(qū)以清除殘留數(shù)據(jù)</p><p>  3.添加串口事件消息處理函數(shù)OnComm()。</p><p>  打開ClassWizard中的Message Maps選項,選擇類CSCommTestDlg,選

83、擇IDC-MSCOMM1,雙擊消息OnComm,將彈出對話框中將函數(shù)名改為OnComm。</p><p>  這個函數(shù)用來處理串口消息事件的,如每當(dāng)串口接收到數(shù)據(jù),就會產(chǎn)生一個串口接收數(shù)據(jù)緩沖區(qū)中有字符的消息事件,我們剛才添加的函數(shù)就會執(zhí)行,在OnComm()函數(shù)加入相應(yīng)代碼就能實現(xiàn)自己想要的功能。需要添加的代碼如下:</p><p>  VARIANT variant_inp;</

84、p><p>  COLeSafeArray safearray_inp;</p><p>  LONG len,k;</p><p>  BYTE rxdata[2048];//設(shè)置BYTE數(shù)組,8位無標(biāo)識</p><p>  CString strtemp;</p><p>  if(m_ctrlComm.GetComm

85、Event()==2//事件值為2表示接收緩沖區(qū)內(nèi)有字符</p><p><b>  {</b></p><p>  variant_inp=m_ctrlComm.GetInput();//讀緩沖區(qū)</p><p>  safearray_inp=variant_inp;//VARIANT型變量轉(zhuǎn)換為COLESAFEARRAY型變量</p

86、><p>  len=safearray_inp.GetOneDimSize();//得到有效數(shù)據(jù)的長度</p><p>  for(k=0;k<len;k++)</p><p>  safearray_inp.GetElement(&k,rxdata+k);//轉(zhuǎn)換為BYTE型數(shù)組</p><p>  for(k=0;k<l

87、en;k++)//將數(shù)組轉(zhuǎn)換為cString型變量</p><p><b>  {</b></p><p>  BYTE bt=*(char*)(rxdata+k);//字符型</p><p>  strtemp.Format("%c",bt;)//將字符送入臨時變量strtemp</p><p> 

88、 m_strRXData+=strtemp;//加入接收編輯框相應(yīng)字符串</p><p><b>  }</b></p><p><b>  }</b></p><p>  UpdateData(FALSE);//更新編輯框內(nèi)容</p><p>  此處函數(shù)OnComm()中的代碼,主要任務(wù)是從串口

89、接收數(shù)據(jù)并顯示在接收編輯框中。</p><p><b>  4.發(fā)送數(shù)據(jù)。</b></p><p>  先為發(fā)送按鈕添加一個單擊消息即BN_CLICKED處理函數(shù),并在函數(shù)中添加如下代碼:</p><p>  UpdateData(TRUE);//讀取編輯框內(nèi)容</p><p>  m_ctrlComm.SetOutpu

90、t(COLeVariant(m_strTXData));//發(fā)送數(shù)據(jù)</p><p>  至此,這個簡單的串口通信程序就完成了。編譯后出現(xiàn)自己編輯的對話框。為了檢驗是否能夠進(jìn)行串口收發(fā)需要借助VSPD的虛擬串口軟件,將COM1和COM2連接起來,然后打開串口小助手,這時在發(fā)送編輯框中輸入字符,單擊“發(fā)送”按鈕,再單擊串口調(diào)試助手的“手動發(fā)送”按鈕,就可以運行程序了。</p><p>  在

91、本系統(tǒng)中下位機傳來的指紋信息所含的信息量很大,要實現(xiàn)指紋信息的采集上位機在接收時需要連續(xù)多次接收,所以在程序中應(yīng)該設(shè)置一個自動接收的功能。所以應(yīng)該設(shè)定自動發(fā)送周期函數(shù)SetTimer()函數(shù),在控制中指令的傳送定時發(fā)送。</p><p>  下面介紹其方法:在ClassWizard中選上MessageMap卡,然后在Objects IDs選中CSCommTestDlg類,再在Messages框中選上WM_TIME

92、R消息,單擊ADD_FUNCTION加入void CSCommTestDlg::Ontimer(UINT nIDEvent)函數(shù),這個函數(shù)是放入“時間到”后要處理代碼。</p><p>  m_bAutoSend=!m_bAutoSend;</p><p>  if(m_bAutoSend)</p><p><b>  {</b></p&

93、gt;<p>  SetTimer(1,1,NULL);//時間為1毫秒</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  KillTimer(1);//取消定時<

94、;/p><p><b>  }</b></p><p>  運行成功后下位機的數(shù)據(jù)就可以每隔1ms被PC接收。如果在PC中做一個處理數(shù)據(jù)庫的后臺程序就可以將下位機傳來的數(shù)據(jù)存入數(shù)據(jù)庫,對指紋考勤信息做好統(tǒng)計處理,完成實際所需要的功能。</p><p>  下面將會用ACESS做一個簡單的指紋考勤數(shù)據(jù)庫,利用ODBC編程。</p>&l

95、t;p>  1.下面用ACESS所做的mdb文件,作為數(shù)據(jù)源。下面幾個表包括了所需的員工考勤信息。</p><p>  圖3-2 基于單片機指紋考勤的ATTENDANCE表(記錄員工出入情況)</p><p>  圖3-3 基于單片機指紋考勤的ATTENDANCE_STAT表(記錄員工月份考勤情況)</p><p>  圖3-4 基于單片機指紋考勤的LEAVE

96、表(記錄員工請假情況)</p><p>  圖3-5 基于單片機考勤的OVERTIME表(記錄員工加班情況)</p><p>  圖3-6基于單片機考勤的ERRAND表(記錄員工的出差記錄)</p><p>  圖3-7基于單片機考勤的PERSON表(記錄員工的個人信息)</p><p>  圖3-8基于單片機考勤的DEPARTMENT表(記

97、錄部門信息)</p><p>  2.數(shù)據(jù)庫操作準(zhǔn)備。</p><p>  打開控制面板管理工具,添加到數(shù)據(jù)源管理中。然后下面就是進(jìn)入MFC的數(shù)據(jù)庫連接與處理的階段。為了使用ODBC類,需要在stdafx.h中加入#include”afxdb.h”一行。因本程序只需要連接一個數(shù)據(jù)庫,所以定義了一個Cdatabase型的全局變量db,一次性打開和關(guān)閉數(shù)據(jù)庫。數(shù)據(jù)庫的打開在登錄認(rèn)證對話框中。在

98、主程序結(jié)束前需關(guān)閉數(shù)據(jù)庫,因此在App類的ExitInstance()函數(shù)中加入代碼:if (db.IsOpen()) db.Close();為了編程便捷,可以為數(shù)據(jù)庫中的每一個表映射一個記錄集類(從CrecordSet類繼承),其映射關(guān)系如表1-1所示。這些類通過RFX(Record Field Exchange)機制將成員變量與表格中的字段值聯(lián)系起來,通過方問成員變量可以訪問當(dāng)前記錄中字段的值。</p><p&g

99、t;  3.設(shè)計主對話框和考勤對話框。</p><p>  其中主對話框作為登錄界面,實現(xiàn)添加記錄,統(tǒng)計記錄等功能??记趯υ捒蛴涗泦T工姓名,年月等考勤信息。在VC中建立一個連接數(shù)據(jù)庫的程序,畫出程序?qū)υ捒?,添加?shù)據(jù)庫代碼,實現(xiàn)存儲指紋考勤信息的功能。</p><p><b>  圖3-9主對話框</b></p><p>  圖3-10考勤統(tǒng)計對

100、話框</p><p>  添加完程序后運行,出現(xiàn)結(jié)果,可以儲存考勤數(shù)據(jù)。那么至此這部分做完后,PC與單片機通過串口程序?qū)崿F(xiàn)串口通信,下位機處理指紋信息傳給PC,在PC上設(shè)計一個數(shù)據(jù)庫的處理程序以實現(xiàn)單片機傳送的信息存入數(shù)據(jù)庫,那么整個的信息處理過程就算完成了。</p><p>  最后,注意單片機與PC設(shè)定的串口的初始化信息要一致,如波特率。信息自動接收與發(fā)送時單片機串口通信部分采用中斷程

101、序,當(dāng)上位機需要數(shù)據(jù)時,發(fā)出命令,單片機系統(tǒng)采用中斷程序,發(fā)出數(shù)據(jù)。</p><p>  文章附錄部分給出了主對話框所需代碼,考勤統(tǒng)計對話框所需代碼,以及一個單片機串口通信的代碼。</p><p><b>  結(jié)束語</b></p><p>  在本次論文設(shè)計中,學(xué)會了利用單片機系統(tǒng)實現(xiàn)指紋考勤的基本原理,雖然在算法方面沒有探討實現(xiàn)的方法,但總

102、體對基于單片機指紋考勤的基本路徑有了了解,另外在下位機與上位機通信方面也做了一定的學(xué)習(xí),能夠?qū)崿F(xiàn)基本的通信,另外在學(xué)習(xí)過程中初步了解了VC++面向過程編程的基本概念,體會了其功能的強大與方便性。但是在這些過程中仍存在諸多不足,對細(xì)節(jié)方面,以及系統(tǒng)完整性方面無法做到完善。</p><p><b>  致 謝</b></p><p>  論文在老師的指導(dǎo)下做完了。感謝王

103、翠萍老師做出的指導(dǎo),讓我學(xué)會了很多基本知識,也學(xué)會了如何去自己學(xué)習(xí)一些東西。接著,我還要感謝我的任課老師他們交給我的知識。最后,感謝學(xué)校給我們創(chuàng)造了一個很好的學(xué)習(xí)環(huán)境,讓我可以不斷學(xué)習(xí)進(jìn)步。雖然,自己仍有很多不足,但是我相信我一定會實現(xiàn)自己理想。謝謝!</p><p><b>  參考文獻(xiàn)</b></p><p>  1、陳建春.Visual C++開發(fā)GIS系統(tǒng),開

104、發(fā)實例剖析,2000年.</p><p>  2、陳建春.Visual C++高級編程技術(shù),開發(fā)實例剖析,1999年.</p><p>  3、李于劍.Visual C++實踐與提高,圖形圖象編程篇, 2001年.</p><p>  4、同志工作室.Visual C++6.0開發(fā)技巧與實例教程, 2000年.</p><p>  5、趙仕健

105、. Visual C++6.0編程與實例解析, 2000年.</p><p>  6、錢 能. C++程序設(shè)計教程, 1999年.</p><p>  7、陳明熒.5051單片機課程設(shè)計實訓(xùn)教材[M].北京:清華大學(xué)出版社,2004</p><p>  8、 Atmel AT89C51SND1C User’s Guide[Z].2002.</p>&

106、lt;p>  9、何立民,單片機高級編程[M]. 北京:北京航空航天大學(xué)出版社,1999.</p><p>  10、John Markus.電子電路大全[M].北京:計量出版社.1995.</p><p>  11、 張鑫.單片機原理及應(yīng)用[M] .北京:電子工業(yè)出版社,2005</p><p>  12、高鵬.Protel入門與提高[M] .北京:人民郵電

107、出版社,2000</p><p>  13、廣弟.單片機基礎(chǔ)[M] .北京:北京航空航天大學(xué)出版社,2001</p><p>  14、何宏.單片機原理與接口技術(shù)[M] .北京:國防工業(yè)出版社,2006</p><p>  15、馬忠梅.單片機的C語言應(yīng)用程序設(shè)計[M] .北京:北京航空航天大學(xué)出版社,2003</p><p>  16、 翁

108、漢興,閻有才。指紋自動考勤系統(tǒng)在火電廠的應(yīng)用。華中電力,2006(1):67-68.</p><p>  17、 陳建孝。利用指紋識別器進(jìn)行考勤管理[J]。內(nèi)蒙古農(nóng)業(yè)大學(xué)報,</p><p>  2006,27(1)</p><p>  18、常靜。基于指紋識別的汽車門鎖遙控器設(shè)計[J]。城市車輛,2006(4):46-48</p><p>

109、  19、馬忠梅。單片機C51程序設(shè)計[M]北京航空航天大學(xué)出版社</p><p>  20、梁中華,王子威等。PC機與單片機串行通信的研究[J]沈陽工業(yè)大學(xué)報,2005,27(3):302-307</p><p>  21、 劉海春,翁曉光。微機和單片機串行通信[J]電子測量技術(shù),2004(2):59-60</p><p>  22、 羅瑞明。MFC子窗口管理方法

110、及應(yīng)用[J]電腦知識與技術(shù),2006(7):167-168.</p><p>  23、謝命堅 MFC的ODBC數(shù)據(jù)庫編程技術(shù)[J]今IEI</p><p>  24、World Health Organization.Factors regulating the immune response:report of WHO Scientific Group[R].Geneva:WHO,19

111、70.</p><p><b>  附 錄</b></p><p><b>  1.主對話框代碼:</b></p><p>  BOOL CAttendanceDlg::OnInitDialog()</p><p><b>  {</b></p><p&g

112、t;  CDialog::OnInitDialog();</p><p>  // Add "About..." menu item to system menu.</p><p>  // IDM_ABOUTBOX must be in the system command range.</p><p>  ASSERT((IDM_ABOUTB

113、OX & 0xFFF0) == IDM_ABOUTBOX);</p><p>  ASSERT(IDM_ABOUTBOX < 0xF000);</p><p>  CMenu* pSysMenu = GetSystemMenu(FALSE);</p><p>  if (pSysMenu != NULL)</p><p><

114、;b>  {</b></p><p>  CString strAboutMenu;</p><p>  strAboutMenu.LoadString(IDS_ABOUTBOX);</p><p>  if (!strAboutMenu.IsEmpty())</p><p><b>  {</b>&l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論