搶答器單片機(jī)課程設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  《單片機(jī)技術(shù)及系統(tǒng)設(shè)計(jì)》課程設(shè)計(jì)</p><p> 八路搶答器</p><p> 姓名</p><p> 院系信息學(xué)院</p><p> 班級(jí)電氣1082</p><p> 學(xué)號(hào)</p><p> 指導(dǎo)教師</p><p> 時(shí)間2011年 5

2、 月 30 日</p><p><b>  目 錄</b></p><p><b>  摘要I</b></p><p>  1單片機(jī)的應(yīng)用技術(shù)1</p><p>  2系統(tǒng)設(shè)計(jì)要點(diǎn)1</p><p>  2.1AT89C51的簡(jiǎn)介2</p>

3、<p>  2.2搶答器的硬件設(shè)計(jì)要求2</p><p>  2.3顯示器的硬件設(shè)計(jì)要求2</p><p>  2.4人機(jī)交互程序設(shè)計(jì)2</p><p>  3各模塊方案選擇和論證2</p><p>  3.1 搶答器顯示模塊2</p><p>  3.2 控制器模塊3</p&

4、gt;<p>  3.3 搶答器鍵盤(pán)的選擇3</p><p><b>  4硬件設(shè)計(jì)5</b></p><p>  4.1 硬件模塊方案5</p><p>  4.2 搶答電路模塊5</p><p>  4.3 搶答顯示電路6</p><p><b> 

5、 5源程序設(shè)計(jì)7</b></p><p>  6課程設(shè)計(jì)總結(jié)9</p><p><b>  參考文獻(xiàn)10</b></p><p><b>  附 錄111</b></p><p><b>  附 錄212</b></p><p&

6、gt;<b>  摘要</b></p><p>  電子智能搶答器在搶答過(guò)程中,為了知道哪一組或哪一個(gè)選手先答題,必須要設(shè)計(jì)一個(gè)系統(tǒng)來(lái)完成這個(gè)任務(wù)。如果在搶答中,靠視覺(jué)是很難判斷出哪組先答題,利用單片機(jī)系統(tǒng)來(lái)設(shè)計(jì)搶答器,使以上問(wèn)題得以解決,即使兩組的搶答時(shí)間相差幾秒,也可以分辨出哪組優(yōu)先答題。系統(tǒng)工作原理采用AT89C51單片機(jī)作為核心,控制板塊分為:顯示板塊、搶答開(kāi)關(guān)板塊、喇叭響應(yīng)板塊。&

7、lt;/p><p>  關(guān)鍵詞:八路搶答器、單片機(jī)、AT89C51 </p><p><b>  單片機(jī)的應(yīng)用技術(shù)</b></p><p>  單片機(jī)由硬件系統(tǒng)與軟件系統(tǒng)組成。硬件系統(tǒng)是指構(gòu)成微機(jī)系統(tǒng)的實(shí)體與裝置,通常由運(yùn)算器、控制器、存儲(chǔ)器、輸入接口電路和輸入設(shè)備、輸出接口電路和輸出設(shè)備等組成。其中運(yùn)算器和控制器一般做在一個(gè)集成芯片上,統(tǒng)稱中央處

8、理單元(Central Processing Unit),簡(jiǎn)稱CPU,是微機(jī)的核心部件。CPU配上存放程序和數(shù)據(jù)的存儲(chǔ)器、輸入/輸出(Input/Output,簡(jiǎn)稱I/O)接口電路以及外部設(shè)備即構(gòu)成單片機(jī)的硬件系統(tǒng)。軟件系統(tǒng)是微機(jī)系統(tǒng)所使用的各種程序的總稱,人們通過(guò)它對(duì)微機(jī)進(jìn)行控制并與微機(jī)系統(tǒng)進(jìn)行信息交換,使微機(jī)按照人的意圖完成預(yù)定的任務(wù)。軟件系統(tǒng)與硬件系統(tǒng)共同構(gòu)成完整的單片微型計(jì)算機(jī)系統(tǒng),兩者相輔相成,缺一不可。</p>

