單片微機(jī)課程設(shè)計報告_第1頁
已閱讀1頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  單片微機(jī)課程設(shè)計報告</p><p><b>  學(xué)生姓名:</b></p><p><b>  學(xué)  號:</b></p><p><b>  系  別:</b></p><p><b>  專  業(yè):</b></p>

2、<p><b>  指導(dǎo)教師:</b></p><p><b>  起止日期:</b></p><p><b>  目錄</b></p><p>  摘要………………………………………………………………………………… 3</p><p>  關(guān)鍵詞 ………………

3、………………………………………………………………3</p><p>  Abstract ……………………………………………………………………………3</p><p>  Key words …………………………………………………………………………4</p><p>  一、引言…………………………………………………………………………5</p>

4、<p>  二、基本設(shè)計內(nèi)容 …………………………………………………………………7</p><p>  1、AT89S51單片機(jī)管腳資料………………………………………………………7</p><p>  2、單片機(jī)最小系統(tǒng)…………………………………………………………………9</p><p>  3、5V穩(wěn)壓電源………………………………………………………………

5、………………12</p><p>  4、3*3矩陣鍵盤 ……………………………………………………………………………13</p><p>  5、四位共陽數(shù)碼管…………………………………………………………………………13</p><p>  6、一位隨機(jī)存儲器 ………………………………………………………………14</p><p>  7、一位

6、全加器 ………………………………………………………………………………15</p><p>  三、設(shè)計心得………………………………………………………………………16</p><p>  四、附錄 …………………………………………………………………………17</p><p>  1、參考文獻(xiàn) …………………………………………………………………17</p>

7、<p>  2、硬件(實(shí)物)電路 ………………………………………………………17</p><p>  3、相關(guān)程序 …………………………………………………………………19</p><p>  3、1鍵盤掃描程序………………………………………………………20</p><p>  3、2數(shù)碼管動態(tài)顯示程序………………………………………………23</p

8、><p><b>  摘要</b></p><p>  單片機(jī)在一塊半導(dǎo)體材料上集成了CPU、存儲器、I/O借口等各種功能部件,具有體積小、功耗低、價格便宜、功能強(qiáng)、可靠性好和使用方便靈活的特點(diǎn)。單片機(jī)在工業(yè)控制、數(shù)據(jù)采集、智能化儀表、辦公自動化以及家用電器等各個領(lǐng)域得到了廣泛的應(yīng)用。</p><p>  本次課程設(shè)計我們采用的是AT89S51單片

9、機(jī),它是一種帶4K自字節(jié)可編程可擦除只讀存儲器。AT89S51是一個低電壓、高性能的8位CMOS單片機(jī),片內(nèi)有4K bytes的課反復(fù)擦寫的只讀存儲器和128 bytes 的隨機(jī)存取數(shù)據(jù)存儲器。器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn)。</p><p>  AT89S51是一個低功耗高性能的單片機(jī),40個引腳,32個外部雙向輸入輸出端口,同時內(nèi)含有2個外中斷口,2個16為可編程邏輯計數(shù)器,2個全雙工串

10、行通信口,AT89S51可以按照常規(guī)方法進(jìn)行編程,也可以在線編程,編程的語言可以是匯編也可以是C語言。</p><p>  本次課程設(shè)計我們主要是利用AT89S51,實(shí)現(xiàn)晶體振蕩、復(fù)位、3*3矩陣鍵盤以及數(shù)碼管動/靜態(tài)顯示,并且自己制作一個可提供5V電壓的直流電源、一個一位隨機(jī)存儲器和一位全加器(要求能做:加、減、補(bǔ);與、異或、非、或運(yùn)算),這些功能既需要使用軟件也需要使用硬件才能實(shí)現(xiàn)。</p>&

11、lt;p><b>  關(guān)鍵詞</b></p><p>  AT89S51;矩陣鍵盤;全加器;晶體振蕩;復(fù)位;電源</p><p><b>  Abstract</b></p><p>  Semi conductor material son a single chip with integrated CPU, me

12、mory, I / O excuse for other features, small size, low power consumption, cheap, strong function, reliability and ease of use and flexible features. SCM in the industrial control, data acquisition, intelligent instrumen

