




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、紅外遙控及點(diǎn)陣式顯示器件的應(yīng)用目錄緒論21設(shè)計(jì)原理或方法 41.1 主要元器件介紹41.1.1 MCS-51單片機(jī)的結(jié)構(gòu)及編程方法41.1.2 16*16點(diǎn)陣LED 71.1.3 紅外控制相關(guān)介紹 81.2 設(shè)計(jì)方案介紹 92系統(tǒng)硬件線路設(shè)計(jì)圖113程序框圖124資源分配135源程序146性能分析357總結(jié)與心得368參考文獻(xiàn)38緒論單片機(jī)也被稱(chēng)為微控制器(Microcontroller Unit),常用英文字母的縮寫(xiě)MCU表示單片機(jī),它最早是被用在工業(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專(zhuān)用處理器發(fā)展而來(lái)。最早的設(shè)計(jì)理念是通過(guò)將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小,更容易集
2、成進(jìn)復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專(zhuān)用處理器的發(fā)展便分道揚(yáng)鑣。早期的單片機(jī)都是8位或4位的。其中最成功的是INTEL的8031,因?yàn)楹?jiǎn)單可靠而性能不錯(cuò)獲得了很大的好評(píng)。此后在8031上發(fā)展出了MCS51系列單片機(jī)系統(tǒng)?;谶@一系統(tǒng)的單片機(jī)系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領(lǐng)域要求的提高,開(kāi)始出現(xiàn)了16位單片機(jī),但因?yàn)樾詢(xún)r(jià)比不理想并未得到很廣泛的應(yīng)用。90年代后隨著消費(fèi)電子產(chǎn)品大發(fā)展,單片機(jī)技術(shù)得到了巨大提高。隨著INTEL i960系列特別是后來(lái)的ARM系列的廣泛應(yīng)用,32位單片機(jī)迅速取代16位單片機(jī)的高端地位,
3、并且進(jìn)入主流市場(chǎng)。而傳統(tǒng)的8位單片機(jī)的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。目前,高端的32位單片機(jī)主頻已經(jīng)超過(guò)300MHz,性能直追90年代中期的專(zhuān)用處理器,而普通的型號(hào)出廠價(jià)格跌落至1美元,最高端1的型號(hào)也只有10美元。當(dāng)代單片機(jī)系統(tǒng)已經(jīng)不再只在裸機(jī)環(huán)境下開(kāi)發(fā)和使用,大量專(zhuān)用的嵌入式操作系統(tǒng)被廣泛應(yīng)用在全系列的單片機(jī)上。而在作為掌上電腦和手機(jī)核心處理的高端單片機(jī)甚至可以直接使用專(zhuān)用的Windows和Linux操作系統(tǒng)。單片機(jī)比專(zhuān)用處理器更適合應(yīng)用于嵌入式系統(tǒng),因此它得到了最多的應(yīng)用。事實(shí)上單片機(jī)是世界上數(shù)量最多的計(jì)算機(jī)?,F(xiàn)代人類(lèi)生活中所用的幾乎每件電子和機(jī)械產(chǎn)品中都會(huì)集成
4、有單片機(jī)。手機(jī)、電話(huà)、計(jì)算器、家用電器、電子玩具、掌上電腦以及鼠標(biāo)等電腦配件中都配有1-2部單片機(jī)。而個(gè)人電腦中也會(huì)有為數(shù)不少的單片機(jī)在工作。汽車(chē)上一般配備40多部單片機(jī),復(fù)雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百臺(tái)單片機(jī)在同時(shí)工作!單片機(jī)的數(shù)量不僅遠(yuǎn)超過(guò)PC機(jī)和其他計(jì)算的總和,甚至比人類(lèi)的數(shù)量還要多。單片機(jī)又稱(chēng)單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。相當(dāng)于一個(gè)微型的計(jì)算機(jī),和計(jì)算機(jī)相比,單片機(jī)只缺少了I/O設(shè)備。概括的講:一塊芯片就成了一臺(tái)計(jì)算機(jī)。它的體積小、質(zhì)量輕、價(jià)格便宜、為學(xué)習(xí)、應(yīng)用和開(kāi)發(fā)提供了便利條件。同時(shí),學(xué)習(xí)使用單片機(jī)是了解計(jì)算機(jī)原理與結(jié)構(gòu)的最
5、佳選擇。單片機(jī)內(nèi)部也用和電腦功能類(lèi)似的模塊,比如CPU,內(nèi)存,并行總線,還有和硬盤(pán)作用相同的存儲(chǔ)器件,不同的是它的這些部件性能都相對(duì)我們的家用電腦弱很多,不過(guò)價(jià)錢(qián)也是低的,一般不超過(guò)10元即可.用它來(lái)做一些控制電器一類(lèi)不是很復(fù)雜的工作足矣了。我們現(xiàn)在用的全自動(dòng)滾筒洗衣機(jī)、排煙罩、VCD等等的家電里面都可以看到它的身影!.它主要是作為控制部分的核心部件。它是一種在線式實(shí)時(shí)控制計(jì)算機(jī),在線式就是現(xiàn)場(chǎng)控制,需要的是有較強(qiáng)的抗干擾能力,較低的成本,這也是和離線式計(jì)算機(jī)的(比如家用PC)的主要區(qū)別。單片機(jī)是靠程序運(yùn)行的,并且可以修改。通過(guò)不同的程序?qū)崿F(xiàn)不同的功能,尤其是特殊的獨(dú)特的一些功能,這是別的器件
6、需要費(fèi)很大力氣才能做到的,有些則是花大力氣也很難做到的。一個(gè)不是很復(fù)雜的功能要是用美國(guó)50年代開(kāi)發(fā)的74系列,或者60年代的CD4000系列這些純硬件來(lái)搞定的話(huà),電路一定是一塊大PCB板!但是如果要是用美國(guó)70年代成功投放市場(chǎng)的系列單片機(jī),結(jié)果就會(huì)有天壤之別!只因?yàn)閱纹瑱C(jī)的通過(guò)你編寫(xiě)的程序可以實(shí)現(xiàn)高智能,高效率,以及高可靠性!1設(shè)計(jì)原理或方法1.1 主要元器件介紹1.1.1 MCS-51單片機(jī)的結(jié)構(gòu)及編程方法51單片機(jī)內(nèi)包含下列幾個(gè)部件:一個(gè)8位CPU;一個(gè)片內(nèi)振蕩器及時(shí)鐘電路;4KB ROM程序存儲(chǔ)器;128B RAM數(shù)據(jù)存儲(chǔ)器;可尋址64KB外部數(shù)據(jù)存儲(chǔ)器和64KB外部程序存儲(chǔ)器空間的控制
7、電路;32條可編程的I/O線(4個(gè)8位并行I/O端口);兩個(gè)16位的定時(shí)/計(jì)數(shù)器;一個(gè)可編程全雙工串行口;5個(gè)中斷源、兩個(gè)優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)。 圖1 8051單片機(jī)的組成框圖(1)cpu中央處理器運(yùn)算器運(yùn)算器的功能是進(jìn)行算數(shù)、邏輯運(yùn)算。它可以對(duì)半字、單字節(jié)等數(shù)據(jù)進(jìn)行操作。運(yùn)算器還包含有一個(gè)布爾處理器,用來(lái)處理位操作。程序計(jì)數(shù)器PC 程序計(jì)數(shù)器PC是一個(gè)自動(dòng)加1的16位寄存器,用來(lái)存放即將要取出的指令碼的地址,可對(duì)64KB程序存儲(chǔ)器直接尋址。指令寄存器指令寄存器用于存放指令代碼。CPU執(zhí)行指令時(shí),由程序存儲(chǔ)器中讀出的指令代碼送入指令寄存器,經(jīng)指令譯碼器后由定時(shí)與控制電路發(fā)出相應(yīng)的控制信號(hào),完成指
8、令功能。(2) 存儲(chǔ)器MCS-51單片機(jī)按程序存儲(chǔ)器可分為內(nèi)部無(wú)ROM型(如8031)和內(nèi)部有ROM型(如8051)兩種,連接時(shí) 引腳有區(qū)別。程序存儲(chǔ)器結(jié)構(gòu)如右圖所示:程序存儲(chǔ)器 :一般將只讀存儲(chǔ)器(ROM)用做程序存儲(chǔ)器??蓪ぶ房臻g為64KB,用于存放用戶(hù)程序、數(shù)據(jù)和表格等信息。數(shù)據(jù)存儲(chǔ)器:一般將隨機(jī)存儲(chǔ)器(RAM)用做數(shù)據(jù)存儲(chǔ)器??蓪ぶ房臻g為64KB。MCS-51數(shù)據(jù)存儲(chǔ)器可分為片內(nèi)和片外兩部分。(3) 特殊功能寄存器(SFR) MCS-51有21個(gè)特殊功能寄存器(也稱(chēng)為專(zhuān)用寄存器),包括算術(shù)運(yùn)算寄存器、指針寄存器、I/O口鎖存器、定時(shí)器/計(jì)數(shù)器、串行口、中斷、狀態(tài)、控制寄存器等,它們被離
9、散地分布在內(nèi)部RAM的80HFFH地址單元中(不包括PC) ,共占據(jù)了128個(gè)存儲(chǔ)單元,構(gòu)成了SFR存儲(chǔ)塊。其字節(jié)地址可被8整除的SFR可位尋址。 圖2 80C51內(nèi)部結(jié)構(gòu)(4) I/O接口 I/O接口是MCS-51單片機(jī)對(duì)外部實(shí)現(xiàn)控制和信息交換的必經(jīng)之路,用于信息傳送過(guò)程中的速度匹配和增加它的負(fù)載能力。8051內(nèi)部有4個(gè)8位并行接口P0, P1, P2, P3,有1個(gè)全雙工的可編程串行I/O接口。(5) 定時(shí)器/計(jì)數(shù)器 8051內(nèi)部有兩個(gè)16位可編程序的定時(shí)器/計(jì)數(shù)器,均為二進(jìn)制加1計(jì)數(shù)器,分別命名為T(mén)0和T1。(6) 中斷系統(tǒng) 8051可處理5個(gè)中斷源(2個(gè)外部,3個(gè)內(nèi)部)發(fā)出的中斷請(qǐng)求,
10、并可對(duì)其進(jìn)行優(yōu)先權(quán)處理。外部中斷的請(qǐng)求信號(hào)可以從P3.2, P3.3引腳上輸入,有電平或邊沿兩種觸發(fā)方式;內(nèi)部中斷源有3個(gè),2個(gè)定時(shí)器/計(jì)數(shù)器中斷源和1個(gè)串行口中斷源。8051的中斷系統(tǒng)主要由中斷允許控制器IE和中斷優(yōu)先級(jí)控制器IP等電路組成。1.1.2 16*16點(diǎn)陣LED 8×8單色點(diǎn)陣共需要64個(gè)發(fā)光二極管組成,且每個(gè)二極管是放置在行線與列線的叉點(diǎn)上。下圖為8×8點(diǎn)陣LED外觀及引腳圖,其等效電路如下圖所示,只要其對(duì)應(yīng)的X、Y軸順向偏壓,即可使LED發(fā)亮。圖3 8×8點(diǎn)陣外觀及引腳圖圖4 8X8 LED 點(diǎn)陣等效電路LED驅(qū)動(dòng)顯示采用動(dòng)態(tài)掃描方法,動(dòng)態(tài)掃描方
11、式是逐行輪流點(diǎn)亮,這樣掃描驅(qū)動(dòng)電路就可以實(shí)現(xiàn)多行的同名列共用一套列驅(qū)動(dòng)器。以16×16點(diǎn)陣為例,把所有同一行的發(fā)光管的陽(yáng)極連在一起,把所有同一列的發(fā)光管的陰極連在一起(共陽(yáng)的接法),先送出對(duì)應(yīng)第1行發(fā)光管亮滅的數(shù)據(jù)并鎖存,然后選通第1行使其燃亮一定的時(shí)間,然后熄滅;再送出第2行的數(shù)據(jù)并鎖存,然后選通第2行使其燃亮相同的時(shí)間,然后熄滅;.第16行之后,又重新燃亮第1行,反復(fù)輪回。當(dāng)這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺(jué)暫留現(xiàn)象,就能看到顯示屏上穩(wěn)定的圖形。該方法能驅(qū)動(dòng)較多的LED,控制方式較靈活,而且節(jié)省單片機(jī)的資源。顯示數(shù)據(jù)傳輸采用串行傳輸?shù)姆椒ǎ刂齐娐房梢灾挥靡桓?/p>
12、信號(hào)線,將列數(shù)據(jù)一位一位傳往列驅(qū)動(dòng)器,在硬件方面無(wú)疑是十分經(jīng)濟(jì)的。但串行傳輸過(guò)程較長(zhǎng),數(shù)據(jù)按順序一位一位地輸出給列驅(qū)動(dòng)器,只有當(dāng)一行的各列數(shù)據(jù)都已傳輸?shù)轿恢?,這一行的各列才能并行地進(jìn)行顯示。對(duì)于串行傳輸方式來(lái)說(shuō),列數(shù)據(jù)準(zhǔn)備時(shí)間可能相當(dāng)長(zhǎng),在行掃描周期確定的情況下,留給行顯示的時(shí)間就太少了,以致影響到LED的亮度。采用串行傳輸中列數(shù)據(jù)準(zhǔn)備和列數(shù)據(jù)顯示的時(shí)間矛盾,可以采用重疊處理的方法。即在顯示本行各列數(shù)據(jù)的同時(shí),傳送下一行的列數(shù)據(jù)。為了達(dá)到重疊處理的目的,列數(shù)據(jù)的顯示就需要有鎖存功能。對(duì)于列數(shù)據(jù)準(zhǔn)備來(lái)說(shuō),它應(yīng)能實(shí)現(xiàn)串入并出的移位功能。這樣,本行已準(zhǔn)備好的數(shù)據(jù)打入并行鎖存器進(jìn)行顯示時(shí),串行移位寄
13、存器就可以準(zhǔn)備下一行的列數(shù)據(jù),而不會(huì)影響本行的顯示。LED點(diǎn)陣顯示模塊進(jìn)行的方法有兩種:(1)水平方向(X方向)掃描,即逐列掃描的方式(簡(jiǎn)稱(chēng)列掃描方式):此時(shí)用一個(gè)P口輸出列碼決定哪一列能亮(相當(dāng)于位碼),用另一個(gè)P口輸出行碼(列數(shù)據(jù)),決定該行上那哪個(gè)LED亮(相當(dāng)于段碼)。能亮的列從左到右掃描完16列(相當(dāng)于位碼循環(huán)移動(dòng)16次)即顯示出一個(gè)完整的圖像。(2)豎直方向(Y方向)掃描,即逐行掃描方式(簡(jiǎn)稱(chēng)行掃描方式):此時(shí)用一個(gè)P口輸出決定哪一行能亮(相當(dāng)于位碼),另一個(gè)P口輸出列碼(行數(shù)據(jù),行數(shù)據(jù)為將列數(shù)據(jù)的點(diǎn)陣旋轉(zhuǎn)90度的數(shù)據(jù))決定該行上哪些LED燈亮(相當(dāng)于段碼)。能亮的行從上向下掃描完
14、16行(相當(dāng)于位碼循環(huán)移位16次)即顯示一幀完整的圖像。1.1.3 紅外控制相關(guān)介紹紅外遙控系統(tǒng)由發(fā)射和接收兩大部份組成,應(yīng)用編/解碼專(zhuān)用集成電路芯片來(lái)進(jìn)行控制操作,如圖1 所示。發(fā)射部份包括鍵盤(pán)矩陣、編碼調(diào)制、LED紅外發(fā)送器;接收部份包括光、電轉(zhuǎn)換放大器、解調(diào)、解碼電路。LED編碼調(diào)制鍵盤(pán)解碼解調(diào)光/電放大圖5 紅外遙控系統(tǒng)框圖HT6221 鍵碼的形成:當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms 的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685m
15、s、周期為2.25ms 的組合表示二進(jìn)制的“1”。1.2 設(shè)計(jì)方案介紹1.2.1 設(shè)計(jì)總體思路 本次課程設(shè)計(jì)的要求是利用紅外遙控器控制,在16×16點(diǎn)陣的顯示器件上循環(huán)顯示“武漢理工大學(xué)”6個(gè)漢字,控制項(xiàng)目:循環(huán)顯示的速度可調(diào),循環(huán)顯示進(jìn)入方向(從左至右、從右至左、從上到下、從下往上)。由于要用16*16點(diǎn)陣顯示漢字,而80C51的I/O接口是8位的,我們可以用4個(gè)8*8點(diǎn)陣來(lái)組成。由于80C51的I/O口不多(只有4組,32個(gè)),為了節(jié)約I/O口,我們用74HC154(4線-16譯碼器)作為點(diǎn)陣的列驅(qū)動(dòng),P2口和P0口作為數(shù)據(jù)線。為了顯示16*16的點(diǎn)陣漢字,我們需建一個(gè)表先將要顯
16、示的漢字的點(diǎn)陣碼存起來(lái),然后編寫(xiě)一個(gè)合適的查表程序就可以按給定要求顯示漢字。至于改變漢字移動(dòng)的速度,可以通過(guò)用按鍵改變漢字在LED上的顯示時(shí)間來(lái)改變,通過(guò)改變的數(shù)值大小就可以改變漢字的移動(dòng)速度。1.2.2 與題目相關(guān)的具體設(shè)計(jì)漢字的顯示:可以采用掃描的方式,先使一個(gè)I/O口產(chǎn)生一個(gè)選行(列)信號(hào)(通過(guò)74HC154),先選中一行,對(duì)選中的行進(jìn)行掃描,然后用另外2組I/O口輸送數(shù)據(jù),這樣一個(gè)字的1/16就送到LED點(diǎn)陣上了,接著選下一行,這樣經(jīng)過(guò)16次就可以顯示一個(gè)字了,再適當(dāng)延時(shí)使顯示的字清晰。漢字的移動(dòng):在LED上顯示一個(gè)漢字并延時(shí)后,可以通過(guò)增加所取表的地址(加2);這樣下一次LED上顯示
17、的字就移動(dòng)了一個(gè)點(diǎn)陣,可以通過(guò)適當(dāng)?shù)脑O(shè)計(jì)來(lái)控制漢字移動(dòng)循環(huán)的的次數(shù)。漢字的左右上下移動(dòng):可以通過(guò)建立不同的表,來(lái)實(shí)現(xiàn)漢字的各種移動(dòng),或者改變查表的方式來(lái)實(shí)現(xiàn)。2系統(tǒng)硬件線路設(shè)計(jì)圖3程序框圖 開(kāi)始移動(dòng)系統(tǒng)初始化選點(diǎn)陣行號(hào)并增一 上移動(dòng)右移動(dòng) 下移動(dòng)左移動(dòng)等待遙控信號(hào)出現(xiàn)按1?按2?按3?按4?按5?按6?加速減速 送新行數(shù)據(jù)切換顯示數(shù)據(jù)是 否送新行號(hào),打開(kāi)顯示 是 否退出移動(dòng)是 否 顯示驅(qū)動(dòng)程序流程圖 是 否是否是否否是否系統(tǒng)主程序流程圖4資源分配 P1.0到P1.3接74HC154(4-16譯碼器)給16*16點(diǎn)陣提供選行信號(hào)。P0.0到P0.7接16*16點(diǎn)陣的上半塊作為數(shù)據(jù)線,給16*16
18、點(diǎn)陣上部提供數(shù)據(jù),點(diǎn)亮相應(yīng)的LED,P2.0到P2.7接16*16點(diǎn)陣的下半塊作為數(shù)據(jù)線,給16*16點(diǎn)陣下部提供數(shù)據(jù),點(diǎn)亮相應(yīng)的LED。P1.4接開(kāi)關(guān),用于控制移動(dòng)速度(減慢移動(dòng)速度),P1.5接開(kāi)關(guān),用于控制移動(dòng)速度(加快移動(dòng)速度),P1.6接開(kāi)關(guān),用于控制系統(tǒng)的顯示是否開(kāi)始。接譯碼器接16*16點(diǎn)陣的上半塊作為數(shù)據(jù)線接16*16點(diǎn)陣的下半塊作為數(shù)據(jù)線P3.7接紅外5源程序ORG 30HMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMAIN: LCALL START LJMP MAIN MOVE1: MOV SP,#40H MOV DPTR,#TABLE3 MOV
19、 P0,#00 MOV P2,#00 X4:MOV 21H,#00H MOV R0,#00H X3:JNB P3.7,J1 LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START J1: MOV R3,70H X2:JNB P3.7,J2 LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START J2:MOV R4,#16 MO
20、V R1,#00H MOV R2,21H X1: JNB P3.7,J3 LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START J3: MOV A,R1 MOV P1,R1 INC R1 MOV A,R2 MOVC A,A+DPTR MOV P0,A INC R2 MOV A,R2 MOVC A,A+DPTR MOV P2,A INC R2 LCALL DELAY SSW:MOV P0,#00H MOV P2,#00H DJNZ R4,X1 DJNZ R3,
21、X2 INC 21H INC 21H MOV R0,21H CJNE R2,#0BEH,X3 LJMP MOVE1MOVE2:MOV SP,#40H MOV DPTR,#TABLE MOV P0,#00 MOV P2,#00 LCALL DELAY L4:MOV 21H,#0BFH MOV R0,#0BFH MOV R5,#04 L3:JNB P3.7,J4 LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START J4:MOV R3,70H L2:JNB P3
22、.7,J5 LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START J5:MOV R4,#16 MOV R1,#10H MOV R2,21H L1:JNB P3.7,J6 LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START J6:MOV A,R1 MOV P1,R1 DEC R1 MOV A,R2 MOVC A,A+DPT
23、R MOV P2,A DEC R2 MOV A,R2 MOVC A,A+DPTR MOV P0,A DEC R2 LCALL DELAY MOV P0,#00H MOV P2,#00H DJNZ R4,L1 DJNZ R3,L2 DEC 21H DEC 21H MOV R0,21H CJNE R2,#01,L3 LJMP MOVE2 DELAY:SETB RS0 MOV R6,#02 D1:MOV R7,#25 DJNZ R7,$ DJNZ R6,D1 CLR RS0 RETMOVE3: MOV SP,#70H MOV R6,#00H MOV R0,#20H MOV R1,#30H MOV D
24、PTR,#TABLE1 LCALL LOADING LOOP: MOV 60H,#06H MOV DPTR,#TABLE2 AGAIN:MOV R0,#40H MOV R1,#50H LCALL LOADING MOV R4,#16 NEXT: LCALL ROTATE MOV R5,7FH;#80 LP2: JNB P3.7,J7 LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START J7:MOV R7,#16 MOV R3,#00H MOV R0,#20
25、H MOV R1,#30H LP1: JNB P3.7,J8 LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START J8: MOV A,R3 MOV P1,A MOV A,R0 MOV P0,A INC R0 MOV A,R1 MOV P2,A INC R1 INC R3 DJNZ R7,LP1 DJNZ R5,LP2 DJNZ R4,NEXT DJNZ 60H,AGAIN LJMP MOVE3ROTATE:PUSH ACC SETB RS1 MOV R3,
26、#00H MOV R4,#16ROTATE1:CLR CY MOV A,#50H ADD A,R3 MOV R0,A MOV A,R0 RLC A MOV R0,A MOV A,#40H PUSH PSW ADD A,R3 MOV R0,A MOV A,R0 POP PSW RLC A MOV R0,A MOV A,#30H PUSH PSW ADD A,R3 MOV R0,A MOV A,R0 POP PSW RLC A MOV R0,A MOV A,#20H PUSH PSW ADD A,R3 MOV R0,A MOV A,R0 POP PSW RLC A MOV R0,A INC R3
27、DJNZ R4,ROTATE1 CLR RS1 POP ACC RETLOADING:MOV R2,#16 L_1 :JNB P3.7,AD33 LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START AD33: MOV A,#00H MOVC A,A+DPTR MOV R0,A INC R0 INC DPTR CLR A MOVC A,A+DPTR MOV R1,A INC R1 INC DPTR DJNZ R2,L_1 RETMOVE4: MOV SP,#
28、70H MOV R6,#00H MOV R0,#20H MOV R1,#30H MOV DPTR,#TABLE1 LCALL LOADING LOOP1: MOV 60H,#06H MOV DPTR,#TABLE2 AGAIN1:MOV R0,#40H MOV R1,#50H LCALL LOADING MOV R4,#16 NEXT1: LCALL ROTATE10 MOV R5,7FH LP21:JNB P3.7,AD41 LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START
29、LCALL START AD41: MOV R7,#16 MOV R3,#00H MOV R0,#20H MOV R1,#30H LP11: JNB P3.7,AD42 LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START LCALL START AD42: MOV A,R3 MOV P1,A MOV A,R0 MOV P0,A INC R0 MOV A,R1 MOV P2,A INC R1 INC R3 DJNZ R7,LP11 DJNZ R5,LP21 DJNZ R4,NEXT
30、1 DJNZ 60H,AGAIN1 LJMP MOVE4 ROTATE10:PUSH ACC SETB RS1 MOV R3,#00H MOV R4,#16ROTATE11:CLR CY MOV A,#40H ADD A,R3 MOV R0,A MOV A,R0 RRC A MOV R0,A MOV A,#50H PUSH PSW ADD A,R3 MOV R0,A MOV A,R0 POP PSW RRC A MOV R0,A MOV A,#20H PUSH PSW ADD A,R3 MOV R0,A MOV A,R0 POP PSW RRC A MOV R0,A MOV A,#30H PU
31、SH PSW ADD A,R3 MOV R0,A MOV A,R0 POP PSW RRC A MOV R0,A INC R3 DJNZ R4,ROTATE11 CLR RS1 POP ACC RETSTART:JB P3.7,EX;等待遙控信號(hào)出現(xiàn)SB: MOV R4,#8 ;8毫秒為高電平錯(cuò)誤SBA: MOV R5,#250SBB: JB P3.7,SXB1 DJNZ R5,SBB DJNZ R4,SBA MOV R4,#2 JMP SBCSXB1: MOV R5,#5SXB2: ;去掉20US的尖峰干擾信號(hào) JNB P3.7,SBB DJNZ R5,SXB2 JMP STARTSBC:
32、MOV R5,#250SB1:JB P3.7,SB2 ;2MS內(nèi)不為高電平錯(cuò)誤(監(jiān)測(cè)9MS的低電平引導(dǎo)碼) DJNZ R5,SB1 DJNZ R4,SBC JMP START EX:RETSB2: ;去掉20US的尖峰干擾信號(hào) MOV R5,#5SB2_A: JNB P3.7,SB1 DJNZ R5,SB2_A MOV R4,#3SB2_1: MOV R5,#250SB3: ;監(jiān)測(cè)4.5MS高電平,如3MS內(nèi)出現(xiàn)低電平錯(cuò)誤 JNB P3.7,SXC DJNZ R5,SB3 DJNZ R4,SB2_1 MOV R4,#2 JMP SB3_1SXC: ;去掉20US的尖峰干擾信號(hào) MOV R5,#
33、5SXC1: JB P3.7,SB3 DJNZ R5,SXC1 JMP STARTSB3_1: ;監(jiān)測(cè)4.5MS高電平,如5MS內(nèi)不為低電平錯(cuò)誤 MOV R5,#250SB3_2: JNB P3.7,SB4 DJNZ R5,SB3_2 DJNZ R4,SB3_1 JMP STARTSB4: ;去掉20US的尖峰干擾信號(hào) MOV R5,#5SB4_1: JB P3.7,SB3_2 DJNZ R5,SB4_1MOV R1,#1AH ;設(shè)定1AH為起始RAM區(qū)MOV R2,#4PP: MOV R3,#8JJJJ: MOV R5,#250JJJJ2: ;1MS內(nèi)不為低電平錯(cuò)誤 JB P3.7,JJJJ
34、3 DJNZ R5,JJJJ2 JMP STARTJJJJ3:LLCALL YS1 ;高電平開(kāi)始后用882微秒的時(shí)間尺去判斷信號(hào)此時(shí)的高低電平狀態(tài)MOV C,P3.7 ;將P3.7引腳此時(shí)的電平狀態(tài)0或1存入C中JNC UUU ;如果為0就跳轉(zhuǎn)到UUU MOV R5,#250JJJJ4: JNB P3.7,UUU NOP DJNZ R5,JJJJ4 JMP STARTUUU:MOV A,R1 ;將R1中地址的給ARRC A ;將C中的值0或1移入A中的最低位MOV R1,A ;將A中的數(shù)暫時(shí)存放在R1中DJNZ R3,JJJJ ;接收地址碼的高8位INC R1 ;對(duì)R1中的值加1,換成下一個(gè)R
35、AMDJNZ R2,PP ;接收完16位地址碼和8位數(shù)據(jù)碼和8位數(shù)據(jù)反碼,存放在1AH/1BH/1CH/1DH的RAM中;以下對(duì)代碼是否正確和定義進(jìn)行識(shí)別MOV A,1AH;比較高8位地址碼XRL A,#00000000B ;判斷1AH的值是否等于00000000,相等的話(huà)A為0JNZ EXIT;如果不相等說(shuō)明解碼失敗退出解碼程序MOV A,1BH;比較低8位地址XRL A,#11111111B ;再判斷高8位地址是否正確JNZ EXIT;如果不相等說(shuō)明解碼失敗退出解碼程序LLCALL YS3MOV A,1CH;比較數(shù)據(jù)碼和數(shù)據(jù)反碼是否正確?CPL AXRL A,1DH ;將1CH的值取反后和
36、1DH比較 不同則無(wú)效丟棄,核對(duì)數(shù)據(jù)是否準(zhǔn)確JNZ EXIT;如果不相等說(shuō)明解碼失敗退出解碼程序LLCALL YS3CLR P2.6 ;選中數(shù)碼管CLR P3.3;解碼成功喇叭響?AJMP BIJIAO;判斷在118毫秒內(nèi)是否有連發(fā)碼AA:MOV R1,#25XX:ALCALL YS2JNB P3.7,HH;跳轉(zhuǎn)到判斷連發(fā)代碼是否正確的程序段DJNZ R1,XXEXIT: ;對(duì)所有端口清零AJMP START;連發(fā)碼判斷程序段-HH:MOV R6,#4S: ALCALL YS1;調(diào)用882微秒延時(shí)子程序JB P3.7,EXIT;延時(shí)882微秒后判斷P3.7腳是否出現(xiàn)高電平如果有就退出解碼程序D
37、JNZ R6, S;重復(fù)4次,目的是確認(rèn)連發(fā)碼的低電平信號(hào)波形JNB P3.7, $ ;等待高電?LLCALL YS3AJMP AABIJIAO:MOV A,1CH;按鍵數(shù)值判斷執(zhí)MOV P1,ACJNE A,#10H,T1 LLCALL MOVE1T1: CJNE A,#03H,T2 LLCALL MOVE2T2: CJNE A,#01H,T3 LLCALL MOVE3T3: CJNE A,#06H,T4 LLCALL MOVE4T4: CJNE A,#09H,T5 MOV 70H, #20H MOV 7FH,#20 JNB P3.7,AA5 LJMP STARTAA5:LJMP AAT5:
38、 CJNE A,#1DH,T6 MOV 70H,#100H MOV 7FH,#255 JNB P3.7,AA6 LJMP STARTAA6:LJMP AAT6:LJMP AA;T4: CJNE A,#09H,T5 ;JMP MAIN;T5: LJMP AAYS1: MOV R4,#20 ;延時(shí)子程序1,精確延時(shí)882微秒D11: MOV R5,#20DJNZ R5,$DJNZ R4,D11RETYS2: MOV R4,#10 ;延時(shí)子程序2,精確延時(shí)4740微秒D2: MOV R5,#235DJNZ R5,$DJNZ R4,D2RETYS3:MOV R4,#2;延時(shí)程序3,精確延時(shí)1000微秒
39、D3:MOV R5,#248DJNZ R5,$DJNZ R4,D3RET TABLE1:DB 04H,04H,04H,06H,24H,0FCH,24H,04H DB 24H,04H,27H,0F8H,64H,88H,24H,88H DB 04H,08H,0FFH,0C0H,04H,38H,44H,04H DB 34H,02H,04H,01H,04H,07H,00H,00H TABLE2: DB 08H,20H,44H,20H,26H,7EH,30H,80H DB 01H,01H,20H,02H,2EH,04H,21H,88H DB 20H,50H,20H,20H,20H,0D0H,23H,08
40、H DB 7CH,06H,20H,03H,00H,02H,00H,00H DB 22H,08H,22H,0CH,3FH,0F8H,62H,10H DB 22H,12H,00H,12H,7FH,22H,49H,22H DB 49H,22H,7FH,0FEH,49H,22H,49H,62H DB 0FFH,22H,40H,06H,00H,02H,00H,00H DB 00H,04H,20H,04H,20H,04H,20H,04H DB 20H,04H,20H,04H,20H,04H,3FH,0FCH DB 20H,04H,20H,04H,20H,04H,20H,04H DB 60H,04H,20H
41、,0CH,00H,04H,00H,00H DB 04H,00H,04H,02H,04H,02H,04H,04H DB 04H,08H,04H,30H,05H,0C0H,0FEH,00H DB 05H,80H,04H,60H,04H,10H,04H,08H DB 04H,04H,0CH,06H,04H,04H,00H,00H DB 02H,20H,0CH,20H,88H,20H,69H,20H DB 09H,20H,09H,22H,89H,21H,69H,7EH DB 09H,60H,09H,0A0H,19H,20H,28H,20H DB 0C8H,20H,0AH,60H,0CH,20H,00H
42、,00H DB 04H,04H,04H,06H,24H,0FCH,24H,04H DB 24H,04H,27H,0F8H,64H,88H,24H,88H DB 04H,08H,0FFH,0C0H,04H,38H,44H,04H DB 34H,02H,04H,01H,04H,07H,00H,00H TABLE :DB 02H,20H,0CH,20H,88H,20H,69H,20HDB 09H,20H,09H,22H,89H,21H,69H,7EHDB 09H,60H,09H,0A0H,19H,20H,28H,20HDB 0C8H,20H,0AH,60H,0CH,20H,00H,00HDB 04H
43、,00H,04H,02H,04H,02H,04H,04HDB 04H,08H,04H,30H,05H,0C0H,0FEH,00HDB 05H,80H,04H,60H,04H,10H,04H,08HDB 04H,04H,0CH,06H,04H,04H,00H,00HDB 00H,04H,20H,04H,20H,04H,20H,04HDB 20H,04H,20H,04H,20H,04H,3FH,0FCHDB 20H,04H,20H,04H,20H,04H,20H,04HDB 60H,04H,20H,0CH,00H,04H,00H,00HDB 22H,08H,22H,0CH,3FH,0F8H,62H
44、,10HDB 22H,12H,00H,12H,7FH,22H,49H,22HDB 49H,22H,7FH,0FEH,49H,22H,49H,62HDB 0FFH,22H,40H,06H,00H,02H,00H,00HDB 08H,20H,44H,20H,26H,7EH,30H,80HDB 01H,01H,20H,02H,2EH,04H,21H,88HDB 20H,50H,20H,20H,20H,0D0H,23H,08HDB 7CH,06H,20H,03H,00H,02H,00H,00HDB 04H,04H,04H,06H,24H,0FCH,24H,04HDB 24H,04H,27H,0F8H,64H,88H,24H,88HDB 04H,0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 青稞真菌毒素防治技術(shù)規(guī)范
- 食品溯源工程師筆試試題及答案
- 2025年脫灰劑項(xiàng)目建議書(shū)
- 2025年湖北省民族宗教事務(wù)委員會(huì)下屬事業(yè)單位招聘考試筆試試題【答案】
- 2024年通遼市庫(kù)倫旗烏蘭牧騎招聘演職人員真題
- 2025年江蘇省高校畢業(yè)生“三支一扶”計(jì)劃招募考試試題【答案】
- 2025年白蘭地相關(guān)飲料酒合作協(xié)議書(shū)
- 項(xiàng)目二 常見(jiàn)熱處理
- 2025年耐磨球段項(xiàng)目建議書(shū)
- 全球視野下的終身學(xué)習(xí)體系建設(shè)
- 《3-6歲兒童學(xué)習(xí)與發(fā)展指南》考試參考題庫(kù)120題(含答案)
- 零信任安全架構(gòu)-第1篇
- 《發(fā)酵飼料的應(yīng)用》課件
- 物業(yè)客服主管的角色與職責(zé)解析
- 國(guó)家開(kāi)放大學(xué)2023年7月期末統(tǒng)一試《22417客戶(hù)關(guān)系管理》試題及答案-開(kāi)放專(zhuān)科
- 職業(yè)倦怠量表MBIGS (MBIGeneral Survey)
- 西式面點(diǎn)師(高級(jí))課件 項(xiàng)目4 甜品制作
- 鼎捷T100-V1.0-銷(xiāo)售管理用戶(hù)手冊(cè)-簡(jiǎn)體
- 抗生素的合理應(yīng)用-專(zhuān)業(yè)知識(shí)講座培訓(xùn)課件
- 港式清單模板
- “三高共管、六病同防”工作實(shí)踐10-40-16
評(píng)論
0/150
提交評(píng)論