版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、揚 州 市 職 業(yè) 大 學(xué)畢 業(yè) 設(shè) 計(論 文)設(shè)計(論文)題目:八路搶答器系 別:汽車與電氣工程系專 業(yè):計算機控制技術(shù) 1班 級:07計算機控制技術(shù)姓 名: 學(xué) 號: 指導(dǎo)教師: 完成時間: 2010/5 目錄第一章 概述3第二章 方案論證4第三章 8位搶答器設(shè)計要求5第四章 at89c51單片機簡介6第五章 按鍵鎖存器74ls373簡介9第六章 數(shù)碼顯示器簡介12第七章 系統(tǒng)流程圖14第八章 系統(tǒng)框圖16第九章 元器件清單18第十章 程序18第十一章 單片機防干擾33第十二章 畢業(yè)設(shè)計體會35.第十三章參考文獻36概述隨著科學(xué)技術(shù)的不斷發(fā)展,促使人們學(xué)科學(xué)、學(xué)技術(shù)、學(xué)知識的手段多種多樣
2、。搶答器作為一種工具,已廣泛應(yīng)用于各種智力和知識競賽場合。但搶答器的使用頻率較低,且有的要么制作復(fù)雜,要么可靠性低,減少興致。做為一個單位若專購一臺搶答器雖然在經(jīng)濟上可以承受,但每年使用的次數(shù)極少,往往因長期存放使(電子器件的)搶答器損壞,再購置的麻煩和及時性就會影響活動的開展,因此設(shè)計了本搶答器。單片機原理及應(yīng)用技術(shù)是一門技術(shù)性,應(yīng)用性、實踐性很強的學(xué)科。課程設(shè)計是學(xué)好本門課程的又一重要實踐性教學(xué)環(huán)節(jié),課程設(shè)計的目的和任務(wù)就是配合單片機的教學(xué)和平時實驗,以達到鞏固消化課程的內(nèi)容,進一步加強綜合應(yīng)用能力及單片機應(yīng)用系統(tǒng)開發(fā)和設(shè)計能力的訓(xùn)練,啟發(fā)創(chuàng)新思維,使之具有獨立單片機產(chǎn)品和科研的基本技能,
3、是以培養(yǎng)學(xué)生綜合運用所學(xué)知識的過程,是知識轉(zhuǎn)化為能力和能力轉(zhuǎn)化為工程素質(zhì)的重要階段。在實際生活中有好多地方都用到了單片機,因此學(xué)習(xí)好這門課程有著十分重要的意義本設(shè)計是以八路搶答為基本理念。考慮到需要設(shè)定限時回答的功能,利用8051單片機及外圍接口實現(xiàn)的搶答系統(tǒng),利用單片機的定時器/計數(shù)器定時和記數(shù)的原理,將軟、硬件有機地結(jié)合起來,使得系統(tǒng)能夠正確地進行計時,同時使數(shù)碼管能夠正確地顯示時間。用開關(guān)做鍵盤輸出,揚聲器發(fā)生提示。同時系統(tǒng)能夠?qū)崿F(xiàn):在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;滿時后系統(tǒng)計時自動復(fù)位及主控強制復(fù)位;按鍵鎖定,在有效狀態(tài)下,按鍵無效非法。方案論證電子智能搶答
4、計分器在搶答過程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計一個系統(tǒng)來完成這個任務(wù)。如果在搶答中,靠視覺是很難判斷出哪組先答題。利用單片機系統(tǒng)來設(shè)計搶答器,使以上問題得以解決,即使兩組的搶答時間相差幾微秒,也可分辨出哪組優(yōu)先答題。本設(shè)計使用atc89c51單片機來設(shè)計智能搶答器。并且具有倒計時和時間設(shè)置及報警功能。利用atc89c51單片機對信號進行鎖存、顯示等功能。分別從硬件和軟件兩方面闡述了該控制系統(tǒng)的設(shè)計方法,并經(jīng)過調(diào)試和運行使該系統(tǒng)達到預(yù)期目標(biāo),具有反應(yīng)快、功能齊全、實用性強的特點,其設(shè)計框圖如下:搶答器的設(shè)計與制作可以通過兩種方法來實現(xiàn),一種是可以采用數(shù)字電路的方法實現(xiàn),但是其電
5、路結(jié)構(gòu)復(fù)雜,大概需要十幾片數(shù)字集成塊,其功能也主要依賴于數(shù)字電路的各功能模塊的組合來實現(xiàn),而且有成本較高的缺點;另一種可使用單片機來設(shè)計制作,其功能的實現(xiàn)主要通過少量的硬件和軟件編程,由此大大降低了電路的復(fù)雜性和成本。所以本次畢業(yè)設(shè)計的搶答器我采用了單片機來實現(xiàn)。本設(shè)計方案以at89c51單片機為控制核心,采用模塊化的設(shè)計方案,可以實現(xiàn)8位搶答器的各項基本功能,例如定時搶答、顯示搶答選手號碼,主持人控制等等,另外增加了輸入信號的鎖存,可以準(zhǔn)確無誤的判斷出那位選手最先搶答,可以媲美市場上的專業(yè)產(chǎn)品。 8位搶答器設(shè)計要求系統(tǒng)設(shè)計主要包括硬件和軟件兩大部分,依據(jù)控制系統(tǒng)的工作原理和技術(shù)性能,將硬件和
6、軟件分開設(shè)計。硬件設(shè)計部分包括電路原理圖、合理選擇元器件、繪制線路圖,然后對硬件進行調(diào)試、測試,以達到設(shè)計要求。軟件設(shè)計部分,首先在總體設(shè)計中完成系統(tǒng)總框圖和各模塊的功能設(shè)計,擬定詳細的工作計劃;然后進行具體設(shè)計,包括各模塊的流程圖,選擇合適的編程語言和工具,進行代碼設(shè)計等;最后是對軟件進行調(diào)試、測試,達到所需功能要求。本次設(shè)計的數(shù)字搶答器具有以下功能:(1)搶答器同時供8名選手或8個代表隊比賽,分別用8個按鈕s0 s7表示。(2)設(shè)置一個系統(tǒng)清除和搶答控制開關(guān)s,該開關(guān)由主持人控制。(3)搶答器具有鎖存與顯示功能。即選手按動按鈕,鎖存相應(yīng)的編號,揚聲器發(fā)出聲響提示,并在led數(shù)碼管上顯示選手
7、號碼。選手搶答實行優(yōu)先鎖存,優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。此外還有一些擴展功能:(1)搶答器具有定時搶答功能,且一次搶答的時間由主持人設(shè)定(如30秒)。當(dāng)主持人啟動“開始”鍵后,定時器進行減計時。(2) 參賽選手在設(shè)定的時間內(nèi)進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清除為止。(3) 如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,定時顯示器上顯示00。0其工作原理為:接通電源后,主持人將按下"清零"按鍵,搶答器處于禁止?fàn)顟B(tài),編號顯示器滅燈,定時器顯示設(shè)定時間;主持人按下開始按鍵,宣布&qu
8、ot;開始"搶答器工作。定時器倒計時,揚聲器給出聲響提示。選手在定時時間內(nèi)搶答時,搶答器完成:優(yōu)先判斷、編號鎖存、編號顯示、揚聲器提示。當(dāng)一輪搶答之后,定時器停止、禁止二次搶答、定時器顯示剩余時間。如果再次搶答必須由工作人員再次操作"清除"和"開始"狀態(tài)開關(guān)。at89c51單片機簡介at89c51是一種帶4k字節(jié)閃爍可編程可擦除只讀存儲器的低電壓,高性能cmos8位微處理器,俗稱單片機。89c2051是一種帶2k字節(jié)閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用atmel高密度非易失存儲器制造技術(shù)制
9、造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。其管腳圖如下圖1.1:圖1.1:at89c51管腳圖管腳說明如下: vcc:供電電壓。 gnd:接地。at89c51單片機由微處理器,存儲器,i/o口以及特殊功能寄存器sfr等部分構(gòu)成。其存儲器在物理上設(shè)計成程序存儲器和數(shù)據(jù)存儲器兩個獨立的空間,片內(nèi)程序存儲器的容量為4kb,片內(nèi)數(shù)據(jù)存儲器為128個字節(jié)。89c51單片機有4個8位的并行i/o口:p0口,p1口,p2口和p3口。 p0口:p0口為一個8位漏級開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)
10、據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當(dāng)fiash進行校驗時,p0輸出原碼,此時p0外部必須被拉高。 p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編程和校驗時,p1口作為第八位地址接收。 p2口:p2口為一個內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當(dāng)p2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由
11、于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。 p3口:p3口管腳是8個帶內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3口也可作為at89c51的一些特殊功能口,如下表所示: 口管腳 備選功能 p3.0 rxd(串行
12、輸入口) p3.1 txd(串行輸出口) p3.2 /int0(外部中斷0) p3.3 /int1(外部中斷1) p3.4 t0(記時器0外部輸入) p3.5 t1(記時器1外部輸入) p3.6 /wr(外部數(shù)據(jù)存儲器寫選通) p3.7 /rd(外部數(shù)據(jù)存儲器讀選通) p3口同時為閃爍編程和編程校驗接收一些控制信號。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持rst腳兩個機器周期的高電平時間。 ale/prog:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1
13、/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時, ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。 /psen:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/psen有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/psen信號將不出現(xiàn)。ea/vpp:當(dāng)/ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/ea將
14、內(nèi)部鎖定為reset;當(dāng)/ea端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。振蕩復(fù)位電路 是內(nèi)部振蕩方式,在xtal1,xtal2引腳上外接反饋元件石英晶體振蕩和電容組成自激振蕩器,一般晶振在1.21.3mhz之間自選。電容取值在20pf.并通過對電容組成的微調(diào)作用來對振蕩頻率進行微調(diào),以滿足振蕩頻率的精度要求,它是通過給搶答器,計時系統(tǒng)和聲響的控制脈沖。一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在xtal2引腳產(chǎn)生幅度為
15、3v左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。單片機復(fù)位是使cpu和系統(tǒng)中的其他功能部件都在一個確定的初始狀態(tài),并從該狀態(tài)開始工作。實訓(xùn)可以看出,無論是在單片機剛開始接上電源時還是斷電后,或者發(fā)生故障后。都要復(fù)位,所以必須清楚mcs-51型單片機復(fù)位的條件,復(fù)位電路和復(fù)位狀態(tài)。復(fù)位條件:使rstvpd引腳上加上兩個周期的高電平。按鍵所存器74ls373簡介為了保證比賽的公正性,我們采用帶有鎖存功能的移位寄存器74ls373芯片,74373的數(shù)據(jù)端:qa-qh: 八位并行輸出端,可以直接控制數(shù)碼管的8個段。qh': 級聯(lián)輸出端。我將它接下一個373的si端。si: 串行數(shù)
16、據(jù)輸入端。74373的控制端說明:srclr(10腳): 低點平時將移位寄存器的數(shù)據(jù)清零。通常接vcc。srck(11腳):上升沿時數(shù)據(jù)寄存器的數(shù)據(jù)移位。qa->qb->qc->.->qh;下降沿移位寄存器數(shù)據(jù)不變。(脈沖寬度:5v時,大于幾十納秒就行了。我通常都選微秒級)rck(12腳):上升沿時移位寄存器的數(shù)據(jù)進入數(shù)據(jù)存儲寄存器,下降沿時存儲寄存器數(shù)據(jù)不變。(通常我將rck置為低電平,) 當(dāng)移位結(jié)束后,在rck端產(chǎn)生一個正脈沖(5v時,大于幾十納秒就行了。我通常都選微秒級),更新顯示數(shù)據(jù)。13腳: 高電平時禁止輸出(高阻態(tài))。如果單片機的引腳不緊張,用一個引腳控制它
17、,可以方便地產(chǎn)生閃爍和熄滅效果。比通過數(shù)據(jù)端移位控制要省時省力。有鍵按下時,74ls373相應(yīng)的輸出位為高電平,74ls373的g端從高電平(沒有鍵按下時)變到低電平(有鍵按下時),完成輸入狀態(tài)的鎖存,并保持低電平。此時按sb0sb7中任意一個鍵都不會影響鎖存器輸出狀態(tài),保證74ls373處于最先有鍵按下時的狀態(tài),并使相應(yīng)檔位的led始終發(fā)光。74373的主要優(yōu)點是具有數(shù)據(jù)存儲寄存器,在移位的過程中,輸出端的數(shù)據(jù)可以保持不變。這在串行速度慢的場合很有用處,數(shù)碼管沒有閃爍感。373還多有輸出端時能/禁止控制端,可以使輸出為高阻態(tài),如圖所示:數(shù)碼顯示管簡介:根據(jù)原理圖管腳連接,我們知道p0口控制了
18、8個led數(shù)碼管的位選中,所以如果想讓8個數(shù)碼管都亮起來,我們可以逐位掃描8位數(shù)碼管。數(shù)碼顯示一半有兩種工作方式。即靜態(tài)顯示方式和動態(tài)顯示方式。我們采用動態(tài)顯示方式。動態(tài)顯示原理:原理上同一時刻只有一位led是點亮的,但只要掃描的頻率足夠高(一般大于25hz),由于人眼的視覺暫留特性,直觀上感覺卻是連續(xù)點亮的,這就是常說的動態(tài)掃描顯示。系統(tǒng)流程圖在本設(shè)計中包括了以下主要的程序:主程序,初始化,鍵盤查詢程序,外部中斷,顯示程序,延時程序,報警程序等,如圖所示:(1)主程序框圖:開始初始化調(diào)用鍵盤程序顯示程序(2)初始化:初始化定時器設(shè)置顯示單元初始化中斷設(shè)置(3)鍵盤查詢:(4)外部中斷0:n系
19、統(tǒng)框圖與pcb圖元器件清單元器件描述元器件編號數(shù)量單片機stc89c511led顯示屏四聯(lián)共陰1晶體振蕩器12mhz1三極管90121蜂鳴器/1電容30pf3電阻20k19腳排阻/1按鍵/13程序清單ok equ 20h;搶答開始標(biāo)志位 ring equ 22h;響鈴標(biāo)志位 org 0000h ajmp main org 0003h ajmp int0sub org 000bh ajmp t0int org 0013h ajmp int1sub org 001bh ajmp t1int org 0040hmain: mov r1,#30;初設(shè)搶答時間為30s mov r2,#60;初設(shè)答題時間
20、為60s mov tmod,#11h;設(shè)置未定時器/模式1 mov th0,#0f0h mov tl0,#0ffh;越高發(fā)聲頻率越高,越尖 mov th1,#3ch mov tl1,#0b0h;50ms為一次溢出中斷 setb ea setb et0 setb et1 setb ex0 setb ex1;允許四個中斷,t0/t1/int0/int1 clr ok clr ring setb tr1 setb tr0;一開始就運行定時器,以開始顯示fff.如果想重新計數(shù),重置th1/tl1就可以了;=查詢程序=start: mov r5,#0bh mov r4,#0bh mov r3,#0bh
21、acall display;未開始搶答時候顯示fff jb int0,next;ddddddd acall delay jb int0,next;去抖動,如果"開始鍵"按下就向下執(zhí)行,否者跳到非法搶答查詢 acall bark;按鍵發(fā)聲 mov a,r1 mov r6,a;送r1->r6,因為r1中保存了搶答時間 setb ok;搶答標(biāo)志位,用于count只程序中判斷是否查詢搶答 mov r3,#0ah;搶答只顯示計時,滅號數(shù) ajmp count;進入倒計時程序,"查詢有效搶答的程序"在count里面next:jnb p1.0,false1 jn
22、b p1.1,false2 jnb p1.2,false3 jnb p1.3,false4 jnb p1.4,false5 jnb p1.5,false6 ajmp starttz1:jmp false7tz2:jmp false8;=非法搶答處理程序=false1: acall bark;按鍵發(fā)聲mov r3,#01h ajmp errorfalse2: acall barkmov r3,#02h ajmp errorfalse3: acall barkmov r3,#03h ajmp errorfalse4: acall barkmov r3,#04h ajmp errorfalse5:
23、acall barkmov r3,#05h ajmp errorfalse6: acall barkmov r3,#06h ajmp errorfalse7: acall barkmov r3,#07h ajmp errorfalse8: acall barkmov r3,#08h ajmp error;=int0(搶答時間r1調(diào)整程序)=int0sub:mov a,r1 mov b,#0ah div ab mov r5,a mov r4,b mov r3,#0ah acall display;先在兩個時間led上顯示r1 jnb t0,inc0;t0為+1s鍵,如按下跳到inco jnb t
24、1,dec0;t1為-1s鍵,如按下跳到deco jnb int1,back0;int1為確定鍵,如按下跳到backoajmp int0subinc0: mov a,r1cjne a,#63h,add0;如果不是99,r2加1,如果加到99,r1就置0,重新加起。 mov r1,#00h acall delay1ajmp int0subadd0: inc r1 acall delay1 ajmp int0subdec0: mov a,r1 jz setr1;如果r1為0, r1就置99, dec r1 acall delay1 ajmp int0subsetr1: mov r1,#63h ac
25、all delay1 ajmp int0subback0: reti ;=int1(回答時間r2調(diào)整程序)=int1sub:mov a,r2 mov b,#0ah div abmov r5,a mov r4,b mov r3,#0ah acall display jnb t0,inc1 jnb t1,dec1 jnb int1,back1 ajmp int1subinc1: mov a,r2 cjne a,#63h,add1 mov r2,#00h acall delay1ajmp int1subadd1: inc r2 acall delay1 ajmp int1subdec1: mov a
26、,r2 jz setr2 dec r2 acall delay1 ajmp int1subsetr2: mov r2,#63h acall delay1 ajmp int1subback1: reti ;=倒計時程序(搶答倒計時和回答倒計時都跳到改程序)=count: mov r0,#00h;重置定時器中斷次數(shù) mov th1,#3ch mov tl1,#0b0h;重置定時器recount:mov a,r6;r6保存了倒計時的時間,之前先將搶答時間或回答時間給r6 mov b,#0ah div ab;除十分出個位/十位 mov 30h,a;十位存于(30h) mov 31h,b;個位存于(31
27、h) mov r5,30h;取十位 mov r4,31h;取個位 mov a,r6 subb a,#07h jnc larger;大于5s跳到larger,小于等于5s會提醒 mov a,r0 cjne a,#0ah,full;1s中0.5s向下運行 clr ring ajmp checkfull: cjne a,#14h,check;下面是1s的情況,響并顯示號數(shù)并清r0,重新計 setb ring mov a,r6 jz quit;計時完畢 mov r0,#00h dec r6;一秒標(biāo)志減1 ajmp checklarger: mov a,r0 cjne a,#14h,check;如果1s
28、向下運行,否者跳到查"停/顯示" dec r6;計時一秒r6自動減1 mov r0,#00hcheck: jnb t1,quit;如按下停止鍵退出 acall display jb ok,accout;如果是搶答倒計時,如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用) ajmp recountaccout:jnb p1.0,true1 jnb p1.1,true2 jnb p1.2,true3 jnb p1.3,true4 jnb p1.4,true5 jnb p1.5,true6 jnb p1.6,tz3 jnb p1.7,tz4 ajmp recount tz
29、3:jmp true7 tz4:jmp true8 quit: clr ok;如果按下了"停止鍵"執(zhí)行的程序 clr ring ajmp start;=正常搶答處理程序=true1: acall bark;按鍵發(fā)聲 mov a,r2 mov r6,a;搶答時間r2送r6 mov r3,#01h clr ok;因為答題的計時不再查詢搶答,所以就鎖了搶答 ajmp counttrue2:acall bark; mov a,r2 mov r6,a mov r3,#02h clr ok ajmp counttrue3:acall bark; mov a,r2 mov r6,a mo
30、v r3,#03h clr ok ajmp counttrue4:acall bark; mov a,r2 mov r6,a mov r3,#04h clr ok ajmp counttrue5: acall bark; mov a,r2 mov r6,a mov r3,#05h clr ok ajmp counttrue6: acall bark; mov a,r2 mov r6,a mov r3,#06h clr ok ajmp counttrue7: acall bark; mov a,r2 mov r6,a mov r3,#07h clr ok ajmp counttrue8: aca
31、ll bark; mov a,r2 mov r6,a mov r3,#08h clr ok ajmp count;=犯規(guī)搶答程序=error: mov r0,#00h mov th1,#3ch mov tl1,#0b0h mov 34h,r3;犯規(guī)號數(shù)暫存與(34h)here: mov a,r0 cjne a,#0ah,flash;0.5s向下運行->滅并停響 clr ring mov r3,#0ah mov r4,#0ah mov r5,#0ah;三燈全滅 ajmp check1flash: cjne a,#14h,check1;下面是1s的情況,響并顯示號數(shù)并清r0,重新計 setb
32、 ring mov r0,#00h mov r3,34h;取回號數(shù) mov r5,#0bh mov r4,#0bh;顯示ff和號數(shù) ajmp check1check1: jnb t1,quit1 acall display ajmp herequit1: clr ring clr ok ajmp start;=顯示程序=display:mov dptr,#dat1;查表顯示程序,利用p0口做段選碼口輸出/p2低三位做位選碼輸出, mov a,r3 movc a,a+dptr mov p2,#0feh mov p0,a acall delay mov dptr,#dat2 mov a,r5 mo
33、vc a,a+dptr mov p2,#0fdh mov p0,a acall delay mov a,r4 movc a,a+dptr mov p2,#0fbh mov p0,a acall delay retdat1:db 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,71h ;"滅","1","2","3","4","5","6","7","8","9&quo
34、t;,"滅","f"dat2:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,71h;第一個為零,其他與上相同,因為十位如果為零顯示熄滅;=加減時間延時(起到不會按下就加n個數(shù))=delay1: mov 35h,#08hloop0: acall display djnz 35h,loop0 ret;=延時(顯示和去抖動用到)=delay: mov 32h,#12hloop: mov 33h,#0afhloop1: djnz 33h,loop1 djnz 32h,loop ret;=發(fā)聲程序=bark: set
35、b ring acall delay1 acall delay1 clr ring;按鍵發(fā)聲 ret;=to溢出中斷(響鈴程序)=t0int: mov th0,#0ech mov tl0,#0ffh jnb ring,out; cpl wr;ring標(biāo)志位為1時候wr口不斷取反使喇叭發(fā)出一定頻率的聲音out: reti;=t1溢出中斷(計時程序)=t1int: mov th1,#3ch mov tl1,#0b0h inc r0 retiend單片機干擾防護單片機應(yīng)用系統(tǒng)在實際工作過程中,難免會受到各種外部或內(nèi)部的干擾,使系統(tǒng)發(fā)生異常情況。比如,因干擾使程序指針發(fā)生錯誤時,可能會將非操作碼執(zhí)行,
36、造成程序執(zhí)行的混亂(跑飛)或進入死循環(huán),甚至可能會損壞元器件。干擾竄入應(yīng)用系統(tǒng)的主要渠道有三條:通過電磁波輻射竄入系統(tǒng)的空間干擾;通過輸入/輸出通道竄入的通道干擾;電源的干擾。(1):采用隔離技術(shù)對于供電系統(tǒng)的干擾,可以采用交流穩(wěn)壓器、不間斷電源(ups)、隔離變壓器、底通慮波器等,以防止電源電壓的波動和干擾噪聲;在直流電源的抗干擾措施中,對應(yīng)用系統(tǒng)中的不同等級的直流電源采取集成穩(wěn)壓塊單獨供電,以避免模塊間的互相影響,使直流開關(guān)電源、dc-dc變換器以加強隔離提高電源穩(wěn)定性等。在單片機應(yīng)用系統(tǒng)的輸入/輸出通道中,普遍采用通道隔離技術(shù)來防止通道干擾。其中應(yīng)用較多的是光電耦合器。光電耦合器的輸入/輸出之間沒有接觸,能有效地防止輸入端的電磁干擾以電耦合的方式進入應(yīng)用系統(tǒng),而且光電耦合器的輸入阻抗很小,干擾源的內(nèi)阻很大,所以能輸入到光電偶合器的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 13536:2024 EN Soil quality - Determination of the potential cation exchange capacity and exchangeable cations using barium chloride solution buffered at pH = 8,1
- 防控疫情的安全教案8篇
- 福建省寧德市福鼎市2024-2025學(xué)年高二上學(xué)期第一次月考(10月)數(shù)學(xué)試題含答案
- 2022師德師風(fēng)個人自查報告(5篇)
- 2024年傳統(tǒng)銀飾項目資金需求報告代可行性研究報告
- DB12-T 1116-2021 控制性詳細規(guī)劃技術(shù)規(guī)程
- 海南省海口市(2024年-2025年小學(xué)五年級語文)統(tǒng)編版競賽題((上下)學(xué)期)試卷及答案
- 江西省贛州市(2024年-2025年小學(xué)五年級語文)統(tǒng)編版質(zhì)量測試(上學(xué)期)試卷及答案
- 2024年非晶、微晶合金項目資金籌措計劃書代可行性研究報告
- 2023年動葉可調(diào)軸流電站用風(fēng)機資金申請報告
- 近代科學(xué)革命課件
- 二年級上冊美術(shù)課件-10.感覺肌理 |蘇少版 (共14張PPT)
- 輕創(chuàng)業(yè)、贏未來培訓(xùn)教學(xué)課件
- 三年級 上冊科學(xué) 課件-2.4 哺乳動物 |湘教版(一起)(共23張PPT)
- 三年級檢討書100字(5篇)
- 四年級上冊美術(shù)教案-第10課 黑白灰 蘇少版
- 樂山市市中區(qū)2022-2023學(xué)年度上期期中調(diào)研考試八年級生物試題及答案
- 《出塞》優(yōu)秀課件
- 《鐵道概論》考試復(fù)習(xí)題庫400題(含答案)
- 江西省九江市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細及行政區(qū)劃代碼
- 公安網(wǎng)站設(shè)計方案
評論
0/150
提交評論