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

正文內(nèi)容

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

2025-08-31 12:37上一頁面

下一頁面
  

【正文】 DisplayListChar(X,Y,DData)。 while(1){ if(keycounts==0){ refresh_display((15PASSWORD_LENGTH)/2,1,amp。)。 if(key==15){ 基于 51 單片機(jī)的紅外遙控密碼鎖 35 *input=0。 } return 0。 if(status){ if(INPUT_PASSWORD==passwords) { refresh_display(0,1,cls)。 } else { refresh_display(0,0,cls)。 refresh_display(0,0,tab5)。 buzzer=1。 refresh_display(0,0,tab4)。 char status=1。(temp==(default_entrywords%10000))) { dispassword_flag=1。 temp=0。amp。 /*******************************************************************/ char input_password(dword *input) { dword temp=0。 } } void refresh_display(uchar X, uchar Y, uchar code *DData) { /*if(currentdisflag){ if(currentdisflag!=lastdisflag) { LCD_Init()。 } void DisplayData(dword DData) { uchar temp=0,i=0。amp。 case 0xb7:key=15。 case 0xbb:key=8。 break。 break。getkeycode(amp。0x0f。 } /***************************定時器 1 中斷 *********************************/ /***********************************矩陣鍵盤驅(qū)動 **************************/ bit getkeycode(uchar *temp) { uchar temp_h=0,temp_l=0。break。break。 //串口發(fā)送 03 case 0x08:key=4。 switch(q) //判斷按鍵鍵碼值 { case 0x16:key=0。 //取鍵碼的低四位 IRCOM[6]=IRCOM[2] 4。 } // 計(jì)數(shù)過長自動離開。k8。 delay(15)。 delay11()。 indata=(indata8)+temp。 } delay2(1)。 for(i=0。 start()。 respons()。 delay11()。 sda=1。 delay11()。 for(i=0。 delay11()。 delay11()。 scl=1。= 0xF。//這里不檢測忙信號,發(fā)送地址碼 //delay(1)。 //設(shè)置光標(biāo)指針 } /******************1602 按指定位置顯示一個字符函數(shù) **********************/ void DisplayOneChar(uchar X, uchar Y, uchar DData) { Y amp。 en=1。 } /****************************1602 寫數(shù)據(jù)函數(shù) **************************/ void LCD_WriteData(uchar WDLCD) { rs=1。 void DisplayListChar(uchar X, uchar Y, uchar code *DData)。 /****************************LCD1602 驅(qū)動 **************************/ define LCD_Data P0//數(shù)據(jù)接口 sbit rs=P2^0。 uchar code tab5[]={Input old code }。 dword time_value=0,passwords=123456。 sbit IRIN=P3^3。_nop_()。本次 畢業(yè)設(shè)計(jì) 不僅僅是對我大學(xué)四年的檢測也是對我毅力的考驗(yàn),讓我在一次次的打擊之后變得更堅(jiān)強(qiáng) 。然后切斷電源,重新給電路板供電,再次輸入密碼(輸入剛才設(shè)定的新密碼), 1602 顯示 right 并模擬鎖發(fā)光二極管點(diǎn)亮。參考網(wǎng)上給的遙控器鍵碼值使用 swith 語句同矩陣按鍵掃描返回?cái)?shù)字及調(diào)用功能函數(shù)。錯誤,則燈滅,說明鎖已經(jīng)關(guān)閉。若調(diào)節(jié)滑動變阻器 1602 依然不顯示,此時再看看程序中 1602 初始化函數(shù)是否有錯,再看硬件 有沒有問題,本人在調(diào)試 1602的時候就遇到類似問題,電路與程序都完全正確, 1602 卻依然不能正常顯示,有時會出現(xiàn)亂碼的現(xiàn)象,最后發(fā)現(xiàn)竟然是單片機(jī)沒有與插槽接觸完全,導(dǎo)致 1602 的控制端與單片機(jī)接觸不良,因此,會出現(xiàn)時而亂碼時而不顯示的狀況。 為了保證程序可在實(shí)物中使用,每個芯片接入到單片機(jī)的 IO 口都會與 PCB 原理圖保持一致。 算法與流程圖 鑒于密碼鎖在輸入密碼時可有矩陣按鍵及遙控器進(jìn)行雙控,紅外遙控采用中斷的方式進(jìn)行接收信號,先是按鍵的掃描,判斷是執(zhí)行某個任務(wù)還是將輸入密碼輸送到LCD1602 上面。讓 LCD基于 51 單片機(jī)的紅外遙控密碼鎖 13 顯示 字符 的同時保存到 AT24c02 中。 再考慮每個模塊需要加入的外圍電路,以及接入到單片機(jī)相應(yīng)的 IO 口,為了方便程序的修改,要嚴(yán)格按照仿真的接法接到單片機(jī)的管腳,本設(shè)計(jì)總體原理圖如下圖所示: 基于 51 單片機(jī)的紅外遙控密碼鎖 12 圖 19 總體原理圖 4 系統(tǒng)軟件設(shè)計(jì) 程序設(shè)計(jì)思路 本次設(shè)計(jì)的密碼鎖,采用的是雙控模式,即在主控模塊中有 4 4 矩陣鍵盤可以輸入 數(shù)字來進(jìn)行改密 等功能, 同時也可以用遙控器來實(shí)現(xiàn) 。由原 理圖可知,接收頭的三個管腳,只需要將 GND 接地 VCC 接入電源,另一根輸出線接入到單片機(jī)的外部中斷 1 口即可。 基于 51 單片機(jī)的紅外遙控密碼鎖 7 圖 9 AT24c02 硬件連接圖 紅外發(fā)送接收電路設(shè)計(jì) 1)紅外發(fā)送模塊 這次設(shè)計(jì)中用到的 遙控器 其實(shí)物圖如下圖所示: 圖 10 小型遙控器 特點(diǎn): 通過無線來控制 , 攜帶方便,低成本,低功耗 等。另外本設(shè)計(jì)使用插針將 1602接到電路中,若 1602 出現(xiàn)故障更換方便。 上電復(fù)位電路 結(jié)構(gòu)如圖 2 中 R1,R2, C3 和 R1和 R2 分別為 1K和 10K。由于鍵碼值由商家提供,因此只需將每個鍵碼值賦予特定的功能,以此來控制密碼鎖的開關(guān),改密等,并送到 LCD1602 上顯示。 基于 51 單片機(jī)的紅外遙控密碼鎖 2 2 系統(tǒng)設(shè)計(jì)方案 總體方案 方案一: 采用矩陣按鍵,通過單片機(jī)將字符送到數(shù)碼管 顯示,另外,密碼鎖部分用電磁繼電器來進(jìn)行模擬。 此外,密碼共有六位,每位由 0 到 9,十個數(shù)字構(gòu)成,因此可設(shè)定 106 種密碼,提高密保安全。另外,紅外線不會產(chǎn)生信號干擾,反應(yīng)速度迅速、工作穩(wěn)定度高等特點(diǎn)。操作中的提示語用 LCD 來顯示。傳統(tǒng)的機(jī)械防盜鎖構(gòu)造過于簡單,盡管有些經(jīng)過加固以及增加相應(yīng)的防護(hù)措施,但是鎖被撬現(xiàn)象屢見不鮮,無法保障人們的安全。若不慎丟失鑰匙更會產(chǎn)生事倍功半的效果 。加深了人們的安全隱患。 第三步, 在 Keil uVision4 軟件 中用 C 語言 進(jìn)行編程,外加仿真軟件對程序進(jìn)行修改,調(diào)試。用存儲器 AT24c02 來存儲密碼,報(bào)警部分依然采用蜂鳴器。 系統(tǒng)框圖 本文 所設(shè)計(jì)的 作品 系統(tǒng)由 AT89S51 單片機(jī)及其最小系統(tǒng)、 矩陣鍵盤、 紅外接收頭、遙控器 、蜂鳴器、 模擬 鎖、 LCD1602 液晶顯示等部分組成。 由于采用的 LCD1602 是 16 2 兩行顯示。 是一個 2K 位串行 CMOS E2PROM。 以此來完成紅外遙控的發(fā)送于接收。 蜂鳴器外圍電路如下: 基于 51 單片機(jī)的紅外遙控密碼鎖 11 圖 18 蜂鳴器連接圖 系統(tǒng) PCB 設(shè)計(jì) 根據(jù)上述每個模塊的設(shè)計(jì),以及單片機(jī)的各個管腳特性整體電路 如圖 19。其中密碼為六位數(shù)。當(dāng) IO 口味高電平時 led熄滅,此時認(rèn)為上鎖。 SCK 接時鐘線即為 SCL, SDA 接數(shù)據(jù)線,其余均接地。以及 24c02 的讀寫操作。主要是將按鍵按下的值保存到存儲器中,并能夠從中讀取。此時再回到 PROTEUS 仿真,看下存儲器接線與 PCB 是否一致,以及芯片是否安置正確。按 下改密按鍵, 1602 第一行顯示 input old code,輸入舊密碼(密碼錯誤則提示,并重新輸入),若密碼正確,畫面提示 input new code,此時鍵入新密碼(六位數(shù)),然后按確定鍵,畫面顯示 input new code again。寫程序時為了達(dá)到預(yù)期效果,對新接觸的芯片進(jìn)行研究,通過多次修改完成每個模塊的運(yùn)行。 {_nop_()。 void delay(unsigned char x) 。 i13。 uchar code tab2[]={ Right! }。 uchar code open[]={Wele... }。 void LCD_WriteData(uchar WDLCD)。x) for(y=110。 en=0。 //設(shè)置顯示模式 :16X2,5X7,8 位數(shù)據(jù)接口 基于 51 單片機(jī)的紅外遙控密碼鎖 22 LCD_WriteCommand(0x0c)。//當(dāng)要顯示第二行時地址碼 +0x40。 Y amp。 基于 51 單片機(jī)的紅外遙控密碼鎖 23 X++。 } void stop() //停止信號 { sda=0。 } void respons() //應(yīng)答 { uchar i。 delay11()。 sda=CY。 } uchar read_byte() //讀 一個字節(jié) { uchar i,k=0。 delay11()。 write_byte(address)。 基于 51 單片機(jī)的紅外遙控密碼鎖 26 respons()。 return indata。 //DisplayOneChar(62*i,1,message[temp/0x10])。 for(i=0。 delay2(1)。 TH0=(6553650000)/256。 for (j=0。 N++。 return。 q= (((IRCOM[6]amp。break。 //串口發(fā)送 05 case 0x51:key=6。 //串口發(fā)送 09 case 0x45:key=14。break。//取高四位 keypad=0x0f。 key=0xff。 case 0xde:key=1。 case 0xdd:key=4。 break。 //9 break。 time_value=0。 keystatusflag=0。 DisplayOneChar(72*i,1,message[temp%0x10])。 /* } else if(currentdisflag!=lastdisflag) { LC
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1