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

正文內(nèi)容

學(xué)習(xí)型紅外線遙控器項目設(shè)計方案(編輯修改稿)

2025-05-24 01:42 本頁面
 

【文章內(nèi)容簡介】 分頻后形成狀態(tài)周期,一個狀態(tài)周期包含2個振蕩周期,振蕩頻率二分頻后形成機(jī)器周期,一個機(jī)器周期包含有6個狀態(tài)周期或者12個振蕩周期,1到4個機(jī)器周期確定一條指令的執(zhí)行時間,這個時間便是指令周期。在MCS51單片機(jī)的所有指令中,有些完成的比較快,只需一個機(jī)器周期就行,有些完成的比較慢,則需兩個機(jī)器周期或者四個機(jī)器周期才能完成。具體的周期計算是這樣的。本設(shè)計外接晶振頻率為12MHZ,振蕩周期為1/12MHZ=,機(jī)器周期為1us,指令周期為1到4us。當(dāng)單片機(jī)工作于計數(shù)模式時,它的初值為(計數(shù)個數(shù))求補(bǔ),當(dāng)工作于定時模式時,它的初值為(定時時間/機(jī)器周期)求補(bǔ),根據(jù)不同的工作模式對初值進(jìn)行裝入。,采用低電平有效的方式進(jìn)行。,系統(tǒng)進(jìn)入紅外遙控器發(fā)射狀態(tài)。學(xué)習(xí)控制電路連接單片機(jī)的中斷輸入口,,系統(tǒng)產(chǎn)生中斷,并進(jìn)入進(jìn)入學(xué)習(xí)狀態(tài)。發(fā)射控制電路由一個按鍵接地組成。學(xué)習(xí)控制電路由一個10kΩ的電阻、一只1uF的電容和一只開關(guān)(可以是按鍵)組成。由以上各電路分析、計算、組合,然后可以得出一個完整的具有設(shè)計課題所要求功能的學(xué)習(xí)型紅外線遙控器總電路原理圖。本設(shè)計的總電路原理圖見附錄Ⅱ,硬件電路PCB板圖見附錄Ⅲ5軟件設(shè)計及編程 軟件設(shè)計思想及功能框圖單片機(jī)的軟件程序設(shè)計有其自身的特點。在單片機(jī)系統(tǒng)中,硬件與軟件緊密結(jié)合,由于硬件電路的設(shè)計不具有通用性,所以必須根據(jù)具體的硬件電路來設(shè)計對應(yīng)的軟件,硬件設(shè)計的優(yōu)劣直接影響到軟件設(shè)計的難易,軟件設(shè)計的優(yōu)劣又直接影響到硬件的發(fā)揮。在很多時候,軟件可以替代硬件的功能,當(dāng)然,需要付出額外占用CPU時間的代價。本設(shè)計軟件程序的設(shè)計是根據(jù)硬件電路圖的連接和各個元器件的功能進(jìn)行設(shè)計。在編寫軟件時,先按硬件電路圖設(shè)計出軟件功能框圖,再按軟件功能框圖細(xì)分為各個功能程序模塊,并根具各功能模塊以及相應(yīng)的硬件電路圖設(shè)計出主要的功能程序流程圖,最后結(jié)合整體框圖以及設(shè)計出主程序流程圖。程序的編寫的依據(jù)是事前設(shè)計的流程圖,因此本設(shè)計的軟件設(shè)計過程是:軟件功能框圖的設(shè)計→程序流程圖的設(shè)計→原程序的編寫本設(shè)計的軟件功能執(zhí)行過程很簡單。當(dāng)電路接通電源后,復(fù)位電路處于高電平狀態(tài),單片機(jī)開始執(zhí)行初始化程序,如果有按鍵閉合,單片機(jī)收到按鍵指令電信號后,通過主程序的按鍵查詢函數(shù)判斷按鍵指令類型,如果是學(xué)習(xí)指令,那么單片機(jī)開始執(zhí)行遙控碼讀入處理程序,完成系統(tǒng)的學(xué)習(xí)功能,如果是發(fā)射指令,那么單片機(jī)開始執(zhí)行遙控碼發(fā)射處理程序。當(dāng)紅外信號發(fā)射結(jié)束后,學(xué)習(xí)型遙控系統(tǒng)完成一個工作周期,再次計入初始化狀態(tài)。 軟件設(shè)計流程框圖根據(jù)系統(tǒng)軟件功能框圖可以畫出主程序流程圖、遙控碼讀入處理程序流程圖和遙控碼發(fā)射處理程序流程圖。: 遙控碼發(fā)射處理程序流程圖 主程序設(shè)計及功能實現(xiàn)主程序在完成上電初始化后進(jìn)行端口按鍵查詢,當(dāng)確認(rèn)有按鍵按下時將編碼發(fā)出去。main(){clearmen()。 //初始化 while(1) { keywork()。 //按鍵掃描 }}初始化程序clearmen():主要任務(wù)是清除存放脈寬數(shù)據(jù)單元,關(guān)閉學(xué)習(xí)指示燈及發(fā)射指示燈,關(guān)閉遙控輸出口,將定時器T1設(shè)為8位自動重裝模式,設(shè)置中斷等。初始化程序見附錄Ⅰ中初始化函數(shù)。按鍵掃描keywork():電路上電后,程序運行到主程序后開始不停的循環(huán)執(zhí)行按鍵掃描,待有按鍵按下時跳入中斷函數(shù)并開始執(zhí)行相應(yīng)軟件;若按下了學(xué)習(xí)按鍵,那么單片機(jī)開始接收從紅外接收器解碼電路產(chǎn)生的二進(jìn)制代碼信息,并存儲到數(shù)據(jù)存取單元中;若按下的是發(fā)射鍵,單片機(jī)將會通過紅外線發(fā)射二極管發(fā)射已學(xué)習(xí)到單片機(jī)內(nèi)的遙控碼,在發(fā)射遙控碼之前需要將遙控碼基帶信號加載到40kHz的載波上,才能夠?qū)⒁褜W(xué)習(xí)的遙控信號發(fā)射出去。按鍵掃描程序見附錄Ⅰ中鍵功能函數(shù)。遙控碼的學(xué)習(xí)處理程序主要是將原遙控器發(fā)出的脈沖碼寬依次存入內(nèi)存單元,存放規(guī)則為偶數(shù)地址(0、6等)存放高電平脈寬數(shù)據(jù),奇數(shù)地址(5等)存放低電平脈寬數(shù)據(jù)。定義文件中劃了206個單元用于存放脈寬數(shù)據(jù),符合常用遙控器的最大碼長要求。本程序在編程設(shè)計中非常重要,通過大量的、不同中來的遙控碼波形實驗測試分析,遙控碼的幀間歇位寬度均在10ms以上,起始碼寬度在100us~20ms之間。為確保所有遙控器學(xué)習(xí)的成功,可采用以下程序?qū)崿F(xiàn)方法。讀起始位方法:由于起始位的碼寬范圍較大,因此計數(shù)單元采用單獨的2字節(jié),計數(shù)周期約為15us,這樣按65536*15us算,最大可存起始位脈寬為983ms。當(dāng)輸入為高電平時,停止起始位計數(shù),進(jìn)入高電平計數(shù)。讀遙控碼的方法:采用1字節(jié)計數(shù)單元對嗎(高電平或低電平)進(jìn)行寬度計數(shù),電平跳變時結(jié)束計數(shù),并將數(shù)據(jù)存入規(guī)定的地址。在高電平碼計數(shù)時,當(dāng)計數(shù)值大于255時(),則判定為結(jié)束幀間隔位,在相應(yīng)存儲單元寫入數(shù)據(jù)0xOO作為結(jié)束標(biāo)志。void intt0(void) interrupt 0 {ET1=0。TR1=0。EX0=0。EA=0。head=0。studylamp=1。lamp=0。while(studykey==0)。 //等待鍵釋放while(remotein==1)。 //等待遙控碼輸入head=0。 //讀入起始位while(remotein==0){_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。head++。}n=0。remdata=0x0000。 while(1) { while(remotein==1){_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。remdata++。} if(remdatam) //高電平5毫秒退出 {remotedata[n]=0x00。EX0=1。EA=1。goto end。} remotedata[n]=remdata。n++。 //存高電平脈寬數(shù)據(jù) remdata=0x0000。 //脈寬計數(shù)器清零 while(remotein==0){_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。_nop_()。remdata++。} //低電平計數(shù) remotedata[n]=remdata。n++。remdata=0x00。//存低電平脈寬數(shù)據(jù) }end: lamp=1。studylamp=0。}發(fā)射程序是把已經(jīng)學(xué)習(xí)到的紅外編碼發(fā)射出去控制紅外設(shè)備。首先要找到存放在單片機(jī)數(shù)據(jù)存儲單元的紅外遙控編碼。紅外發(fā)射程序的思想是通過定時器T1的配合來調(diào)制出40 kHz 的紅外載波信號。利用已經(jīng)學(xué)習(xí)到的低電平寬度來確定定時器T1的定時長度。當(dāng)發(fā)送低電平時, 啟動定時器T1; 發(fā)送高電平時, 停止定時器T1。如此就能發(fā)送一個與接收到的紅外編碼反相并且高電平是經(jīng)過40 kHz 載波調(diào)制過的紅外遙控信號, 這個信號就是普通遙控器發(fā)送出去用來控制紅外設(shè)備的信號。遙控碼發(fā)射處理程序圖如圖3所示。void time_intt1(void) interrupt 3 { remoteout=~remoteout。}6系統(tǒng)調(diào)試及分析 軟件調(diào)試及結(jié)果分析 KEIL C51環(huán)境KEIL是德國開發(fā)的一個51單片機(jī)開發(fā)軟件平臺,最開始只是一個支持C語言和匯編語言的編譯器軟件。后來隨著開發(fā)人員的不斷努力以及版本的不斷升級,使它已經(jīng)成為了一個重要的單片機(jī)開發(fā)平臺,不過KEIL的界面并不是非常復(fù)雜,操作也不是非常困難,很多工程師的開發(fā)的優(yōu)秀程序都是在KEIL的平臺上編寫出來的。單片機(jī)開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS51單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS51系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持Keil即可看出。Keil提供了包
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1