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

正文內(nèi)容

基于單片機的門禁系統(tǒng)設(shè)計(編輯修改稿)

2024-07-21 15:56 本頁面
 

【文章內(nèi)容簡介】 DCE)之間串行二進制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”,它是在1970年由美國電子工業(yè)協(xié)會聯(lián)合貝爾統(tǒng)統(tǒng)、調(diào)制解調(diào)器廠家及計算機終端生產(chǎn)廠家共同指定的用于串行通訊的標(biāo)準(zhǔn)。因為讀卡器采用RS232通信,所以要在單片機的UCSRA口擴展RS232轉(zhuǎn)換電路。本系統(tǒng)采用SIPEX公司的SP232ACP芯片。它具有以下特點:l 工作于+5 V單電源l 對所有的RS232協(xié)議和ITU l l 高數(shù)據(jù)速率 — 負(fù)載時速率可達120Kbpsl 低功耗CMOS — 工作電流為3mAl 無需外部電容 l 低功耗關(guān)斷l(xiāng) 增強型ESD保護SP232芯片的引腳圖如圖35所示:圖35 SP232引腳圖UNLK端口接單片機的口,通過單片機編程實現(xiàn)開鎖動作。74HC14是集電極開路具有緩沖型反相器,接收并產(chǎn)生標(biāo)準(zhǔn)的TTL信號??梢圆灰?guī)則信號轉(zhuǎn)換成穩(wěn)定規(guī)則的輸出信號。連接單片機的口對其提供反向操作。圖36為開鎖原理圖圖36 開鎖電路(1)指示燈指示信號燈由兩個LED燈構(gòu)成。綠色的燈為電源指示信號,表示系統(tǒng)處于待機就緒狀態(tài)。當(dāng)有非法卡進入感應(yīng)區(qū),紅色指示燈常亮起警示作用。(2)報警電路報警電路時在門禁系統(tǒng)出現(xiàn)意外狀況時啟用,即當(dāng)有卡進入感應(yīng)區(qū)是,若遇到非法卡時將發(fā)出報警聲。報警電路如圖37所示。 圖37 報警電路(3)LCD輸出顯示模塊終端設(shè)備使用CA12864K型號的LCD液晶顯示器作為輸出設(shè)備。CA12864K 是一款帶中文字庫的圖形點陣模塊,由動態(tài)驅(qū)動方式驅(qū)動12864 點陣顯示。低功耗,供應(yīng)電電壓范圍寬。有自動復(fù)位(RESET)功能。內(nèi)含多功能的指令集,可完成繪圖及文字畫面混合顯示等功能,操作簡易[15]。它的主要特性如下:l 提供8位,4位及串行接口可選l 64*14位字符顯示RAMl 2M位中文字型ROM,總共提供8192個中文字型l 16K位半寬字型ROM,總共提供126個西文字型l 64*14位字符產(chǎn)生RAMl 15*16位總共240點的ICON RAMCA12864K型LCD液晶顯示器的引腳圖如圖38所示:圖38 LCD顯示器引腳圖各引腳的功能如表32所示表32 LCD顯示器引腳功能表管腳名稱符號電平功能描述1VSS 0V接地(GND)2VDD電源電壓3V0負(fù)壓液晶顯示器驅(qū)動電壓調(diào)節(jié)端4RSH/L并口模式寄存器選擇 H:數(shù)據(jù);L:指令5R/WH/L并口模式 H:讀; L;寫6EH/L并口:讀/寫起始腳7到10DB0到DB3H/L數(shù)據(jù)總線低4位,4位并口時懸空11到14DB4到DB7H/L數(shù)據(jù)總線高4位15PSBH/LH:8/4位數(shù)據(jù)接口模式L:串行接口模式由硬件設(shè)置時,此腳懸空16NCH/L懸空17RESH/L復(fù)位信號,選擇硬件復(fù)位時,此腳懸空18VOUT負(fù)壓液晶顯示器驅(qū)動電壓19BLA5V背光正20BLK0V背光負(fù)系統(tǒng)的硬件原理圖如圖39所示:圖39 系統(tǒng)硬件原理圖4 軟件設(shè)計本系統(tǒng)的軟件設(shè)計包括基于ATmega16單片機的主控設(shè)備的流程圖以及主程序的編寫,基于RFM12無線傳輸模塊的通信協(xié)議以及編程,用Visual Basic語言設(shè)計開發(fā)人機界面。 主控設(shè)備的軟件設(shè)計ATmega16單片機的工作流程是當(dāng)沒有卡片進入讀卡區(qū)時,信號指示燈綠燈常亮,表示門禁系統(tǒng)處于待機狀態(tài),LCD顯示當(dāng)前時間以及歡迎觀臨。當(dāng)讀卡器感應(yīng)到有卡進入讀卡區(qū)后會把讀取的相應(yīng)的數(shù)據(jù)通過串口發(fā)送給單片機,單片機正確的讀到數(shù)據(jù)以后就會通過無線模塊發(fā)送到PC機,PC機把這個數(shù)據(jù)和數(shù)據(jù)庫中的合法信息比對,做出判斷后返回一個結(jié)果給單片機。如果該數(shù)據(jù)是合法的,單片機執(zhí)行一個開鎖命令,并且通過LCD顯示“ 請進”。如果數(shù)據(jù)是非法的,蜂鳴器報警,警告信號燈紅燈閃爍,LCD顯示 “對不起”。綜上ATmega16單片機的程序包括串口中斷子程序,無線傳輸子程序,及LCD顯示程序。圖41為程序的主流程圖。開始系統(tǒng)初始化讀取門禁號監(jiān)控門禁信號有卡進入感應(yīng)區(qū)?N門禁狀態(tài)異常?Y報警NY卡號合法?Y讀卡號圖41 主流程圖 單片機初始化設(shè)置include util/ include avr/ include util/include avr///include //宏定義define uc unsigned char define LCD_DIR DDRDdefine LCD_PORT_OUT PORTDdefine LCD_PORT_IN PIND、define RFID_START 0x10define RFID_ADDR 0xFFdefine READ_BLOCK 0x52uc rfid_rdata[20]。uc rfid_rcount。//函數(shù)聲明 void Decode_numeral(uc figure)。 void Lcd_Wcmd(uc cmd)。 void Lcd_Wdat(uc data)。 //////////////////////////////////////////////////////////定義I/O輸出端口define RST 4define RST_H() PORTB |= (1 RST)define RST_L() PORTB amp。= ~(1 RST)define RS 5define RS_DATA() PORTB |= (1 RS)define RS_INSTRUCTION() PORTB amp。= ~(1 RS)define RW 6define RW_READ() PORTB |= (1 RW)define RW_WRITE() PORTB amp。= ~(1 RW)define EN 7define EN_H() PORTB |= (1 EN)define EN_L() PORTB amp。= ~(1 EN)define M_DIR 6//定義全局變量uc numeral_hour_counter=20。uc numeral_second_counter=00。uc numeral_minute_counter=01。uc BCD_code[6]。uc int lock_number。/******************************************************** * 函數(shù)名稱:MCU_Init * * 入口參數(shù):N/A * * 返回參數(shù):N/A * * 函數(shù)說明:初始化MCU寄存器 * *******************************************************/ void MCU_Init(void){ DDRA = 0xFF。 DDRB = 0xFF。 DDRC = 0xC0。 LCD_DIR = 0xFF。 PORTA = 0xFF。 PORTB = 0x00。 PORTC |= 0xC0。 LCD_PORT_OUT = 0xFF。}在讀取讀卡器的數(shù)據(jù)時需要用到ATmega16單片機通用同步和異步串行接收器和轉(zhuǎn)發(fā)器(USART) 的功能,它是一個高度靈活的串行通訊設(shè)備。USART 支持4 種模式的時鐘: 正常的異步模式,倍速的異步模式,主機同步模式,以及從機同步模式。USART 控制位UMSEL和狀態(tài)寄存器C (UCSRC) 用于選擇異步模式和同步模式。倍速模式( 只適用于異步模式) 受控于UCSRA 寄存器的U2X。使用同步模式 (UMSEL = 1) 時,XCK 的數(shù)據(jù)方向寄存器(DDR_XCK)決定時鐘源是由內(nèi)部產(chǎn)生(主機模式)還是由外部生產(chǎn)(從機模式)。僅在同步模式下XCK 有效。本設(shè)計中采用外[鍵入文檔的引述或關(guān)注點的摘要。您可將文本框放置在文檔中的任何位置??墒褂谩拔谋究蚬ぞ摺边x項卡更改重要引述文本框的格式。]部中斷T0定時掃描,檢測有否數(shù)據(jù)讀進[16]。串口通信子程序主要負(fù)責(zé)將讀卡器里的數(shù)據(jù)通過串口讀取出來。圖42為串口接收狀態(tài)時流程圖,圖43為串口發(fā)送狀態(tài)時的流程圖。串口初始化等待接收數(shù)據(jù) NRXC=1?Y 讀接收緩沖器數(shù)據(jù)接收完畢42 串口接收流程圖 串口初始化等待發(fā)送緩沖器為空寫數(shù)據(jù)到發(fā)送緩沖器中數(shù)據(jù)發(fā)送結(jié)束YNTXC=1? 圖43 串口發(fā)送流程圖串口通信的子程序如下:/******************************************************** * 函數(shù)名稱:USART_INIT( ) * 入口參數(shù):N/A * 返回參數(shù):N/A * 函數(shù)說明:出刷串口 *******************************************************/ void USART_INIT(void){ UCSRB |= 0x18。 //時能接收發(fā)送器 UCSRB amp。= 0x04。 UCSRC |= 0x86。 UBRRL = 0x17 。 //設(shè)置波特率為19200,數(shù)據(jù)格式為8位數(shù)據(jù),無奇偶校驗,1位停止位 } /******************************************************** * 函數(shù)名稱:get_char() * * 入口參數(shù):N/A * * 返回參數(shù):a * * 函數(shù)說明:串口接收一個字符 * *******************************************************/ uc get_char(void){ uc a。 while(UCSRAamp。0x80) { UDR = a 。 while(UCSRAamp。0x80)) { } }} /******************************************************** * 函數(shù)名稱:put_char() * * 入口參數(shù):a * * 返回參數(shù):N/A * * 函數(shù)說明:串口發(fā)送一個字符 * *******************************************************/ void put_char(uc a){ while(~(UCSRAamp。0x40)) { UDR = a。 } while(UCSRAamp。0x40) { }} /******************************************************** * 函數(shù)名稱:put_str() * * 入口參數(shù):* pstr * * 返回參數(shù):N/A * * 函數(shù)說明:串口發(fā)送一個字符串 * *******************************************************/ void put_str(const char* pstr)//輸出字符串{ while(39。\039。 != *pstr) { get_char(*pstr++)。 }}/******************************************************** * 函數(shù)名稱:rfid_rblock_eb() * * 入口參數(shù):N/A * * 返回參數(shù):N/A * * 函數(shù)說明:讀RFID數(shù)據(jù) * *******************************************************/ void rfid_rblock_eb(void)//讀塊數(shù)據(jù){ uc i。 put_char(RFID_START)。 put_char(RFID_ADDR)。 put_char(READ_BLOCK)。 put_char(1)。 //塊號1 rfid_rdata[0] = get_char()。 rfid_rdata[1] = get_char()。 rfid_rdata[2] = get_char()。 rfid_rcount = rfid_rdata[2] + 3。
點擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1