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

正文內(nèi)容

紅外遙控器課程設(shè)計(jì)-在線瀏覽

2024-09-15 10:35本頁(yè)面
  

【正文】 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 設(shè)計(jì)目的意義隨著人們生活水平的提高,如何實(shí)現(xiàn)家庭防盜這一問題也變得尤其重要。傳統(tǒng)的機(jī)械鎖由于其構(gòu)造的簡(jiǎn)單,被撬的事件屢見不鮮。而且,在日常的生活和工作中,若使用傳統(tǒng)的機(jī)械式鑰匙開鎖,人們常需攜帶多把鑰匙,使用極不方便,且鑰匙丟失后安全性即大打折扣。而且還添加了紅外遙控、遙控器學(xué)習(xí)識(shí)別和LCD顯示等功能,可以實(shí)現(xiàn)遠(yuǎn)距離開關(guān)鎖、修改密碼等,系統(tǒng)靈活性強(qiáng),操作簡(jiǎn)單直觀、使用非常方便。2 在線編程電路和實(shí)物圖(詳見附錄1)復(fù)位鍵LED燈指示蜂鳴器STC89C52RCLCD對(duì)比度調(diào)節(jié)電阻一體化紅外接收頭SM0038圖1 實(shí)物圖3 設(shè)計(jì)方案 發(fā)射模塊的方案使用NEC編碼格式紅外線遙控編碼芯片uPD6122G等作為主芯片再加上外圍電路完成發(fā)射部分,或直接購(gòu)買紅外線遙控編碼芯片的遙控器成品作為系統(tǒng)的發(fā)射部分。而且無(wú)須編程,使用十分方便。在抗干擾能力上,因?yàn)闆]有涉及到軟件,故其抗干擾能力強(qiáng)。系統(tǒng)的總框圖如圖3所示。按鍵uPD6122GSM0038MCULCD1602電磁鎖NEC編碼遙控器圖2 選用方案系統(tǒng)框圖4硬件分析及設(shè)計(jì) 發(fā)射模塊原理紅外遙控信號(hào)是一連串的二進(jìn)制脈沖碼。在本紅外遙控系統(tǒng)中,紅外信號(hào)的載波頻率為38KHz。本系統(tǒng)是采用PPM方法,即用兩個(gè)脈沖之間的時(shí)間間隔來(lái)表示二進(jìn)制信息。常用的紅外線信號(hào)傳輸協(xié)議有NEC協(xié)議、RC5協(xié)議、RC6協(xié)議、Sharp協(xié)議等。NEC編碼廣泛應(yīng)用于電視機(jī),DVD,PC電腦,音響等,是比較常用的一種紅外編碼格式。NEC遙控編碼是連續(xù)的32位二進(jìn)制碼組,其中的前十六位是用戶碼,后16位為8位的數(shù)據(jù)碼及其反碼。而且第二段的用戶碼也可以在遙控應(yīng)用電路中被設(shè)置為第一段用戶碼的反碼。圖3 幀結(jié)構(gòu)NEC編碼標(biāo)準(zhǔn)是以用不同脈沖的時(shí)間間隔來(lái)區(qū)分‘0’和‘1’的,、‘0’;、‘1’。圖4 脈沖波形圖使用455KHz晶振時(shí)各代碼所占的時(shí)間如下圖所示:圖5 晶振時(shí)各代碼所占時(shí)間uPD6122G按鍵輸出有兩種方式:一種是每次按鍵都輸出完整的一幀數(shù)據(jù);另一種是按下按鍵不松開時(shí),發(fā)送完整的一幀數(shù)據(jù)后再發(fā)送重復(fù)碼,直到按鍵被松開。圖6 按鍵輸出波形接收解碼的關(guān)鍵是如何識(shí)別‘0’和‘1’,本系統(tǒng)使用的是一體化紅外接收頭進(jìn)行紅外信號(hào)接收,在沒有信號(hào)的時(shí)候其輸出端是高電平,而有信號(hào)的時(shí)候是低電平,所以其輸出信號(hào)電平正好和遙控發(fā)射端相反。本系統(tǒng)用中斷的方式實(shí)現(xiàn)從接收頭到MCU的信號(hào)傳輸。接收頭輸出端有低電平信號(hào)輸出時(shí)引起單片機(jī)的中斷。解碼后的信號(hào)就變成相應(yīng)的遙控器按鍵代碼,從而可以成為密碼鎖的密碼。 STC系列單片機(jī)具有在系統(tǒng)中直接可編程特性,其好處是:省去購(gòu)買通用編程器,單片機(jī)在用戶系統(tǒng)上即可下載/燒錄用戶程序,而無(wú)須將單片機(jī)從已生產(chǎn)好的產(chǎn)品上拆下,再用通用編程器將程序代碼燒錄進(jìn)單片機(jī)內(nèi)部。由于可以在用戶的目標(biāo)系統(tǒng)上將程序直接下載進(jìn)單片機(jī)看運(yùn)行結(jié)果對(duì)錯(cuò),故無(wú)須仿真器,因此選擇使用這款單片機(jī)。它的內(nèi)部電路如圖10所示。數(shù)據(jù)信號(hào)和干擾信號(hào)的主要區(qū)別在于載波頻率、脈沖波長(zhǎng)和工作周期上。而本系統(tǒng)選用的SM0038在這三方面和NEC編碼格式是相配的。 STC單片機(jī)內(nèi)部有幾個(gè)專門的特殊功能寄存器負(fù)責(zé)管理ISP/IAP功能的,見表1。 ISP/IAP從Flash讀出的數(shù)據(jù)放在此處,向Flash寫入的數(shù)據(jù)也需放在此處。 ISP_ADDRL:ISP/IAP操作時(shí)的地址寄存器低八位。命令模式如表2所示。STC89C51RC/RD+系列單片機(jī)出廠時(shí)已經(jīng)固化有ISP引導(dǎo)碼,并設(shè)置為上電復(fù)位進(jìn)入ISP程序區(qū),并且出廠時(shí)就已完全加密。 在ISPEN() =1時(shí),對(duì)ISP_TRIG 先寫入46h,再寫入B9h,ISP/IAP命令才會(huì)生效。表3 STC89C52RC、STC89LE52RC單片機(jī)內(nèi)部EEPROM地址表第一扇區(qū)第二扇區(qū)第三扇區(qū)第四扇區(qū)起始地址結(jié)束地址起始地址結(jié)束地址起始地址結(jié)束地址起始地址結(jié)束地址2000H21FFH2200H23FFH2400H25FFH2600H27FFH第五扇區(qū)第六扇區(qū)第七扇區(qū)第八扇區(qū)起始地址結(jié)束地址起始地址結(jié)束地址起始地址結(jié)束地址起始地址結(jié)束地址2800H29FFH2A00H2BFFH2C00H2DFFH2E00H2FFFH 每個(gè)扇區(qū)為512字節(jié),建議大家在寫程序時(shí),將同一次修改的數(shù)據(jù)放在同一個(gè)扇區(qū), 方便修改,因?yàn)樵趫?zhí)行擦除命令時(shí),一次最少要擦除一個(gè)扇區(qū)的數(shù)據(jù),每次在更新數(shù)據(jù)前都必須要擦除原數(shù)據(jù)方可重新寫入新數(shù)據(jù),不能直接在原來(lái)數(shù)據(jù)基礎(chǔ)上更新內(nèi)容。與傳統(tǒng)的LED數(shù)碼管顯示器件相比,液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富等優(yōu)點(diǎn),而且不需要外加驅(qū)動(dòng)電路,現(xiàn)在液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的顯示器件了。LCD1602與單片機(jī)的連接電路圖參考附錄3。接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,可以用一個(gè)10K的電位器來(lái)調(diào)整對(duì)比度;RS:數(shù)據(jù)或者指令選擇端。R/W為高電平時(shí),讀取數(shù)據(jù);R/W為低電平時(shí),寫入數(shù)據(jù);E:LCD模塊使能信號(hào)控制端。需要背光時(shí),BLA串接一個(gè)限流電阻接VCC;BLK: LED背光負(fù)極。匯編語(yǔ)言有執(zhí)行效率高、速度快、與硬件結(jié)合緊密等特點(diǎn)。但是使用匯編語(yǔ)言相對(duì)于使用高級(jí)語(yǔ)言編程難度要大一些,且程序可讀性低,開放性差,從系統(tǒng)開發(fā)時(shí)間來(lái)看,效率不是很高。C語(yǔ)言可以用許多機(jī)器級(jí)函數(shù)直接控制操作8051硬件。當(dāng)然,采用混編模式,就能結(jié)合兩者的優(yōu)點(diǎn)。 主要程序說明及流程圖本系統(tǒng)的軟件程序主要包括主程序、接收解碼程序、密碼判斷和報(bào)警程序、密碼修改程序、遙控器學(xué)習(xí)識(shí)別程序幾個(gè)大的模塊程序。當(dāng)接收到遙控器識(shí)別按鍵時(shí),單片機(jī)查找AT24C02并判斷此遙控器ID是否已存在。當(dāng)密碼輸入錯(cuò)誤的時(shí)候就會(huì)進(jìn)入密碼輸入提醒程序提醒用戶重新輸入密碼,密碼輸入累積到3次時(shí)系統(tǒng)會(huì)報(bào)警并鎖定。接收程序的流程圖如圖10所示。接著的工作是避開9ms高電平、并且判斷是否干擾信號(hào)或者重復(fù)信號(hào)。如圖14所示。跟在引導(dǎo)碼后面的是32位用戶碼和數(shù)據(jù)碼,也就是我們想要的數(shù)據(jù),單片機(jī)把它接收并保存。然后根據(jù)接收到的數(shù)據(jù)碼和數(shù)據(jù)反碼是否對(duì)應(yīng)位相反來(lái)確定接收的這一幀數(shù)據(jù)是否正確,最后退出接收解碼程序。在保存‘0’碼和‘1’碼的時(shí)候還有一個(gè)保存時(shí)機(jī)的問題,說明該位為‘0’,反之則為‘1’。圖11 單片機(jī)接收端的‘0’‘1’波形圖接收解碼中斷程序:void IR_IN() interrupt 0 using 0{ unsigned char j,k,N=0。 delay(15)。 return。 {delay(1)。j4。k8。 {delay(1)。} while (IRIN) //計(jì)算IR高電平時(shí)長(zhǎng) { delay(1)。 if (N=30) { EX0=1。} //。 //數(shù)據(jù)最高位補(bǔ)“0” if (N=8) {IRCOM[j] = IRCOM[j] | 0x80。 } //end for k } //end for j if (IRCOM[2]!=~IRCOM[3]) { EX0=1。 } IRCOM[5]=IRCOM[2] amp。 //取鍵碼的低四位 IRCOM[6]=IRCOM[2] 4。} else IRCOM[5]=IRCOM[5]+0x30。} else IRCOM[6]=IRCOM[6]+0x30。 beep()。 ir_data=IRCOM[2]。 //信號(hào)接收成功標(biāo)志位 EX0 = 1。首先介紹密碼判斷及報(bào)警程序。然后和原密碼緩存origin_code[8]比較,判斷密碼是否正確。程序流程圖所示。當(dāng)密碼輸入正確以后用戶按下“密碼修改鍵”就會(huì)進(jìn)入密碼修改操作,單片機(jī)也就會(huì)運(yùn)行密碼修改程序。第一次輸入的新密碼放在接收緩存receive_code[8]中,當(dāng)輸入完第八個(gè)密碼后系統(tǒng)會(huì)提示再次輸入密碼,第二次輸入的新密碼放在密碼比較緩存_code[8]中。Eeprom存儲(chǔ)子程序:/* ================ 打開 ISP,IAP 功能 ================= */void ISP_IAP_enable(void){ EA = 0。 0x18。 /* 寫入硬件延時(shí) */ ISP_CONTR = ISP_CONTR | 0x80。 0x7f。 EA = 1。 /* 打開 ISP,IAP 功能 */ ISP_TRIG = 0x46。 /* 觸發(fā)ISP_IAP命令字節(jié)2 */ _nop_()。/* 地址賦值 */ ISP_ADDRL = (unsigned char)(byte_addr amp。 ISP_CMD = ISP_CMD amp。 /* 清除低3位 */ ISP_CMD = ISP_CMD | RdCommand。 /* 觸發(fā)執(zhí)行 */ ISP_IAP_disable()。 /* 返回讀到的數(shù)據(jù) */}/* ================== 扇區(qū)擦除 ======================== */void SectorErase(unsigned int sector_addr){ unsigned int iSectorAddr。 0xfe00)。 ISP_ADDRL = 0x00。 0xf8。 /* 擦除命令3 */ ISPgoon()。 /* 關(guān)閉ISP,IAP功能 */}/* ==================== 字節(jié)寫 ======================== */void byte_write(unsigned int byte_addr, unsigned char original_data){ ISP_ADDRH = (unsigned char)(byte_addr 8)。 0x00ff)。 0xf8。 /* 寫命令2 */ ISP_DATA = original_data。 /* 觸
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1