門禁系統(tǒng)設(shè)計_第1頁
門禁系統(tǒng)設(shè)計_第2頁
門禁系統(tǒng)設(shè)計_第3頁
門禁系統(tǒng)設(shè)計_第4頁
門禁系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、智能卡門禁系統(tǒng)設(shè)計1 設(shè)計要求智能卡的應(yīng)用并不是簡單的讀寫卡操作, 而是一個綜合性的工程項目。 它不僅包括卡和 讀寫模塊的選擇,還涉及到讀寫模塊的控制、 數(shù)據(jù)的傳輸、數(shù)據(jù)的處理和存儲;既需要有硬 件應(yīng)用的知識、 也還必須具有軟件方面的能力。 下面我們以一個完整的應(yīng)用系統(tǒng)為例, 詳細 地描述了各組成部分的設(shè)計要求、完成的功能及具體的實現(xiàn)方法。智能卡門禁系統(tǒng)設(shè)計任務(wù):1 智能卡門禁系統(tǒng)門禁機模塊的設(shè)計(1)非接觸式 IC 卡讀寫頭部分主要內(nèi)容: 讀頭部分采用非接觸智能卡讀寫模塊, 由讀卡器讀入數(shù)據(jù)并加以保存, 智能 卡按常規(guī)要具有加密和數(shù)據(jù)分區(qū)存儲功能,讀寫頭的讀寫距離在 5-10 厘米左右,必須

2、具有 掉電保護、精確時間記時和顯示,3K 5K的臨時數(shù)據(jù)存儲。( 2) 門禁機主控模塊主要內(nèi)容:智能門禁機主控模塊是智能門禁機系統(tǒng)的核心部分,主要包括MCU鍵盤、顯示、電子時鐘、外部數(shù)據(jù)存儲器及掉電保護和看門狗電路,有精確時間記時和顯示。2 智能卡門禁系統(tǒng)系統(tǒng)管理模塊的設(shè)計( 1) 系統(tǒng)管理主控模塊設(shè)計主要內(nèi)容: 設(shè)計門禁上層軟件的主控模塊, 其主要實現(xiàn)的功能是最高權(quán)限卡對管理員和 一般用戶發(fā)卡, 管理員對一般用戶發(fā)卡。 能對丟失的卡進行掛失, 對找回的卡進行解掛,同 時還要具備查找功能。(2)系統(tǒng)管理的數(shù)據(jù)庫管理軟件設(shè)計 主要內(nèi)容:運用高級語言編程,制作數(shù)據(jù)庫管理軟件。 采集下位機的數(shù)據(jù)并保

3、存,然后 管理采集到的數(shù)據(jù),具有采集、數(shù)據(jù)更新、查詢統(tǒng)計和報表的打印功能3 .智能卡門禁系統(tǒng)一一數(shù)據(jù)傳輸模塊的設(shè)計主要內(nèi)容: 完成中央控制電腦與門禁讀寫器之間的數(shù)據(jù)傳輸協(xié)議的設(shè)計,能實現(xiàn)主、 從機的雙向數(shù)據(jù)傳輸及一對一、一對多的數(shù)據(jù)傳輸。2 總體方案根據(jù)設(shè)計要求,整個智能卡門禁系統(tǒng)分為三大部分:其一是讀寫器部分,包括MCU復(fù)位電路、時鐘電路、顯示電路、鍵盤、數(shù)據(jù)存儲等主控模塊及非接觸IC 卡讀寫模塊和電鎖驅(qū)動部分; 其二是中央控制電腦的軟件管理系統(tǒng)模塊; 其三是中央控制電腦與讀寫器之間的 數(shù)據(jù)傳輸模塊。其總體方案見圖 5.1 。J申真推制中證電腦RS485浪晶昱示岀門時解電踣CKOO&tt圖1

