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

正文內(nèi)容

紅外遙控密碼鎖-資料下載頁

2024-12-04 00:45本頁面

【導(dǎo)讀】廣大用戶的青睞。它以紅外光作為信息媒體,從而實(shí)現(xiàn)了遙控。用方便、操作簡單、價(jià)格低廉等特點(diǎn),給人們的生活帶來了極大方便。本設(shè)計(jì)以單片機(jī)AT89S52作為密碼鎖監(jiān)控裝置的檢測和控制核心,而且采用紅外遙控相對于機(jī)械鎖和鍵盤輸入的電子密碼鎖具有。如紅外線發(fā)射裝置采用紅外發(fā)光二極管,遙控發(fā)射器易于。動(dòng)作,而且功率消耗低;紅外線不會(huì)向室外泄露,不會(huì)產(chǎn)生信號(hào)串?dāng)_;反應(yīng)速度快、傳輸效率高、工作穩(wěn)定可靠等。用最廣泛的一種通信和遙控手段。軟件設(shè)計(jì)采用自上而下的模塊化設(shè)計(jì)。在許多電子雜志、報(bào)刊經(jīng)常刊登有密碼開關(guān),密碼鎖這樣的電路,大多數(shù)是使用常用的數(shù)字電路,然后通過鍵盤來實(shí)現(xiàn)密碼控制功能。破解,電路復(fù)雜,故障率高。

  

