2014單片機(jī)應(yīng)用技術(shù)_第1頁(yè)
已閱讀1頁(yè),還剩172頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、,項(xiàng)目1信號(hào)燈控制,《單片機(jī)應(yīng)用技術(shù)》精品課程組,《單片機(jī)應(yīng)用技術(shù)》,,本講主要內(nèi)容,6 項(xiàng)目考核,,【教學(xué)目標(biāo)】,1、終極目標(biāo): 制作一個(gè)彩燈閃爍的單片機(jī)控制系統(tǒng)。2、促成目標(biāo): (1) 了解單片機(jī)的基本概念及MCS系列單片機(jī)結(jié)構(gòu)特點(diǎn);了解典型單片機(jī)系列的基本情況;了解MCS系列單片機(jī)的發(fā)展及應(yīng)用領(lǐng)域; (2) 了解MCS-5l單片機(jī)內(nèi)部結(jié)構(gòu)和功能; (3) 掌握MCS-5l單片機(jī)引腳

2、功能以及工作方式和單片機(jī)的存儲(chǔ)器結(jié)構(gòu)的特點(diǎn)、性能; (4) 熟練掌握單片機(jī)的指令系統(tǒng)特點(diǎn); (5) 理解單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)的基本方法和設(shè)計(jì)流程;掌握MCS系列單片機(jī)的開(kāi)發(fā)工具;掌握編程軟件、編程器、虛擬設(shè)備和仿真器的基本操作方法;了解單片機(jī)開(kāi)發(fā)過(guò)程中的操作技巧和注意事項(xiàng); (6) 掌握簡(jiǎn)單的順序、分支、循環(huán)程序結(jié)構(gòu)和子程序的編寫(xiě)和調(diào)用方法; (7) 掌握延時(shí)子程序等典型程序的設(shè)計(jì)方法;

3、 (8) 初步掌握單片機(jī)應(yīng)用系統(tǒng)分析和軟硬件設(shè)計(jì)的基本方法,建立單片機(jī)系統(tǒng)設(shè)計(jì)的基本概念;,,設(shè)計(jì)一個(gè)彩燈閃爍的單片機(jī)控制系統(tǒng),在單片機(jī)的P0.0端口上接一個(gè)發(fā)光二極管L1,使L1不停地一亮一滅,一亮一滅的時(shí)間間隔為0.2秒,循環(huán)往復(fù)。,【工作任務(wù)】,,【活動(dòng)一】總體設(shè)計(jì)1.系統(tǒng)組成 本系統(tǒng)功能由硬件和軟件兩大部份協(xié)調(diào)完成,硬件部分主要完成信息的顯示;軟件主要完成信號(hào)的處理及控制功能等。 本系統(tǒng)的

4、硬件采用模塊化設(shè)計(jì),以AT89S52單片機(jī)為核心,與LED彩燈閃爍電路組成控制系統(tǒng)。該系統(tǒng)硬件主要包括以下幾個(gè)模塊:AT89S52主控模塊、LED彩燈閃爍模塊等。其中AT89S52主要完成外圍硬件的控制以及一些運(yùn)算功能,LED彩燈電路完成燈光的閃爍功能。系統(tǒng)組成方框圖如圖1.1所示。,【項(xiàng)目實(shí)踐】,,圖1.1 LED彩燈閃爍控制系統(tǒng)組成方框圖,【項(xiàng)目實(shí)踐】,,模塊化設(shè)計(jì)(Modular design) 降低了程序設(shè)計(jì)的復(fù)雜性、便于修改

5、、且使得支持系統(tǒng)不同部分的并行開(kāi)發(fā)實(shí)現(xiàn)起來(lái)更容易。應(yīng)用軟件采用模塊化設(shè)計(jì)方法,該系統(tǒng)軟件主要由主程序、延時(shí)子程序模塊等組成,系統(tǒng)軟件結(jié)構(gòu)框圖如圖1.2所示。,圖1.2 單片機(jī)彩燈閃爍系統(tǒng)軟件結(jié)構(gòu)框圖,【項(xiàng)目實(shí)踐】,,2.系統(tǒng)工作原理 發(fā)光二極管簡(jiǎn)稱(chēng)為L(zhǎng)ED,由鎵(Ga)與砷(AS)、磷(P)的化合物制成的二極管,當(dāng)電子與空穴復(fù)合時(shí)能輻射出可見(jiàn)光,因而可以用來(lái)制成發(fā)光二極管,在電路及儀器中作為指示燈,或者組成文字或數(shù)字顯示。

6、磷砷化鎵二極管發(fā)紅光,磷化鎵二極管發(fā)綠光,碳化硅二極管發(fā)黃光。 發(fā)光二極管是一種把電能轉(zhuǎn)換成光能的半導(dǎo)體器件。它由PN節(jié)組成,在正向偏置的條件下導(dǎo)通,此時(shí)會(huì)發(fā)射出一定波長(zhǎng)的光。發(fā)光二極管的發(fā)光功率近似的與導(dǎo)通電流成正比。目前大多數(shù)產(chǎn)品可以由集成電路直接驅(qū)動(dòng)。,【項(xiàng)目實(shí)踐】,,圖1.3 發(fā)光二極管發(fā)光效果圖,圖1.4 發(fā)光二極管發(fā)光實(shí)物圖,【項(xiàng)目實(shí)踐】,與小白熾燈泡和氖燈相比,發(fā)光二極管的特點(diǎn)是:工作電壓很低(有的僅一點(diǎn)

7、幾伏),工作電流很?。ㄓ械膬H零點(diǎn)幾毫安即可發(fā)光),抗沖擊和抗震性能好,可靠性高,壽命長(zhǎng);通過(guò)調(diào)制通過(guò)的電流強(qiáng)弱可以方便地調(diào)制發(fā)光的強(qiáng)弱。由于有這些特點(diǎn),發(fā)光二極管在一些光電控制設(shè)備中用作光源,在許多電子設(shè)備中用作信號(hào)顯示器。把它的管心做成條狀,用7條條狀的發(fā)光管組成7段式半導(dǎo)體數(shù)碼管,每個(gè)數(shù)碼管可顯示0~9十個(gè)數(shù)目字。,,發(fā)光二極管有很多類(lèi),如圖1.4所示為幾種發(fā)光二極管,其電氣原理圖如圖圖1.5所示,當(dāng)在它的A和K兩個(gè)電極加上合適的電

