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

正文內(nèi)容

基于51單片機(jī)的紅外遙控密碼鎖160畢業(yè)設(shè)計(jì)(專業(yè)版)

2025-09-10 12:37上一頁面

下一頁面
  

【正文】 buzzer=0。 return 1。 delay2(200)。//關(guān)閉顯示 } lastdisflag=currentdisflag。 } } } /*********************************矩陣鍵盤驅(qū)動 *******************************/ dword get_preserve_password() { return RdFromROM_dword(PASSWORD_ADDR)。 case 0xd7:key=14。 break。 基于 51 單片機(jī)的紅外遙控密碼鎖 31 if((!keystatusflag)amp。// 上鎖 ( CH+) default :break。break。0x0f)4) + (IRCOM[5]amp。 if (N=30) { EX1=1。 TL0=(6553650000)%256。i4。 } void WrToROM_dword(uchar address,dword indata) { uchar temp=0,i=0。 respons()。 基于 51 單片機(jī)的紅外遙控密碼鎖 25 scl=0。 } void write_byte(uchar indata) //寫一個(gè)字節(jié) { uchar i,temp。 delay11()。= 0x1。 //開顯示 ,顯示光標(biāo) ,光標(biāo)閃爍 LCD_WriteCommand(0x06)。y0。 uchar code tab9[]={ }。 i++) {} } } sbit sda=P2^6。_nop_()。再一次鍵入設(shè)置的新密碼。按下解鎖鍵, LCD1602 首行顯示提示語,令一行則是顯示將要輸進(jìn)去的密碼。另外,1602 本為 16 個(gè)管腳,在 PROTEUS 仿真中是 14 個(gè)管腳,管腳 3 調(diào)節(jié) 1602 亮度接 1K滑動變阻器。 然后是 AT24c02 存儲器,防止密碼斷電丟 失。本次設(shè)計(jì)采用的是 VS_1838b。 第一行顯示提示內(nèi)容,第二行顯示鍵入的數(shù)值。 通過兩個(gè)方案的比較綜合,考慮到外圍設(shè)備,成本等問題,本次設(shè)計(jì)將采用第二種方案。針對這種情況,本次設(shè)計(jì)制作了一種紅外遙控密碼鎖,遙控器型號很常見,應(yīng)用及為廣泛,若突然摔壞或丟失即可到商店購買。本次設(shè)計(jì)中制作的一種密碼鎖,具有很好的保密性。 在科技高速發(fā)展的今天,非接觸式控制越來越受大家歡迎,利用紅外遙控,方便又安全。最后 完成本次設(shè)計(jì)。 最小系統(tǒng)包括上電復(fù)位電路和晶振電路 【 1】 【 2】 。 管腳圖如圖 7 所示: 圖 7 AT24c02 管腳圖 表 1 AT24c02 管腳功能 管腳名稱 管腳功能 A0、 A A2 器件地址選擇 SDA 串行數(shù)據(jù) /地址 SCL 串行時(shí)鐘 WP 寫保護(hù) Vcc + 工作電壓 Vss 接地 圖 8 存儲器 地址位 下圖為 24C02在硬件中的的連接圖,根據(jù)各個(gè)管腳功能只需把 A0、 A A wp接地,按照 I2C協(xié)議,時(shí)鐘線 SCL和數(shù)據(jù)線 SDA需接 10K上拉電阻。電源部分采用的是 USB 給單片機(jī)提供 +5V 的電源,發(fā)光二極管來指示有沒有給單片機(jī)供電。所以,當(dāng)密碼錯(cuò)誤時(shí),給 IO 口送低電平即可達(dá)到報(bào)警效果。將 1602 的顯示程序通過學(xué)習(xí)板燒到做好的電路板中,檢測 1602 是否正常顯示,若 1602 只亮屏不顯示字符此時(shí)調(diào)節(jié)滑動變阻器改變對比度。 基于 51 單片機(jī)的紅外遙控密碼鎖 17 4)紅外遙控模塊 首先寫一個(gè)紅外遙控發(fā)送接收程序,看是否將字符正確顯示到 1602 上。每一次失敗都會離成功又進(jìn)一步。 void delay1(int ms)。 uchar code tab4[]={Wele enter }。 void DisplayOneChar(uchar X, uchar Y, uchar DData)。 rw=0。// 算出指令碼 LCD_WriteCommand(X)。 delay11()。 scl=1。 scl=1。 scl=0。 respons()。 WrToROM_Byte(address+i,temp)。 } void init_24C02() //初始化 { sda=1。j++) //收集四組數(shù)據(jù) { for (k=0。 0x0F。break。//解鎖( CH— ) case 0x09:key=11。 temp_l=keypadamp。 case 0xbe:key=2。 break。 } } else if(keystatusflagamp。 delay2(1000)。 if(key=0amp。amp。 基于 51 單片機(jī)的紅外遙控密碼鎖 36 delay2(1000)。 。 refresh_display(0,0,tab2)。 keycounts=0。tab9[10PASSWORD_LENGTH])。 DisplayOneChar(72*i,1,message[temp%0x10])。 time_value=0。 break。 case 0xde:key=1。//取高四位 keypad=0x0f。 //串口發(fā)送 09 case 0x45:key=14。break。 return。 for (j=0。 delay2(1)。 //DisplayOneChar(62*i,1,message[temp/0x10])。 基于 51 單片機(jī)的紅外遙控密碼鎖 26 respons()。 delay11()。 sda=CY。 } void respons() //應(yīng)答 { uchar i。 基于 51 單片機(jī)的紅外遙控密碼鎖 23 X++。//當(dāng)要顯示第二行時(shí)地址碼 +0x40。 en=0。 void LCD_WriteData(uchar WDLCD)。 uchar code tab2[]={ Right! }。 void delay(unsigned char x) 。寫程序時(shí)為了達(dá)到預(yù)期效果,對新接觸的芯片進(jìn)行研究,通過多次修改完成每個(gè)模塊的運(yùn)行。此時(shí)再回到 PROTEUS 仿真,看下存儲器接線與 PCB 是否一致,以及芯片是否安置正確。以及 24c02 的讀寫操作。當(dāng) IO 口味高電平時(shí) led熄滅,此時(shí)認(rèn)為上鎖。 蜂鳴器外圍電路如下: 基于 51 單片機(jī)的紅外遙控密碼鎖 11 圖 18 蜂鳴器連接圖 系統(tǒng) PCB 設(shè)計(jì) 根據(jù)上述每個(gè)模塊的設(shè)計(jì),以及單片機(jī)的各個(gè)管腳特性整體電路 如圖 19。 是一個(gè) 2K 位串行 CMOS E2PROM。 系統(tǒng)框圖 本文 所設(shè)計(jì)的 作品 系統(tǒng)由 AT89S51 單片機(jī)及其最小系統(tǒng)、 矩陣鍵盤、 紅外接收頭、遙控器 、蜂鳴器、 模擬 鎖、 LCD1602 液晶顯示等部分組成。 第三步, 在 Keil uVision4 軟件 中用 C 語言 進(jìn)行編程,外加仿真軟件對程序進(jìn)行修改,調(diào)試。若不慎丟失鑰匙更會產(chǎn)生事倍功半的效果 。操作中的提示語用 LCD 來顯示。 此外,密碼共有六位,每位由 0 到 9,十個(gè)數(shù)字構(gòu)成,因此可設(shè)定 106 種密碼,提高密保安全。由于鍵碼值由商家提供,因此只需將每個(gè)鍵碼值賦予特定的功能,以此來控制密碼鎖的開關(guān),改密等,并送到 LCD1602 上顯示。另外本設(shè)計(jì)使用插針將 1602接到電路中,若 1602 出現(xiàn)故障更換方便。由原 理圖可知,接收頭的三個(gè)管腳,只需要將 GND 接地 VCC 接入電源,另一根輸出線接入到單片機(jī)的外部中斷 1 口即可。讓 LCD基于 51 單片機(jī)的紅外遙控密碼鎖 13 顯示 字符 的同時(shí)保存到 AT24c02 中。 為了保證程序可在實(shí)物中使用,每個(gè)芯片接入到單片機(jī)的 IO 口都會與 PCB 原理圖保持一致。錯(cuò)誤,則燈滅,說明鎖已經(jīng)關(guān)閉。然后切斷電源,重新給電路板供電,再次輸入密碼(輸入剛才設(shè)定的新密碼), 1602 顯示 right 并模擬鎖發(fā)光二極管點(diǎn)亮。_nop_()。 dword time_value=0,passwords=123456。 /****************************LCD1602 驅(qū)動 **************************/ define LCD_Data P0//數(shù)據(jù)接口 sbit rs=P2^0。 } /****************************1602 寫數(shù)據(jù)函數(shù) **************************/ void LCD_WriteData(uchar WDLCD) { rs=1。 //設(shè)置光標(biāo)指針 } /******************1602 按指定位置顯示一個(gè)字符函數(shù) **********************/ void DisplayOneChar(uchar X, uchar Y, uchar DData) { Y amp。= 0xF。 delay11()。 for(i=0。 sda=1。 respons()。 for(i=0。 indata=(indata8)+temp。 delay(15)。 } // 計(jì)數(shù)過長自動離開。 switch(q) //判斷按鍵鍵碼值 { case 0x16:key=0。break。 } /***************************定時(shí)器 1 中斷 *********************************/ /***********************************矩陣鍵盤驅(qū)動 **************************/ bit getkeycode(uchar *temp) { uchar temp_h=0,temp_l=0。getkeycode(amp。 break。 case 0xb7:key=15。 } void DisplayData(dword DData) { uchar temp=0,i=0。 /*******************************************************************/ char input_password(dword *input) { dword temp=0。 temp=0。 char status=1。 buzzer=1。 } else { refresh_display(0,0,cls)。 } return 0。)。 }*/ DisplayListChar(X,Y,DData)。temp))){ key=temp。 case 0xe7:key=9。 break。 } void keyscan() { uchar temp=0。led=1。break。 } else IRCOM[6]=IRCOM[6]+0x30。 while (IRIN) //計(jì)算 IR 高電平時(shí)長 { delay(1)。 unsigned char q=0。 //refresh_display(0,1,cls)。 stop()。 respons()。 delay11()。 scl=0。 scl=0。 ListLength = 0。 } /
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1