4、非接觸式IC卡門禁系統(tǒng)框圖cumM 片C9C53)3非接觸式IC卡門禁機的設(shè)計系統(tǒng)采用Philips 公司的非接觸智能IC卡Mifare 1卡,以M1卡作為用戶卡,以用戶 卡的序列號 SN (全球唯一)為依據(jù)控制門的開啟。因為它是一個高頻卡(工作頻率為 13.5MHZ),有較強的抗干擾能力、讀寫距離遠(5MI 10MM。首先,在發(fā)卡系統(tǒng)(中央控制PC機)里把用戶的卡號及個人信息輸入系統(tǒng)數(shù)據(jù)庫,并將該卡號作為合法卡號下載給所有門禁機。當(dāng)有一張M1卡在門禁機的有效工作范圍內(nèi)時,系統(tǒng)會自動向卡發(fā)出命令,卡接收到命令后向門禁機反饋其SN,門禁機判斷收到的卡號是否合法,合法則驅(qū)動電磁門鎖開門,并實時上傳

5、其開門記錄;如果是非法卡(未經(jīng)授權(quán)或已 掛失的卡)則拒絕開門并上傳報警信息。只有最高授權(quán)者(掌握授權(quán)密碼)才可以發(fā)管 理員卡,管理員必須用管理員卡方可登錄發(fā)卡系統(tǒng)進行發(fā)卡/下傳合法卡號、掛失、解掛、下傳黑名單等操作。附錄二門禁機硬件原理圖由于采用了 Philips公司的非接觸式Mifare 1卡,所以卡的讀寫模塊也采用了以Philips 公司最新推出的 Mifare讀寫芯片MF RC500為核心開發(fā)的 ZLG500A讀寫模塊。門禁機模塊的硬件原理圖見附錄二。通過AT89C52對ZLG500A的控制達到對卡的讀寫。系統(tǒng)結(jié)構(gòu)簡單,成本較低且具有信息量大和安全保密性好等特點。外圍配有RS232轉(zhuǎn)RS

6、485接口能與PC機互連成網(wǎng)絡(luò),可以完成讀卡、顯示卡號和出入時間、身份識別、開鎖以及保存和上傳出入記錄、下載黑名單、設(shè) 置開門權(quán)限等功能。門禁機模塊的主控軟件主要完成門禁機模塊的初始化、卡的識別、開啟門鎖及保存有關(guān)數(shù)據(jù)和數(shù)據(jù)的傳輸?shù)任宕蠊δ?。其總體工作流程如圖5.2所示:圖3非接觸式IC卡門禁機總體工作流程在完成整個門禁機模塊的設(shè)計和制作前,首先必須明確非接觸式IC卡讀寫模塊的功能特性、接口規(guī)范和控制方式。本系統(tǒng)選用MIFARE 1卡作為門禁鑰匙,相應(yīng)地,選用廣州周立功公司的ZLG500A讀寫模塊作為卡與門禁機交換數(shù)據(jù)的接口模塊。1. ZLG500A讀寫模塊特性1)功能特性圖5.3為ZLG50

7、0A非接觸式IC卡讀寫模塊,該模塊采用最新 PHILIPS高集成ISO14443讀卡芯片一MF RC5O0能讀寫RC500內(nèi)EEPROM提供三線SPI接口,并具有控制線輸出口,EMC生能優(yōu)良;并自帶無源能與任何MCI接口。此外,該模塊四層電路板設(shè)計,雙面表貼, 蜂鳴器信號輸出,能用軟件控制輸出頻率及持續(xù)時間。圖4 ZLG500A模塊實物圖如圖5.3所示J1為與天線的接口 J2為與MCU的接口,J1、J2的管腳排列和功能說明 見表5.1 :表5.1 ZLG500A非接觸式IC卡讀寫模塊管腳說明(一)管腳符號描述J1-1GND地J1-2TX1天線發(fā)送1J1-3GND地J1-4TX2天線發(fā)送2J1-

8、5GND地J1-6RX天線接收表5.1 ZLG500A非接觸式IC卡讀寫模塊管腳說明(二)管腳符號類型描述J2-1SCLK輸入三線SPI接口時鐘線總是由外部 MCU產(chǎn)生J2-2SDATA雙向數(shù)據(jù)線可雙向傳輸J2-3SS雙向傳輸啟動線接MCU外部中斷J2-4VCCPWR電源正端J2-5RST復(fù)位內(nèi)部MCU復(fù)位端咼電平有效J2-6GNDPWR電源負端J2-7CTRL輸出控制線輸出J2-8BZ輸出蜂鳴器信號輸出ZLG500模塊可方便地與任何 MCU進行接口,如圖5.4所示為ZLG500與MCS-51單片機P1.0ASCLKP1.1UASDATAP1.2USSZLG500MCS51“cP3.3-RST

9、VCTRLD 7BZ圖5.4 ZLG500 與MCS-51單片機接口圖的典型接口。 SCLK SDATA SS為ZLG500A與 MCU相聯(lián)接的控制線,分別為片選SS時鐘線SCLK和數(shù)據(jù)線SDATA主控制器的MCU和讀卡模塊內(nèi)的 MCU通過此三線相連,三根線上的 實際電平是雙方口線狀態(tài)邏輯線與的結(jié)果。2)ZLG500三線串行讀卡模塊接口規(guī)范(1)接口原理接口空閑時主機 SS=1 SCLK=0 SDATA=O從機 SS=1 SCLK=1 SDATA=d 其中 SS和 DATA1 雙 向的而時鐘線SCLK是單向的,即時鐘只能由主控制器產(chǎn)生,該信號必須嚴格遵守時序規(guī)范, 否則將出現(xiàn)通信錯誤讀卡模塊必

10、須釋放該線。SS為數(shù)據(jù)發(fā)送使能,若一方有數(shù)據(jù)要發(fā)送給另一方,則該方控制SS線為低并在發(fā)送結(jié)束后將該線置高,接收數(shù)據(jù)方不得控制該線,雙方必須遵守通信協(xié)議不得同時控制該線。SDAT為數(shù)據(jù)線,由數(shù)據(jù)發(fā)送端控制數(shù)據(jù),接收端必須釋放該線。該線在一次傳輸開始 時還同時作為數(shù)據(jù)接收端的響應(yīng)信號。(2)時序圖如圖5.5所示,無論數(shù)據(jù)傳輸?shù)姆较蛉绾?,SPI線上信號的波形總是如下;Staii from senderStop from senderSS一一SCLt1 | tHI t2 |t3kSDATAAck from receiverSender and receiver圖5 ZLG500時序圖且在SCLK低時取