8、壓的時(shí)候,它就會(huì)亮起來(lái)。說(shuō)“合適的電壓”,是因?yàn)椴煌陌l(fā)光二極管工作電壓并不相同,一般是在1.6~2.8V之間,而工作電流則一般在2~30mA之間,但是實(shí)際工作的選擇范圍一般是4~10mA之間。,圖1.5 發(fā)光二極管電氣的電路圖形符號(hào),【項(xiàng)目實(shí)踐】,,1.單片機(jī)選型 51系列單片機(jī)包括許多類(lèi)型,它們的內(nèi)部結(jié)構(gòu)基本相同。AT89S52是目前應(yīng)用比較廣泛的51系列兼容單片機(jī)中的代表產(chǎn)品。 (1) 主要性能: 與

9、MCS-51單片機(jī)產(chǎn)品兼容 8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器 1000次擦寫(xiě)周期 全靜態(tài)操作:0Hz~33Hz 三級(jí)加密程序存儲(chǔ)器 32個(gè)可編程I/O口線(xiàn) 三個(gè)16位定時(shí)器/計(jì)數(shù)器 八個(gè)中斷源,全雙工UART串行通道 低功耗空閑和掉電模式 掉電后中斷可喚醒 看門(mén)狗定時(shí)器 雙數(shù)據(jù)指針 掉電標(biāo)識(shí)符,【項(xiàng)目實(shí)踐】,【活

10、動(dòng)二】硬件設(shè)計(jì),,(2) 功能特性描述 AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。(3)

11、AT89S52標(biāo)準(zhǔn)功能 8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線(xiàn),看門(mén)狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)

12、中斷或硬件復(fù)位為止。,【項(xiàng)目實(shí)踐】,,(4) AT89S52芯片引腳結(jié)構(gòu),圖1.6 AT89S52芯片引腳結(jié)構(gòu)圖 鑒于此,本項(xiàng)目選用AT89S52單片機(jī)作為主控制器?!咀⒁狻吭诤竺娴捻?xiàng)目中,如無(wú)特殊說(shuō)明,均以AT89S52單片機(jī)作為主控制器。,【項(xiàng)目實(shí)踐】,,2.主控模塊設(shè)計(jì) 電源、時(shí)鐘信號(hào)以及復(fù)位電路是單片機(jī)工作的基本條件,缺一不可。單片機(jī)基本系統(tǒng)包括電源電路、時(shí)鐘電路、復(fù)位電路。(1)

13、 電源電路模塊設(shè)計(jì)電源模塊為系統(tǒng)板上其它模塊提供+5V電源,系統(tǒng)板為從USB接口獲?。?V電源,只要用相應(yīng)配套的USB線(xiàn)從電腦主機(jī)獲?。?V直流電源。 (2) 時(shí)鐘電路模塊設(shè)計(jì) 單片機(jī)的時(shí)鐘信號(hào)用來(lái)為單片機(jī)芯片內(nèi)部各種微操作提供時(shí)間基準(zhǔn)。MCS-51的時(shí)鐘信號(hào)可以由兩種方式產(chǎn)生,一種是內(nèi)部時(shí)鐘方式,利用芯片內(nèi)部的振蕩電路;另一種方式為外部時(shí)鐘方式。 由于AT89S52單片機(jī)芯片內(nèi)有時(shí)鐘振蕩電路,因此本項(xiàng)

14、目中采用內(nèi)部時(shí)鐘方式,只要在單片機(jī)的XTAL1和XTAL2引腳外接石英晶體和微調(diào)電容,就構(gòu)成了自激振蕩器并在單片機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號(hào),具體電路設(shè)計(jì)如圖1.3所示。圖中電容C1和C2的作用是穩(wěn)定頻率和快速起振,電容置在5~30pF,在此選擇30pF;晶振X1的振蕩頻率范圍在1.2~12MHz間選擇,本項(xiàng)目中選擇12MHz。時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列,作為單片機(jī)工作的時(shí)間基準(zhǔn),典型的晶體振蕩頻率為12MHz。,【項(xiàng)目實(shí)踐】,,(3

15、) 復(fù)位電路模塊設(shè)計(jì) 復(fù)位電路使單片機(jī)或系統(tǒng)中的其他部件處于某種確定的狀態(tài)。當(dāng)在51單片機(jī)的RST引腳引入高電平并保持2個(gè)機(jī)器周期,單片機(jī)內(nèi)部就執(zhí)行復(fù)位操作。實(shí)際應(yīng)用中,復(fù)位操作有兩種基本形式:一種是上電復(fù)位,另一種是按鍵復(fù)位。本項(xiàng)目中采用按鍵復(fù)位方式,具體電路設(shè)計(jì)如圖1.3所示。在單片機(jī)運(yùn)行期間,可以利用此按鍵完成復(fù)位操作。 【注意】在后面的項(xiàng)目中,如無(wú)特殊說(shuō)明,主控模塊的設(shè)計(jì)均按此方式設(shè)計(jì),不再贅述。3

16、.LED彩燈模塊設(shè)計(jì) LED彩燈閃爍輸出電路采用發(fā)光二極管LED,LED的K極通過(guò)限流電阻R與單片機(jī)的P0口的P0.0連接,LED的A極連接到+5V電源。系統(tǒng)供電為+5V,LED上串接的電阻是1KΩ,如果此時(shí)LED上的電壓是2.0V,那么此時(shí)通過(guò)LED的電流為(5V-2V)/1000Ω=3mA。如果需要提高亮度,電流一般會(huì)控制在10mA左右,則此時(shí)電阻應(yīng)該選擇(5V-2V)/10mA=300Ω,所以可以就近選擇330Ω。該

17、模塊與單片機(jī)的接口電路如圖1.7所示。,【項(xiàng)目實(shí)踐】,,圖1.7 LED彩燈閃爍模塊與單片機(jī)的接口電路原理圖,【項(xiàng)目實(shí)踐】,,1.算法設(shè)計(jì) 根據(jù)系統(tǒng)工作原理圖1.7可知: 當(dāng)P0.0端口輸出高電平,即P0.0=1時(shí),根據(jù)發(fā)光二極管的單向?qū)щ娦钥芍?,這時(shí)發(fā)光二極管L1熄滅;我們可以使用SETB P0.0指令使P0.0端口輸出高電平; 當(dāng)P0.0端口輸出低電平,即P0.0=0時(shí),發(fā)光二極管L1亮

