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

正文內(nèi)容

紅外無線遙控密碼鎖的設(shè)計與實現(xiàn)項目設(shè)計方案-閱讀頁

2025-05-21 01:22本頁面
  

【正文】 簡單易用的集成環(huán)境 ,強大的軟件仿真調(diào)試工具會讓你事半功倍. 建立項目文件,設(shè)置和獲取目標文件首先啟動 Keil 軟件集成開發(fā)環(huán)境,UVison 開始,窗口的左邊有一個項目管理程序窗口,窗口有三個標簽,文件,擬定和書籍,這三個選項卡顯示當前項目文件結(jié)構(gòu)分別 CPU 寄存器,和部分特殊功能寄存器的值(僅出現(xiàn)在調(diào)試時)及隨附文件所選 CPU,如果是第一次開始我們的,所以三個選項卡都是空的。保存文件,注意利益必須添加擴展(一般使用 asm 匯編語言源程序或 a51 擴展 )。 建立工程文件在項目開發(fā)中,不僅是一個源程序,但也為項目選擇 CPU(Keil 支持數(shù)以百計的CPU,CPU 的特點并不完全相同的),確定參數(shù)的編譯器、匯編、連接 ,指定調(diào)試模式,有些項22目會有多個文件,等,對管理和容易使用,使用我們的項目(項目)這一概念,設(shè)置參數(shù)和所有必要的文件添加在一個項目中,只有這個項目,而不是在一個源程序編譯(裝配)和連接,等等。點擊“ 保存”按鈕,在對話框中選擇第二個對話框中,CPU( 即目標。Atmel ICI 前點擊“+ ”,擴展層 ,點擊 89c51 單片機,然后點擊“ok”按鈕,并返回到主界面,此時,項目文件的窗口頁面,“Target1”,前面的“+ ”,點擊“+”,你可以看到“source Groupl”的下一層,工程或一個空的項目在這一時刻,沒有任何文件里面,需要手動添加只是寫好源程序,點擊“source”Groupl 白色顯示,然后,點擊鼠標右鍵,一個下拉菜單。C),它是基于 C 擴展文件,和基于 asm 的擴展名的文件,所以在列表框 examl 找不到。A51 *。雙擊考試 l . rim 文件,文件加入到項目中,請注意文件加入到項目中,對話框不消失,等待繼續(xù)加入其他文件,但初學者常常誤認為是操作將失敗,再次雙擊相同的文件,那么將會有一個對話框,提示文件列表中選擇,這一次應(yīng)該點擊“ok”,并返回到之前的對話框,然后單擊“關(guān)閉”回到主界面,返回后,單擊“SourceGroup 1”前面的加號,會發(fā)現(xiàn)考試 l . asm 文件。 工程的詳細設(shè)置單擊目標項目窗口左邊 1 首先,然后使用菜單“項目選擇目標 targetl”出現(xiàn)在“項目設(shè)置”對話框中,對話框非常復雜,共有八頁,一切并不容易,但大多數(shù)設(shè)置所要做的就是接受缺省值。設(shè)置正確的值可以顯示時間與實際使用時間一致,一般將它設(shè)置為相同晶體頻率用于硬件,如果沒有必要知道程序執(zhí)行時間,也可以不設(shè)置,這里設(shè)置為 12。 編譯和鏈接建立工程后,可以編譯,連接。如果你選擇重建所有的目標文件將在當前工程文件重新編譯連接,確保最終的目標代碼是最新的,Translate....項目是編譯文件,而不連接。本次設(shè)計中,主要的成果分為三個部分,一個無線遙控發(fā)射板,一個無線遙控密碼鎖接收板和一個現(xiàn)成的小型萬能遙控器,發(fā)射板與遙控器的作用相同,都可實現(xiàn)遙控開鎖、改密等功能,只是將萬能遙控器的制作手工化以萬能開發(fā)板來制作。相關(guān)的實物圖見附錄 1 圖 35,兩個模塊相關(guān)程序代碼見附錄 2。尤其是單片機和模擬電子知識。也加強了我的實際編程能力,通過焊接拼裝等來強化實踐動手能力,讓自己更知道我們的缺點和知識領(lǐng)域的缺陷。29致 謝畢業(yè)設(shè)計是我們的大學學習生活的最后一項學習任務(wù),是對我們大學四年學習的綜合考核。在完成本次設(shè)計的同時,也提高了獨立分析問題、研究問題的能力。本次畢業(yè)設(shè)計能夠順利地完成,首先要感謝我的指導老師柳陽老師。柳師的鼎力幫助是我完成這次畢業(yè)設(shè)計的重要保證,他給予了我很大的幫助和支持,使我受益匪淺;在本人完成畢業(yè)設(shè)計的工程中,他在設(shè)計最關(guān)鍵的時期給予我莫大的幫助,在這里向他表示衷心的感謝。這里留下了我們許多美好的回憶。祝愿母校的將來更美好!正是由于得到了老師、同學、室友、學校各個方面的大力支持和熱心幫助,我的畢業(yè)設(shè)計才得以順利地完成。char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}。static bit OP。 //延時計數(shù)器static unsigned int endcount。 //紅外發(fā)送標志char iraddr1。 //十六位地址的第二個字節(jié)void Initialize(void){count = 0。 OP = 0。 //允許 CPU 中斷 TMOD |= 0x10。 //定時器 0 中斷允許 TH1 = 0xFF。 //設(shè)定時值 0 為 38K 也就是每隔 26us 中斷一次 TR1 = 1。 iraddr2=252。 TL1=0xE8。 if (flag==1) { OP=~OP。 }36 IR_OUT = OP。 char irdata=p_irdata。 flag=1。 do{}while(countendcount)。 flag=0。 do{}while(countendcount)。 for(i=0。i++) { //先發(fā)送 的 38KHZ 紅外波(即編碼中 的低電平) endcount=10。 count=0。 //停止發(fā)送紅外信號(即編碼中的高電平) if(irdata(irdata/2)*2) //判斷二進制數(shù)個位為 1 還是 0 { endcount=41。 //0 為窄的高電平 } flag=0。 do{}while(countendcount)。 } //發(fā)送十六位地址的后八位 irdata=iraddr2。i8。 flag=1。 do{}while(countendcount)。 } else { endcount=15。 count=0。 irdata=irdata1。 for(i=0。i++) { endcount=10。 count=0。 if(irdata(irdata/2)*2) { endcount=41。 } flag=0。 do{}while(countendcount)。 } //發(fā)送八位數(shù)據(jù)的反碼 irdata=~p_irdata。i8。38 flag=1。 do{}while(countendcount)。 } else { endcount=15。 count=0。 irdata=irdata1。 flag=1。 do{}while(countendcount)。} /***************************************************************函數(shù)功能:按鍵消抖 延時程序入口參數(shù):1mstime (晶振=12MHz )***************************************************************/void DelayMs(unsigned char z) //延時大約 1ms{ unsigned char x。x0。z0。 } /*按鍵掃描函數(shù),返回掃描鍵值*/unsigned char KeyScan(void) //鍵盤掃描函數(shù),使用行列反轉(zhuǎn)掃描法{ unsigned char cord_h,cord_l。 //行線輸出全為 0 cord_h=KeyPortamp。 //讀入列線值 if(cord_h!=0x0f) //先檢測有無按鍵按下 { DelayMs(10)。0x0f)!=0x0f) { cord_h=KeyPortamp。 //讀入列線值 KeyPort=cord_h|0xf0。0xf0。0xf0)!=0xf0)。//鍵盤最后組合碼值 }39 }return(0xff)。break。break。break。break。break。break。break。break。break。break。break。break。break。break。break。break。break。Initialize()。//SendByte(0x51)。 //發(fā)射端口常態(tài)為高電平P1=~table[0]。if(num!=0xff) { P1=~table[num]。 } }}紅外接收端代碼includeinclude 40include include include include sbit Led=P3^7。const unsigned char passcode[8]={1,2,3,4,5,6,7,8}。 //密碼鎖密碼數(shù)據(jù)unsigned char xdata passwordtemp[8]={0,0,0,0,0,0,0,0}。 //密碼比較正確與否標志unsigned char SetFlag。 //輸入密碼錯誤次數(shù)存儲unsigned char wrongflag。 //時間計數(shù),三次密碼錯誤后一分鐘計時void InitTimer1(void) //定時器 2022ms{ TMOD |= 0x00。 TL1 = 0x18。 ET1 = 1。} void speaktime(unsigned char t) //蜂鳴器聲音{ unsigned char i。it。DelayMs(50)。}}void interface(void)//開機主界面{ LCD_Clear()。LCD_Write_String(0,1, set)。41num=0xff。 //鍵盤鍵值返回if(irok) //如果接收好了進行紅外處理{ Ircordpro()。}if(irpro_ok) //如果處理好后進行工作處理,如按對應(yīng)的按鍵后顯示對應(yīng)的數(shù)字等{ num=Ir_work()。//處理完成標志}return num。SetFlag=0。 LCD_Write_String(0,0,Old password:)。 //獲取矩陣鍵盤和紅外的鍵值if(num!=0xff) //密碼存儲{if(i8amp。num10) //密碼輸入前 8 個數(shù)包括第 8 的個數(shù)才保存到數(shù)字{passwordtemp[i]=num。*39。//(*,2,9+i)。*39。i++。passwordtemp[i]=0。 39。elseLCD_Write_Char(1+i,1,39。)。for(j=0。j++)passwordtemp[j]=0。elseLCD_Write_String(1,1, )。SetFlag=0。}if(i==8amp。num==10) //當密碼輸入 8 位后按 10 鍵才能比較密碼{ if(SetFlag==0){ Flag=1。 //存儲數(shù)據(jù)for(j=0。j++)Flag=Flagamp。(passwordtemp[j]==password[j])。amp。SetFlag=1。Delay_3S()。 LCD_Write_String(0,0,New password:)。amp。speaktime(30)。LCD_Write_String(11,1, )。}43}else //直接存儲新密碼{for(j=0。j++) password[j]= passwordtemp[j]。ISendStr(0xae,0,passwordtemp,8)。i=0。break。i=0。 LCD_Write_String(0,0,Password input:)。 //獲取矩陣鍵盤和紅外的鍵值if(num!=0xff) {if(i8amp。num10) //密碼輸入前 8 個數(shù)包括第 8 的個數(shù)才保存到數(shù)字{passwordtemp[i]=num。*39。i++。passwordtemp[i]=0。 39。}if(num==12) //密碼復位,重新輸入{i=0。j8。LCD_Write_String(1,1, )。break。amp。 //先把標志位置位IRcvStr(0xae,0,password,8)。j8。amp。if(Flag==1amp。i==8)
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1