9、<p><b>  系統(tǒng)設(shè)計(jì)要點(diǎn)</b></p><p>  系統(tǒng)設(shè)計(jì)主要包括硬件和軟件兩大部分,依據(jù)控制系統(tǒng)的工作原理和技術(shù)性能,將硬件和軟件分開(kāi)設(shè)計(jì)。硬件設(shè)計(jì)部分包括電路原理圖、合理選擇元器件、繪制線路圖,然后對(duì)硬件進(jìn)行調(diào)試、測(cè)試,以達(dá)到設(shè)計(jì)要求。軟件設(shè)計(jì)部分,首先在總體設(shè)計(jì)中完成系統(tǒng)總框圖和各模塊的功能設(shè)計(jì),擬定詳細(xì)的工作計(jì)劃;然后進(jìn)行具體設(shè)計(jì),包括各模塊的流程圖,選擇合適

10、的編程語(yǔ)言和工具,進(jìn)行代碼設(shè)計(jì)等;最后是對(duì)軟件進(jìn)行調(diào)試、測(cè)試,達(dá)到所需功能要求。</p><p>  在系統(tǒng)設(shè)計(jì)中設(shè)計(jì)方法的選用是系統(tǒng)設(shè)計(jì)能否成功的關(guān)鍵。硬件電路是采用結(jié)構(gòu)化系統(tǒng)設(shè)計(jì)方法,該方法保證設(shè)計(jì)電路的標(biāo)準(zhǔn)化、模塊化。硬件電路的設(shè)計(jì)最重要得選擇用于控制的單片機(jī),并確定與之配套的外圍芯片,使所設(shè)計(jì)的系統(tǒng)既經(jīng)濟(jì)又高性能。硬件電路設(shè)計(jì)還包括輸入輸出接口設(shè)計(jì),畫(huà)出詳細(xì)電路圖,標(biāo)出芯片的型號(hào)、器件參數(shù)值,根據(jù)電路圖在

11、仿真機(jī)上進(jìn)行調(diào)試,發(fā)現(xiàn)設(shè)計(jì)不當(dāng)及時(shí)修改,最終達(dá)到設(shè)計(jì)目的。軟件設(shè)計(jì)的方法與開(kāi)發(fā)環(huán)境的選取有著直接的關(guān)系,本系統(tǒng)由于是采用51系列單片機(jī),因此使用Keil C 語(yǔ)言進(jìn)行開(kāi)發(fā)。此編程工具相比匯編語(yǔ)言具有結(jié)構(gòu)化、適用范圍大、可移植性好等特點(diǎn)。本系統(tǒng)軟件設(shè)計(jì)采用模塊化系統(tǒng)設(shè)計(jì)方法,先編寫(xiě)各個(gè)功能模塊子程序,然后進(jìn)行組合與調(diào)整,經(jīng)過(guò)調(diào)試后,達(dá)到設(shè)計(jì)功能要求。</p><p>  AT89C51的簡(jiǎn)介</p>

12、<p>  AT89C51是一種帶4K字節(jié)FLASH存儲(chǔ)器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出

13、管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。</p><p>  搶答器的硬件設(shè)計(jì)要求</p><p>  搶答器同時(shí)供8名選手或8個(gè)代表隊(duì)比賽,分別用8個(gè)按鈕和8個(gè)對(duì)應(yīng)的LED數(shù)碼管表示。設(shè)置一個(gè)系統(tǒng)清除和搶答控制按鈕

14、,該按鈕由主持人控制,當(dāng)搶答結(jié)束后按下復(fù)位鍵復(fù)位,搶答器具有鎖存與顯示功能,即選手按動(dòng)按鈕,鎖存相應(yīng)的編號(hào),并在LED數(shù)碼管上顯示,同時(shí)揚(yáng)聲器報(bào)警器響起提示,選手搶答實(shí)行優(yōu)先鎖存,優(yōu)先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清楚為止。</p><p>  顯示器的硬件設(shè)計(jì)要求</p><p>  顯示器主要是用七段譯碼顯示器,用串行通信口,顯示的數(shù)字為對(duì)應(yīng)的選手號(hào)或?qū)?yīng)的組號(hào),方便主持人分辨出

