單片微機(jī)課程設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩21頁(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è)計(jì)報(bào)告</p><p><b>  學(xué)生姓名:</b></p><p><b>  學(xué)  號(hào):</b></p><p><b>  系  別:</b></p><p><b>  ?! I(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è)計(jì)內(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、四位共陽(yáng)數(shù)碼管…………………………………………………………………………13</p><p>  6、一位隨機(jī)存儲(chǔ)器 ………………………………………………………………14</p><p>  7、一位

6、全加器 ………………………………………………………………………………15</p><p>  三、設(shè)計(jì)心得………………………………………………………………………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ù)碼管動(dòng)態(tài)顯示程序………………………………………………23</p

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

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

10、行通信口,AT89S51可以按照常規(guī)方法進(jìn)行編程,也可以在線編程,編程的語(yǔ)言可以是匯編也可以是C語(yǔ)言。</p><p>  本次課程設(shè)計(jì)我們主要是利用AT89S51,實(shí)現(xiàn)晶體振蕩、復(fù)位、3*3矩陣鍵盤以及數(shù)碼管動(dòng)/靜態(tài)顯示,并且自己制作一個(gè)可提供5V電壓的直流電源、一個(gè)一位隨機(jī)存儲(chǔ)器和一位全加器(要求能做:加、減、補(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ì)所涉及到的單片機(jī)最小系統(tǒng)、5V穩(wěn)壓電源、數(shù)碼管的顯示、一位隨機(jī)存儲(chǔ)器、全加器幾個(gè)單元,其相關(guān)的理論我們要不在以前的專業(yè)課中學(xué)習(xí)過(guò)要不

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

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

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

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

23、據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。   </p><p>  P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)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(記時(shí)器0外部輸入)   P3.5 T1(記時(shí)器1外部輸入),P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)   P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通),P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)

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

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

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

28、EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此期間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(Vpp)。   XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。   XTAL2:來(lái)自反向振蕩器的輸出。</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管腳電源緊靠引腳,引線要盡量短的接一個(gè)電容,大小為105~106pF。</p><p><b> ?、诮拥?/p>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

47、<p>  【3】、接口電路編寫組.最新接口電路實(shí)用速查手冊(cè).北京:電子工業(yè)出版社,1990</p><p>  【4】孫涵芳等.單片機(jī)原理及應(yīng)用.北京:北京航空航天大學(xué)出版社,1990</p><p>  【5】周航慈.單片機(jī)應(yīng)用程序設(shè)計(jì)技術(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>  ④晶振及其波形</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ù)碼管動(dòng)態(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. 本站所有資源如無(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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論