11、決接收器內(nèi)一旦接收器響由圖中可以看出,在SS為低的情況時,時鐘和數(shù)據(jù)線上的信號才有效。 SDAT變化,在SCLK高時SDAT應(yīng)保持穩(wěn)定。以上傳輸中從數(shù)據(jù)發(fā)送器請求開始至數(shù)據(jù)接收器響應(yīng)的時間是不確定的, 的MCU是否忙,有必要設(shè)置一個看門狗定時器對數(shù)據(jù)接收器的響應(yīng)進行監(jiān)視, 應(yīng),則MCU必須根據(jù)數(shù)據(jù)傳輸?shù)姆较?,嚴格控制以下幾個時間,以確保數(shù)據(jù)傳輸無誤。t1 數(shù)據(jù)接收器響應(yīng)至MCU產(chǎn)生第一個SCLK上升沿的時間。t2 兩個字節(jié)傳輸之間SCLK低電平的持續(xù)時間。t3 傳輸最后一個字節(jié)的最后一位的SCLK信號的上升沿至SS上升沿的時間。tH SCLK信號的高電平持續(xù)時間。tL SCLK信號的低電平持續(xù)

12、時間。 在數(shù)據(jù)傳輸?shù)姆较虿煌瑫r,對時間t1 t3 tH 和tL都有各自不同的要求。(3)通信協(xié)議MC與ZLG5O0勺通信必須先由MCI發(fā)送命令和數(shù)據(jù)給 ZLG50Q ZLG500執(zhí)行命令完畢后, 將 命令執(zhí)行的狀態(tài)和響應(yīng)數(shù)據(jù)發(fā)回MCU開始通信前,收發(fā)雙方必須處于空閑狀態(tài)。首先由MC發(fā)出SS下降沿信號,然后等待ZLG500載SDAT線上的響應(yīng),若在50ms內(nèi)為檢測到此信號,則退出本次傳輸。若正確響應(yīng), 則MC可將命令和數(shù)據(jù)發(fā)送出去。然后MC等待ZLG50C發(fā)回的狀態(tài)和響應(yīng)數(shù)據(jù)。也即等待SS線上的下降沿信號,若在 50ms內(nèi)為檢測到此信號,則退出本次傳輸,若正確檢測到SS信號,則可以接收狀態(tài)和數(shù)據(jù)

13、。ZLG50C初始化的子程序如下:SCLKBIT P1.0;ZLG500內(nèi)部復(fù)位處于空閑狀態(tài)MOV 58H,#11HMOV59H,#11HMOV5AH,#11HMOV5BH,#11HLCALLCONFIGLCALLREQUESTLCALLANTICOLL.* if have CARD *配置發(fā)送請求;防碰撞SDATABITP1.1SSBITP1.2RSTBIT P3.3Zlg500:SETB RSTLCALL DELAY_50MSCLR RSTLCALL DELAY_50MSSETBSSCLRSDATACLR SCLKMOV A,52H;A=04 IS NO CARDCJNE A,#04H,S

14、A123LJMP SA234SA123:RET從存儲器中讀取數(shù)據(jù)SA234:LCALL READ_BLOCKLCALL DELAY_100MSMOV R2,#20MOV R0,#58H進行卡號的比較和驗證MOV R1,#80H LCALL COMPAREREL13:SETB FLAGLCALL REL123JB FLAG,REL13RET是由MC向ZLG5O0發(fā)出的不帶數(shù)主要是檢REQUES命令上述程序中CONFIGF程序為RC5O0勺復(fù)位和配置子程序,據(jù)的命令程序;REQUES子程序是MC向ZLG50C發(fā)出的帶一個字節(jié)數(shù)據(jù)的命令程序, 查在有效范圍內(nèi)是否有卡存在;ANTICOLI子程序是防沖

15、突操作,必須在執(zhí)行了后立即執(zhí)行。MCU與 ZLG500之間的通信一般遵循如下的數(shù)據(jù)格式MCU向 ZLG500發(fā)出的命令模式的格式如下:SeqNrComma ndLenData0 , NBCC其中:SeqNr: 1 Byte是數(shù)據(jù)交換包的序號Comma nd: 1 Byte是命令字符Len:1 Byte是數(shù)據(jù)的長度Data , Len Byte是數(shù)據(jù)字節(jié)BCC:1 Byte是一個字節(jié)的BCC效驗SeqNrStatusLenData0 , NBCCINFO0INFO n其中:SeqNr:1 Byte是數(shù)據(jù)交換包的序號status: 1 Byte是狀態(tài)字符Len:1 Byte是數(shù)據(jù)的長度Data ,

16、 Len Byte是數(shù)據(jù)字節(jié)BCC:1 Byte是一個字節(jié)的BCC效驗按照上述數(shù)據(jù)格式傳輸編制的CONFIG REQUES和ANTICOLL子程序清單如下:* ONFIG *CONFIG:MOV60H,#00H;數(shù)據(jù)交換包的序號MOV61H,#52H;配置命令字符代碼MOV62H,#00H;數(shù)據(jù)的長度為0LCALLBCC_SUM0;BCC效驗子程序MOV63H,A;BCC_SUMMOV A,#00HMOV R2,#04HMOVR0,#60H;發(fā)送首地址LCALLSPI_SENDMOV R0,#30H;接收起始地址LCALL_SPI_RCVRET* R.EQUEST *REQUEST:MOV60