15、是哪一個(gè)對(duì)應(yīng)的選手做出搶答。</p><p><b>  人機(jī)交互程序設(shè)計(jì)</b></p><p>  系統(tǒng)的人機(jī)交互程序設(shè)計(jì),主要是解決按鍵的掃描與信息的顯示,讓操作者能夠靈活地控制系統(tǒng)工作。鍵盤(pán)用來(lái)輸入指令,發(fā)光數(shù)碼管用來(lái)顯示單片機(jī)的狀態(tài),這是一個(gè)比較簡(jiǎn)單的人機(jī)交互形式。</p><p>  各模塊方案選擇和論證</p>&l

16、t;p>  3.1 搶答器顯示模塊</p><p>  方案一:使用液晶屏顯示。液晶顯示屏具有低耗電量、可視面積大、畫(huà)面效果好、分辨率高等特點(diǎn),但由于液晶是以點(diǎn)陣的模式顯示各種符號(hào),編程工作量打,控制器的資源占用較多,成本較高。</p><p>  方案二:使用傳統(tǒng)的數(shù)碼管顯示。數(shù)碼管具有:低能耗、低損耗、低壓、壽命長(zhǎng)、耐老化、對(duì)外界環(huán)境要求低,精度高,操作簡(jiǎn)單,數(shù)碼顯示是采用BC

17、D編碼顯示數(shù)字,程序編程容易,資源占用較少。</p><p>  基于以上論述,采用方案二。</p><p>  3.2 控制器模塊</p><p>  控制器主要用于各模塊控制對(duì)顯示、搶答、音樂(lè)等,有以下兩個(gè)方案。</p><p>  方案一:采用FPGA(現(xiàn)場(chǎng)可編程門(mén)列陣)作為系統(tǒng)的控制器。FPGA可以實(shí)現(xiàn)各種復(fù)雜的邏輯功能,規(guī)模大,密

18、度高它將所有器件集成在一塊芯片上,減少了體積,提高了穩(wěn)定性,并且可以應(yīng)用EDA軟件仿真、調(diào)試,易于進(jìn)行功能擴(kuò)展。FPGA采用并行的輸入輸出方式,提高了系統(tǒng)的處理速度,適合作為大規(guī)模實(shí)時(shí)系統(tǒng)的控制核心。但由于本設(shè)計(jì)對(duì)數(shù)據(jù)處理的速度要求不高,F(xiàn)PGA的高速處理的優(yōu)勢(shì)得不到充分體現(xiàn),并且由于其集成度高,使其成本偏高同時(shí)由于芯片的引腳較多,實(shí)物硬件電路板布線復(fù)雜,加重了電路設(shè)計(jì)和實(shí)際焊接的工作。</p><p>  方案

19、二:采用ATMEL公司的AT89C51作為系統(tǒng)控制器的CPU方案。單片機(jī)算術(shù)運(yùn)算功能強(qiáng),全殲編程靈活、自由度大,可以用軟件編程實(shí)現(xiàn)各種算法和邏輯控制,并且由于其功耗低、體積小、技術(shù)成熟和成本低等優(yōu)點(diǎn),使其在各個(gè)領(lǐng)域應(yīng)用廣泛。</p><p>  基于以上分析,擬定方案二</p><p>  3.3 搶答器鍵盤(pán)的選擇</p><p>  鍵盤(pán)是單片機(jī)不可缺少的輸入設(shè)

20、備,是實(shí)現(xiàn)人機(jī)對(duì)話的紐帶。鍵盤(pán)按結(jié)構(gòu)形式分為非編碼鍵盤(pán)和編碼鍵盤(pán),前者用軟件方法產(chǎn)生鍵碼,而后者則用硬件方法來(lái)產(chǎn)生鍵碼。在單片機(jī)中使用的都是非編碼鍵盤(pán),因?yàn)榉蔷幋a鍵盤(pán)結(jié)構(gòu)簡(jiǎn)單,成本低廉,非編碼鍵盤(pán)的類型很多,常用的有獨(dú)立式鍵盤(pán),行列式鍵盤(pán)等。</p><p><b>  方案一:獨(dú)立式鍵盤(pán)</b></p><p>  鍵盤(pán)接口中使用多少根I/O線,鍵盤(pán)中就有幾個(gè)按鍵,