18、;我們可以使用CLR P0.0指令使P0.0端口輸出低電平。 ① 延時(shí)程序設(shè)計(jì) 由于單片機(jī)指令的執(zhí)行時(shí)間很短,屬于微秒級(jí),而我們要求的彩燈閃爍時(shí)間間隔為0.2秒,相對(duì)于微秒來(lái)說(shuō),相差太大,所以我們?cè)趫?zhí)行彩燈點(diǎn)亮和熄滅指令時(shí),插入延時(shí)程序,來(lái)達(dá)到我們的要求。 ② 循環(huán)程序結(jié)構(gòu)設(shè)計(jì),【項(xiàng)目實(shí)踐】,【活動(dòng)三】軟件設(shè)計(jì),,由于需要控制發(fā)光二極管反復(fù)的一亮一滅,在程序中需要反復(fù)執(zhí)行該程序段,為了避免在程

19、序中多次的編寫(xiě),我們采用循環(huán)結(jié)構(gòu)來(lái)實(shí)現(xiàn)該功能,可以通過(guò)利用條件轉(zhuǎn)移或無(wú)條件轉(zhuǎn)移指令LJMP或者AJMP來(lái)控制程序的跳轉(zhuǎn)執(zhí)行,達(dá)到發(fā)光二極管反復(fù)的一亮一滅的目的。 ③ 子程序設(shè)計(jì) 由于發(fā)光二極管點(diǎn)亮的時(shí)間為0.2秒,熄滅的時(shí)間也為0.2秒,在程序中需要多次執(zhí)行同樣的計(jì)算和操作,如果每次都從頭開(kāi)始編制該段程序,不僅麻煩,而且浪費(fèi)存儲(chǔ)空間。對(duì)于這種在一個(gè)程序中反復(fù)出現(xiàn)的程序段,我們采用子程序結(jié)構(gòu)來(lái)實(shí)現(xiàn)。

20、 當(dāng)主程序在運(yùn)行時(shí),需要調(diào)用子程序時(shí),只要執(zhí)行調(diào)用子程序指令A(yù)CALL或者LCALL,使主程序跳轉(zhuǎn)至子程序執(zhí)行,子程序處理完畢,用RET指令返回主程序,繼續(xù)執(zhí)行主程序后面的操作。2.?dāng)?shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 單片機(jī)的P0口線(xiàn)的P0.0用于發(fā)光二極管L1亮、滅的控制,當(dāng)P0.0=0表示L1點(diǎn)亮,當(dāng)P0.0=1表示L1熄滅;工作寄存器R5、R6、R7為延時(shí)子程序的循環(huán)變量。,【項(xiàng)目實(shí)踐】,,3.程序設(shè)計(jì)(1) 主程序設(shè)計(jì)主程序主

21、要完成硬件初始化、延時(shí)子程序調(diào)用等功能。 ① 初始化通過(guò)初始化把P0.0設(shè)置為0,讓發(fā)光二極管點(diǎn)亮。 ② 循環(huán)閃爍調(diào)用延時(shí)子程序,使發(fā)光二極管點(diǎn)亮0.2秒;然后修改P0.0的狀態(tài)為1,再調(diào)用延時(shí)子程序,使發(fā)光二極管熄滅0.2秒;最后使程序跳轉(zhuǎn)到開(kāi)始重新執(zhí)行,就可以實(shí)現(xiàn)發(fā)光二極管循環(huán)閃爍。主程序設(shè)計(jì)流程圖如圖1.8所示。,【項(xiàng)目實(shí)踐】,,,圖1.8主程序設(shè)計(jì)流程圖,【項(xiàng)目實(shí)踐】,,(2) 延時(shí)子程序設(shè)計(jì)

22、 延時(shí)子程序完成發(fā)光二極管L1點(diǎn)亮或熄滅的延時(shí)時(shí)間。延時(shí)程序是一種應(yīng)用較為廣泛的小程序,一般采用多條語(yǔ)句循環(huán)執(zhí)行來(lái)實(shí)現(xiàn)延時(shí)。下面具體介紹其原理: 系統(tǒng)所用的石英晶體振蕩頻率為11.0592MHz,因此,1個(gè)機(jī)器周期=1/石英頻率*12,即為12/11.0592微秒。 機(jī)器周期 微秒MOV R6,#20

23、 ;2個(gè) 2LOOP1:MOV R7,#230 ;2個(gè) 2DJNZ R7,$ ;2個(gè) 2DJNZ R6,LOOP1 ;2個(gè) 2 因此,上面的延時(shí)程序時(shí)間為【2+R6*(2+2*R7+2)】*機(jī)器周

24、期=9282*12/11.0592=10.072ms。 由以上可知,當(dāng)R6=10、R7=230時(shí),延時(shí)約5ms;當(dāng)R6=20、R7=230時(shí),延時(shí)約10ms,以此為基本的計(jì)時(shí)單位。,【項(xiàng)目實(shí)踐】,,本項(xiàng)目要求延時(shí)0.2秒=200ms,10ms×R5=200ms,則R5=20,設(shè)計(jì)的延時(shí)子程序代碼如下:;******************************************************

25、**********;功能:延時(shí)子程序,延時(shí)0.2秒;****************************************************************DELAY200ms:MOV R5,#20 ;設(shè)置外循環(huán)初始值LOOP1: MOV R6,#20 ;外循環(huán)結(jié)構(gòu)開(kāi)始,設(shè)置內(nèi)循環(huán)初始值LOOP2: MOV R7,#230 ;內(nèi)循

26、環(huán)結(jié)構(gòu)開(kāi)始DJNZ R7,$ ;反復(fù)執(zhí)行本指令,指導(dǎo)R7=0為止DJNZ R6,LOOP2 ;內(nèi)循環(huán)結(jié)構(gòu)判斷條件DJNZ R5,LOOP1 ;外循環(huán)結(jié)構(gòu)判斷條件RET

27、 ;子程序返回,【項(xiàng)目實(shí)踐】,,圖1.9延時(shí)子程序設(shè)計(jì)流程圖,【項(xiàng)目實(shí)踐】,,4.匯編語(yǔ)言源程序;**************************************************************;功能:主程序;**************************************************************ORG 0000HSTART: CLR

28、P0.0 ;當(dāng)P0.0端口輸出低電平時(shí),發(fā)光二極管L1點(diǎn)亮;LCALL DELAY200ms ;調(diào)用延時(shí)子程序,LED燈點(diǎn)亮200msSETB P0.0 ;當(dāng)P0.0端口輸出高電平時(shí),發(fā)光二極管L1熄滅;LCALL DELAY200ms ;調(diào)用延時(shí)子程序,L1熄滅200msLJMP START ;跳轉(zhuǎn)到程序開(kāi)始,L1一亮一滅,循環(huán)往復(fù);***