17、H,#00H;數(shù)據(jù)交換包的序號MOV 61H,#41H;請求命令字符代碼MOV62H,#01H;數(shù)據(jù)的長度為1MOV63H,#01H; 請求模式的數(shù)據(jù) mode=01HLCALLBCC_SUMMOV64H,AMOVA,#00HMOVR2,#05H;發(fā)送5個字節(jié)數(shù)MOVR0,#60H;60H_64H的數(shù)據(jù)發(fā)送LCALLSPI_SEND;MOV R0,#40H;接收起始地址LCALLSPI_RCVRET* ANTICOLL *MOV60H,#00;數(shù)據(jù)交換包的序MOV61H,#42H;防碰撞命令字符代碼MOV62H,#01;數(shù)據(jù)的長度為1MOV63H,#00H;數(shù)據(jù)值為0LCALLBCC_SUMM

18、OV64H,AMOVA,#00HMOVR2,#05H;發(fā)送5個字節(jié)數(shù)MOVR0,#60H;60H_64H的數(shù)據(jù)發(fā)送LCALLSPI_SENDMOVR0,#50H;存放數(shù)據(jù)ANTICOLL:LCALL SPI_RCVMOV A,52HCJNE A,#04 H,L0MOV 58H,53HMOV 59H,54HMOV 5AH,55HMOV 5BH,56HMOV A,58HXRL A,59HXRLA,5AHXRLA,5BHMOV 5CH,AMOV A,#00HCLRP3.4LCALLDELAY_50MSLCALLDELAY_50MSLCALLDELAY_50MSLCALLDELAY_50MSSETBP

19、3.4L0:RET3) 寫數(shù)據(jù) MC ZLG500除響應(yīng)信號外,三根線上的信號全由MCU產(chǎn)生。MCU在SS線上產(chǎn)生一個下降沿,發(fā)出請求數(shù)據(jù)傳輸?shù)男盘枺却?ZLG500響應(yīng)后本次數(shù)據(jù)傳輸開始,ZLG500將在SCLK為高時讀取SDAT戯上的數(shù)據(jù),傳輸完畢后 MC應(yīng)在SS線上產(chǎn)生一個上升沿結(jié)束本次傳輸。寫數(shù)據(jù)的具體步驟可見表5.2 。表5.2 ZLG500A讀寫模塊寫數(shù)據(jù)步驟序號動作發(fā)出者動作動作接收者動作說明1MCUSDATA=1 SCLK=0 SS下 降沿ZLG500本次數(shù)據(jù)傳輸開始請 求2ZLG500SDATA上升沿MCU本次數(shù)據(jù)傳輸響應(yīng)3MCUSDATA串行數(shù)據(jù)ZLG500數(shù)據(jù)傳輸4MC

20、USCLK吐升沿、延時、下降沿ZLG500產(chǎn)生時鐘ZLG500讀數(shù)據(jù)5MCU重復(fù)動作3、4傳送N 8位ZLG500數(shù)據(jù)傳輸N字節(jié)6MCUSS吐升沿 SDATA=0 SCLK=0ZLG500本次數(shù)據(jù)傳輸結(jié)束傳輸過程中必須嚴格遵守以下時間要求: t17s , t214s , tH7s , tL9s , t3=任意F面是MCI向ZLG500寫入數(shù)據(jù)的子程序,為滿足上述時間要求,可通過加入空操作來實現(xiàn)。SPI_SEND:ANL P3,#0F7H 求DECR0SETBSDATACLR SCLKJB SDATA,$CLR SSMOVR5,#100DL33:MOVR6,#7DHDL44:JBSDATA,AS

21、DFDJNZ R6,DL44DJNZ R5,DL33AJMPSPI_SENDASDF:ANLP1,#0FDHSENDBYTE:NOPINCRONOPNOPMOV A,R0MOV R3,#8NOPNOPSENDBIT:NOPRLC AMOV SDATA,CNOPNOPSETB SCLK: NOP;恢復(fù)SS的輸出功能,傳輸開始請;發(fā)送數(shù)據(jù)的首地址;SADATA仍為高則等待;MCU等待SDATAD勺上升沿;STADA恢復(fù)輸出設(shè)置一個字節(jié)的位數(shù)發(fā)送數(shù)據(jù)位NOPCLR SCLKDJNZR3,SENDBITDJNZR2,SENDBYTESETBSS;本次數(shù)據(jù)傳輸結(jié)束CLRSDATANOPJB SS,$RE