【正文】 據(jù)碼反碼 unsigned char irdata[33]。 //33 個(gè)高低電平的時(shí)間數(shù)據(jù) /*函數(shù)聲明 */ void ShowString (unsigned char line,char *ptr)。 /*定時(shí)器 0 中斷服務(wù)函數(shù) */ void tim0_isr (void) interrupt 1 using 1//定時(shí)器 0 中斷服務(wù)函數(shù) { irtime++。 //用于計(jì)數(shù) 2 個(gè)下降沿之間的時(shí)間 } /* 外部中斷 0 函數(shù) */ void ex0_isr (void) interrupt 2 using 1//外部中斷 1 服務(wù)函數(shù) { static unsigned char i。 //接收紅外信號(hào)處理 static bit startflag。 //是否開始處理標(biāo)志位 if(startflag) { if(irtime63amp。amp。irtime=33)//引導(dǎo)碼 TC9012 的頭碼,9ms+ i=0。 irdata[i]=irtime。//存儲(chǔ)每個(gè)電平的持續(xù)時(shí)間,用于以后判斷是0 還是 1 irtime=0。 i++。 if(i==33) 附錄 27 { irok=1。 i=0。 } } else {irtime=0。startflag=1。} } /* 定時(shí) 器 0 初始化 */ void TIM0init(void)//定時(shí)器 0 初始化 { TMOD=0x02。//定時(shí)器 0 工作方式 2, TH0 是重裝值, TL0 是初值 TH0=0x00。 //重載值 TL0=0x00。 //初始化值 ET0=1。 //開中斷 TR0=1。 } /*外部中斷初始化 */ void EX0init(void) { IT1 = 1。 //指定外部中斷 1 下降沿觸發(fā), INT0 () EX1 = 1。 //使能外部中斷 EA = 1。 //開總中斷 } /*紅外鍵值處理 */ unsigned char KeyPro(void) //紅外鍵值散轉(zhuǎn)程序 { switch(IRcord[3]) { case 0x43:return 0。break。 case 0x47:return 1。break。 case 0x4B:return 2。break。 case 0x4F:return 3。break。 case 0x53:return 4。break。 case 0x57:return 5。break。 case 0x5B:return 6。break。 case 0x5F:return 7。break。 case 0x63:return 8。break。 附錄 28 case 0x67:return 9。break。 case 0x2B:return 10。break。 // 按了F1 鍵 default:break。 } irpro_ok=0。 //處理完成后清楚標(biāo)志位 } /* 紅外解碼函數(shù)處理 */ /unsigned char KeyScan(void)//紅外碼值處理函數(shù) { unsigned char i, j, k。 unsigned char cord,value。 k=1。 for(i=0。i4。i++) //處理 4 個(gè)字節(jié) { for(j=1。j=8。j++) //處理 1 個(gè) 字節(jié)8 位 { cord=irdata[k]。 if(cord7) { value=value|0x80。 } else { value=value。 } if(j8) { value=value1。 } k++。 } IRcord[i]=value。 value=0。 } irpro_ok=1。//處理完畢標(biāo)志位置 1 } 附錄 29 附錄四:主程序設(shè)計(jì) * 名稱:紅外遙控密碼鎖 */ include //頭文件 include include include include sbit RELAY=P1^7。 sbit BEEP=P1^6。 Unsigned char code password[]={1,3,1,4,5,1,2,0}。// 可以更改此密碼 /* 主程序 */ main() { unsigned char num,i=0,j。 unsigned char passwordtemp[16]。 //最大輸入 16 個(gè) unsigned char inputtimes。 //密碼輸入錯(cuò)誤次數(shù) unsigned char passwordlength,PLEN。 //輸入密碼長度,實(shí)際密碼長度 bit Flag。 PLEN=sizeof(password)/sizeof(password[0])。//用于計(jì)算出實(shí)際密碼長度 EX0init()。 //初始化外部中斷 TIM0init()。 //初始化定時(shí)器 LCD_Init()。 //初始化液晶屏 DelayMs(10)。 //延時(shí)用于穩(wěn)定,可以去掉 LCD_Clear()。 //清屏 LCD_Write_String(0,0,Wele! )。 LCD_Write_String(0,1,Input 附錄 30 password!)。 //寫入第二行信息,提示輸入密碼 while (1) //主循環(huán) { if(irok) //如果接收好了進(jìn)行紅外處理 { KeyScan()。 irok=0。 if(irpro_ok) // 紅外處理完畢標(biāo)志位置 1 后 { num=KeyPro()。 //取遙控鍵盤值 if(i==0) //輸入是第一個(gè)字符的時(shí)候需要把該行清空,方便觀看密碼 {LCD_Write_String(0,1, )。}//清除該行 if(i16) { passwordtemp[i]=num。 LCD_Write_Char(i,1,39。*39。)。//輸入的密碼用 *代替 } i++。 //輸入數(shù)值累加 } if(10==num)//輸入按鍵值 10,按了 F1 鍵,表示輸入結(jié)束,需要進(jìn)行比對 { passwordlength=i1。 // 計(jì)算輸入密碼長度 i=0。 //計(jì)數(shù)器復(fù)位 if(passwordlength==PLEN)// 長度相等則比較,否則直接輸出錯(cuò)誤 { Flag=1。//先把比較位置 1 for(j=0。jPLEN。j++)// 循環(huán)比較 8 個(gè)數(shù)值,如果有一個(gè)不等 則最終 Flag 值為 0 Flag=Flagamp。amp。(passwordtemp[j]==附錄 31 password[j])。//比較輸入值和已有密碼 } if(Flag)//如果比較全部相同,標(biāo)志位置 1 { LCD_Write_String(0,1, )。//清除該行 LCD_Write_String(0,1,Right Open!)。//密碼正確顯示的信 息 DelayMs(10)。 RELAY=!RELAY。 inputtimes=0。//輸入正確則次數(shù)清零,重新計(jì)數(shù) Flag=0。 //清除正確標(biāo)志 } else { LCD_Write_String(0,1, )。//清除該行 LCD_Write_String(0,1,Wrong! Retry!)。//密碼錯(cuò)誤,提示重新輸 入 inputtimes++。//連續(xù)輸入錯(cuò)誤,則次數(shù)累加 if(inputtimes==3) { LCD_Write_String(0,1, )。//清除該行 LCD_Write_String(0,1,Wrong 3 times!)。//密碼錯(cuò)誤,提示重新輸入 BEEP=!BEEP。 while(1)。//停止該位置,復(fù)位才能重新輸入 。 } } } } }} 32 畢業(yè)設(shè)計(jì)報(bào)告評閱意見: 評閱教師評分: 簽名: 2021 年 1 月 25 日
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1