13、tation, office automation and other areas, has been widely applied。</p><p>  The curriculum we use is the AT89S51 microcontroller, which is a kind of self-4K-byte erasable programmable read-only memory.AT89

14、S51 is a low voltage, high-performance CMOS 8-bit microcontroller with 4K bytes of on-chip flash of repeated courses and 128 byte soft read-only memory, random access data memory. ATMEL device's high-density nonvolat

15、ile memory technology production.AT89S51 is a low-power high-performance single chip ,40 pins,32 external bi-directional input and out put ports, and con</p><p>  The course design is the use of main AT89S5

16、1,to achieve the crystal oscillaor, reset, 3*3matrixkeyboard, anddigitaldynamic /Static isplays, andproducetheirownto provide a 5V voltage DC power supply, a random access memory and afulloneAdder( required

17、do:addition, subtraction, complement; AND, XOR, non-, or operation),these functions need to use thesoftware only need to use the hardwareto achieve.</p><p><b>  Key words</b></p><

18、;p>  AT89S51; matrix keyboard; full adder; crystal oscillator; reset; power </p><p><b>  引言</b></p><p>  本次課程設(shè)計所涉及到的單片機(jī)最小系統(tǒng)、5V穩(wěn)壓電源、數(shù)碼管的顯示、一位隨機(jī)存儲器、全加器幾個單元,其相關(guān)的理論我們要不在以前的專業(yè)課中學(xué)習(xí)過要不

19、就在本期的單片機(jī)課堂上學(xué)習(xí)和了解過。所以本次課程設(shè)計也就主要是引導(dǎo)我們應(yīng)用這些理論知識做成一些實(shí)際的東西,達(dá)到將理論應(yīng)用于實(shí)際的目的。同時,這一次課程設(shè)計也重在培養(yǎng)我們的對電路的布局,元件的焊接,其實(shí)也就是要培養(yǎng)我們的動手能力,提升對理論知識的理解。本次課程設(shè)計用到的是AT89S51單片機(jī),配以晶振,復(fù)位電路來驅(qū)動數(shù)碼管和LED,這部分是硬件電路,然后通過軟件編程,在單片機(jī)中下載相應(yīng)的程序,便能實(shí)現(xiàn)對硬件電路的驅(qū)動。</p>

20、<p><b>  基本設(shè)計內(nèi)容</b></p><p>  1、AT89S51單片機(jī)管腳資料</p><p>  AT89S51單片機(jī)的硬件電路如圖:</p><p>  各個管腳的功能如下所述:</p><p>  VCC:供電電壓。   GND:接地。   </p><p> 

21、 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8個TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時,P0輸出原碼,此時P0外部必須被拉高。</p><p>  P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口

22、管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時,P1口作為第八位地址接收。   P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)

23、據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時接收高八位地址信號和控制信號。   </p><p>  P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,

24、P3口將輸出電流(ILL)這是由于上拉的緣故。P3口除了作為普通I/O口,還有第二功能:   P3.0 RXD(串行輸入口),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口同時為閃爍編程和編程校驗(yàn)接收一些控制信號

25、。I/O口作為輸入口時有兩種工作方式,即所謂的讀端口與讀引腳。讀端口時實(shí)際上并不從外部讀入數(shù)據(jù),而是把端口鎖存器的內(nèi)容讀入到內(nèi)部總線,經(jīng)過某種運(yùn)算或變換后再寫回到端口鎖存器。只有讀端口時才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線。89S51的P0、P1、P2、P3口作為輸入時都是準(zhǔn)雙向口。除了P1口外P0、P2、P3口都還有其他的功能。   </p><p>  RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機(jī)

26、器周期以上的高電平時間,但是也不能過長,防止單片機(jī)一直處于復(fù)位狀態(tài)。   </p><p>  ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁

27、止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。   </p><p>  PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。   </p><p>  

28、EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此期間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(Vpp)。   XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。   XTAL2:來自反向振蕩器的輸出。</p><p><b>  

29、2、單片機(jī)最小系統(tǒng)</b></p><p>  單片機(jī)最小系統(tǒng)電路圖如下:</p><p><b>  ①電源</b></p><p>  單片機(jī)的電源必須是干凈穩(wěn)定的直流5V電源。單片機(jī)的40管腳電源緊靠引腳,引線要盡量短的接一個電容,大小為105~106pF。</p><p><b> ?、诮拥?/p>