22、T4) 讀數(shù)據(jù)ZLG500MCU響應(yīng)信號SCLK信號由MCU產(chǎn)生,SS信號和SDAT信號由ZLG500產(chǎn)生。ZLG500會在 SS線 上產(chǎn)生一個下降沿發(fā)出請求數(shù)據(jù)傳輸?shù)男盘?,等待MC響應(yīng)后本次數(shù)據(jù)傳輸開始,MCU將在SCLK為高時讀取SDATA線上的數(shù)據(jù),傳輸完畢后 ZLG500將會在SS線上產(chǎn)生一個上升沿結(jié) 束本次傳輸。讀數(shù)據(jù)的具體步驟可見表5.3表5.3 ZLG500A讀寫模塊讀數(shù)據(jù)步驟動作序號動作 發(fā)出者動作動作 接收者動作說明1ZLG500SDATA=1 SS下 降沿MCU本次數(shù)據(jù)傳輸開始請求2MCUSDATA上升沿ZLG500本次數(shù)據(jù)傳輸響應(yīng)3ZLG500SDATA串行數(shù)據(jù)MCU數(shù)據(jù)

23、傳輸4MCUSCLK=上升沿、延時、下降沿ZLG500MCI產(chǎn)生時鐘,且讀取數(shù) 據(jù)5雙方重復(fù)動作3、4傳送N8位雙方數(shù)據(jù)傳輸N字節(jié)6ZLG500SS=上升沿 ,SDATA=0MCU本次數(shù)據(jù)傳輸結(jié)束傳輸過程中必須嚴格遵守以下時間要求t114s, t216s, tH6s, tL6s, t39s下面是MCU從ZLG500讀取數(shù)據(jù)的子程序 作來實現(xiàn)。SPI_RCV:ORL P3,#08H ANL P1,#0FDH DECROCLR SCLKSETBSDATANOPORL P1,#02NOPNOPRCVBYTE:MOV R3,#8 INC R0RCVBIT:NOPNOPSETBSCLKNOPNOPMOV

24、 C,SDATA RLC A NOPNOPCLR,同理,為滿足上述時間要求,可通過加入空操;SS設(shè)置為輸入;SDATA設(shè)置為輸出;SDATA設(shè)置為輸入讀取一位SCLKNOPNOPDJNZR3,RCVBITMOV R0,A; 讀取的一個字節(jié)存入指定地址NOPNOPJNB SS,RCVBYTEANL P1,#0FDH; SDATA設(shè)置為輸出CLR SDATARET2.門禁機主控模塊上面我們對ZLG500A讀寫模塊的功能特性、接口規(guī)范和控制方式作了比較詳細地講解, 在此基礎(chǔ)上,可以進一步完成MCU寸ZLG500A的讀寫和控制,如果附加上周邊的輔助功能和 驅(qū)動控制,就可以形成一個完整的智能卡讀寫器。首

25、先,我們看一下 MCI部分的設(shè)計和控制的實現(xiàn)。 圖5.6是MCI控制框圖,從圖中可以 看出MCC除了完成對ZLG500A讀寫模塊的控制外,還要承擔(dān)其它功能的控制,主要包括四大 部圖6門禁機控制框圖分:鍵盤和顯示部分、實時時鐘和掉電保護部分、數(shù)據(jù)存儲和數(shù)據(jù)傳輸部分、 驅(qū)動控制部分。1) 鍵盤和顯示部分鍵盤和顯示是一般智能化儀器儀表均須具有的功能,是人機交互最主要的方式。不同的智能儀器,隨著其功能、MCC資源的占用、使用環(huán)境等各種條件的不同,可采用多種鍵盤和顯示方案。本應(yīng)用系統(tǒng)中,由于外圍部件較多,MCI資源占用較大,為了盡可能的減少MCU輸入輸出I/O的占用,鍵盤的設(shè)計采用串入并出的方式,禾U用

26、一片74LS164,占用MCU勺四根I/O 口,就可以實現(xiàn)16個鍵的全部功能。具體電路見圖 5.7 :串行口 IQ擴展的行列式鍵盤圖7串行口擴展的行列式鍵盤從系統(tǒng)監(jiān)控軟件的角度來看,僅僅完成鍵盤掃描,讀取當(dāng)前時刻的鍵盤狀態(tài)是不夠的, 還有不少問題需要解決,否則,在操作鍵盤時就容易引起誤操作、失控等現(xiàn)象。首先是去抖動處理。按鍵的觸點在閉合和斷開時均會產(chǎn)生抖動, 這時觸點的邏輯電平是 不穩(wěn)定的,如不妥善處理,將會引起按鍵命令的錯誤執(zhí)行或重復(fù)執(zhí)行。最常用的一種方法是軟件延時的方法來避開抖動階段,延時過程一般取10ms50 ms。其次是連擊的處理。當(dāng)按下某個鍵時,鍵盤處理程序便查找相應(yīng)的功能號,并轉(zhuǎn)到

27、相應(yīng)的功能模塊程序去執(zhí)行,如果這時操作者還沒有釋放按鍵,MCI就會反復(fù)執(zhí)行該按鍵對應(yīng)的功能,好像操作者在連續(xù)操作該鍵一樣。本系統(tǒng)中需要按鍵去改變系統(tǒng)的實時日歷,如果出現(xiàn)連擊現(xiàn)象,操作者就很難設(shè)定時間。 要解決連擊的問題最關(guān)鍵是一次按鍵只讓它響應(yīng)一次, 該鍵不釋放就不執(zhí)行第二次。為此要分別檢測到按鍵按下的時刻和釋放的時刻。有兩種程序結(jié)構(gòu)都可以解決連擊的問題,一是按下鍵盤就執(zhí)行, 執(zhí)行完成后等待操作者釋放按鍵,在末放前不再執(zhí)行指定的功能,從而避免了一次按鍵重復(fù)執(zhí)行的現(xiàn)象。二是在按鍵釋放后再執(zhí)行指定的功能,同時可以避免連擊,但與前一種相比,給人一種反應(yīng)遲鈍的感覺。具體采用哪 種結(jié)構(gòu),可根據(jù)實際情況而

