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

正文內(nèi)容

基于單片機的電子密碼鎖設(shè)計論文(文件)

2024-07-17 15:15 上一頁面

下一頁面
 

【正文】 使用16個按鍵輸入,為減少鍵盤與單片機接口時所占用的I/O線的數(shù)目,故使用矩陣鍵盤。1234567890輸入密碼確認(rèn)更改密碼CBA 圖4 矩陣鍵盤設(shè)計電路圖 本設(shè)計中,顯示電路采用1602A液晶顯示器顯示[7]。 AT24C02是一個2K位串行CMOS E2PROM,內(nèi)部含有256個8位字節(jié), 含一個16字節(jié)頁寫緩沖器,具有寫保護功能。 圖7 AT24C02掉電存儲單元設(shè)計圖 聲光提示報警電路 報警提示電路 報警提示電路采用小蜂鳴器提示。本次設(shè)計中,基于節(jié)省成本考慮,用發(fā)光二極管代替電磁鎖,信息通過LCD顯示,并利用蜂鳴器和二極管聲光指示。 主程序模塊 主程序主要用于定義全局變量,給全局變量賦初值,啟動定時器,為整個程序提供數(shù)據(jù);檢測按鍵;調(diào)用顯示等功能。輸入密碼核對鍵盤鎖定,開啟報警電路開鎖,燈亮,可密碼修改NY復(fù)位 圖11 密碼輸入和比較判決流程圖 密碼修改模塊 在密碼輸入正確情況下,可以按下“重置密碼”對密碼進行重新設(shè)置,每設(shè)定一位就將密碼送給AT24C02存儲起來,當(dāng)設(shè)置6位密碼完畢后,系統(tǒng)將自動跳到程序開始,調(diào)用新設(shè)置的密碼。開始延時去抖動計算輸入鍵值鍵值送入單片機有按鍵輸入?有按鍵輸入?有按鍵輸入?返回NNYY 圖13 鍵盤掃描流程圖 1602A液晶顯示模塊 此模塊包括液晶初始化、命令的輸入、顯示數(shù)據(jù)的輸入。在這次設(shè)計中,我深刻認(rèn)識到自身的不足——專業(yè)知識不足,缺少實戰(zhàn)經(jīng)驗。但是,基本成功實現(xiàn)了1602 液晶顯示, 密碼開鎖, 密碼設(shè)置, 防止多次試探, 報警等功能。同時感謝曾經(jīng)孫妍,張凱,朱俊,陳衛(wèi)峰等多位老師的專業(yè)課的講授,才有學(xué)生今日的設(shè)計成果。void RdFromROM(uchar Address,uchar Data[],uchar Num)。extern uchar passwd[5]。 RdFromROM(0x00,passwd,5)。void write_(uchar )。uchar code tab1[]={ERROR!}。uchar code tab5[]={Input new codes:}。uchar te[9]={0} 。}void delaynms(uchar n) //延時50*n毫秒{ uchar a,b,c。b0。}uchar Keycan(void) //按鍵掃描程序 { uchar rcode, ccode。// 延時去抖動 if((P1amp。 // 輸出行掃描碼 if((P1amp。}while((P1amp。 // 行掃描碼左移一位 } } } return 0。 write_(0xc0)。 switch(key) //數(shù)字鍵 { case 0x11: firm_passwd[j]=39。139。239。)。j++。break。write_data(39。 case 0x12: firm_passwd[j]=39。539。639。)。j++。break。write_data(39。 case 0x14: firm_passwd[j]=39。939。039。)。 delaynms(1)。 //驗證輸入的密碼 if(strcmp(firm_passwd,passwd)){temp= 0。 } else return 1。 uchar firm_passwd[5]={0}。 delaynms(15)。 } LCD_DISPLAY(Input new passwd:)。 switch(key) //數(shù)字鍵 { case 0x11: passwd[j]=39。139。239。)。j++。break。write_data(39。 case 0x12: passwd[j]=39。539。639。)。j++。break。write_data(39。 case 0x14: passwd[j]=39。939。039。)。 delaynms(1)。 //按確認(rèn)鍵后將密碼寫入EEPROM write_(0x01)。 beep=1。 //顯示屏換行 while(j4) { switch(key) { case 0x11: firm_passwd[j]=39。*39。239。)。j++。 break。write_data(39。 case 0x12: firm_passwd[j]=39。*39。639。)。j++。 break。write_data(39。 case 0x14: firm_passwd[j]=39。*39。039。)。 delaynms(1)。 } while(!(key==0x84))key=Keycan()。 //clear screan if(temp){LCD_DISPLAY(RIHGT)。 //打開蜂鳴器 delaynms(15)。 sbit SCL= P3^4。b) for(a=17。{ SCL=0。 nop。 nop。 SCL=0。 SDA=0。 nop。 nop。 nop。}//********************************************************************//void ack(void) { SDA=0。 nop。 nop。}//******************************************************************//void noack(void) { SDA=1。 nop。 nop。 SCL=0。 nop。 nop。 SCL=0。}//**************************************//void send(uchar mand){ uchar i。i) { SCL=0。 nop。 nop。 nop。 mand=mand1。 //0xa0=1010 000 0 = firm(1010) Chip_Addr(000) re(1)/wr(0) testack()。 //發(fā)送數(shù)據(jù) testack()。 SDA=1。 SCL=0。 nop。 nop。0xfe。 } SCL=0。 send(0xa0)。 //************5******************send start()。 noack()。 for(i=0。 for(i=0。\039。void delay2(){ uchar i。 }void CheckBusy(){ uchar tmp。delay2()。delay2()。delay2()。 //code register RW=0。 EN=0。 RW=0。 EN=0。 //xie yi ge zi fu hou guang biao you yi write_(0x01)。) { if(i16) {write_(0x80|i)。 } str++。}38。 }}void LCD_DISPLAY(uchar *str){ write_(0x01)。 } else {write_(0xc0|(i16))。 while((*str)!=39。 //8bit shuang hang xian shi write_(0x0f)。 delay2()。 delay2()。 delay2()。 delay2()。delay2()。delay2()。 while(tmpamp。i4。sbit RW=P2^6。i++) { Data[i] = readbyte(Address+i)。i++) { writebyte( Address+i, Data[i])。 return rev_data。 ack()。 //**********4*****
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1