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

正文內(nèi)容

課程設(shè)計(jì)論文-基于單片機(jī)的遙控密碼鎖-文庫(kù)吧資料

2024-11-17 00:58本頁(yè)面
  

【正文】 if(code_right==1 amp。 rec_num。amp。 flag=1。 DisplayListChar(rec_num,1,*)。amp。 //修改密碼標(biāo)識(shí)位 2 new_code1=0。 rec_num=0。 LCM_cls()。amp。amp。 flag=1。key_data==10) { DisplayListChar(rec_num1,1, )。 } else if(rec_num0amp。 rec_num++。flag==0) { if(key_data10) { _code[rec_num]=key_data。} //修 II 改密碼標(biāo)識(shí)位 1 if(new_code1==1amp。 DisplayListChar(0,0,Input new code)。key_data==11) //11 號(hào)按鍵為修改密碼按鍵的鍵碼 { delay_LCM(500)。 16 if( code_right==1 amp。 //密碼正確標(biāo)識(shí)位 } } void change_code(void) { int i,j。 show=0。 //密碼正確,開(kāi)鎖成功 DisplayListChar(0,1,What You Want?)。 } } LCM_cls()。 rec_num=0。 while(1)。 SPEAKER=0。LED2=1。 DisplayListChar(0,1,Lock)。} else if(wrong_num==3) { LCM_cls()。delay_LCM(1000)。} else if(wrong_num==2) { delay_LCM(1000)。delay_LCM(1000)。 if(wrong_num==1) { delay_LCM(1000)。j0。3 次錯(cuò)誤后上鎖 { 15 delay_LCM(500)。 k=1。 beep_flag=0。 LCM_cls()。 } if(key_data==18) //跳到時(shí)鐘模式 { key_data=99。 flag=1。amp。 rec_num++。 DisplayListChar(rec_num,1,*)。amp。 關(guān)鍵程序如下: void check_code(void) { if(ir_flag==1) flag=0, key_data=key_match() , Beep(),ir_flag=0,j=0。第一次輸入的新密碼放在 接收 緩存 receive_code[8]中,當(dāng)輸入完第 八 個(gè)密碼后系統(tǒng)會(huì)提示再次輸入密碼,第二次輸入的新密碼放在 密碼比較 緩存 _code[8]中。程序流程圖 如圖 17 所示。 13 圖 16 密碼判斷及報(bào)警流程圖 接著介紹密碼修改控制程序。若密碼正確則將標(biāo)志位 code_right=1 ;若不正確則報(bào)警并使 密碼輸入錯(cuò)誤次數(shù)wrong_num++,再判斷錯(cuò)誤次數(shù)是否已達(dá) 3 次,若是則程序進(jìn)入死循環(huán)鎖定。顯示收到的鍵碼并保存到接收緩存 receive_code[8],直到 8 位鍵碼接收完畢。 } } 密碼 判斷、 報(bào)警及修改程序 電子密碼鎖的 軟件編程主要分為兩方面,分別是 接收密碼后判斷及報(bào)警 部分和密碼修改 控制部分。 case 0xe2: return(20)。 case 0xa2: return(18)。 case 0x02: return(16)。 case 0x90: return(14)。 case 0xe0: return(12)。 case 0x98: return(10)。 case 0x4a: return(8)。 case 0x5a: return(6)。 case 0x10: return(4)。 case 0x18: return(2)。 /************** 按 鍵 數(shù) 據(jù) 編 碼 *****************************/ /************** 18,19,20 ***********************************/ /************** 15,16,17 ***********************************/ /************** 12,13,14 ***********************************/ /************** 0, 10,11 ***********************************/ /************** 1, 2, 3 ***********************************/ 12 /************** 4, 5, 6 ***********************************/ /************** 7, 8, 9 ***********************************/ /************** 遙控器 ***********************************/ uchar key_match() { switch(ir_data) { case 0x68: return(0)。 }} 按鍵數(shù)字分配 由于遙控器的編碼是為了不容易出錯(cuò)而編 的,導(dǎo)致數(shù)據(jù)比較亂,為了編程方便,我們特意修改了數(shù)據(jù)。 //有按鍵關(guān)定時(shí)器 1 T=0。 ir_flag = 1。 return。 if (i==32) dataIR[3] = ir_data。 if (i==16) dataIR[1] = ir_data。 if (width 0x08) ir_data |= 0x01。 width++。 //等待高電平 width = 0x00。}// 3ms=30*100us 如果不到 3ms即視為 // 至此,引導(dǎo)碼已校驗(yàn),以下接收地址碼和數(shù)據(jù)碼,一共 32 位 i=0。 } if (width 30) {EX0 = 1。 while(IR) { delay_100us()。 return。 width++。 EX0 = 0。 圖 15 單片機(jī)接收端的‘ 0’‘ 1’波形圖 接收解碼 關(guān)鍵 程序: sbit IR = P3^2。在保存 ‘ 0’ 碼和 ‘ 1’碼 的時(shí)候還有一個(gè)保存時(shí)機(jī)的問(wèn)題 , 如果從 低電平過(guò)后開(kāi)始延時(shí) , 以后若讀到為低紅外中斷程序 關(guān)中斷 是否 9ms 低電平 開(kāi)始接收 32位編碼 接收信號(hào)“ 1” 保存,接收了 8 位? 是否 低電平 低電平 大于 800us 接收信號(hào)“ 0” 保存,接收了 32 位? 開(kāi) 中斷 返回 干擾信號(hào) 重復(fù)信號(hào) N N N N N Y Y Y Y Y 發(fā)射模塊 MCU 9ms 接收頭 9ms 10 電平 , 說(shuō)明該位為 ‘ 0’, 反之則為 ‘ 1’。然后根據(jù)接收到的數(shù)據(jù)碼和數(shù)據(jù)反碼是否對(duì)應(yīng)位相反來(lái)確定接收的這一幀數(shù)據(jù)是否正確,最后 退出接收解碼程序。跟在引導(dǎo)碼后面的是 32位用戶 碼 和 數(shù)據(jù)碼,也就是我們想要的數(shù)據(jù),單片機(jī)把它接收并保存。 如圖 14 所示。接著的工作是避開(kāi) 9ms 高電平、 的低電平的引導(dǎo)碼, 并且判斷是否干擾信號(hào)或者重復(fù)信號(hào)。接收程序的流程圖 如圖 13 所示。相應(yīng) 的主程序流程圖 如圖 12 所 示 。 系統(tǒng)進(jìn)入密碼輸入界面,并且 接收到 八 位的密碼以后就開(kāi)始運(yùn)行密碼核對(duì)程序,當(dāng)密碼輸入正確后,就 可以進(jìn)行開(kāi)鎖、上鎖或修改密碼的操作。 完整 程序見(jiàn) 附錄 B。本著學(xué)習(xí)的目的,本系統(tǒng)均采用 C51語(yǔ)言編寫(xiě)。與匯編語(yǔ)言相比, C 語(yǔ)言有如下的優(yōu)點(diǎn): ● 不要求了解單片機(jī)的指令系統(tǒng),僅要求對(duì) 8051 的存儲(chǔ)結(jié)構(gòu)有初步了解; ● 寄存器分配,不同存儲(chǔ)器的尋址及數(shù)據(jù)類(lèi)型等 細(xì)節(jié)可由編譯器管理; ● 程序有規(guī)范的結(jié)構(gòu),可分為不同的函數(shù),這種方式可使程序結(jié)構(gòu)化; ● 具有將可變的選擇與特殊操作組合在一起的能力,改善了程序的可讀性; ● 關(guān)鍵字及運(yùn)算符可用近似人的思維方式使用; ● 編程及程序調(diào)試時(shí)間顯著縮短,從而提高效率; ● 提供的庫(kù)包含許多標(biāo)準(zhǔn)子程序,具有較強(qiáng)的數(shù)據(jù)處理能力; ● 已編好的程序可容易地植入新程序,因?yàn)樗哂蟹奖愕哪K化編程技術(shù)。 C 語(yǔ)言是一種結(jié)構(gòu)化語(yǔ)言,可產(chǎn)生緊湊代碼。尤其在進(jìn)行 I/O 端口管理時(shí),使用匯編語(yǔ)言有快捷、直觀的優(yōu)點(diǎn)。 7 4 軟件設(shè)計(jì) 編程語(yǔ)言 目 前 , 對(duì)單片機(jī)的編程主要采用匯編 和 C 語(yǔ)言 。寫(xiě)數(shù)據(jù)時(shí),需要下降沿觸發(fā)模塊 ; D0- D7: 8 位數(shù)據(jù)總線,三態(tài)雙向 ; BLA: LED 背光正極。 處理器 寫(xiě)入指令時(shí), RS 為低電平 , 寫(xiě)入數(shù)據(jù)時(shí), RS 為高電平 ; R/W:讀寫(xiě)控制端。 其 管腳功能簡(jiǎn)介 如下 : VL: LCD 對(duì)比度調(diào)節(jié)端 ,電壓調(diào)節(jié)范圍為 0- 5V。 LCD1602 可以顯示 2行 16 個(gè)字符, 具 有 8 位數(shù)據(jù)總線 D0D7,和 RS、 R/W、 E 三個(gè)控制端口,工作電壓為5V,并且?guī)в凶址麑?duì)比度調(diào)節(jié)和背光 設(shè)置 。 液晶 顯示模塊 系統(tǒng)中采用 LCD1602 作為顯示器件輸出信息。 ● 脈沖長(zhǎng)度在 300us 以 上 。而 本系統(tǒng) 選用的 SM0038 在這三方面和 NEC 編碼格式 是相配的。數(shù)據(jù)信號(hào)和干擾信號(hào)的主要區(qū)別在于載波頻率、脈沖波長(zhǎng)和工作周期上。它的內(nèi)部電路 如 圖 10 所示 。由于可以在用戶 的目標(biāo)系統(tǒng)上將程序直接下載進(jìn)單片機(jī)看運(yùn)行結(jié)果對(duì)錯(cuò),故無(wú)須仿真器,因此選擇 使用這款單片機(jī)。 STC 系列單片機(jī)具有在系統(tǒng) 中直接 可編程特性 ,其 好處是:省去購(gòu)買(mǎi)通用編程器,單片機(jī)在用戶系統(tǒng)上即可下載 /燒錄用戶程序,而無(wú)須將單片機(jī)從已生產(chǎn)好的產(chǎn)品上拆下,再用通用編程器將程序代碼燒錄進(jìn)單片機(jī)內(nèi)部。解碼后的信號(hào)就變成 相應(yīng)的遙控器按鍵代碼 ,從而可以成為密碼鎖的密碼。 接收頭輸出端有 低電平 信號(hào)輸出時(shí)引起單片機(jī)的中斷。 本系統(tǒng) 用中斷的方式實(shí)現(xiàn)從接收頭到 MCU的信號(hào)傳輸。 圖 7 重復(fù)碼的波形圖 接收解碼模塊 接收解碼原理 接收解碼的關(guān)鍵是如何識(shí)別‘ 0’和‘ 1’ ,本系統(tǒng) 使用的是一體化紅外接收頭進(jìn)行紅外信號(hào)接收,在沒(méi)有信號(hào)的時(shí)候其輸出端是高電平,而有信號(hào)的時(shí)候是低電平,所以其5 輸出信號(hào)電平正好和遙控發(fā)射端相反 。 4 圖 5 uPD6122G‘ 0’和‘ 1’波形圖 使用 455KHz 晶振時(shí)各代碼所占的時(shí)間如圖 6 所示: 圖 6 使用 455KHz 晶振時(shí)各代碼所占的時(shí)間 uPD6122G 按鍵輸出有兩種方式:一種是每 次按鍵都輸出完整的一幀數(shù)據(jù);另一種是按下按鍵不松開(kāi)時(shí),發(fā)送完整的一幀數(shù)據(jù)后再發(fā)送重復(fù)碼,直到按鍵被松開(kāi)。 圖 4 uPD6122G編碼格式 NEC 編碼標(biāo)準(zhǔn)是以用不同 脈沖的時(shí)間間隔來(lái)區(qū)分 ‘ 0’和‘ 1’ 的, uPD6122G 以脈寬為 、 間隔 、 周期為 的組合表示二進(jìn)制的‘ 0’;以脈寬為 、間隔 , 周期為 的組合表示二進(jìn)制的‘ 1’ 。而且第二段的用戶碼也可以在遙控應(yīng)用電路中被設(shè)置為第一段用戶碼的反碼。 NEC 遙控編碼是連續(xù)的 32 位二進(jìn)制碼組,其中的前十六位是 用戶 碼,后 16 位為 8 位的數(shù)據(jù)碼及其反碼。 NEC編碼 廣泛應(yīng)用于電視機(jī) , DVD, PC 電腦 , 音響等 ,是比較常用的一種紅外編碼格式。常用的紅外線信號(hào)傳輸協(xié)議有 NEC 協(xié)議、 RC5 協(xié)議、 RC6 協(xié)議、Sharp 協(xié)議等。本系統(tǒng)是采用 PPM 方法,即用兩個(gè)脈沖之間的時(shí)間間隔來(lái)表示二進(jìn)制信息。 在本紅外遙控系統(tǒng)中,紅外信號(hào) 的載波頻率 為 38KHz。 圖 3 選用方案系統(tǒng)框圖 3 硬件原理分析及設(shè)計(jì) 發(fā)射模塊原理 按鍵 uPD6122G SM0038 MCU AT24C02 LCD1602 電磁鎖 NEC 編碼遙控器 3 紅外發(fā)送系統(tǒng)原理 紅外遙控信號(hào)是一連串的二進(jìn)制脈沖碼。系統(tǒng)的總框圖如圖 3 所示。而且還添加了紅外遙控、遙控器學(xué)習(xí)識(shí)別和 LCD 顯示等功能,可以實(shí)現(xiàn)遠(yuǎn)距離開(kāi)關(guān)鎖、修改密碼等, 系統(tǒng)靈
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1