28、定。關(guān)于鍵盤控制的具體編程,可參考有關(guān)的書籍和應(yīng)用說明,在此就不再說明。顯示是人與計算機系統(tǒng)打交道所必不可少的部分,本系統(tǒng)要求門禁在不打卡時具備顯 示當(dāng)前時間,打卡時顯示該卡卡號及打卡時間。為此,選用了具有有良好的顯示界面的圖形 點陣液晶顯示器。圖形點陣液晶顯示器分辨率較高,顯示出的結(jié)果非常細膩,且能夠顯示各種復(fù)雜圖形,為以后的擴展留下了余地。本系統(tǒng)所選擇的是 JG19264A圖形點陣液晶,圖5.8 為JG19264A的結(jié)構(gòu)框圖,弓I腳說明見表 5.4 。圖8 JG19264A圖形點陣液晶結(jié)構(gòu)框圖表4 JG19264A圖形點陣液晶引腳說明引腳符號電平說明1DB7H/L數(shù)據(jù)位72DB6H/L數(shù)據(jù)

29、位63DB5H/L數(shù)據(jù)位54DB4H/L數(shù)據(jù)位45DB3H/L數(shù)據(jù)位36DB2H/L數(shù)據(jù)位27DB1H/L數(shù)據(jù)位18DB0H/L數(shù)據(jù)位09EH,H L片使能信號10R/WH/LH:讀;L:寫11RSH/LH:數(shù)據(jù);L:指令12V0可調(diào)LCD驅(qū)動電壓,對比度調(diào)節(jié)13VDD5.0V電源電壓14VSS0V接地(GND)15CSBH/L片選信號,00,01,10分別對應(yīng)一片IC 的SEG 11三片均不選中16CSAH/L17VEE-10.0VLCD驅(qū)動負電源18RSTL復(fù)位信號,低有效19LED+背光正極20LED-背光負極JG19264A 液晶的分辨率為 192 X 64,該液晶的顯示內(nèi)核是 HD6

30、1202U與HD61203U其 中一片HD61203作為64路行驅(qū)動器,三片HD612031組成196點列的列驅(qū)動器組。 所以內(nèi)置 HD61202U圖形液晶顯示模塊的電路特性實際上是 HD61203U和HD61202U組合的電路特性。HD61203U是帶有振蕩器和顯示時序發(fā)生器的行驅(qū)動器。它具有64路行驅(qū)動輸出,但它的特點在于它本身帶有振蕩器和時序發(fā)生器,通過外接振蕩電阻電容使其上電后就以其設(shè)定的占空比系數(shù)1/N值開始行掃描工作;它可以自行完成行、 列驅(qū)動時序的生成及分配,自動進行行驅(qū)動的工作;同時向列驅(qū)動器輸出同步信號及顯示數(shù)據(jù)驅(qū)動所需的脈沖時序,控制列驅(qū)動器HD61202U的工作,所以我們

31、只用控制HD61202U就可以操作整個液晶模塊。HD61202U是帶顯示存儲器的圖形液晶顯示列驅(qū)動控制器。它的特點是內(nèi)置64 X 64位的顯示存儲器,顯示屏上各像素點的顯示狀態(tài)與顯示存儲器的各位數(shù)據(jù)對應(yīng),顯示存儲器的數(shù)據(jù)直接作為圖形顯示驅(qū)動信號。顯示數(shù)據(jù)為“1”,相應(yīng)的像素點顯示;顯示數(shù)據(jù)為“0”相應(yīng)的像素點就不顯示。同時HD61202U配備了一套顯示存儲器的管理電路和與計算機的連接口電路。HD61202U 一共可以有七條指令,從作用上可分為兩類。第一條和第二條指令為顯示狀 態(tài)設(shè)置類;其余指令為數(shù)據(jù)讀 /寫操作指令,見表5.5表5 HD61202U的指令一覽表。指令名稱控制信號控制代碼D/IR

32、/WD7 D6 D5 D4 D3 D2 D1 D0顯示開關(guān)設(shè)置000011111 D顯示起始行設(shè)置0011 L5 L4 L3 L2 L1 L0頁面地址設(shè)置0010111 P2 P1 P0列地址設(shè)置0001 C5 C4 C3 C2 C1 C0讀取狀態(tài)字01BUSY 0 on/off reset 00 00寫顯示數(shù)據(jù)10數(shù)據(jù)讀顯示數(shù)據(jù)11數(shù)據(jù)F面是各個指令的功能:(1)讀狀態(tài)字(Status Read )BUSY0ON/OFFRESET0000狀態(tài)字是計算機了解 HD61202 U當(dāng)前狀態(tài),或是 HD61202U向計算機提供其內(nèi)部狀態(tài)的 唯一信息渠道。狀態(tài)字為一個字節(jié),其中僅有3位有效位,它們是:

33、BUSY表示當(dāng)前 HD61202U接口控制電路運行狀態(tài)。BUSY=1表示HD61202U正在處理計算機發(fā)來的指令或數(shù)據(jù)。此時接口電路被封鎖,不能接受除讀狀態(tài)字外的任何操作。BUSY=0表示HD61202U接口控制電路已處于”準備好”狀態(tài),等待計算機的訪問。ON/OFF表示當(dāng)前 HD61202U的工作狀態(tài),即反映 RST端的電平狀態(tài)。當(dāng) RST為低電平 狀態(tài)時,HD61202U處于復(fù)位工作狀態(tài), REST=1 當(dāng)RST為高電平狀態(tài)時, HD61202U為正常 工作狀態(tài),RESET=0在指令設(shè)置和數(shù)據(jù)讀寫時要注意狀態(tài)字中的BUSY標志。只有在 BUSY=O時,計算機對HD61202U的操作才能有效

34、。因此計算機在每次對HD61202U操作之前,都要讀出狀態(tài)字判斷BUSY是否為” 0”。若不為” 0 ”,則計算機需要等待,直至BUSY=0止。計算機對HD61202U 操作的流程如圖5.9。圖9 HD61202U操作的流程(2)顯示開設(shè)置(Display on/off )0000000D該指令設(shè)置顯示開/關(guān)觸發(fā)器的狀態(tài),由此控制顯示數(shù)據(jù)鎖存的工作方式,從而控制顯示位為開/關(guān)的控制位。當(dāng) D=1為顯示設(shè)置,顯示數(shù)據(jù)鎖存器正常工作,顯示屏上呈現(xiàn)所需 的顯示效果。此時在狀態(tài)字中ON/OFF=1當(dāng)D=0為關(guān)顯示設(shè)置,顯示數(shù)據(jù)鎖存器被置零,顯示存儲器并沒有被破壞,在狀態(tài)字中ON/OFF=0(3)顯示起

35、始行設(shè)置(Display Start Line )11L5L4L3L2L1L0該指令設(shè)置了顯示起始行寄存器的內(nèi)容。HD61202U有 64行顯示的管理能力, 該指令中L5L0顯示起始行的地址,取值在 0 3FH (164 行)范圍內(nèi),它規(guī)定了顯示屏上最頂一行所對應(yīng)的顯示存儲器的內(nèi)容,則顯示屏將呈現(xiàn)顯示內(nèi)容向上或向下平滑滾動的顯示效果。(4)頁面地址設(shè)置(Set Page (X address) )10111P2P1P0該指令設(shè)置了頁面地址:X地址寄存器的內(nèi)容。HD61202U將顯示存儲分成 8頁,指令代 碼中P2P0就是要確定當(dāng)前所要選擇的頁面地址,取值范圍為0007H,代表顯示第18頁。該指

36、令規(guī)定了以后的讀/寫操作將在哪一個頁面上進行。(5)列地址設(shè)置(Set Y address )01C5C4C3C2C1C0該指令設(shè)置了 Y地址計數(shù)器的內(nèi)容,C5C0=03F( 164)代表某一頁面上的某一單元地 址,隨后的一次讀或?qū)憯?shù)據(jù)將在這個單元上進行。Y地址計數(shù)器具有自動加 1功能經(jīng),在每一次讀/寫數(shù)據(jù)后它將自動加 1,所以在連續(xù)進行讀/寫數(shù)據(jù)時,Y地址計數(shù)器不必每一次都 設(shè)置一次。頁面地址的設(shè)置和列地址的設(shè)置將顯示存儲單元唯一確定下來,為后來的顯示數(shù)據(jù)的讀/寫作了地址選通。(6)寫顯示的數(shù)據(jù)( Write Display Data )10數(shù)據(jù)該操作將8位數(shù)據(jù)寫入先前已確定的顯示存儲器的單

37、元內(nèi)。操作完成后列地址計數(shù)器自動加一。(7)讀顯示的數(shù)據(jù)(Read Display Data )11數(shù)據(jù)該操作是將HD61202U接口部分的輸出到寄存器內(nèi)容讀出,然后列地址自動加一。本系統(tǒng)采用直接訪問式的接口方式,就是將液晶顯示模塊的接口作為存儲器或I/O設(shè)備直接掛在計算機總線上,計算機以訪問存儲器或I/O設(shè)備的方式操作液晶顯示模塊的工作。其具體的原理圖如圖 5.10所示:圖 5.10液晶與MCU接 口電路在圖中,MCUS過P2.6控制CSA P2.7控制CSB,以選通液晶顯示屏上各區(qū)的控制器HD61202U其關(guān)系如表5.6所示:表5.6液晶顯示屏控制關(guān)系CSACSBJG1926400左區(qū)01