29、***********************************************************,【項(xiàng)目實(shí)踐】,,;功能:延時(shí)子程序,延時(shí)0.2秒;**************************************************DELAY200ms:MOV R5,#20 ;設(shè)置外層循環(huán)變量初始值 LOOP1: MOV R6,#20 ;

30、外循環(huán)結(jié)構(gòu)開(kāi)始,設(shè)置中層循環(huán)變量初始值LOOP2: MOV R7,#230 ;中層循環(huán)結(jié)構(gòu)開(kāi)始,設(shè)置內(nèi)層循環(huán)變量初始值DJNZ R7, $ ;內(nèi)層循環(huán)結(jié)構(gòu),反復(fù)執(zhí)行本指令,直到R7=0為止DJNZ R6, LOOP2 ;內(nèi)循環(huán)結(jié)構(gòu)判斷條件DJNZ R5, LOOP1 ;外循環(huán)結(jié)構(gòu)判斷條件RET ;子程序返回END,【項(xiàng)目實(shí)踐】,,#include //頭

31、文件sbit L1=P0^0; //定義P0.0void delay02s(void) //延時(shí)0.2秒子程序{ unsigned char i,j,k; for(i=20;i>0;i--) for(j=20;j>0;j--) for(k=230;k>0;k--);},void main(void){ while(1) { L1=0; delay02s();

32、 L1=1; delay02s(); }},5.C語(yǔ)言源程序,【項(xiàng)目實(shí)踐】,,【活動(dòng)四】系統(tǒng)仿真調(diào)試 1.仿真器連接,圖1.10 仿真器的連接,2.仿真器設(shè)置,圖1.11 仿真器設(shè)置菜單,【項(xiàng)目實(shí)踐】,,3.程序編譯調(diào)試 (1) 新建文件 選擇菜單[文件|新建文件],如圖1.12所示。,圖1.12 新建文件,【項(xiàng)目實(shí)踐】,,(2) 輸入程序 在出現(xiàn)的源程序窗口中輸入

33、所需編寫(xiě)的程序,如圖1.13所示。,圖1.13 輸入程序,(3) 保存程序選擇菜單[文件|保存文件],保存時(shí)文件名稱(chēng)必須帶上后綴名“.ASM”,如圖1.14所示。,圖1.14,【項(xiàng)目實(shí)踐】,,(4) 建立新項(xiàng)目選擇菜單[文件|新建項(xiàng)目],如圖1.15所示。,圖1.15,【項(xiàng)目實(shí)踐】,,(5) 加入模塊文件在彈出的窗口中,加入模塊文件,選擇剛才保存的文件YEGANG.ASM,如圖1.16所示。,圖1.16,(6) 加入包含文件加入

34、包含文件,若沒(méi)有包含文件,則可按取消鍵,此處按取消鍵。如圖1.17所示。,圖1.17,【項(xiàng)目實(shí)踐】,,,(7)保存項(xiàng)目在保存項(xiàng)目對(duì)話(huà)框中輸入項(xiàng)目名稱(chēng),注意此處無(wú)須添加后綴名,軟件會(huì)自動(dòng)將后綴名設(shè)成“.PRJ”。按保存鍵將項(xiàng)目存在與你的源程序相同的文件夾下。如圖1.18所示。,(8) 仿真器設(shè)置選擇菜單[設(shè)置|仿真器設(shè)置],在彈出的“仿真器設(shè)置”對(duì)話(huà)框中,按圖1.19設(shè)置,選擇“使用偉福軟件模擬器”。,圖1.18,圖1.19,【項(xiàng)目實(shí)

35、踐】,,,(9) 文件編譯 選擇菜單[項(xiàng)目|編譯],進(jìn)行編譯程序,如圖10所示。 如程序正確,編譯后將產(chǎn)生兩種格式的目標(biāo)文件:二進(jìn)制格式(BIN)目標(biāo)文件和英特爾格式(HEX)目標(biāo)文件,如圖1.20所示。如程序有錯(cuò)誤,則將在信息窗口指出錯(cuò)誤指令所在的源程序、行號(hào)、錯(cuò)誤代碼及錯(cuò)誤原因,則先修改程序,然后再進(jìn)行編譯程序。,圖1.20,【項(xiàng)目實(shí)踐】,,,(10) 程序調(diào)試雙擊項(xiàng)目中YEGANG.ASM文件,在所需設(shè)置

36、斷點(diǎn)的指令上右鍵設(shè)置斷點(diǎn),如圖1.21所示。,圖 1.21,在程序調(diào)試時(shí),可選擇菜單[執(zhí)行|全速執(zhí)行]、[執(zhí)行|跟蹤]、[執(zhí)行|單步]、[執(zhí)行|執(zhí)行到光標(biāo)處] 等命令運(yùn)行調(diào)試程序,如圖1.22所示。,圖1.22 【執(zhí)行】菜單,【項(xiàng)目實(shí)踐】,,,在調(diào)試運(yùn)行的過(guò)程中,通過(guò)【窗口】菜單(見(jiàn)圖1-27),可以選擇打開(kāi)CPU窗口、數(shù)據(jù)窗口等窗口以觀察系統(tǒng)運(yùn)行過(guò)程中有關(guān)寄存器的狀態(tài)、存儲(chǔ)器的內(nèi)容等信息,從而判斷程序執(zhí)行是否正確。 (11) 查看

37、結(jié)果 選擇菜單[窗口|數(shù)據(jù)窗口|DATA],如圖1.23、1.24所示。,圖1.23,圖1.24,【項(xiàng)目實(shí)踐】,,,注意: DATA——片內(nèi)RAM區(qū)域 CODE——ROM區(qū)域 XDATA——片外RAM區(qū)域 PDATA——分頁(yè)式數(shù)據(jù)存儲(chǔ)器,51中無(wú)用 BIT——位尋址區(qū)域【說(shuō)明】由于單片機(jī)系統(tǒng)的仿真調(diào)試步驟基本相同,在后面的項(xiàng)目設(shè)計(jì)中,不再贅述。,【項(xiàng)目實(shí)踐】,

38、,,【第一部分】單片機(jī)的基本知識(shí) 單片機(jī)是在一塊芯片上集成了中央處理部件(CPU)、存儲(chǔ)器(RAM、ROM)、定時(shí)器/計(jì)數(shù)器和各種輸入/輸出(I/O)接口(如并行I/O口、串行I/O口和A/D轉(zhuǎn)換器)等。由于單片機(jī)通常是為實(shí)時(shí)控制應(yīng)用而設(shè)計(jì)制造的,因此,又稱(chēng)為微控制器(MCU)。 一、單片機(jī)的發(fā)展概況 單片機(jī)自問(wèn)世以來(lái),性能不斷提高和完善,其資源不僅能滿(mǎn)足很多應(yīng)用場(chǎng)合的需要,而且具有集成度高、功能強(qiáng)、速度快、

