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

正文內(nèi)容

基于單片機(jī)的密碼鎖設(shè)計(jì)_課程設(shè)計(jì)報(bào)告(更新版)

  

【正文】 r(i=4。i++) { 第 30 頁(yè) write_12864dat(table3[i])。 } write_12864(0x92)。 delaynus(5)。 第 29 頁(yè) } /************************************************************************ 函數(shù)功能: 在液晶上顯示星期位 *******************************************************************************/ void displayxingqi(uchar x) { uint i,j,n,m。 delaynus(5)。 write_12864dat(digit[j])。 write_12864dat(digit[i])。 write_12864(0x9c)。 write_12864(0x9e)。 delaynus(200)。 e=0。 e=0。 writeset1302(0x90,0xa5)。0x80) { //判斷時(shí)鐘芯片是否關(guān)閉 writeset1302(0x8E,0x00)。 write1302(cmd)。 delaynus(2)。 } /*******************************************************************8 函數(shù)功能:從 DS1302 中讀取一個(gè)字節(jié)數(shù)據(jù) /*********************************************************************/ uchar read1302(void) { uchar i,dat。 第 24 頁(yè) } } /*********************************************************************** 函數(shù)功能: 向 DS1302 在寫入命令的情況下寫入一個(gè)字節(jié)數(shù)據(jù) 入口參數(shù):命令: cmd 數(shù)據(jù): dat ***********************************************************************/ void writeset1302(uchar cmd ,uchar dat) { RST=0。i8。in。 // sbit deng=P2^7。 // sbit psb=P2^7。 uchar table3[]=年月日時(shí)分秒周 。 } return(key)。break。 temp=P1。break。0xf0。break。 if(temp!=0xf0) { temp=P1。 temp=tempamp。break。 第 20 頁(yè) uchar keyscan() { uchar temp。 writecmd(0x30)。 pos=X+Y。 EN=1。 EN=1。i) for(j=110。 }*/ 液晶顯示子程序 include include define uint unsigned int define uchar unsigned char sbit RS=P3^5。 } } void readpage(uchar addr,uchar temp[],uchar n) //讀出若干字節(jié) { uchar i。 delayms(50)。 start()。 } 第 17 頁(yè) uchar refrrom(uchar addr) //從地址 addr 中讀出數(shù)據(jù) { uchar i。 writebyte(addr)。 SCL=0。 SCL=0。 else 第 16 頁(yè) SDA=0。 CY=SDA。 SDA=0。 delaynp()。 void delayms(unsigned int xms)。在這過(guò)程中遇到了很多問(wèn)題,所以在這里也要真誠(chéng)的感謝老師和同學(xué)們的幫助。而密碼鎖則是每個(gè)模塊逐個(gè)調(diào)試,調(diào)試好了再連在一起總調(diào)。 軟件設(shè)計(jì): 本次設(shè)計(jì)因考慮到需要實(shí)物實(shí)現(xiàn)的功能較多,所需要的模塊較多,程序比較復(fù)雜,所以運(yùn)用模塊化編程的方式來(lái)編寫程序。 硬件電路設(shè)計(jì) AT89C52 顯示模塊 報(bào)警電路 時(shí)鐘模塊 密碼存儲(chǔ)模塊 復(fù)位電路 鍵盤輸入模塊 第 7 頁(yè) 按鍵模塊 為的 4*4矩陣鍵盤, 8個(gè)端 連接到單片機(jī)的 P1口,實(shí)現(xiàn)時(shí)間調(diào)整和各功能的選擇??梢燥@示 8 4 行 16 16 點(diǎn) 陣的漢字 . 也可完成圖形顯示 .低電壓低功耗是其又一顯著特點(diǎn)。這些輸入腳用于多個(gè)器件級(jí)聯(lián)時(shí)設(shè)置器件地址,當(dāng)這些腳懸空時(shí)默認(rèn)值為 0。 第 4 頁(yè) AT89C52 有 40 個(gè)引腳, 32 個(gè)外部雙向輸入 /輸出( I/O)端口,同時(shí)內(nèi)含 2 個(gè)外中斷口, 3 個(gè) 16位可編程定時(shí)計(jì)數(shù)器 ,2個(gè)全雙工串行通信口, 2 個(gè)讀寫口線, AT89C52 可以按照常規(guī)方法進(jìn)行編程 ,但不可以在線編程 (S 系列的才支持在線編程 )。但當(dāng)時(shí)多半是配合機(jī)械鎖一起作用且存在著諸如體積較大,成本較高,可靠性較低等缺點(diǎn)一時(shí)難以普及?,F(xiàn)在應(yīng)用較廣的電子密碼鎖是以芯片為核心,通過(guò)編程來(lái)實(shí)現(xiàn)的。傳統(tǒng)的機(jī)械鎖由于其構(gòu)造的簡(jiǎn)單, 被撬的事件屢見(jiàn)不鮮,且人們常需攜帶多把鑰匙 , 使用極不方便 , 一旦鑰匙丟失安全性即大打折扣。 第 3 頁(yè) 2 方案論證: ( 1) 現(xiàn)今常見(jiàn)的密碼鎖設(shè)計(jì)方案一種是中規(guī)模集成電路控制的方案,對(duì)于采用集成電路控制的方案,其中的編碼電子鎖電路分為編碼電路、控制電路、復(fù)位電路、解碼電路、防盜報(bào)警電路、門鈴電路,而電子鎖主要由輸入元件、電路 (包括電源 )以及鎖體三部分組成。并且它是采用 I2C 總線式進(jìn)行數(shù)據(jù)讀寫的串行操作,只占用很少的資源和 I/O 線。如果 WP 管腳連接到 Vcc,所有的內(nèi)容都被寫保護(hù),只能讀。首先是選擇功能, 選擇萬(wàn)年歷或者密碼鎖功能。按鍵 E 為確認(rèn)鍵,輸入密碼的過(guò)程中,當(dāng)輸入的數(shù)夠六位以后,按下該鍵確認(rèn)即可。 ,經(jīng)用萬(wàn)用表檢測(cè)后,發(fā)現(xiàn)任一按鍵當(dāng)按下時(shí),連接行的四個(gè)端口均全部置 0. 不能讀出相應(yīng)鍵值。只要去做,只要去學(xué),只要肯下功夫?qū)W,沒(méi)有完不成的事!別人做的我們一樣能做。 while(1) { system_start()。 _nop_()。 delaynp()。 delaynp()。 } void writebyte(uchar temp) //寫一個(gè)字節(jié) { uchar count=8。 delaynp()。 SCL=1。 } return(rebyte)。 writebyte(temp)。 //偽寫 check()。 while(flag)。 uchar *p。 for(i=0。 //sbit dula=P2^6。 } void writecmd(uchar cmd) //寫命令 { RS=0。 } void writedat(uchar dat) //寫數(shù)據(jù) { RS=1。 } void lcd_pos(uchar X,uchar Y) 第 19 頁(yè) { uchar pos。 while(*p) { writedat(*p)。 delayms(5)。 temp=tempamp。 case 0xbe:key=2。 } } P1=0xfd。 case 0xdd:key=5。0xf0。 switch(temp) { case 0xeb:key=8。 } while(temp!=0xf0) { temp=P1。 if(temp!=0xf0) { delayms(10)。 case 0x77:key=15。 temp=P1。 //s=P20。 // SCLK=P1^0。 for(i=0。j)。 delaynus(2)。 delaynus(2)。 for(i=0。 } return dat。 RST=0。 //根據(jù)寫分寄存器命令字,寫入分的初始值 writeset1302(0x84,((21/10)4|(21%10)))。 rs=0。 rs=1。 write_12864(0x30)。 write_12864(0x06)。 write_12864dat(digit[j])。 delaynus(5)。 } /************************************************************************ 函數(shù)功能: 在液晶上顯示日位 *******************************************************************************/ void displayday(uchar x) { uint i,j。 i=x/10。 j=x%10。 write_12864(0x98)。 write_12864(0x80)。i++) { write_12864dat(table2[i])。 //月 for(i=2。 delaynus(50)。i10。 } write_12864(0x88)。 //分別儲(chǔ)存苗、分、小時(shí),日,月,年 uchar valuedat。 displaysecond(second)。0x70)4)*10+(valuedatamp。 valuedat=readset1302(0x89)。0x0f)。 if(key!=11) { writecmd(0x01) 。 uchar fail_count。 void input_key()。 lcd_dis(2,j, )。 fail_count=0。 } } void password_error() //密碼錯(cuò)誤 { 第 34 頁(yè) fail_count++。 if(enter_flag) { password_right()。 speaker()。amp。 } if(key==15) { password_back()。 lcd_dis(1,0,請(qǐng)輸入舊密碼: )。 input_key()。 input_key()。 key_function()。 lcd_dis(1,0,密碼錯(cuò)誤?。?! )。 if(key==13) { writecmd(0x01)。 //writepage(0,original_password,6)。 input_key()。 }
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1