30、</b></p><p>  接地的方式有很多。如:信號回路地、安全接地、屏蔽接地。單片機(jī)20腳接地,芯片內(nèi)部所有電路信號地與片外元件和電源共地。</p><p><b> ?、劬w振蕩</b></p><p>  系統(tǒng)時鐘電路設(shè)計是采用的內(nèi)部方式,即利用芯片內(nèi)部的振蕩電路。AT89S51單片機(jī)內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放

31、大器。引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外晶振諧振器一起構(gòu)成一個自激振蕩器。外接晶振諧振器以及兩個電容構(gòu)成并聯(lián)諧振電路,接在放大電路的反饋回路中。對外接的電容雖然沒有明確的要求,但電容的大小會影響振蕩器頻率的高低、振蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。在焊接電路板時,晶體振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近,并且晶振的管腳應(yīng)該盡量短,以減少寄生電容,更好地保證振蕩器穩(wěn)定和可

32、靠的工作。</p><p><b>  (2)復(fù)位電路</b></p><p>  在9腳加上2個機(jī)械周期(2us)的高電平,通過片內(nèi)復(fù)位電路上電時,PC中是隨機(jī)數(shù),所以必須有硬件電路強(qiáng)行給PC置成00。也就是復(fù)位。復(fù)位的方式可分為:手動復(fù)位、系統(tǒng)復(fù)位、自動復(fù)位。</p><p>  此設(shè)計的復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)的。片內(nèi)復(fù)位是復(fù)位引腳R

33、ST通過一個施密特觸發(fā)器與復(fù)位電路相連,施密特觸發(fā)器用來抑制噪聲,它的輸出在每個機(jī)器周期的S5P2,由復(fù)位電路采樣一次。</p><p>  復(fù)位電路的基本功能是:系統(tǒng)上電時提供復(fù)位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復(fù)位信號。為可靠起見,電源穩(wěn)定后還要經(jīng)過一定的延時才撤銷復(fù)位信號,以防電源開關(guān)或電源插頭分—合過程中引來的抖動而影響復(fù)位。單片機(jī)復(fù)位電路參數(shù)的選定須在振蕩穩(wěn)定后保證復(fù)位高電平持續(xù)時間大于2個機(jī)械周期。&l

34、t;/p><p>  AT89S51單片機(jī)是整個開發(fā)板的控制中心,我們在選用電路時應(yīng)該保證它的可靠性和抗干擾性,在選用具體電子器件的時候,應(yīng)該確定它的各項(xiàng)參數(shù),盡量使用參數(shù)相當(dāng)?shù)钠骷?lt;/p><p>  要想單片機(jī)能長時間正常工作我們必須保證以下幾點(diǎn):</p><p> ?、俑蓛舴€(wěn)定的電流輸入。</p><p><b> ?、诹己谜_

35、的接地。</b></p><p><b> ?、劬_穩(wěn)定的時鐘。</b></p><p> ?、芙^對可靠的自動復(fù)位。</p><p>  3、5V穩(wěn)壓電源的設(shè)計</p><p><b>  電源的原理圖如下:</b></p><p>  這個電路主要通過12V變壓

36、器、整流電橋、穩(wěn)壓管及濾波電容組成。首先變壓器將220V的交流市電轉(zhuǎn)換成12V的交流電,然后將這個電壓加入全波整流電橋,經(jīng)整流后,經(jīng)過1000uF濾波電容,對其進(jìn)行濾波,慮除紋波雜質(zhì),再通過一個7805的穩(wěn)壓管后經(jīng)10uF和0.1uF的小電容重新濾波,使輸出的直流電壓的紋波降到最低。另外我在這個電路的設(shè)計中,加入了一個上電的開關(guān)和指示燈,加入上電開關(guān)使得使用時更加的方便,加入電源指示燈我們便能很容易的判別電路是否確實(shí)輸出了一個5V的電壓

37、。</p><p><b>  4、3*3矩陣鍵盤</b></p><p><b>  其硬件電路圖如下:</b></p><p>  我們知道,一個I/O口有兩種輸入輸出狀態(tài),即高電平和低電平。所以,我們可以通過6個I/O口的狀態(tài)控制9個鍵盤的情況。本設(shè)計使用的是最常見的3*3矩陣鍵盤,編程的時候可以通過先掃描行(列)再