39、體積小、功耗低、使用方便、性能可靠、價(jià)格低廉等特點(diǎn),因此,在工業(yè)控制、智能儀器儀表、數(shù)據(jù)采集和處理、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、汽車(chē)工業(yè)、國(guó)防工業(yè)、高級(jí)計(jì)算器具、家用電器等領(lǐng)域的應(yīng)用日益廣泛,并且正在逐步取代現(xiàn)有的多片微機(jī)應(yīng)用系統(tǒng),單片機(jī)的潛力越來(lái)越被人們所重視。特別是當(dāng)前用CMOS工藝制成的各種單片機(jī),由于功耗低,使用的溫度范圍大、抗干擾能力強(qiáng)、能滿(mǎn)足一些特殊要求的應(yīng)用場(chǎng)合,更加擴(kuò)大了單片機(jī)的應(yīng)用范圍,也進(jìn)一步促進(jìn)了單片機(jī)技術(shù)的發(fā)展。,【相關(guān)

40、知識(shí)】,,,自1976年9月Intel公司推出MCS-48單片機(jī)以來(lái),單片機(jī)就受到了廣大用戶(hù)的歡迎。因此,有關(guān)公司都爭(zhēng)相推出各自的單片機(jī)。如GI公司推出PIC1650系列單片機(jī),Rockwell公司推出了與6502微處理器兼容的R6500系列單片機(jī)。它們都是8位機(jī),片內(nèi)有8位中央處理器(CPU)、并行I/O口、8位定時(shí)器/計(jì)數(shù)器和容量有限的存儲(chǔ)器(RAM、ROM)以及簡(jiǎn)單的中斷功能。 1978年下半年Motorola公司推出M68

41、00系列單片機(jī),Zilog公司相繼推出Z8單片機(jī)系列。1980年Intel公司在MCS-48系列基礎(chǔ)上又推出了高性能的MCS-51系列單片機(jī)。這類(lèi)單片機(jī)均帶有串行I/O口,定時(shí)器/計(jì)數(shù)器為16位,片內(nèi)存儲(chǔ)容量(RAM,ROM)都相應(yīng)增大,并有優(yōu)先級(jí)中斷處理功能,單片機(jī)的功能、尋址范圍都比早期的擴(kuò)大了,它們是當(dāng)時(shí)單片機(jī)應(yīng)用的主流產(chǎn)品。,【相關(guān)知識(shí)】,,,1982年Mostek公司和Intel公司先后又推出了性能更高的16位單片機(jī)MK682

42、00和MCS-96系列,NS公司和NEC公司也分別在原有8位單片機(jī)的基礎(chǔ)上推出了16位單片機(jī)HPC16040和μPD783××系列。1987年Intel公司又宣布了性能比8096高兩倍的CMOS型80C196,1988年推出帶EPROM的87C196單片機(jī)。由于16位單片機(jī)推出的時(shí)間較遲、價(jià)格昂貴、開(kāi)發(fā)設(shè)備有限等多種原因,至今還未得到廣泛應(yīng)用。而8位單片機(jī)已能滿(mǎn)足大部分應(yīng)用的需要,因此,在推出16位單片機(jī)的同時(shí),高性

43、能的新型8位單片機(jī)也不斷問(wèn)世。如:Motorola公司推出了帶A/D和多功能I/O的68MC11系列,Zilog公司推出了帶有DMA功能的Suqer8,Intel公司在1987年也推出了帶DMA和FIFO的UPI-452等。若要更詳細(xì)的了解請(qǐng)上相關(guān)的單片機(jī)網(wǎng)站。 目前國(guó)際市場(chǎng)上8位、16位單片機(jī)系列已有很多,但是,在國(guó)內(nèi)使用較多的系列是Intel公司的產(chǎn)品,其中又以MCS-51系列單片機(jī)應(yīng)用尤為廣泛,二十幾年經(jīng)久不衰,而且

44、還在更進(jìn)一步發(fā)展完善,價(jià)格越來(lái)越低,性能越來(lái)越好。,【相關(guān)知識(shí)】,,,二、單片機(jī)的應(yīng)用 單片機(jī)是在一塊芯片上集成了一臺(tái)微型計(jì)算機(jī)所需的CPU、存儲(chǔ)器、輸入/輸出部件和時(shí)鐘電路等。因此它具有體積小,使用靈活、成本低、易于產(chǎn)品化、抗干擾能力強(qiáng),可在各種惡劣環(huán)境下可靠地工作等特點(diǎn)。特別是它應(yīng)用面廣,控制能力強(qiáng),使它在工業(yè)控制、智能儀表、外設(shè)控制、家用電器、機(jī)器人、軍事裝置等方面得到了廣泛的應(yīng)用。單片機(jī)主要可用于以下幾方面:1.

45、智能儀表單片機(jī)應(yīng)用于各種儀器儀表的更新改造,實(shí)現(xiàn)儀表的數(shù)字化、智能化、多功能化、綜合化及柔性化,并使長(zhǎng)期以來(lái)關(guān)于測(cè)量?jī)x表中的誤差修正和線(xiàn)性化處理等難題迎刃而解。由單片機(jī)構(gòu)成的智能儀表,集測(cè)量、處理、控制功能于一體,測(cè)量速度和測(cè)量精度得到提高,控制功能得到增強(qiáng),簡(jiǎn)化了儀器儀表的結(jié)構(gòu),利于使用、維修和改進(jìn)。,【相關(guān)知識(shí)】,,,2.工業(yè)實(shí)時(shí)控制 單片機(jī)應(yīng)用于各種工業(yè)實(shí)時(shí)控制中,如爐溫控制系統(tǒng)、火災(zāi)報(bào)警系統(tǒng)、化學(xué)成分的測(cè)量和控制等

