版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告選題名稱(chēng): 基于at89s52單片機(jī)的遙控器設(shè)計(jì) 系(院): 計(jì)算機(jī)工程學(xué)院專(zhuān) 業(yè): 班 級(jí): 姓 名學(xué) 號(hào): 指導(dǎo)教師: 學(xué)年學(xué)期: 2009 2010 學(xué)年 第 2 學(xué)期2010年 5 月 30 日摘要: 單片機(jī)紅外遙控器可以通過(guò)非接觸式實(shí)現(xiàn)對(duì)控制系統(tǒng)的操縱,不影響、干擾其他設(shè)備,編解碼容易,可進(jìn)行多路通信。單片機(jī)是將中央處理器、隨機(jī)存儲(chǔ)器、只讀存儲(chǔ)器、定時(shí)器芯片和一些輸入/輸出接口電路集成在一個(gè)芯片上的微控制器。紅外通信是利用950nm近紅外波段的紅外線(xiàn)作為傳遞信息的媒體,即通信信道。發(fā)送端采用脈沖調(diào)制方式,將二進(jìn)制數(shù)字信號(hào)調(diào)制成某一頻率的脈沖序列,并驅(qū)動(dòng)
2、紅外發(fā)射二級(jí)管ph303以光脈沖的形式發(fā)送出去,接收端紅外接收頭ph302將接收到的光脈沖轉(zhuǎn)換成電信號(hào),再經(jīng)過(guò)放大、濾波等處理后送給解調(diào)電路進(jìn)行解調(diào),還原為二進(jìn)制數(shù)字信號(hào)后的輸出。紅外遙控系統(tǒng)由發(fā)射和接收兩大部分組成,發(fā)射部分由鍵盤(pán)電路、遙控編碼調(diào)制電路、放大器、紅外發(fā)送二極管等組成,當(dāng)2x8鍵盤(pán)有鍵按下時(shí),遙控編碼電路通過(guò)鍵盤(pán)行列掃描獲得所按鍵的鍵值,鍵值通過(guò)編碼獲得一串鍵值代碼,用編碼脈沖去調(diào)制40khz的載波信號(hào),放大后通過(guò)紅外發(fā)射二極管發(fā)射出去。接收電路將接收的信號(hào)通過(guò)放大電路將信號(hào)放大,經(jīng)過(guò)解調(diào)解碼后將信號(hào)整形輸出,通過(guò)單片機(jī)控制led燈的亮滅。關(guān)鍵字:紅外遙控器;單片機(jī);紅外通信;
3、ph303;ph302目 錄1、課題綜述12、系統(tǒng)分析22.1紅外通信原理22.2單片機(jī)系統(tǒng)設(shè)計(jì)22.3紅外發(fā)射單元62.4紅外接收單元63、系統(tǒng)設(shè)計(jì)73.1硬件設(shè)計(jì)73.2 軟件設(shè)計(jì)94、程序清單104.1遙控發(fā)送程序清單:104.2遙控接收程序清單:18總 結(jié)23參考文獻(xiàn)24單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)計(jì)報(bào)告1、課題綜述課題名稱(chēng):基于at89s52單片機(jī)的遙控器設(shè)計(jì)。課題意義:隨著電子技術(shù)的飛速發(fā)展,新型大規(guī)模遙控集成電路的不斷出現(xiàn),使遙控技術(shù)有了日新月異的發(fā)展。遙控裝置的中心控制部件已從早期的分立元件、集成電路逐步發(fā)展到現(xiàn)在的單片微型計(jì)算機(jī),智能化程度大大提高。近年來(lái),遙控技術(shù)在工業(yè)生產(chǎn)
4、、家用電器、安全保衛(wèi)以及人們的日常生活中使用越來(lái)越廣泛。紅外遙控器可以通過(guò)非接觸式實(shí)現(xiàn)對(duì)控制系統(tǒng)的操縱,不影響周邊環(huán)境,干擾其他電器設(shè)備,編解碼容易,可進(jìn)行多路通信。在一些比較惡劣的環(huán)境中使用遙控器,可以保證操作者的安全,它設(shè)計(jì)簡(jiǎn)單,價(jià)格低廉,是一種應(yīng)用很廣的短程遙控系統(tǒng)。通過(guò)研究遙控器的設(shè)計(jì)可以學(xué)習(xí)單片機(jī)系統(tǒng)的開(kāi)發(fā),單片機(jī)的工作方式和功能的實(shí)現(xiàn),了解紅外通信的原理,實(shí)現(xiàn)短程遙控,更系統(tǒng)全面的接觸單片機(jī)。課題要求:基于at89s52單片機(jī)遙控器晶振采用12mhz。單個(gè)遙控發(fā)射模塊可以控制多個(gè)控制對(duì)象,遙控的距離5-10m,并有一定的角度范圍。預(yù)期目標(biāo):?jiǎn)纹瑱C(jī)紅外遙控器一套。關(guān)鍵技術(shù):制作遙控器
5、需要解決很多問(wèn)題,比如單片機(jī)原理和最小系統(tǒng)設(shè)計(jì)、紅外發(fā)射和接收器的工作原理、鍵盤(pán)的掃描等,最終還要編寫(xiě)匯編語(yǔ)言調(diào)試運(yùn)行實(shí)現(xiàn)既定的結(jié)果。2、系統(tǒng)分析2.1紅外通信原理紅外通信是利用950nm 近紅外波段的紅外線(xiàn)為傳遞信息的載體,即通信信道。發(fā)端用脈時(shí)調(diào)制(ppm)方式,將二進(jìn)制數(shù)字信號(hào)調(diào)制成某一頻率的脈沖序列, 并利用該脈沖序列驅(qū)動(dòng)紅外線(xiàn)發(fā)射管以光脈沖的形式向外發(fā)射紅外光, 而接收端將接收到的光脈沖信號(hào)轉(zhuǎn)換成電信號(hào),在經(jīng)過(guò)放大、濾波等處理后送給解調(diào)電路進(jìn)行解調(diào), 還原成二進(jìn)制數(shù)字電信號(hào)后輸出。簡(jiǎn)而言之,紅外通信的實(shí)質(zhì)就是對(duì)二進(jìn)制數(shù)字信號(hào)進(jìn)行調(diào)制與解調(diào),以便利用紅外信道進(jìn)行傳輸, 而紅外通信接口就
6、是針對(duì)紅外信道的調(diào)制解調(diào)器。采用脈寬調(diào)制的串行碼,以脈寬為0.5ms、間隔0.5ms、周期為1ms 的組合表示二進(jìn)制的“0”;以脈寬為0.5ms、間隔1ms、周期為2ms 的組合表示二進(jìn)制的“1”,如圖1-1所示。上述“0”和“1”組成的42 位二進(jìn)制碼經(jīng)40khz 的載頻進(jìn)行二次調(diào)制以提高發(fā)射效率,達(dá)到降低電源功耗的目的。然后再通過(guò)紅外發(fā)射二極管產(chǎn)生紅外線(xiàn)向空間發(fā)射。0.5ms1 ms“0”“1”0.5ms2 ms圖2-1 遙控碼的“0”和“1”2.2單片機(jī)系統(tǒng)設(shè)計(jì)一個(gè)典型的單片機(jī)系統(tǒng)主要由單片機(jī)、晶振和復(fù)位電路、輸入控制電路、輸出顯示電路以及外圍功能器件5個(gè)部分組成。如圖2-2。晶振、復(fù)位
7、電路輸入控制單片機(jī)輸出顯示外圍功能器件圖2-2 單片機(jī)系統(tǒng)的組成單片機(jī)最小系統(tǒng)是單片機(jī)能夠正常運(yùn)行的最基本電路系統(tǒng),如圖2-3。通過(guò)最小系統(tǒng)與外圍設(shè)備的鏈接可以實(shí)現(xiàn)不同的功能。圖2-3 單片機(jī)最小系統(tǒng)原理圖2.2.1單片機(jī)at89s52 at89s52片內(nèi)集成256字節(jié)程序運(yùn)行空間、8k字節(jié)flash存儲(chǔ)空間,支持最大64k外部存儲(chǔ)擴(kuò)展。根據(jù)不同的運(yùn)行速度和功耗的要求,時(shí)鐘頻率可以設(shè)置在0-33m之間。片內(nèi)資源有4組i/o控制端口、3個(gè)定時(shí)器、8個(gè)中斷、軟件設(shè)置低能耗模式、看門(mén)狗和斷電保護(hù)??梢栽?v到5.5v寬電壓范圍內(nèi)正常工作。2.2.2復(fù)位電路復(fù)位電路是維持單片機(jī)最小系統(tǒng)運(yùn)行的基本模塊。
8、復(fù)位電路通常分為兩種:上電復(fù)位和手動(dòng)復(fù)位。如圖2-4。有時(shí)系統(tǒng)在運(yùn)行過(guò)程中出現(xiàn)程序跑飛的情況,在程序開(kāi)發(fā)過(guò)程中,經(jīng)常需要手動(dòng)復(fù)位。所以本次設(shè)計(jì)選用手動(dòng)復(fù)位。當(dāng)單片機(jī)振蕩器運(yùn)行時(shí),在此引腳出現(xiàn)2個(gè)機(jī)器周期的的高電平(有低電平到高電平的跳變),將使單片機(jī)復(fù)位。因?yàn)槿擞檬謱存I按下時(shí)的時(shí)間遠(yuǎn)大于2個(gè)機(jī)器周期,所以便能產(chǎn)生復(fù)位。圖2-4 復(fù)位電路原理圖2.2.3晶振電路晶振電路是維持單片機(jī)最小系統(tǒng)運(yùn)行的基本模塊,如圖2-5。它為單片機(jī)提供時(shí)鐘脈沖信號(hào),沒(méi)有晶振電路單片機(jī)便不能正常工作。本單片機(jī)系統(tǒng)采用的晶振頻率為12mhz,晶振2端分別接入單片機(jī)的第18、19引腳,并聯(lián)2個(gè)30pf陶瓷電容幫助起振。它
9、的時(shí)鐘周期是1/12us,即它的一個(gè)機(jī)器周期為1us。圖2-5晶振電路原理圖2.2.4按鍵電路2*8矩陣鍵盤(pán)是一種簡(jiǎn)易鍵盤(pán)設(shè)計(jì),如圖2-6。與編碼鍵盤(pán)相比,矩陣鍵盤(pán)不需要專(zhuān)門(mén)的編碼芯片,從而成本低,設(shè)計(jì)簡(jiǎn)單。鍵盤(pán)的原理是在一端接入高電平,用單片機(jī)一個(gè)端口去檢測(cè)按鍵另一端的電平,另一端是低電平時(shí),說(shuō)明按鍵被按下。2*8矩陣鍵盤(pán),分為2行8列,在每列加上拉電阻(加高電平),然后用程序控制行掃描和列掃描,判斷具體哪個(gè)按鍵被按下。由于本身鍵盤(pán)的特點(diǎn),當(dāng)手按下按鍵時(shí),波形不是穩(wěn)定的,會(huì)有一定的抖動(dòng)。所以設(shè)計(jì)程序是需要加入消除抖動(dòng)處理,消除抖動(dòng)程序調(diào)用一個(gè)10ms的延遲程序即可。圖2-6 2*8按鍵原理圖
10、2.3紅外發(fā)射單元紅外發(fā)射單元由單片機(jī)最小系統(tǒng)和按鍵電路,紅外發(fā)射器電路等組成,遙控發(fā)射單元框圖如圖2-7。復(fù)位電路晶振電路at89s52 單片機(jī)電源電路紅外發(fā)射器按鍵電路圖2-7 紅外遙控發(fā)射單元框圖2.4紅外接收單元 紅外遙控接收單元由單片機(jī)最小系統(tǒng)和紅外接收器、控制對(duì)象電路等組成,本實(shí)驗(yàn)控制對(duì)象和16個(gè)led發(fā)光二極管。遙控接收單元框圖如圖2-8。復(fù)位電路晶振電路at89s52單片機(jī)電源電路控制對(duì)象紅外接收器圖2-8 紅外遙控接收單元框圖3、系統(tǒng)設(shè)計(jì)3.1硬件設(shè)計(jì)3.1.1紅外發(fā)射器電路原理圖電源電路為單片機(jī)以及其他模塊提供標(biāo)準(zhǔn)5v電源。晶振模塊為單片機(jī)提供時(shí)鐘標(biāo)準(zhǔn),使系統(tǒng)各部分能協(xié)調(diào)工
11、作。復(fù)位電路模塊為單片機(jī)提供復(fù)位功能。單片機(jī)作為主控制器,根據(jù)輸入信號(hào)和單片機(jī)程序?qū)ο到y(tǒng)進(jìn)行相應(yīng)的控制。sw1-sw16按鍵按下時(shí)紅外發(fā)射器發(fā)出相應(yīng)的脈沖序列。紅外發(fā)射單元根據(jù)單片機(jī)控制器計(jì)算的結(jié)果,向紅外接收器發(fā)送相應(yīng)的紅外脈沖序列,紅外發(fā)射器電路原理圖如圖3-1所示。圖3-1 紅外發(fā)射器電路原理圖3.1.2 紅外接收器電路原理圖電源電路為單片機(jī)以及其他模塊提供標(biāo)準(zhǔn)5v電源。晶振模塊為單片機(jī)提供時(shí)鐘標(biāo)準(zhǔn),使系統(tǒng)各部分能協(xié)調(diào)工作。復(fù)位電路模塊為單片機(jī)提供復(fù)位功能。單片機(jī)作為主控制器,根據(jù)輸入信號(hào)和單片機(jī)程序?qū)ο到y(tǒng)進(jìn)行相應(yīng)的控制。接收模塊用來(lái)接收紅外發(fā)射器發(fā)出的脈沖序列,并傳遞給單片機(jī),發(fā)光二極
12、管作為被控制的對(duì)象,單片機(jī)通過(guò)對(duì)紅外接收器電路接收到的脈沖序列進(jìn)行譯碼,然后控制相應(yīng)的發(fā)光二極管發(fā)光。在實(shí)際使用中,電路接上隔離電路和驅(qū)動(dòng)電路就可以用來(lái)控制電路開(kāi)關(guān)。紅外接收器電路原理圖如圖3-2所示。圖3-2 紅外接收器電路原理圖3.2 軟件設(shè)計(jì)3.3.1 遙控發(fā)射流程圖程序開(kāi)始是對(duì)單片機(jī)進(jìn)行初始化設(shè)置,循環(huán)掃描判斷是否有按鍵按下,如果有按鍵按下就發(fā)射相應(yīng)的紅外信號(hào),遙控發(fā)射程序流程圖如圖3-3.開(kāi) 始初 始 化鍵按下?查是哪個(gè)按鍵按下發(fā)送相應(yīng)的脈沖信號(hào)ny圖3-3 遙控發(fā)射程序流程圖3.3.2 遙控接收程序流程圖遙控接收通過(guò)中斷接收遙控信號(hào),通過(guò)延時(shí)判斷是否有開(kāi)始脈沖,如果有開(kāi)始脈沖就開(kāi)始
13、接收脈沖序列,根據(jù)脈沖序列判斷需要執(zhí)行的程序,最終完成相應(yīng)的功能。遙控接收程序流程圖如圖3-4所示。中 斷延 時(shí)是否開(kāi)始脈沖?接收脈沖執(zhí)行功能中斷返回ny圖3-4 遙控接收程序流程圖4、程序清單4.1遙控發(fā)送程序清單: button0equ p1.0 ;p1.0 - p1.3位鍵盤(pán)行掃描button1 equ p1.1button2 equ p1.2button3 equ p1.3button equ p0 ;p0 口鍵盤(pán)列掃描buttab: db0feh,0fdh,0fbh,0f7h,0efh,0dfh,0bfh,7fhbutfuntab:ljmpsen2p ;功能按鍵列表ljmpsen3p
14、ljmpsen4pljmpsen5pljmpsen6pljmpsen7pljmpsen8pljmpsen9pljmpsen10pljmpsen11pljmpsen12pljmpsen13pljmpsen14pljmpsen15pljmpsen16pljmpsen17pretdly:mov r2,#0ffh;513微秒延時(shí)程序djnz r2,$retdly10m: mov r3,#14h ;10毫秒延時(shí)程序dloop: lcall dlydjnz r3,dloopretdly500m:mov r4,#32h ;500毫秒延時(shí)程序d_1loop:lcall dly10m djnz r4,d_1lo
15、opretorg 0000h ;主程序開(kāi)始ajmp mainorg 0003h ;關(guān)中斷0retiorg 000bh ;關(guān)定時(shí)器t0retiorg 0013h ;關(guān)外中斷1retiorg 001bh ;定時(shí)器t1中斷入口地址ljmp intt1org 0023h ;關(guān)串行口中斷retiorg 002bh ;關(guān)定時(shí)器t2retimain: mov a ,#0ffh ;初始化mov p0,amov p1,amov p2,amov p3,aclr p3.5;關(guān)遙控輸出mov sp,#70h ;設(shè)堆棧基址為70hmov ie,#00h ;關(guān)所有中斷mov ip,#01h;設(shè)優(yōu)先級(jí)mov tmod,#2
16、2h;8位自動(dòng)重裝初值模式mov th1,#0f3h;定時(shí)為13微秒初值mov tl1,#0f3hsetb ea ;開(kāi)總中斷允許mloop: lcall button00 ;按鍵查詢(xún)ljmpmloop;鍵盤(pán)工作子程序button00: movbutton,#0ffh;判斷是否有按鍵按下clrbutton0clrbutton1clrbutton2clrbutton3mova,buttonmovb,acjnea,#0ffh,j_buttonnbutton:ret;判斷是哪個(gè)按鍵按下j_button:lcall dly10m ;延時(shí)去抖動(dòng)mova,buttoncjnea,b,nbutton ;a和b
17、不相等,返回主程序setbbutton1 ;有鍵按下,找鍵號(hào)開(kāi)始,查0行setb button2setbbutton3mova,button ;讀入p0口值cjnea,#0ffh,buttonl0 ;p0不等于#0ffh,按下鍵在第0行setbbutton0 ;不在第0行,開(kāi)始查1行clrbutton1mova,button ;讀入p0口值cjnea,#0ffh,buttonl1 ;p0口不等于#0ffh,按下鍵在第1行setbbutton1 ;不在第1行,開(kāi)始查2行clrbutton2mova,button ;讀入p0口值cjnea,#0ffh,buttonl2 ;p0口不等于#0ffh,按
18、下鍵在第2行setbbutton2 ;不在第2行,開(kāi)始查3行clrbutton3mova,button ;讀入p0口值cjnea,#0ffh,buttonl3 ;p0口不等于#0ffh,按下鍵在第3行l(wèi)jmpnbutton ;不在第3行,子程序返回buttonl0:movr2,#00h ;按下鍵在第0行,r2賦行號(hào)初值0ljmp t_button ;跳到t_buttonbuttonl1:movr2,#08h ;按下鍵在第1行,r2賦行號(hào)初值8ljmp t_button ;跳到t_buttonbuttonl2:movr2,#10h ;按下鍵在第2行,r2賦行號(hào)初值16ljmp t_button
19、;跳到t_buttonbuttonl3: movr2,#18h ;按下鍵在第3行,r2賦行號(hào)初值24ljmpt_button ;跳到t_buttont_button:mov dptr,#buttab ; 鍵值翻譯成連續(xù)數(shù)字movb,a ;p0口值暫存b內(nèi)clr a ;清amov r0,a ;清r0t_loop: mov a,r0 ;查列號(hào)開(kāi)始,r0數(shù)據(jù)放入asubb a,#08h ;a中數(shù)減8jnc nbutton ;借位c為0,查表出錯(cuò),返回mova,r0 ;查表次數(shù)小于8,繼續(xù)查,movc a,a+dptr ;查列號(hào)表inc r0 ;r0加1cjnea,b,t_loop ;查得值和p0口值
20、不等,轉(zhuǎn)t_loop再查dec r0 ;查得值和p0口值相等,r0減1mov a,r0 ;放入a(r0中數(shù)值即為列號(hào)值)adda,r2 ; 與行號(hào)初值相加成為鍵號(hào)值(0-31)movb,a ;鍵號(hào)乘3處理用于jmp散轉(zhuǎn)指令rla ;鍵號(hào)乘3處理用于jmp散轉(zhuǎn)指令adda,b ;鍵號(hào)乘3處理用于jmp散轉(zhuǎn)指令movdptr,#butfuntab ; 取散轉(zhuǎn)功能程序(表)首址jmpa+dptr ;散轉(zhuǎn)至對(duì)應(yīng)功能程序標(biāo)號(hào);sen2p: mov a,#02h ;發(fā)2個(gè)脈沖ljmp sendcon ;轉(zhuǎn)發(fā)送程序retsen3p: mov a,#03h ;發(fā)3個(gè)脈沖ljmp sendcon ;轉(zhuǎn)發(fā)送程序r
21、etsen4p: mov a,#04h ;發(fā)4個(gè)脈沖ljmp sendcon ;轉(zhuǎn)發(fā)送程序retsen5p:mov a,#05h ;發(fā)5個(gè)脈沖ljmp sendcon ;轉(zhuǎn)發(fā)送程序retsen6p: mov a,#06h ;發(fā)6個(gè)脈沖ljmp sendcon ;轉(zhuǎn)發(fā)送程序retsen7p: mov a,#07h ;發(fā)7個(gè)脈沖ljmpsendcon ;轉(zhuǎn)發(fā)送程序retsen8p: mov a,#08h ;發(fā)8個(gè)脈沖ljmp sendcon ;轉(zhuǎn)發(fā)送程序retsen9p: mov a,#09h ;發(fā)9個(gè)脈沖ljmp sendcon ;轉(zhuǎn)發(fā)送程序retsen10p: mov a,#0ah ;發(fā)10個(gè)
22、脈沖ljmp sendcon ;轉(zhuǎn)發(fā)送程序retsen11p: mov a,#0bh ;發(fā)11個(gè)脈沖ljmp sendcon ;轉(zhuǎn)發(fā)送程序retsen12p: mov a,#0ch ;發(fā)12個(gè)脈沖ljmp sendcon ;轉(zhuǎn)發(fā)送程序retsen13p: mov a,#0dh ;發(fā)13個(gè)脈沖ljmp sendcon ;轉(zhuǎn)發(fā)送程序retsen14p: mov a,#0eh ;發(fā)14個(gè)脈沖ljmp sendcon ;轉(zhuǎn)發(fā)送程序retsen15p: mov a,#0fh ;發(fā)15個(gè)脈沖ljmp sendcon ;轉(zhuǎn)發(fā)送程序retsen16p: mov a,#10h ;發(fā)16個(gè)脈沖ljmp sendc
23、on ;轉(zhuǎn)發(fā)送程序retsen17p: mov a,#11h ;發(fā)17個(gè)脈沖ljmp sendcon ;轉(zhuǎn)發(fā)送程序ret;編 碼 發(fā) 射 程 序sendcon: mov r1,a ;裝入發(fā)射脈沖個(gè)數(shù)ljmp send_3 ;轉(zhuǎn)第一個(gè)碼發(fā)射處理send: mov r0,#55h ;1ms寬低電平發(fā)射控制數(shù)據(jù)send_1: setb et1 ;開(kāi)t1中斷setb tr1 ;開(kāi)啟定時(shí)器t1nop ;空操作延時(shí)nopnopnopnopdjnz r0,send_1 ;時(shí)間不到轉(zhuǎn)send_1再循環(huán)mov r0,#32h ;1ms高電平間隙控制數(shù)據(jù)send_2: clr tr1 ;關(guān)定時(shí)器t1clr et1
24、 ;關(guān)t1中斷clr p3.5 ;關(guān)脈沖輸出nop ;空操作延時(shí)nopnopnopnopnopnopnopnopnopnopdjnz r0,send_2 ;時(shí)間不到轉(zhuǎn)send_2再循環(huán)djnz r1,send ;脈沖未發(fā)完,轉(zhuǎn)out再循環(huán)發(fā)射lcall dly500m ret send_3: mov r0,#0ffh ;裝發(fā)謝3ms寬控制數(shù)據(jù)ljmp send_1intt1: cpl p3.5 ;40khz紅外線(xiàn)遙控信號(hào)產(chǎn)生reti ;轉(zhuǎn)send_1end4.2遙控接收程序清單:org 0000h;主程序開(kāi)始地址ljmp mainorg 0003h;外中斷0中斷入口ljmp r_intorg
25、000bh ;定時(shí)器t0中斷關(guān)閉reti org 0013h ;外中斷1中斷關(guān)閉reti org 001bh ;定時(shí)器t1中斷關(guān)閉reti org 0023h ;串行口中斷關(guān)閉reti org 002bh ;定時(shí)器t2中斷關(guān)閉reti dly512u: mov r0,#0ffh ;延時(shí)512微妙子程序d_w_loop: djnz r0,d_w_loopretdly10m: mov r1,#14h ;延時(shí)10毫秒子程序d_1w_loop: lcall dly512udjnz r1,d_1w_loopretmain: clra ;初始化;deca ;a為#0ffhmov p0,a ;p0-p2口置
26、1mov p1,a mov p2,a mov ie,#00h ;關(guān)所有中斷setb ex0 ;開(kāi)外中斷setb ea ;總中斷允許 r_int: clr ex0 ;關(guān)外中斷jnb p3.1,ok_1 ;p3.1口為低電平轉(zhuǎn)ok_1disturb: setb ex0 ;p3.1口為高電平開(kāi)中斷(系干擾)reti ok_1: clr a mov dph,a ; dptr清零mov dpl,a c_plus: jb p3.1,f_firstplus ;p3.1變高電平時(shí)尋找第一個(gè)脈沖inc dptr ;用dptr對(duì)低電平計(jì)數(shù)nop ;2微秒延時(shí)nopajmp c_plus ;循環(huán)周期為8微秒f_fi
27、rstplus:mov a,dph jz disturb ;a為0說(shuō)明脈寬小于2毫秒,不是第一個(gè)脈沖clr a ;a不為0,說(shuō)明是第一個(gè)寬脈沖ok_11: inc a ;脈沖個(gè)數(shù)計(jì)1jnb p3.1,$ ;低電平時(shí)等待mov r1,#06h ;高電平寬度判斷定時(shí)值ok_13: jnb p3.1,ok_11 ;變低電平時(shí)轉(zhuǎn)ok_11脈沖計(jì)數(shù)lcall dly512u ;延時(shí)(512微秒)djnz r1,ok_13 ;6次延時(shí)不到轉(zhuǎn)ok_13再延時(shí)dec a ;超過(guò)3毫秒判為結(jié)束,減1dec a ;減1jz aim0 ;為0執(zhí)行aim0(2個(gè)脈沖)dec a ;減1jz aim1 ;為0執(zhí)行aim
28、1(3個(gè)脈沖)dec a ;jz aim2 ;為0執(zhí)行aim2(4個(gè)脈沖)dec a ;jz aim3 ;為0執(zhí)行aim3(5個(gè)脈沖)dec a ;jz aim4 ;為0執(zhí)行aim4(6個(gè)脈沖)dec a ;jz aim5 ;為0執(zhí)行aim5(7個(gè)脈沖)dec a ;jz aim6 ;為0執(zhí)行aim6(8個(gè)脈沖)dec a ;jz aim7 ;為0執(zhí)行aim7(9個(gè)脈沖)dec a ;jz aim8 ;為0執(zhí)行aim8(10個(gè)脈沖)dec a ;jz aim9 ;為0執(zhí)行aim9(11個(gè)脈沖)dec a ;jz aim10 ;為0執(zhí)行aim10(12個(gè)脈沖)dec a ;jz aim11 ;為
29、0執(zhí)行aim11(13個(gè)脈沖)dec a ;jz aim12 ;為0執(zhí)行aim12(14個(gè)脈沖)dec a ;jz aim13 ;為0執(zhí)行aim13(15個(gè)脈沖)dec a ;jz aim14 ;為0執(zhí)行aim14(16個(gè)脈沖)dec a ;jz aim15 ;為0執(zhí)行aim15(17個(gè)脈沖)nop ;nop ;ljmp disturb ;出錯(cuò)退出aim0: cpl p0.0 ;p0口各端口開(kāi)關(guān)輸出控制setb ex0 reti aim1: cpl p0.1 ;setb ex0 reti ;aim2: cpl p0.2setb ex0 reti aim3: cpl p0.3setb ex0 reti aim4: cpl p0.4setb ex0 reti aim5: cpl p0.5 setb ex0 reti aim6: cpl p0.6setb ex0 reti aim7: cpl p0.7setb ex0 reti aim8: cpl p2.7 ;p2口各端口開(kāi)關(guān)輸出控制setb ex0 reti aim9: cpl p2.6setb ex0 reti aim10: cpl p2.5setb ex0 reti aim11: cpl p2.4setb ex0 reti aim12: cpl p2.3setb ex0
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄭州鐵路職業(yè)技術(shù)學(xué)院《攝影攝像》2023-2024學(xué)年第一學(xué)期期末試卷
- 長(zhǎng)春醫(yī)學(xué)高等專(zhuān)科學(xué)?!段⑸镔Y源保護(hù)與利用》2023-2024學(xué)年第一學(xué)期期末試卷
- 玉溪農(nóng)業(yè)職業(yè)技術(shù)學(xué)院《程序設(shè)計(jì)技術(shù)(C語(yǔ)言)》2023-2024學(xué)年第一學(xué)期期末試卷
- 物聯(lián)網(wǎng)設(shè)備電源功耗降低
- IT項(xiàng)目季報(bào)告模板
- 實(shí)習(xí)機(jī)會(huì)獲取指導(dǎo)
- 初一軍訓(xùn)學(xué)生發(fā)言稿
- 村容村情調(diào)研報(bào)告
- 統(tǒng)編版六年級(jí)語(yǔ)文上冊(cè)寒假作業(yè)(九)(有答案)
- 二零二五版房屋租賃合同附押金退還條款2篇
- 綠色供應(yīng)鏈管理制度內(nèi)容
- 心理學(xué)基礎(chǔ)知識(shí)考試參考題庫(kù)500題(含答案)
- 電力智慧檢修安全運(yùn)行三維可視化管理平臺(tái)建設(shè)方案
- 一年級(jí)數(shù)學(xué)(上)計(jì)算題專(zhuān)項(xiàng)練習(xí)集錦
- 消防安全應(yīng)急預(yù)案下載
- 《北航空氣動(dòng)力學(xué)》課件
- 附件:財(cái)政業(yè)務(wù)基礎(chǔ)數(shù)據(jù)規(guī)范(3.0版)
- 電商公司售后服務(wù)管理制度
- 火災(zāi)應(yīng)急處理課件
- 創(chuàng)新者的逆襲3:新質(zhì)生產(chǎn)力的十八堂案例課-記錄
- 2024年河南省公務(wù)員考試《行測(cè)》真題及答案解析
評(píng)論
0/150
提交評(píng)論