21、鍵盤(pán)接口使用了8根I/O口線,該鍵盤(pán)就有8個(gè)按鍵,這種類型的鍵盤(pán),其按鍵比較少,且鍵盤(pán)中各按鍵的工作互不干擾。因此可以根據(jù)實(shí)際需要對(duì)鍵盤(pán)中的按鍵靈活的編碼。如圖3.1.1</p><p><b>  方案二:行列式鍵盤(pán)</b></p><p>  行列式鍵盤(pán)是用N條I/O線作為行線,M條I/O線作為列線組成的鍵盤(pán),在行線和列線的每個(gè)交叉點(diǎn)上,設(shè)置一個(gè)按鍵中按鍵的個(gè)數(shù)為

22、M*N個(gè)。這種形式的鍵盤(pán)結(jié)構(gòu),能夠有效的提高單片機(jī)系統(tǒng)中I/O的利用率。</p><p>  CPU對(duì)鍵盤(pán)的掃描可以采用取程序的隨機(jī)方式,即只有在CPU空閑時(shí)才去掃描鍵盤(pán),響應(yīng)操作人員的鍵盤(pán)輸入,但CPU在執(zhí)行應(yīng)用程序的過(guò)程中,不能響應(yīng)鍵盤(pán)輸入,對(duì)鍵盤(pán)的掃描可以采用定時(shí)方式,即利用單片機(jī)</p><p>  內(nèi)部定時(shí)器每隔一定時(shí)間對(duì)鍵盤(pán)掃描一次,這樣控制方法,不管鍵盤(pán)上有無(wú)鍵閉合,CPU總

23、是定時(shí)的關(guān)心鍵盤(pán)狀態(tài)。在大多數(shù)情況下,CPU對(duì)鍵盤(pán)可能進(jìn)行空掃描。為了提高CPU的效率而又能及時(shí)響應(yīng)鍵盤(pán)輸入,可以采用中斷方式,既CPU平時(shí)不必掃描鍵盤(pán),只要當(dāng)鍵盤(pán)上有鍵盤(pán)閉合時(shí)就產(chǎn)生中斷請(qǐng)求,向CPU申請(qǐng)中斷后,立即對(duì)鍵盤(pán)上有鍵盤(pán)進(jìn)行掃描,識(shí)別閉合鍵,并做相應(yīng)的處理。</p><p>  根據(jù)以上的論述,采用方式一,在本系統(tǒng)中采用了獨(dú)立式鍵盤(pán),其按鍵比較少,且鍵盤(pán)中各個(gè)按鍵的工作互不干擾,如3.3.2所示<

24、;/p><p><b>  硬件設(shè)計(jì)</b></p><p>  4.1 硬件模塊方案</p><p>  主控制器模塊:采用AT89C51單片機(jī)控制</p><p>  搶答器顯示模塊:數(shù)碼管顯示、LED顯示燈</p><p>  搶答器鍵盤(pán)模塊:獨(dú)立式鍵盤(pán)</p><p>

25、;  4.2 搶答電路模塊</p><p>  搶答器的工作原理是采用單片機(jī)最小系統(tǒng),用查詢式鍵盤(pán)進(jìn)行搶答,通過(guò)搶答按鍵模塊,連接按鍵進(jìn)行搶答。其工作原理:主持人按下復(fù)位鍵清零后,選手可以按鍵搶答,此時(shí)喇叭會(huì)發(fā)出響聲,提示主持人此刻有選手已經(jīng)按鍵搶答了,搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清除為止。搶答原理如圖4.2.1所示。</p><p>  4.3 搶答顯示電路</p>