46、,單片機(jī)技術(shù)與測(cè)量技術(shù)、自動(dòng)控制技術(shù)相結(jié)合,利用單片機(jī)作為控制器,發(fā)揮其數(shù)據(jù)處理和實(shí)時(shí)控制功能,提高系統(tǒng)的生產(chǎn)效率和產(chǎn)品的自動(dòng)化程度。采用單片機(jī)作為機(jī)床數(shù)控系統(tǒng)的控制機(jī),可以提高機(jī)床數(shù)控系統(tǒng)的可靠性、增強(qiáng)功能、降低控制機(jī)成本,并有可能改變數(shù)控控制機(jī)的結(jié)構(gòu)模式。3.機(jī)電一體化 單片機(jī)促進(jìn)了機(jī)電一體化的發(fā)展,利用單片機(jī)改造傳統(tǒng)的機(jī)電產(chǎn)品,能夠使產(chǎn)品體積減小、功能增強(qiáng)、結(jié)構(gòu)簡(jiǎn)化,與傳統(tǒng)的機(jī)械產(chǎn)品相結(jié)合,構(gòu)成了自動(dòng)化、智能化的機(jī)電

47、一體化新產(chǎn)品。例如,在電傳打字機(jī)的設(shè)計(jì)中,由于采用單片機(jī),從而取代了近千個(gè)機(jī)械部件。,【相關(guān)知識(shí)】,,,4.通訊接口 在數(shù)據(jù)采集系統(tǒng)中,用單片機(jī)對(duì)模數(shù)轉(zhuǎn)換接口進(jìn)行控制,不僅可以提高采集速度,而且還可以對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,如數(shù)字濾波、線(xiàn)性化處理及誤差修正等,在通信接口中,采用單片機(jī),可以對(duì)數(shù)據(jù)進(jìn)行編碼、解碼、分配管理以及接受/發(fā)送等工作。在一般計(jì)算機(jī)測(cè)控系統(tǒng)中,除打印機(jī)、鍵盤(pán)、磁盤(pán)驅(qū)動(dòng)器、CRT等通用外部設(shè)備接口外,還有許多外

48、部通信、采集、多路分配管理以及驅(qū)動(dòng)控制等接口,如果完全由主機(jī)進(jìn)行管理,勢(shì)必造成主機(jī)負(fù)擔(dān)過(guò)重,降低系統(tǒng)的運(yùn)行速度,降低接口的管理水平。利用單片機(jī)進(jìn)行通訊接口的控制與管理,能夠提高系統(tǒng)的運(yùn)行速度,減少接口的通信密度,提高接口的管理水平。單片機(jī)在計(jì)算機(jī)網(wǎng)絡(luò)和數(shù)字通信中具有非常廣闊的應(yīng)用前景。,【相關(guān)知識(shí)】,,,5.家用電器 目前,國(guó)內(nèi)外各種家用電器已普通采用MCU代替?zhèn)鹘y(tǒng)的控制電路,使用的MCU大多是小型廉價(jià)型的單片機(jī)。在這些單片

49、機(jī)中集成了許多外設(shè)的接口,如鍵盤(pán)、顯示器接口及A/D等功能單元,而不用并行擴(kuò)展總線(xiàn),故常制作成為單片機(jī)應(yīng)用系統(tǒng)。例如洗衣機(jī)、電冰箱、微波爐、電飯鍋、電視機(jī)及其他視頻音像設(shè)備的控制器。目前的主要發(fā)展趨勢(shì)是模糊控制化,以形成眾多的模糊控制家電產(chǎn)品。 此外,單片機(jī)成功應(yīng)用于玩具、游戲機(jī)、充電器、IC卡、電子鎖、電子秤、步進(jìn)電機(jī)、電子詞典、照相機(jī)、電風(fēng)扇和防盜報(bào)警等日常生活用品中;在汽車(chē)的點(diǎn)火控制、變速控制、排氣控制、節(jié)能控

50、制、冷氣控制以及防滑剎車(chē)中也有很多應(yīng)用。總之,單片機(jī)技術(shù)集計(jì)算機(jī)技術(shù)、電子技術(shù)、電氣技術(shù)、微電子技術(shù)于一身,作為一種智能化的現(xiàn)代開(kāi)發(fā)工具,從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法,隨著現(xiàn)代電子技術(shù)的普及與發(fā)展,其應(yīng)用領(lǐng)域無(wú)所不至,無(wú)論是工業(yè)部門(mén)、民用部門(mén)乃至事業(yè)部門(mén),都有其廣泛應(yīng)用。,【相關(guān)知識(shí)】,,,【第二部分】單片機(jī)內(nèi)部結(jié)構(gòu)揭秘 MCS-51單片機(jī)是在一塊芯片中集成了CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器和多種

51、功能的I/O線(xiàn)等一臺(tái)計(jì)算機(jī)所需要的基本功能部件,各功能部件由內(nèi)部總線(xiàn)聯(lián)接在一起。MCS-51單片機(jī)內(nèi)包含下列幾個(gè)部件,其基本結(jié)構(gòu)如圖1-2所示,【相關(guān)知識(shí)】,,,頻率基準(zhǔn)源,計(jì)數(shù)器,中斷,控制,并行 I/O 口,串行輸入,串行輸出,圖1.25 單片機(jī)基本結(jié)構(gòu)框圖 由圖可見(jiàn),51單片機(jī)主要由以下幾部分組成:,【相關(guān)知識(shí)】,,,CPU系統(tǒng):◆ 8位CPU,含布爾處理器;◆ 一個(gè)片內(nèi)振蕩器及時(shí)鐘電路;◆ 總線(xiàn)邏輯控制

52、;存儲(chǔ)器系統(tǒng):◆ 4K字節(jié)程序存儲(chǔ)器(ROM/EPROM/FLASH,可外擴(kuò)至64KB);◆ 128字節(jié)數(shù)據(jù)存儲(chǔ)器(RAM,可外擴(kuò)至64KB);◆ 特殊功能寄存器SFR;并行I/O口系統(tǒng):◆4個(gè)8位并行I/O端口線(xiàn)(32條可編程的I/O);其他功能單元:◆ 2個(gè)16位定時(shí)器/計(jì)數(shù)器;◆ 1個(gè)可編程全雙工異步串行口;◆ 中斷系統(tǒng)(具有5個(gè)中斷源、2個(gè)優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)),【相關(guān)知識(shí)】,,MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)由微處

53、理器(含運(yùn)算器和控制器)、存儲(chǔ)器、I/O口以及特殊功能寄存器SFR等構(gòu)成,芯片的內(nèi)部邏輯結(jié)構(gòu)如圖1.26所示。,,圖1.26芯片的內(nèi)部邏輯結(jié)構(gòu),【相關(guān)知識(shí)】,,,一、CPU系統(tǒng) CPU系統(tǒng)主要包含以下部件: ◆ 8位CPU,含布爾處理器; ◆ 一個(gè)片內(nèi)振蕩器及時(shí)鐘電路; ◆ 總線(xiàn)邏輯控制;(一) 中央處理器(CPU) 中央處理器CPU是單片機(jī)的核心