38、掃描列(行)的方式掃描整個鍵盤。</p><p>  鍵盤掃描的方法是:行線P1.0~P1.2為輸入線,列線P1.3~P1.5為輸出線。一開始單片機(jī)將行線全部輸出低電平,此時讀入列線數(shù)據(jù),若列線全為高電平則沒有鍵按下,當(dāng)列線有出現(xiàn)低電平時調(diào)用延時程序來去除按鍵抖動。延時完成后再判斷是否有低電平,如果此時讀入列線數(shù)據(jù)還是低電平,則說明確實(shí)有鍵按下。最后確定鍵值。</p><p><b&

39、gt;  5、四位共陽數(shù)碼管</b></p><p>  本次課程設(shè)計我們所用到的數(shù)碼管是共陽的數(shù)碼管。</p><p>  數(shù)碼管的顯示方式按驅(qū)動方式可分成靜態(tài)顯示方式和動態(tài)顯示方式兩種。對于多位數(shù)碼管,通常都是采用動態(tài)掃描的方法進(jìn)行顯示。在動態(tài)方式中,逐個循環(huán)地點(diǎn)亮各位數(shù)碼管。這樣雖然在任意時刻只有一位數(shù)碼管被點(diǎn)亮,但是由于人眼具有視覺殘留效應(yīng)和眼睛的余輝,看起來便是全部數(shù)

40、碼管持續(xù)點(diǎn)亮的效果。</p><p>  單片機(jī)通過一分8位的二進(jìn)制電平信號顯示出想要顯示的數(shù)字或者字母。例如,點(diǎn)亮二極管b,c,數(shù)碼管就會顯示1,點(diǎn)亮a,b,c,d,e,f,g數(shù)碼管就會顯示數(shù)字0.所以,數(shù)碼管的顯示需要有8根連線。</p><p>  同理,要使用四位八段數(shù)碼管,只要控制相應(yīng)的位選和段選就可以自由的顯示相應(yīng)的數(shù)字。</p><p><b&g

41、t;  6、一位隨機(jī)存儲器</b></p><p><b>  其原理圖如下:</b></p><p>  這次設(shè)計中的一位隨機(jī)存儲器由NPN三極管9013,電阻和LED搭建而成,LED的亮滅用以顯示出數(shù)據(jù)的存入是1還是0。理論上,由于電路的對稱性,使得LED的亮滅具有隨機(jī)性,左邊的LED亮還是右邊的LED亮事先無法預(yù)知,但是實(shí)際中由于不能做到元件的絕對對

42、稱,并且導(dǎo)線的長度也不能絕對相等,所以隨機(jī)性并不是很好。存入數(shù)據(jù)的時候可以用一個按鍵開關(guān)控制,也可以直接用一根連接到了地端或者是正5V電源的導(dǎo)線用接觸的方式進(jìn)行控制。</p><p><b>  7、全加器</b></p><p>  本次設(shè)計的一位全加器能實(shí)現(xiàn)加、減、補(bǔ);與、異或、非、或等七個功能,其結(jié)果用LED的亮滅體現(xiàn)出來。電路是由具有4與非門的74LS00集成

43、芯片搭建而成,74LS00的內(nèi)部邏輯如下圖所示:</p><p>  我們可以按照以下的與非邏輯電路結(jié)合74LS00的內(nèi)部邏輯搭建我們所需要的全加器</p><p>  由于是采用萬用板搭建的,而這個電路所涉及到的與非門又比較多,所以在焊接之前,應(yīng)該先布好局,防止在焊接的過程中將線焊錯。另外要注意將每個芯片的電源端和地端都連接好,以保證芯片正常工作。</p><p>

44、;<b>  三、設(shè)計心得</b></p><p>  本次課程設(shè)計持續(xù)了一個半月的時間,它主要是培養(yǎng)我們通過把所學(xué)的理論知識應(yīng)用于實(shí)踐,并且這一次課程設(shè)計采用的萬用板搭建電路,想要焊接出來的電路板看起來整潔美觀,我們便需要從全局入手,要有全局統(tǒng)籌局部的思維,這樣才能更快捷設(shè)計出整齊美觀的電路板。同時我的焊接的技術(shù)也有了很大的提高,我覺得老師要求我們用萬用板采用分立元件搭建這些電路能夠讓我們