26、;<p>  搶答電路模塊主要是由傳統(tǒng)的數(shù)碼管顯示,通過(guò)芯片AT89C51和一個(gè)電阻構(gòu)成,當(dāng)選手按下自己對(duì)應(yīng)的按鍵,通過(guò)查詢就能編譯出1-8的數(shù)字,然后顯示出來(lái)。如圖4.3.1所示。</p><p><b>  源程序設(shè)計(jì)</b></p><p><b>  ORG 0000H</b></p><p><

27、;b>  LJMP MAIN</b></p><p><b>  ORG 0080H</b></p><p><b>  MAIN:</b></p><p>  MOV P2,#01H</p><p>  MOV DPTR,#TAB</p><p>  AA

28、:MOV P0,#0FFH ;鍵盤(pán)輸入端,全部置一</p><p>  MOV P1,#0FFH ;鍵盤(pán)輸出端,也置一</p><p>  MOV R5,#100</p><p>  ACALL DELY</p><p>  MOV A,P0 ;掃描按鍵,如果出現(xiàn)抖動(dòng)的話,也會(huì)出現(xiàn)低電平,不過(guò)這個(gè)低電 </p>

29、;<p>  XRL A,#0FFH ; 平是瞬間的,所以調(diào)用延時(shí)程序,若保持低電平,則說(shuō)明有按鍵。</p><p>  JZ AA ; 看有無(wú)按鍵,有就繼續(xù),無(wú)就跳</p><p>  ACALL DELAY</p><p><b>  MOV A,P0</b></p><p>  

30、XRL A,#0FFH</p><p>  JZ AA </p><p><b>  MOV A,P0</b></p><p>  ;**********判斷哪個(gè)鍵*********************</p><p>  CJNE A,#0FEH,B1 ;如果掃描鍵盤(pán)時(shí),A不等于0FEH,則跳

31、躍到B1</p><p>  MOV A,#00H ;查表程序</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P1,A</b></p><p><b>  LCALL CC</b></p><p>  B1:CJNE

32、A,#0FDH,B2 ;如果掃描鍵盤(pán)時(shí),A不等于0FEH,則跳躍到B2</p><p>  MOV A,#01H ;查表程序</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P1,A</b></p><p><b>  LCALL CC</b&

33、gt;</p><p>  B2:CJNE A,#0FBH,B3 ;如果掃描鍵盤(pán)時(shí),A不等于0FEH,則跳躍到B3</p><p>  MOV A,#02H ;查表程序</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P1,A</b></p>&

34、lt;p><b>  LCALL CC</b></p><p>  B3:CJNE A,#0F7H,B4 ;如果掃描鍵盤(pán)時(shí),A不等于0FEH,則跳躍到B4</p><p>  MOV A,#03H ;查表程序</p><p>  MOVC A,@A+DPTR</p><p><b>

35、;  MOV P1,A</b></p><p><b>  LCALL CC</b></p><p>  B4:CJNE A,#0EFH,B5 ;如果掃描鍵盤(pán)時(shí),A不等于0FEH,則跳躍到B5</p><p>  MOV A,#04H ;查表程序</p><p>  MOVC A,@A

36、+DPTR</p><p><b>  MOV P1,A</b></p><p><b>  LCALL CC</b></p><p>  B5:CJNE A,#0DFH,B6 ;如果掃描鍵盤(pán)時(shí),A不等于0FEH,則跳躍到B6</p><p>  MOV A,#05H ;查表

37、程序</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P1,A</b></p><p><b>  LCALL CC</b></p><p>  B6:CJNE A,#0BFH,B7 ;如果掃描鍵盤(pán)時(shí),A不等于0FEH,則跳躍到B7</p>

38、<p>  MOV A,#06H ;查表程序</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P1,A</b></p><p><b>  LCALL CC</b></p><p>  B7:CJNE A,#7FH,B8 ;如

39、果掃描鍵盤(pán)時(shí),A不等于0FEH,則跳躍到B8</p><p>  MOV A,#07H ;查表程序</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P1,A</b></p><p><b>  LCALL CC</b></p><