54、部件,由運(yùn)算器和控制器組成,此外在CPU的運(yùn)算器中還有一個(gè)專(zhuān)門(mén)進(jìn)行位數(shù)據(jù)操作的位處理器。 8位的MCS-51單片機(jī)的CPU內(nèi)部有數(shù)術(shù)邏輯單元ALU(Arithmetic Logic Unit)、累加器A(8位)、寄存器B(8位)、程序狀態(tài)字PSW(8位)、程序計(jì)數(shù)器PC(有時(shí)也稱(chēng)為指令指針,即IP,16位)、地址寄存器AR(16位)、數(shù)據(jù)寄存器DR(8位)、指令寄存器IR(8位)、指令譯碼器ID、控制器等部件組成。MCS—

55、51單片機(jī)CPU內(nèi)部結(jié)構(gòu)見(jiàn)圖1.27所示。,【相關(guān)知識(shí)】,,,圖1.27 MCS—51單片機(jī)CPU內(nèi)部結(jié)構(gòu)圖,【相關(guān)知識(shí)】,,,1.運(yùn)算器 運(yùn)算器的功能主要進(jìn)行算術(shù)和邏輯運(yùn)算,它由算術(shù)邏輯單元ALU、累加器ACC、B寄存器、PSW狀態(tài)字寄存器和兩個(gè)暫存器組成。ALU是運(yùn)算器的核心部件,基本的算術(shù)邏輯運(yùn)算都在其中進(jìn)行。包括加、減、乘、除、增量、十進(jìn)制調(diào)整和比較等算術(shù)運(yùn)算;與、或、異或等邏輯運(yùn)算;左移位、右移位和半字節(jié)交換

56、等操作;操作數(shù)暫存于累加器和相應(yīng)寄存器,操作結(jié)果存于累加器,操作結(jié)果的狀態(tài)保存于狀態(tài)寄存器(PSW)中。 由于ALU內(nèi)部沒(méi)有寄存器,參加運(yùn)算的操作數(shù),必須放在累加器A中。累加器A也用于存放運(yùn)算結(jié)果。 例如:執(zhí)行指令 ADD A,B 執(zhí)行這條指令時(shí),累加器A中的內(nèi)容通過(guò)輸入口In_1輸入ALU,寄存器B通過(guò)內(nèi)部數(shù)據(jù)總線(xiàn)經(jīng)輸入口In_2輸入ALU,A+B的結(jié)果通過(guò)ALU的輸出口Out內(nèi)部數(shù)據(jù)總線(xiàn),

57、送回到累加器A。,【相關(guān)知識(shí)】,,,位處理器是單片機(jī)中運(yùn)算器的重要組成部分(圖中未畫(huà)出),又稱(chēng)布爾處理器,專(zhuān)門(mén)用來(lái)處理位操作,給單片機(jī)實(shí)現(xiàn)控制功能提供了極大的方便。在硬件上,位處理器以狀態(tài)寄存器中的進(jìn)位標(biāo)志位CY為累加器,有以位為單位的RAM和I/O空間,具有相應(yīng)的指令系統(tǒng),可提供17條位操作指令以實(shí)現(xiàn)置位、復(fù)位、取反,等于0轉(zhuǎn)、等于l轉(zhuǎn)及位與位之間的傳送,邏輯與、或等操作,操作結(jié)果送回進(jìn)位標(biāo)志位CY。2.控制器 控制

58、器的功能是控制單片機(jī)各部件協(xié)調(diào)動(dòng)作。它由程序計(jì)數(shù)器PC、PC加1寄存器、指令寄存器、指令譯碼器、定時(shí)與控制電路組成。程序計(jì)數(shù)器PC(有時(shí)也稱(chēng)為指令指針,即IP,16位)、地址寄存器AR(16位)、數(shù)據(jù)寄存器DR(8位)、指令寄存器IR(8位)、指令譯碼器ID、控制器等部件組成。其工作過(guò)程就是執(zhí)行程序的過(guò)程,而程序的執(zhí)行是在控制器的控制下進(jìn)行的。首先,從片內(nèi)外程序存儲(chǔ)器ROM中取出指令,送指令寄存器。,【相關(guān)知識(shí)】,,,然后通過(guò)指令寄

59、存器再送指令譯碼器,將指令代碼譯成一種或幾種電平信號(hào)。與系統(tǒng)時(shí)鐘一起,送時(shí)序邏輯電路進(jìn)行綜合后產(chǎn)生各種按一定時(shí)間節(jié)拍變化的電平或脈沖控制信號(hào),用以控制系統(tǒng)各部件進(jìn)行相應(yīng)的操作,完成指令的執(zhí)行。執(zhí)行程序就是重復(fù)這一過(guò)程。(1) 程序計(jì)數(shù)器PC(Program Counter) 程序計(jì)數(shù)器PC用來(lái)存放即將要執(zhí)行的指令地址,共16位,可對(duì)64K程序存儲(chǔ)器直接尋址。執(zhí)行指令時(shí),PC內(nèi)容的低8位經(jīng)P0口輸出,高8位經(jīng)P2口輸出。也

60、就是說(shuō),程序執(zhí)行到什么地方,程序計(jì)數(shù)器PC就指到哪里,它始終是跟躥著程序的執(zhí)行。我們知道,用戶(hù)程序是存放在內(nèi)部的ROM中的,我們要執(zhí)行程序就要從ROM中一個(gè)個(gè)字節(jié)的讀出來(lái),然后傳送到CPU中去執(zhí)行,那么ROM具體執(zhí)行到哪一條呢?這就需要我們的程序計(jì)數(shù)器PC來(lái)指示。 程序計(jì)數(shù)器PC具有自動(dòng)加1的功能,即從存儲(chǔ)器中讀出一個(gè)字節(jié)的指令碼后,PC自動(dòng)加1(指向下一個(gè)存儲(chǔ)單元),以實(shí)現(xiàn)程序的順序執(zhí)行。PC沒(méi)有地址,是不可尋址的,因

61、此,用戶(hù)無(wú)法對(duì)它進(jìn)行讀寫(xiě),但在執(zhí)行轉(zhuǎn)移、調(diào)用、返回等指令時(shí),能由硬件自動(dòng)改變其內(nèi)容,以改變程序的執(zhí)行順序。,【相關(guān)知識(shí)】,,,(2) 指令寄存器IR 指令寄存器的作用就是用來(lái)存放即將執(zhí)行的指令代碼。 在這里我們先簡(jiǎn)單的了解下CPU執(zhí)行指令的過(guò)程,首先由程序存儲(chǔ)器(ROM)中讀取指令代碼送入到指令寄存器IR,經(jīng)指令譯碼器ID譯碼后再由定時(shí)與控制電路發(fā)出相應(yīng)的控制信號(hào),從而完成指令的功能。關(guān)于指令在單片機(jī)內(nèi)部

