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

正文內(nèi)容

紅外遙控器課程設(shè)計(jì)-文庫吧資料

2024-08-18 10:35本頁面
  

【正文】 _disable()。 /* 清空低3位 */ ISP_CMD = ISP_CMD | EraseCommand。 ISP_CMD = ISP_CMD amp。 /* 取扇區(qū)地址 */ ISP_ADDRH = (unsigned char)(iSectorAddr 8)。 iSectorAddr = (sector_addr amp。 /* 關(guān)閉ISP,IAP功能 */ return (ISP_DATA)。 /* 寫入讀命令 */ ISPgoon()。 0xf8。 0x00ff)。}/* ==================== 字節(jié)讀 ======================== */unsigned char byte_read(unsigned int byte_addr){ ISP_ADDRH = (unsigned char)(byte_addr 8)。 /* 觸發(fā)ISP_IAP命令字節(jié)1 */ ISP_TRIG = 0xb9。 /* 開中斷 */}/* ================ 公用的觸發(fā)代碼 ==================== */void ISPgoon(void){ ISP_IAP_enable()。 /* ISPEN = 0 */ ISP_TRIG = 0x00。 /* ISPEN=1 */}/* =============== 關(guān)閉 ISP,IAP 功能 ================== */void ISP_IAP_disable(void){ ISP_CONTR = ISP_CONTR amp。 /* 0001,1000 */ ISP_CONTR = ISP_CONTR | WaitTime。 /* 關(guān)中斷 */ ISP_CONTR = ISP_CONTR amp。第二次輸入密碼完成后就檢驗(yàn)兩次輸入的新密碼是否相同,如果相同的話就更換密碼,將新密碼儲(chǔ)存到芯片的eeprom中。code_right=1修改密碼?保存新密碼新密碼接收完畢?返回NNNNYYYY新密碼確認(rèn)完畢?兩次密碼相同?顯示錯(cuò)誤圖13 密碼修改流程圖進(jìn)入密碼修改程序首先等待新密碼的第一次輸入。輸入密碼接收了6位鍵碼?code_right=1密碼是否正確wrong_num++wrong_num=3?錯(cuò)誤警告報(bào)警鎖定NNNYYY輸入密碼接收了8位鍵碼?code_right=1密碼是否正確wrong_num++wrong_num=3?錯(cuò)誤警告報(bào)警鎖定NNNYYY 圖12 密碼判斷、報(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)警部分和密碼修改控制部分。 ir_flag=1。 LED3=1。 LED3=0。 if(IRCOM[6]9) { IRCOM[6]=IRCOM[6]+0x37。 //右移4次,高四位變?yōu)榈退奈? if(IRCOM[5]9) { IRCOM[5]=IRCOM[5]+0x37。 0x0F。 return。} //數(shù)據(jù)最高位補(bǔ)“1” N=0。 } //高電平計(jì)數(shù)完畢 IRCOM[j]=IRCOM[j] 1。 return。 N++。} while (!IRIN) //等 IR 變?yōu)楦唠娖? {delay(1)。k++) //每組數(shù)據(jù)有8位 { while (IRIN) //等 IR 變?yōu)榈碗娖?。j++) //收集四組數(shù)據(jù) { for (k=0。}for (j=0。 } //確認(rèn)IR信號(hào)出現(xiàn) while (!IRIN) //等IR變?yōu)楦唠娖?,跳過9ms的前導(dǎo)低電平信號(hào)。 if (IRIN==1) { EX0 =1。 EX0 = 0。為安全起見,否則如果該位為‘0’讀到的已是下一位的高電平,因此取( + )/2= 較為可靠。發(fā)射模塊MCU9ms接收頭9ms圖10 接收頭前導(dǎo)碼信號(hào)變相圖而單片機(jī)的接收端的‘0’‘1’波形圖如圖15所示。當(dāng)接收完8位的數(shù)據(jù)時(shí)要更換另外一個(gè)數(shù)據(jù)緩沖區(qū),當(dāng)32位的鍵碼都接收完的時(shí)候就意味這一幀的數(shù)據(jù)已經(jīng)接收完畢。所以只要遙控有鍵按下單片機(jī)就會(huì)馬上產(chǎn)生中斷接收數(shù)據(jù)。正如前面所說,一體化紅外接收頭的輸出端電平跟遙控發(fā)射端電平相反。進(jìn)入紅外接收程序后先關(guān)閉中斷。初始化等待遙控識(shí)別按鍵遙控學(xué)習(xí)模式密碼核對(duì)報(bào)警鎖定開鎖上鎖密碼修改N錯(cuò)誤正確遙控ID存在?密碼鎖模式Y(jié) 圖9主程序流程圖紅外接收解碼的關(guān)鍵是如何識(shí)別‘0’和‘1’碼,我的做法是根據(jù)‘0’和‘1’碼的高電平寬度不一樣的特點(diǎn)來進(jìn)行識(shí)別。當(dāng)ID不存在時(shí),系統(tǒng)進(jìn)入遙控器學(xué)習(xí)模式,保存新ID及其鍵碼;當(dāng)遙控器ID已存在時(shí),系統(tǒng)進(jìn)入密碼輸入界面,并且接收到八位的密碼以后就開始運(yùn)行密碼核對(duì)程序,當(dāng)密碼輸入正確后,就可以進(jìn)行開鎖、上鎖或修改密碼的操作。主程序首先是初始化程序,然后就等待紅外接收頭輸出端的低電平,低電平出現(xiàn)說明遙控有鍵按下,外部中斷設(shè)定為下降沿觸發(fā),故單片機(jī)進(jìn)入中斷服務(wù)程序進(jìn)行信號(hào)的接收解碼。本著學(xué)習(xí)的目的,本系統(tǒng)均采用C51語言編寫。與匯編語言相比,C語言有如下的優(yōu)點(diǎn):● 不要求了解單片機(jī)的指令系統(tǒng),僅要求對(duì)8051的存儲(chǔ)結(jié)構(gòu)有初步了解;● 寄存器分配,不同存儲(chǔ)器的尋址及數(shù)據(jù)類型等細(xì)節(jié)可由編譯器管理;● 程序有規(guī)范的結(jié)構(gòu),可分為不同的函數(shù),這種方式可使程序結(jié)構(gòu)化;● 具有將可變的選擇與特殊操作組合在一起的能力,改善了程序的可讀性;● 關(guān)鍵字及運(yùn)算符可用近似人的思維方式使用;● 編程及程序調(diào)試時(shí)間顯著縮短,從而提高效率;● 提供的庫包含許多標(biāo)準(zhǔn)子程序,具有較強(qiáng)的數(shù)據(jù)處理能力;● 已編好的程序可容易地植入新程序,因?yàn)樗哂蟹奖愕哪K化編程技術(shù)。 C語言是一種結(jié)構(gòu)化語言,可產(chǎn)生緊湊代碼。尤其在進(jìn)行I/O端口管理時(shí),使用匯編語言有快捷、直觀的優(yōu)點(diǎn)。5軟件設(shè)計(jì) 編程語言目前,對(duì)單片機(jī)的編程主要采用匯編和C語言。寫數(shù)據(jù)時(shí),需要下降沿觸發(fā)模塊;D0-D7:8位數(shù)據(jù)總線,三態(tài)雙向;BLA: LED背光正極。處理器寫入指令時(shí),RS為低電平,寫入數(shù)據(jù)時(shí),RS為高電平;R/W:讀寫控制端。其管腳功能簡介如下: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作為顯示器件輸出信息。 STC89C52RC,STC89LE52RC單片機(jī)內(nèi)部可用Data Flash(EEPROM)的地址如表3所示,其它型號(hào)單片機(jī)請(qǐng)查閱相關(guān)資料。 ISP_TRIG:ISP/IAP操作時(shí)的命令觸發(fā)寄存器。表2 ISP_CMD寄存器模式設(shè)置D7D6D5D4D3D2D1D0模式選擇保留命令選擇000待機(jī)模式,無ISP操作001對(duì)用戶的應(yīng)用程序flash區(qū)及數(shù)據(jù)flash區(qū)字節(jié)讀010對(duì)用戶的應(yīng)用程序flash區(qū)及數(shù)據(jù)flash區(qū)字節(jié)編程011對(duì)用戶的應(yīng)用程序flash區(qū)及數(shù)據(jù)flash區(qū)扇區(qū)擦除 程序在系統(tǒng)ISP程序區(qū)時(shí)可以對(duì)用戶應(yīng)用程序區(qū)/數(shù)據(jù)Flash區(qū)(EEPROM)進(jìn)行字節(jié)讀/字節(jié)編程/扇區(qū)擦除;程序在用戶應(yīng)用程序區(qū)時(shí),僅可以對(duì)數(shù)據(jù)Flash區(qū)(EEPROM)進(jìn)行字節(jié)讀/字節(jié)編程/扇區(qū)擦除。 ISP_CMD:ISP/IAP操作時(shí)的命令模式寄存器,須命令觸發(fā)寄存器觸發(fā)方可生效。 ISP_ADDRH:ISP/IAP操作時(shí)的地址寄存器高八位。表1 ISP/IAP相關(guān)寄存器列表名稱地址功能描述D7D6D5D4D3D2D1D0復(fù)位值ISP_DATAE2hFlash數(shù)據(jù)寄存器1111 1111ISP_ADDRHE3hFlash高字節(jié)地址寄存器0000 0000ISP_ADDRLE4hFlash低字節(jié)地址寄存器0000 0000ISP_CMDE5hFlash命令模式寄存器MS2MS1MS0xxxx x000ISP_TRIGE6hFlash命令觸發(fā)寄存器xxxx xxxxISP_CONTRE7hISP/IAP 控制寄存器ISPENSWBSSWRSTWT2WT1WT0000x x000 ISP_DATA:ISP/IAP操作時(shí)的數(shù)據(jù)寄存器。 存儲(chǔ)模塊原理STC89C552內(nèi)部都自帶有2K字節(jié)的EEPROM,555和58都自帶有16K字節(jié)的EEPROM,STC單片機(jī)是利用IAP技術(shù)實(shí)現(xiàn)的EEPROM,內(nèi)部Flash擦寫次數(shù)可達(dá)100,000 次以上,先來介紹下ISP與IAP的區(qū)別和特點(diǎn)。所以數(shù)據(jù)信號(hào)應(yīng)該滿足載波信號(hào)的頻率盡量接近帶通濾波器的中心頻率(38KHZ);脈沖長度在300us以上;數(shù)據(jù)的編碼類型相兼容。圖8 SM0038內(nèi)部結(jié)構(gòu)圖SM0038內(nèi)置帶通濾波器、積分器、和自動(dòng)增益控制電路以抑制各種干
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1