40、;p>  B8:SJMP AA ;如果都不符合的話,則重新跳轉(zhuǎn)到AA</p><p>  CC:SETB P2.2 ;把接入SPEAKER的端口置1,通電</p><p>  LCALL DELAY ;調(diào)用延時(shí)程序DELAY</p><p>  CLR P2.2 ; 清零,不響</p><p>

41、;  LCALL DELAY</p><p>  DJNZ R5,CC</p><p>  FF:MOV C,P2.0 ;把P2.0的數(shù)據(jù)送到C,位操作,C=0的話則往下操作,C=1的話 </p><p>  JC FF ;就重復(fù)操作,直到CY進(jìn)位位為0</p><p>  DD: LJMPAA</p>

42、<p>  DELAY: ;延時(shí)(2*250*20)=10ms</p><p>  MOV R7,#20</p><p>  D4:MOV R6,#250</p><p>  D3:DJNZ R6,D3</p><p>  DJNZ R7,D4</p><p><b> 

43、 RET</b></p><p>  TAB:DB 0XF9,0X24,0X30,0X19,0X12,0X02,0XF8,0X00,0X10 ;查表程序,數(shù)字1-8</p><p><b>  END</b></p><p><b>  課程設(shè)計(jì)總結(jié)</b></p><p>  這

44、次課程設(shè)計(jì)有6個(gè)題課供選擇,我選擇了8路搶答器的題目,看起來(lái)不是很難,但是真正做起來(lái)才發(fā)現(xiàn)其困難之處。</p><p>  這次課程設(shè)計(jì)可以說(shuō)是一個(gè)挑戰(zhàn)。我先在網(wǎng)上找些搶答器的程序參考,編譯時(shí)發(fā)現(xiàn)有很多出錯(cuò)的地方,于是我開(kāi)始查看課本和有關(guān)的資料,知道了一些編程常用的方法。我看到網(wǎng)上很多的參考設(shè)計(jì)是很完善的,而且還配上計(jì)分器,我鑒于時(shí)間和能力有限,我只是做了一個(gè)簡(jiǎn)單的搶答器程序,經(jīng)過(guò)自己的努力和同學(xué)的幫助終于完成了

45、相應(yīng)的要求。</p><p>  本次課程設(shè)計(jì),使我加深了對(duì)單片機(jī)原理程序設(shè)計(jì)的認(rèn)識(shí),也增強(qiáng)了解決編譯錯(cuò)誤的能力,更重要的是培養(yǎng)了我們面對(duì)問(wèn)題、解決問(wèn)題的能力。這次課程設(shè)計(jì)還是比較成功的。</p><p>  當(dāng)然我還有很多不足之處,比如知識(shí)掌握的不夠全面,研究的深度不夠,有問(wèn)題畏畏縮縮不敢問(wèn),這說(shuō)明我的惰性也很強(qiáng)。這些都是我需要去改進(jìn)的地方。我會(huì)在以后的學(xué)習(xí)中多加注意。</p>

46、;<p><b>  參考文獻(xiàn)</b></p><p>  周美娟,肖來(lái)勝 主編【單片機(jī)技術(shù)及系統(tǒng)設(shè)計(jì)】 清華大學(xué)出版社</p><p><b>  附 錄1</b></p><p><b>  搶答器電路原理圖</b></p><p><b>  附

47、 錄2</b></p><p><b>  源程序</b></p><p><b>  ORG 0000H</b></p><p><b>  LJMP MAIN</b></p><p><b>  ORG 0080H</b></p&g

48、t;<p><b>  MAIN:</b></p><p>  MOV P2,#01H</p><p>  MOV DPTR,#TAB</p><p>  AA:MOV P0,#0FFH ;鍵盤(pán)輸入端,全部置一</p><p>  MOV P1,#0FFH ;鍵盤(pán)輸出端,也置一</p>

49、<p>  MOV R5,#100</p><p>  ACALL DELY</p><p>  MOV A,P0 ;掃描按鍵,如果出現(xiàn)抖動(dòng)的話,也會(huì)出現(xiàn)低電平,不過(guò)這個(gè)低電 </p><p>  XRL A,#0FFH ; 平是瞬間的,所以調(diào)用延時(shí)程序,若保持低電平,則說(shuō)明有按鍵。</p><p>  JZ