38、中區(qū)10右區(qū)11末選另外,MCI的P2.1接液晶顯示模塊的 R/W用來控制數(shù)據(jù)總線的數(shù)據(jù)流向;用 P2.0接 液晶顯示模塊的 RS用來區(qū)分是數(shù)據(jù)還是指令;用 P2.4接液晶顯示模塊的 E,控制模塊的 使能;P0 口直接與液晶顯示模塊的雙向數(shù)據(jù)/地址端相連。為了加強 P0 口的驅(qū)動能力和減少外界的干擾,該口全部外接了上拉電阻。JG19264A的讀寫時序圖如圖 5.12所示,按照此時序編程,MCC即可對液晶實現(xiàn)正常的控制。圖12 JG19264A寫時序圖2)實時時鐘和掉電保護部分在門禁系統(tǒng)中,需要實時記錄出入數(shù)據(jù)(開門的卡號及其出現(xiàn)的時間)。若采用單片機軟件計時,一方面需要占用硬件計數(shù)器資源,另一

39、方面需要設(shè)置中斷、查詢等,耗費單片機的CPU資源。而在系統(tǒng)中采用實時時鐘芯片則能很好地解決這個問題。實時時鐘采用了美國 DALLAS公司推出的一種高性能、低功耗、帶RAM的DS1302芯片,它可以對年、月、日周日時、分、秒進行計時,且具有閏年補償功能,工作電壓2.55.5V。采用三線接口與 CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號 或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31X8的用于臨時性存放數(shù)據(jù)的RAMI寄存器。DS1302是DS1202的升級產(chǎn)品,與 DS1202兼容,但增加了主電源/后備電源雙電源引腳,同時提供了 對后備電源進行涓細電流充電的能力。下圖為DS1302的

40、管腳及內(nèi)部結(jié)構(gòu)圖:Vce t陽丨I用口門2倉腳;S&內(nèi)部皓叫圏圖13 DS1302的管腳及內(nèi)部結(jié)構(gòu)圖DS1302共有12個寄存器,其中有 7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式。此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與 RAM相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi) 容。DS1302與RAM相關(guān)的寄存器分為兩類,一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為 COHFD,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類 為突發(fā)方式下的 RAM寄存器,此方式下可一次性讀寫所有的RAM的 31

41、個字節(jié),命令控制字為FEH (寫八FFH (讀)。具體的參數(shù)見表 5.6 。76543210圖2控制j節(jié)的含過表5.6 DS1302寄存器參數(shù)表寄存器名命令字取值范圍各位內(nèi)容寫操作讀操作76543210秒寄存器80H81H00 59CH10SECSEC分鐘寄存器82H83H00 59010MINMIN小時寄存器84H85H01 12 或 00 2312/2401HRHR日期寄存器86H87H01 28 29 30 310010DATADATA月份寄存器88H89H01 120000MONTH周日寄存器8AH8BH01 0700000DAY年份寄存器8CH8DH00 9910YEARYEARDS

42、1302的控制字和數(shù)據(jù)讀寫時序見圖5.14 :SC1.KRSTIX)uumRnimmuwLiu圖3散抿讀寫時斥圖14 DS1302的控制字和數(shù)據(jù)讀寫時序控制字節(jié)的最高有效(位 7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到 DS1302 中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為 1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。DS1302的數(shù)據(jù)的寫入是在控制指令字輸入后的下一個SCLK寸鐘的上升沿,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個 SCLK脈沖的下降沿讀出 DS

43、1302 的數(shù)據(jù),讀出數(shù)據(jù)時從低位 0位至高位7,DS1302是通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供了終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中置RST為低電平,則會終止此次數(shù)據(jù)傳送,并且I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將 RST置為高電平。本系統(tǒng)實時時鐘模塊電路原理圖如圖5.15所示,MCI的 P1.2、P1.3分別與DS130

44、2的SCLK I/O相連,VCC2接主電源,VCC1接后備電源,出現(xiàn)掉電時自動轉(zhuǎn)入后備電源供電以 防時鐘出現(xiàn)停止情況。X1、X2接外部晶振。*5V鼻C28POOuFC13D2 IN4146XT232.76EU5DSI3O2VCC2VCC1XISCLKIQREST|MCUC10104 BATI圖5.15實時時鐘模塊電路原理圖MCU寸DS1302的讀寫控制主要包括 DS1302的初始化和讀取 DS1302的時間和日期,初 始化過程就是給 DS1302賦予初始的時間和日期,詳見子程序SET1302,當(dāng)實時時鐘芯片被啟動后, 在沒有接受到新的初始化指令情況下, 起內(nèi)部的時鐘將一直不停的運行, 從而保證

45、 時間的實時性和準確性;MCU在任何時候都可以通過讀取DS1302內(nèi)部時間和日期寄存器中的值而獲得準確的時間和日期,GET1302為時間和日期的讀取子程序。. *; 模塊名稱: DS1302.asm; 功 能:實時時鐘模塊;T_CLK Bit P1.2T_IO Bit P1.3T_RST Bit P3.6時鐘芯片型號: DS1302;子程序名:Set1302;功能:設(shè)置 DS1302 初始時間 , 并啟動計時。;說明;調(diào)用: RTInputByte;入口參數(shù):初始時間在 :Second,Minute,Hour,Day,Month,Week.YearL(地址連續(xù) );返回值:無;實時時鐘時鐘線引腳;實時時鐘數(shù)據(jù)線引腳;實時時鐘復(fù)位線引腳. *;影響資源: A

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論