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

正文內(nèi)容

多功能電子密碼鎖設(shè)計(jì)報告-wenkub

2023-05-26 14:07:58 本頁面
 

【正文】 的密碼顯示效果能力,本設(shè)計(jì)的顯示部分由液晶顯示器LCD1602 取代普通的數(shù)碼管來完成 ,用戶能通過 LCD 的各種提示進(jìn)行各種相應(yīng)的操作,簡單易行。 判斷鍵盤中哪一個鍵被按下使通過將列線逐列置低電平后,檢查行輸入狀態(tài)來實(shí)現(xiàn)的。 對照上圖所示的鍵盤,說明線反轉(zhuǎn)法工作原理。在這種行列式矩陣鍵盤非鍵盤編碼的單片機(jī)系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認(rèn)有無按鍵按下的程序段。 二、設(shè)計(jì)總框圖 圖一:總體設(shè)計(jì)框圖 本設(shè)計(jì)主要由單片機(jī)、矩陣鍵盤、液晶顯示器和語音電路等部分組成。對 P3 口寫入 “1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。在訪問 8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行 MOVX RI 指令)時, P2 口輸出 P2 鎖存器的內(nèi)容 。作輸入口使用時,因?yàn)閮?nèi)部存在上拉 電阻,某個引腳被外部信號拉低時會輸出一個電流 (IIL)。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口 線分時轉(zhuǎn)換地址(低 8 位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。另外,可以用語音發(fā)聲芯片發(fā)出相應(yīng)的提示信息。 關(guān)鍵詞: STC89C52, ISD1760, 4 4 矩陣鍵盤 ,LCD 液晶顯示器 , 密碼鎖。 本文從經(jīng)濟(jì)實(shí)用的角度出發(fā),采用單片機(jī) STC89C52 作為主控芯片與數(shù)據(jù)存儲器單元,用 C 語言編寫的主控芯片控制程序,并用 Keil 軟件進(jìn)行編譯。若使用傳統(tǒng)的機(jī)械式鑰匙開鎖,人們常需攜帶多把鑰匙 , 使用極不方便 , 且鑰匙丟失后安全性即大打折扣。隨 著科學(xué)技術(shù)的不斷發(fā)展,人們對日常生活中的安全保險器件的要求越來越高。本系統(tǒng)由單片機(jī)系統(tǒng)、矩陣鍵盤、 LCD 顯示和報警系統(tǒng)組成。 二、 課題內(nèi)容及要求 使用單片機(jī) STC89C52 作為主芯片,采用 LCD 液晶顯示, 4 4 的矩形鍵盤輸入電子密碼鎖,能夠?qū)崿F(xiàn)修改密碼,糾錯,確認(rèn)等功能。 第二部分:硬件設(shè)計(jì)部分 一、 STC89C52 介紹: STC89C52 是一個低電壓,高性能 CMOS8 位 單片機(jī) ,片內(nèi)含 8k bytes 的可反復(fù)擦寫的 Flash 只讀程序存儲器和 256 bytes 的隨機(jī)存取數(shù)據(jù)存儲器,器件采用 ATMEL 公司 的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn) MCS51 指令系統(tǒng),片內(nèi)置通用 8 位中央處理器和 Flash 存儲單元, STC89C52 單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用 。 3 在 Flash 編程時, P0 口接收指令字節(jié),而在程序校驗(yàn)時,輸出指令字節(jié),校驗(yàn)時,要求外接上拉電阻。 P2 是一個帶有內(nèi)部上拉電阻的 8 位雙向 I/O 口, P2 的輸出緩沖級可驅(qū)動(吸收或輸出電流) 4 個 TTL 邏輯門電路。 Flash 編程或校驗(yàn)時, P2 亦接收高位地址和一些控 制信號。此時,被外部拉低的 P3 口將用上拉電阻輸出電流( IIL) , P3 口除了作為一般的 I/O 口線外,更重要的用途是它的第二功能 ,P3 口還接收一些用于 Flash 閃速存儲器編程和程序校驗(yàn)的控制信號。其中矩陣鍵盤用于輸入數(shù)字密碼和進(jìn)行各種功能的實(shí)現(xiàn)。 矩陣式結(jié)構(gòu)的鍵盤顯然要比直接法需要更多的器件,識別軟件的設(shè)計(jì)也要更復(fù)雜些。 首先辨別鍵盤中有無鍵按下,有單片機(jī) I/O 口 向鍵盤送全掃描字,然后讀入行線狀態(tài)來判斷。方法是:依次給列線送低電平,然后查所有行線狀態(tài),如果全為 1,則所按下的鍵不在此列;如果不全為 1,則所按下的鍵必在此列,而且是在與零電平行線相交的交點(diǎn)上的那個鍵。 LCD1602 管腳為: 編號 符號 引腳說明 編號 符號 引腳說明 1 VSS 電源地 9 D2 Data I/O 2 VDD 電源正極 10 D3 Data I/O 3 V0 液晶顯示偏壓信號 11 D4 Data I/O 4 RS 數(shù)據(jù) /命 令選 擇 端( H/L) 12 D5 Data I/O 5 R/W 讀寫選擇端( H/L) 13 D6 Data I/O 6 E 使能信號 14 D7 Data I/O 7 D0 Data I/O 15 BLA 背光源正極 8 D1 Data I/O 16 BLK 背光源負(fù)極 該模塊工作時, 通過單片機(jī)的 P1 口進(jìn)行控制,送數(shù)據(jù)時,先寫入高四位數(shù)據(jù),然后在寫入第四位數(shù)據(jù)。 ,用 waveK51/L 仿真器對其進(jìn)行仿真調(diào)試, 發(fā)現(xiàn)了部分程序漏洞和錯誤并及時排除,并在一定程度上修改了程序,達(dá)到最良好地效果。積累實(shí)踐經(jīng)驗(yàn),為以后的發(fā)展打下基礎(chǔ),也為以后我們自己在這方面的發(fā)展打下基礎(chǔ),并能夠在這方面 培養(yǎng)自己的興趣,不僅鞏固了以前學(xué)到的知識,而且 學(xué)到了很多在書本上所沒有學(xué)到過的知識 。在此,向老師們的辛勤勞動表示感謝! 總之,本次設(shè)計(jì)讓我們受益匪淺,讓我們的大學(xué)生活更加精彩! 四、參考文獻(xiàn) 《 ISD1700 系列數(shù)碼語音電路使用手冊》 華邦公司 《單片機(jī)原理及應(yīng)用》 清 華大學(xué)出版社 印勇等著 20xx 《 LCD1602 使用手冊》 長沙太陽人有限公司 15 五、 程序清單 include include define lcd P0 define uchar unsigned char define uint unsigned int define KeyPort P2 sbit rs=P3^5。 sbit led2=P3^6。 sbit MISO=P1^7。 uchar ISD_SendData(uchar BUF_ISD)。 uchar data correct_code2[]={1,1,1,1,1,1}。 uchar data number1[6]={0}。 uchar code message[]=you have message 。 uchar code admi_mode[]= admini mode 。 uchar code dig[]=Code Must 6 Dig 。 16 uchar code simple[]= Too Simple 。 uchar code success[]= Successful 。 uchar code codesmall[]=code is SMALL 。 uchar code mes1[]=first message 。 void delay(uint z) {uint x,y。x0。EndAdr=0x001f。EndAdr=0x0034。EndAdr=0x004d。EndAdr=0x0078。EndAdr=0x008e。EndAdr=0x00b8。EndAdr=0x00ca。EndAdr=0x00dc。EndAdr=0x0104。EndAdr=0x0121。EndAdr=0x0139。EndAdr=0x0158。EndAdr=0x0169。EndAdr=0x0173。EndAdr=0x0190。EndAdr=0x01a7。// RESET ISD_SendData(0x00)。// pu ISD_SendData(0x00)。// WR_APC ISD_SendData(0x08)。 statu=0。 statu=ISD_SendData(0x00)。// SETPLAY ISD_SendData(0x00)。 ISD_SendData(EndAdramp。 SS=1。 // SS=1。 statu=ISD_SendData(0x00)。 SS=1。} else if(num==0x02){StartAdr=0x0031。 SS=1。 SS=1。 ISD_SendData(0x04)。 while((statuamp。 // SS=1。 ISD_SendData(StartAdramp。0x00ff)。 ISD_SendData(0x05)。 while((statuamp。 // SS=1。 } */ void I_delay(void) { uchar i。 } uchar ISD_SendData(uchar BUF_ISD) { uchar i,dat=BUF_ISD。i8。0x01) { MOSI=1。 } SCLK=1。 return(dat)。tt1) { beep=0。 beep=1。 } } void write_(uchar ) { P0=。 lcden=1。 rs=1。 delay(5)。 first=dat%10。 write_date(0x30+first)。 } void write_nyr(uchar add,uchar dte) { uchar shi,ge。 delay(1000)。 write_date(0x30+ge)。 //去抖 if(KeyPort!=0xf0) { //表示有按鍵按下 KeyPort=0xfe。 while(KeyPort!=0xfe)。 22 } KeyPort=0xfd。 while(KeyPort!=0xfd)。 } KeyPort=0xfb。 while(KeyPort!=0xfb)。 } KeyPort=0xf7。 while(KeyPort!=0xf7)。 } } } return 0xff。break。break。break。break。break。break。break。break。 write_(0x80)。 tab++。i16。 uchar bb。 if(bb==1) c1++。 else return 0。k++) { if(correct_code[k]!=save_code[k]) //對數(shù)組中的內(nèi)容進(jìn)行逐一比較,一旦有數(shù)據(jù)不對馬上退出循環(huán) { break。 } // /*************密碼刪除最后一位 *************/ void delete() { if(j0) { display1(clear)。//各種變量要清零回起始狀態(tài) flag=0。 } /*************復(fù)位部分 *************/ void reset() { uchar num。 //對輸入的數(shù)值進(jìn)行清零 save_code1[num]=0。 } void enter_code(uchar t) { beep_(15000,1)。 display1(clear)。)。*39。 if(t=0amp。 write_(0x80+0)。 } else if(j6) { i3++。)。 m=KeyPro()。amp。amp。amp。 while(1) { display1(old_code)。 27 i3=0。 } enter_code(m)。 Play(0x04)。 display1(error_code)。 if(counter==3) { beep_(15000,4)。 counter=0。 display1(new_code)。 j=0。 }
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1