62、的執(zhí)行過(guò)程,請(qǐng)參考相關(guān)書(shū)籍。(3) 指令譯碼器ID 用于對(duì)送入指令寄存器中的指令進(jìn)行譯碼,所謂譯碼就是把指令轉(zhuǎn)變成執(zhí)行此指令所需要的電信號(hào)。當(dāng)指令送入譯碼器后,由譯碼器對(duì)該指令進(jìn)行譯碼,根據(jù)譯碼器輸出的信號(hào),CPU控制電路定時(shí)地產(chǎn)生執(zhí)行該指令所需的各種控制信號(hào),使單片機(jī)正確的執(zhí)行程序所需要的各種操作。(4) 地址寄存器AR 地址寄存器AR的作用是用來(lái)存放將要尋址的外部存儲(chǔ)器單元的地址信息,指令碼所在存儲(chǔ)單

63、元的地址編碼,由程序計(jì)數(shù)器PC產(chǎn)生,而指令中操作數(shù)所在的存儲(chǔ)單元地址碼,由指令的操作數(shù)給定。從上圖中我們可以看到,地址寄存器AR通過(guò)地址總線(xiàn)AB與外部存儲(chǔ)器相連。,【相關(guān)知識(shí)】,,,(5) 數(shù)據(jù)寄存器DR 用于存放寫(xiě)入外部存儲(chǔ)器或I/O端口的數(shù)據(jù)信息。可見(jiàn),數(shù)據(jù)寄存器對(duì)輸出數(shù)據(jù)具有鎖存功能。數(shù)據(jù)寄存器與外部數(shù)據(jù)總線(xiàn)DB直接相連。(6) 程序狀態(tài)字寄存器PSW 用于記錄運(yùn)算過(guò)程中的狀態(tài),如是否溢出。進(jìn)位等。

64、 例如,累加器A的內(nèi)容為83H,執(zhí)行指令: ADD A,#8AH;累加器A與立即數(shù)8AH相加,并把結(jié)果存放在A中。 指令執(zhí)行后,將產(chǎn)生和的結(jié)果為[1]0DH,而累加器A只有8位,只能存放低8位,即0DH,元法存放結(jié)果中的最高位B8。為些,在CPU內(nèi)設(shè)置一個(gè)進(jìn)位標(biāo)志位C,當(dāng)執(zhí)行加法運(yùn)算出現(xiàn)進(jìn)位時(shí),進(jìn)位標(biāo)志位C為1。(7) 時(shí)序部件 由時(shí)鐘電路和脈沖分配器組成,用于產(chǎn)生微操

65、作控制部件所需的定時(shí)脈沖信號(hào)。 (二) 時(shí)鐘電路 時(shí)鐘電路用于產(chǎn)生單片機(jī)工作所需要的時(shí)鐘信號(hào);而CPU的時(shí)序是指控制器在統(tǒng)一的時(shí)鐘信號(hào)下,按照指令功能發(fā)出在時(shí)間上有一定次序的信號(hào),控制和啟動(dòng)相關(guān)邏輯電路完成指令操作。,【相關(guān)知識(shí)】,,,1.時(shí)鐘電路 8051型單片機(jī)芯片內(nèi)有時(shí)鐘電路,但石英晶體和微調(diào)電容需要外接。時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列,作為單片機(jī)工作的時(shí)間基準(zhǔn),典型的晶體振蕩頻率為12MHz。

66、 MCS-51的時(shí)鐘信號(hào)可以由兩種方式產(chǎn)生,一種是內(nèi)部方式,利用芯片內(nèi)部的振蕩電路;另一種方式為外部方式,由于MCS-51有HMOS型與CHMOS型,它們的時(shí)鐘電路有一定的區(qū)別,這里僅介紹通常所用的HMOS型的時(shí)鐘電路。 ① 內(nèi)部時(shí)鐘方式 MCS-51內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外晶體或陶

67、瓷諧振器一起構(gòu)成一個(gè)自激振蕩器。雖然有內(nèi)部振蕩電路,但要形成時(shí)鐘,必須外接元件,圖1-10a是單片機(jī)內(nèi)部時(shí)鐘方式的電路。外接晶體以及電容Cl和C2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中,外接電容的大小會(huì)影響振蕩器頻率的高低、振蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性.,【相關(guān)知識(shí)】,,,晶體可在 1.2M~12MHz之間任選,電容Cl和C2的一般在20pF~100pF之間選擇。若頻率穩(wěn)定性要求不高,可選用較為廉價(jià)的陶瓷諧振器,Cl和C

68、2的典型值約為47pF。在設(shè)計(jì)印刷電路板時(shí),應(yīng)采用溫度穩(wěn)定性能好的高頻電容,晶體或陶瓷振蕩器和電容應(yīng)盡可能與單片機(jī)芯片靠近安裝,以減少寄生電容,提高系統(tǒng)穩(wěn)定性和可靠性。,a),b),圖1.28 MCS-51時(shí)鐘電路 a)內(nèi)部時(shí)鐘方式 b)外部時(shí)鐘方式電源,【相關(guān)知識(shí)】,,,② 外部時(shí)鐘方式 外部時(shí)鐘方式是利用外部振蕩器信號(hào)源即時(shí)鐘源直接接入XTAL1或XTAL2。通常XTAL1接地,XTAL2接外部

69、時(shí)鐘,電路見(jiàn)圖1-10b。由于XTAL2的邏輯電平不是TTL的,故建議外接一個(gè)4.7K~10K的上拉電阻。2.CPU時(shí)序 單片機(jī)的時(shí)序是指CPU在執(zhí)行指令時(shí)所需控制信號(hào)的時(shí)間順序。時(shí)序信號(hào)是以時(shí)鐘脈沖為基準(zhǔn)產(chǎn)生的,分為兩大類(lèi):一類(lèi)用于芯片內(nèi)部各功能部件的控制,用戶(hù)無(wú)須了解,這里不做詳細(xì)介紹;另一類(lèi)用于通過(guò)單片機(jī)的引腳進(jìn)行片外存儲(chǔ)器或擴(kuò)展的I/O端口的控制,該部分時(shí)序信號(hào)對(duì)于分析、設(shè)計(jì)硬件電路至關(guān)重要。 ①

溫馨提示

  • 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論