50、AA ; 看有無(wú)按鍵,有就繼續(xù),無(wú)就跳</p><p>  ACALL DELAY</p><p><b>  MOV A,P0</b></p><p>  XRL A,#0FFH</p><p>  JZ AA </p><p><b>  MOV A,

51、P0</b></p><p>  ;**********判斷哪個(gè)鍵*********************</p><p>  CJNE A,#0FEH,B1 ;如果掃描鍵盤(pán)時(shí),A不等于0FEH,則跳躍到B1</p><p>  MOV A,#00H ;查表程序</p><p>  MOVC A,@A+DP

52、TR</p><p><b>  MOV P1,A</b></p><p><b>  LCALL CC</b></p><p>  B1:CJNE A,#0FDH,B2 ;如果掃描鍵盤(pán)時(shí),A不等于0FEH,則跳躍到B2</p><p>  MOV A,#01H ;查表程序&

53、lt;/p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P1,A</b></p><p><b>  LCALL CC</b></p><p>  B2:CJNE A,#0FBH,B3 ;如果掃描鍵盤(pán)時(shí),A不等于0FEH,則跳躍到B3</p>&

54、lt;p>  MOV A,#02H ;查表程序</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P1,A</b></p><p><b>  LCALL CC</b></p><p>  B3:CJNE A,#0F7H,B4 ;如果

55、掃描鍵盤(pán)時(shí),A不等于0FEH,則跳躍到B4</p><p>  MOV A,#03H ;查表程序</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P1,A</b></p><p><b>  LCALL CC</b></p><

56、;p>  B4:CJNE A,#0EFH,B5 ;如果掃描鍵盤(pán)時(shí),A不等于0FEH,則跳躍到B5</p><p>  MOV A,#04H ;查表程序</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P1,A</b></p><p><b> 

57、 LCALL CC</b></p><p>  B5:CJNE A,#0DFH,B6 ;如果掃描鍵盤(pán)時(shí),A不等于0FEH,則跳躍到B6</p><p>  MOV A,#05H ;查表程序</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P1,A</b&

58、gt;</p><p><b>  LCALL CC</b></p><p>  B6:CJNE A,#0BFH,B7 ;如果掃描鍵盤(pán)時(shí),A不等于0FEH,則跳躍到B7</p><p>  MOV A,#06H ;查表程序</p><p>  MOVC A,@A+DPTR</p>&

59、lt;p><b>  MOV P1,A</b></p><p><b>  LCALL CC</b></p><p>  B7:CJNE A,#7FH,B8 ;如果掃描鍵盤(pán)時(shí),A不等于0FEH,則跳躍到B8</p><p>  MOV A,#07H ;查表程序</p><p&

60、gt;  MOVC A,@A+DPTR</p><p><b>  MOV P1,A</b></p><p><b>  LCALL CC</b></p><p>  B8:SJMP AA ;如果都不符合的話,則重新跳轉(zhuǎn)到AA</p><p>  CC:SETB P2.2

61、 ;把接入SPEAKER的端口置1,通電</p><p>  LCALL DELAY ;調(diào)用延時(shí)程序DELAY</p><p>  CLR P2.2 ; 清零,不響</p><p>  LCALL DELAY</p><p>  DJNZ R5,CC</p><p>  FF:MOV C,P2.0

62、 ;把P2.0的數(shù)據(jù)送到C,位操作,C=0的話則往下操作,C=1的話 </p><p>  JC FF ;就重復(fù)操作,直到CY進(jìn)位位為0</p><p>  DD: LJMPAA</p><p>  DELAY: ;延時(shí)(2*250*20)=10ms</p><p>  MOV R7,#20<

63、/p><p>  D4:MOV R6,#250</p><p>  D3:DJNZ R6,D3</p><p>  DJNZ R7,D4</p><p><b>  RET</b></p><p>  TAB:DB 0XF9,0X24,0X30,0X19,0X12,0X02,0XF8,0X00,0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論