45、很好的了解到所搭建電路的相關(guān)原理,同時我們對所用集成芯片的內(nèi)部結(jié)構(gòu)也能很好了解,這是硬件方面;在軟件方面,我學(xué)會了如何運(yùn)用KEIL軟件編寫出流水燈、數(shù)碼管顯示、鍵盤掃描的程序。最后,在老師的悉心指導(dǎo)和嚴(yán)格要求下,我獲得了豐富的理論知識,極大地提高了實(shí)踐能力,使我認(rèn)識到了課程的重要性,同時感受到了理論與實(shí)踐的差距,使得我對單片機(jī)系統(tǒng)的應(yīng)用有了更加深刻的認(rèn)識,得到了一次專業(yè)知識,專業(yè)技能分析和解決問題很好鍛煉。</p><

46、;p><b>  四、附錄</b></p><p><b>  1、參考文獻(xiàn)</b></p><p>  【1】、余錫存 曹國華。單片機(jī)原理及接口技術(shù),西安電子科技大學(xué)出版社,2007.12</p><p>  【2】、Intel,Embedded Controller Handbook.1987</p>

47、<p>  【3】、接口電路編寫組.最新接口電路實(shí)用速查手冊.北京:電子工業(yè)出版社,1990</p><p>  【4】孫涵芳等.單片機(jī)原理及應(yīng)用.北京:北京航空航天大學(xué)出版社,1990</p><p>  【5】周航慈.單片機(jī)應(yīng)用程序設(shè)計技術(shù).北京:北京航空航天大學(xué)出版社,1991</p><p>  【6】李華等.MCS-51系列單片機(jī)使用接口技術(shù)

48、.北京:北京航空航天大學(xué)出版社,1993</p><p>  【7】蔡美琴等.MCS-51系列單片機(jī)系統(tǒng)及應(yīng)用.北京:高等教育出版社,1993</p><p>  【8】魏立峰等.單片機(jī)原理與應(yīng)用技術(shù).北京:北京大學(xué)出版社,2006</p><p>  2、硬件(實(shí)物)電路</p><p><b> ?、芫д窦捌洳ㄐ?lt;/b&g

49、t;</p><p><b>  3、相關(guān)程序</b></p><p>  3、1 鍵盤掃描程序</p><p>  #include<reg52.h></p><p>  #define uint unsigned int</p><p>  #define uchar unsign

50、ed char</p><p>  sbit wela1=P2^1;</p><p>  sbit wela2=P2^2;</p><p>  sbit wela3=P2^3;</p><p>  sbit wela4=P2^4;</p><p>  sbit led=P2^0;</p><p>

51、;  uchar num=0;</p><p>  uchar code table[]={</p><p>  0xc0,0xf9,0xa4,0xb0,</p><p>  0x99,0x92,0x82,0xf8,</p><p>  0x80,0x90,0x88,0x83,</p><p>  0xc6,0xa1,

52、0x86,0x8e,</p><p><b>  0xbf,0xff</b></p><p><b>  };</b></p><p>  void delay(uint z)</p><p><b>  {</b></p><p><b> 

53、 uint x,y;</b></p><p>  for(x=z;x>0;x--)</p><p>  for(y=110;y>0;y--);</p><p><b>  }</b></p><p>  void display(uchar num)</p><p><

54、;b>  {</b></p><p>  /*wela1=1;</p><p><b>  wela2=1;</b></p><p><b>  wela3=1;</b></p><p>  wela4=1;*/</p><p><b>  P2

55、=0x1e;</b></p><p>  P0=table[num];</p><p><b>  }</b></p><p>  void keyscan()</p><p><b>  {</b></p><p>  uchar temp;</p>

56、;<p><b>  P1=0xfe;</b></p><p><b>  temp=P1;</b></p><p>  temp=temp&0xf8;</p><p>  if(temp!=0xf8)</p><p><b>  {</b></p&

57、gt;<p>  delay(10);</p><p><b>  temp=P1;</b></p><p>  temp=temp&0xf8;</p><p>  if(temp!=0xf8)</p><p><b>  {</b></p><p>&

58、lt;b>  temp=P1;</b></p><p>  switch(temp)</p><p><b>  {</b></p><p>  case 0xde:</p><p><b>  num=1;</b></p><p><b>  b

59、reak;</b></p><p>  case 0xee:</p><p><b>  num=2;</b></p><p><b>  break;</b></p><p>  case 0xf6:</p><p><b>  num=3;</

60、b></p><p>  break;</p><p><b>  }</b></p><p>  while(temp!=0xf8)</p><p><b>  {</b></p><p><b>  temp=P1;</b><

61、/p><p>  temp=temp&0xf8;</p><p><b>  }</b></p><p>  display(num);</p><p><b>  }</b></p><p><b>  }</b></p>&

62、lt;p><b>  P1=0xfd;</b></p><p><b>  temp=P1;</b></p><p>  temp=temp&0xf8;</p><p>  if(temp!=0xf8)</p><p><b>  {</b></p>

63、<p>  delay(10);</p><p><b>  temp=P1;</b></p><p>  temp=temp&0xf8;</p><p>  if(temp!=0xf8)</p><p><b>  {</b></p><p><b

64、>  temp=P1;</b></p><p>  switch(temp)</p><p><b>  {</b></p><p>  case 0xdd:</p><p><b>  num=4;</b></p><p><b>  break

65、;</b></p><p>  case 0xed:</p><p><b>  num=5;</b></p><p><b>  break;</b></p><p>  case 0xf5:</p><p><b>  num=6;</b>

66、;</p><p>  break;</p><p><b>  }</b></p><p>  while(temp!=0xf8)</p><p><b>  {</b></p><p><b>  temp=P1;</b></p>

67、<p>  temp=temp&0xf8;</p><p><b>  }</b></p><p>  display(num);</p><p><b>  }</b></p><p><b>  }</b></p><p>&

68、lt;b>  P1=0xfb;</b></p><p><b>  temp=P1;</b></p><p>  temp=temp&0xf8;</p><p>  if(temp!=0xf8)</p><p><b>  {</b></p><p>

69、;  delay(10);</p><p><b>  temp=P1;</b></p><p>  temp=temp&0xf8;</p><p>  if(temp!=0xf8)</p><p><b>  {</b></p><p><b>  tem

70、p=P1;</b></p><p>  switch(temp)</p><p><b>  {</b></p><p>  case 0xdb:</p><p><b>  num=7;</b></p><p><b>  break;</b&g

71、t;</p><p>  case 0xeb:</p><p><b>  num=8;</b></p><p><b>  break;</b></p><p>  case 0xf3:</p><p><b>  num=9;</b></p&g

72、t;<p>  break;</p><p><b>  }</b></p><p>  while(temp!=0xf8)</p><p><b>  {</b></p><p><b>  temp=P1;</b></p><p&g

73、t;  temp=temp&0xf8;</p><p><b>  }</b></p><p>  display(num);</p><p><b>  }</b></p><p><b>  }</b></p><p><b&

74、gt;  }</b></p><p>  /*void display1()</p><p><b>  {</b></p><p><b>  led=1;</b></p><p>  delay(500);</p><p><b>  led=0;&

75、lt;/b></p><p><b>  }*/</b></p><p>  void main()</p><p><b>  {</b></p><p><b>  P1=0xff;</b></p><p><b>  while(

76、1)</b></p><p><b>  {</b></p><p>  keyscan();</p><p>  //display1();</p><p>  //display(num);</p><p><b>  }</b></p>

77、;<p><b>  }</b></p><p>  3、2數(shù)碼管動態(tài)顯示程序</p><p>  #include<reg52.h></p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p&

78、gt;<p>  uchar code table[]={</p><p>  0xc0,0xf9,0xa4,0xb0,</p><p>  0x99,0x92,0x82,0xf8,</p><p>  0x80,0x90,0x88,0x83,</p><p>  0xc6,0xa1,0x86,0x8e,</p>

79、<p><b>  0xbf,0xff</b></p><p><b>  };</b></p><p>  void delay(uint z)</p><p><b>  {</b></p><p><b>  uint x,y;</b>&l

80、t;/p><p>  for(x=z;x>0;x--)</p><p>  for(y=110;y>0;y--);</p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><

81、;p>  uchar i=0;</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  for(i=0;i<16;i++)</p><p><b>  {</b></p><p>  

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論