<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 為什么要學(xué)習(xí)單片機(jī)?有多重要?

          為什么要學(xué)習(xí)單片機(jī)?有多重要?

          作者: 時(shí)間:2018-10-22 來源:網(wǎng)絡(luò) 收藏

            是大專學(xué)校電類專業(yè)的一門普通課,有些學(xué)校甚至把它列為選修課,在眾多課程中,沒有顯出它有多么重要。為什么要學(xué)習(xí)它呢?電類專業(yè)有很多專業(yè)課,這些專業(yè)課非常重要,是各個(gè)專業(yè)存在的必需課程,學(xué)完這些課程可以使學(xué)習(xí)者成為大學(xué)者的繼承人,市場對學(xué)者繼承人的需求太少,大量需要的是產(chǎn)品的研發(fā)者,研發(fā)產(chǎn)品是需要干實(shí)際事情的,需要研發(fā)工具,而課程就是學(xué)習(xí)研發(fā)工具使用的課程。學(xué)習(xí)課程與理論課程不一樣,不能只做作業(yè),而是要實(shí)際使用單片機(jī),下面就如何準(zhǔn)備學(xué)習(xí)單片機(jī)的條件和學(xué)習(xí)步驟簡述一些不成熟的想法。

          本文引用地址:http://www.ex-cimer.com/article/201810/393172.htm


            1.硬件

            (1)編程硬件

            所謂編程就是把單片機(jī)運(yùn)行的程序燒寫到單片機(jī)的存儲器中,目前大部分單片機(jī)都是使用FLASH存儲器,這些存儲器的寫入次數(shù)一般是1000次左右,也有1萬次或是10萬次的。編程也叫程序下載或是燒寫。

            (2)實(shí)時(shí)仿真硬件

            實(shí)時(shí)仿真是使用PC機(jī),用軟件監(jiān)視在單片機(jī)中實(shí)際運(yùn)行的程序,也就是當(dāng)程序下載到單片機(jī)中后,實(shí)時(shí)運(yùn)行程序,在程序中設(shè)置斷點(diǎn),通過仿真接口,監(jiān)視和控制程序的運(yùn)行。這個(gè)過程其實(shí)就是調(diào)試程序(實(shí)際驗(yàn)證程序的正確性)。編程器和仿真器可以是一個(gè)裝置,也可以是各自獨(dú)立的裝置。

            2.軟件

            單片機(jī)開發(fā)需要單片機(jī)開發(fā)軟件的支持,軟件分為:

            (1)編程軟件

            該軟件支持編程器工作,幫助編程器把程序?qū)懭雴纹瑱C(jī)。

            (2)實(shí)時(shí)仿真軟件

            該軟件可以在仿真接口的支持下,調(diào)試單片機(jī)程序。

            (3)虛擬仿真

            該類軟件支持在沒有單片機(jī)硬件情況下的單片機(jī)程序調(diào)試。

            (4)支持C語言

            所有的單片機(jī)開發(fā)軟件都支持匯編語言編程,但是目前人們更喜歡C語言編程,主要是C語言功能強(qiáng)大,可以縮短開發(fā)時(shí)間。目前就有支持上述功能的軟件,例如51系列的Keil51、PIC系列的MPLAB,系列的IAR等。

            3.學(xué)習(xí)單片機(jī)的手段

            按照經(jīng)濟(jì)實(shí)力,學(xué)習(xí)單片機(jī)的手段分為如下幾種:

            (1)買本單片機(jī)書,仔細(xì)研究。

            (2)網(wǎng)上下載一個(gè)具有仿真功能的單片機(jī)開發(fā)軟件(最好支持C語言),在計(jì)算機(jī)上對單片機(jī)虛擬仿真。

            (3)購編程器(支持編程器的下載軟件有編程器商提供)和實(shí)驗(yàn)板(又稱為演示板或是目標(biāo)板),網(wǎng)上下載開發(fā)軟件。在開發(fā)軟件的支持下對單片機(jī)虛擬仿真,確認(rèn)單片機(jī)程序正確后,用編程器將程序下載到單片機(jī)中,觀察程序的實(shí)際運(yùn)行。

            (4)購仿真接口和實(shí)驗(yàn)板,在網(wǎng)上下載單片機(jī)開發(fā)軟件(支持編程、虛擬仿真、實(shí)時(shí)仿真和C語言),在虛擬仿真完成后,將程序下載到單片機(jī)中實(shí)時(shí)仿真。對于個(gè)人學(xué)習(xí)單片機(jī),具有上述(4)的條件已經(jīng)是很好了。

            4.學(xué)習(xí)單片機(jī)過程中的困擾

            單片機(jī)種類很多,各個(gè)公司提供的單片機(jī)、開發(fā)硬件和軟件功能、價(jià)格都不一樣,對于初學(xué)單片機(jī)有很多困惑。

            (1)單片機(jī)問題

            目前單片機(jī)很多,學(xué)哪一個(gè),其實(shí)學(xué)哪一個(gè)都可以,單片機(jī)雖然型號不同,但是芯片內(nèi)部的資源種類都差不多,而且這些資源的使用方法也大同小異,可以說學(xué)會一種,其他種將融會貫通。究竟學(xué)哪一種,主要看具備的條件。51系列是老型號,書多、資料多、軟件開放和硬件支持還可以,特別是Atmel公司的產(chǎn)品AT89系列,很多人就是學(xué)習(xí)這款單片機(jī)發(fā)家致富的。AVR90系列,該系列也是Atmel公司的產(chǎn)品,指令少,學(xué)起來容易,芯片種類多,適合各種場合和需要,根據(jù)有關(guān)資料顯示,目前該單片機(jī)芯片的使用數(shù)量很大,大有超過51系列芯片數(shù)量的趨勢。PIC系列,該系列是Microchip公司的產(chǎn)品,種類多,芯片抗干擾能力強(qiáng),使用的人很多,特別是PIC16F877芯片,由于適合學(xué)校使用,在該公司大學(xué)計(jì)劃的支持下,免費(fèi)贈送開發(fā)器和實(shí)驗(yàn)板,因而使用該芯片的人群大增,也是可以和51系列單片機(jī)抗衡的單片機(jī)。系列,是TI公司的產(chǎn)品,最近幾年才被杭州利爾達(dá)公司引進(jìn),是16位、超低功耗單片機(jī),特別適合手持設(shè)備等低功耗設(shè)備的開發(fā),實(shí)際上,由于該系列引腳多,內(nèi)部資源多(具有硬件乘法器),所以在很多產(chǎn)品開發(fā)上都有用武之地,據(jù)有關(guān)人士預(yù)測,該系列是最具前途的單片機(jī)。還有很多單片機(jī)型號,由于不太了解,不敢妄加評論,但可以想象,一定是不錯的單片機(jī),否則就不會在競爭激烈的市場中存在。

            (2)開發(fā)軟件問題

            不同種類的單片機(jī)都配套有相應(yīng)的開發(fā)軟件,這些軟件很多都是專業(yè)軟件公司開發(fā)的。51系列,目前開發(fā)軟件是Keil51,該軟件支持C語言,但是在網(wǎng)上下載的版本,只支持2K程序。PIC系列的開發(fā)軟件是MPLAB,在HI-TECH公司C語言支持軟件PICC的支持下,該軟件很好用,但是PICC是需要激活密碼才能運(yùn)行的。系列的開發(fā)軟件是IAR,該軟件有開放1個(gè)月的全功能限期版本和C語言4k支持版本,可見該系列的軟件開放是最好的。哪種單片機(jī)的開發(fā)軟件開放的好,就會引起人們對該單片機(jī)的興趣,單片機(jī)提供商也深諳此道,所以網(wǎng)上經(jīng)??梢哉业礁_放版本的軟件。

            (3)仿真接口

            仿真接口,又稱為仿真器,老式單片機(jī)由于沒有FLASH存儲器,所以仿真編程難度很大,新型號的單片機(jī),幾乎都有FLASH存儲器的芯片,這樣的芯片都支持在電路編程(在系統(tǒng)編程),所謂在電路編程,就是用3~5根線就可以將程序?qū)懭雴纹瑱C(jī),并能夠?qū)纹瑱C(jī)內(nèi)的程序運(yùn)行情況、寄存器內(nèi)容等信息傳輸?shù)絇C機(jī)上。這種編程方法需要在單片機(jī)與PC機(jī)之間安裝一個(gè)仿真接口,該接口一般需要購買。AT89S51、PIC16F877就是具有這種能力的單片機(jī)。

            但是,對于初學(xué)者來說,支持該單片機(jī)編程和仿真的接口需要購買,而且簡單接口在仿真時(shí)會占用芯片資源,給單片機(jī)系統(tǒng)開發(fā)帶來不便。MSP430系列單片機(jī)也是具有這種能力的單片機(jī),但是該單片機(jī)采用標(biāo)準(zhǔn)JTAG接口,JTAG是一種標(biāo)準(zhǔn)(IEEE1149.1),是為測試芯片而制定的,目的是用TCK、TDI、TDO和TMS四個(gè)信號來測試芯片的內(nèi)部狀態(tài),為什么測試芯片還需要專門制定標(biāo)準(zhǔn)呢?這是因?yàn)閺?fù)雜芯片引腳太多,特別是還有些芯片一旦安裝到多層電路板上就無法看到引腳,更不要說測量了,這時(shí)就可以在計(jì)算機(jī)軟件的支持下通過JTAG接口,對芯片進(jìn)行測量,如果各個(gè)公司的芯片都符合該標(biāo)準(zhǔn),就可以將各個(gè)芯片的JTAG口串聯(lián)起來(外國人稱為菊花鏈),無論在電路板上有多少芯片,只需4個(gè)引腳,就可以測量電路板上的所有芯片。既然可以測量芯片,當(dāng)然可以將數(shù)據(jù)寫入芯片,在可編程邏輯器件的數(shù)據(jù)下載中也使用JTAG接口,出現(xiàn)了在系統(tǒng)編程(ISP)的概念。

            也就是,即使可編程邏輯器件安裝到了系統(tǒng)中,也可以對其內(nèi)部電路進(jìn)行修改,JTAG技術(shù)和EDA軟件的進(jìn)步,使可編程邏輯器件的開發(fā)與使用得到快速發(fā)展。單片機(jī)也是在向這個(gè)方向努力,前幾年出現(xiàn)在市場上的C8051單片機(jī)就是使用JTAG接口的單片機(jī),不幸的是該單片機(jī)JTAG接口裝置和開發(fā)軟件很貴,阻礙人們使用該單片機(jī)。

            使用JTAG口,必須在計(jì)算機(jī)與芯片JTAG接口之間連接一個(gè)接口裝置,該裝置隨芯片而異,實(shí)際上JTAG接口裝置都是很簡單的(就是一個(gè)緩沖器),但是由于各個(gè)公司的早期產(chǎn)品不完全支持JTAG接口,而JTAG接口裝置又必須兼容這些早期產(chǎn)品,就使得JTAG接口裝置變的復(fù)雜了。

            目前,TI公司的MSP430系列芯片就是支持JTAG接口的單片機(jī),該公司稱該JTAG接口裝置為FET,通過FET就可以對該系列單片機(jī)編程與仿真。特別是該接口非常簡單,適合自制,網(wǎng)上很多該單片機(jī)愛好者就是使用自制的FET開發(fā)該系列的單片機(jī),非常成功。

            (4)實(shí)驗(yàn)板

            實(shí)驗(yàn)板是學(xué)習(xí)單片機(jī)所必須的,實(shí)驗(yàn)板又稱為演示板、目標(biāo)板,其實(shí)就是具有單片機(jī)的電路板,實(shí)驗(yàn)板可以購買,各個(gè)單片機(jī)的供應(yīng)商都提供多種多樣的實(shí)驗(yàn)板。實(shí)驗(yàn)板也可以根據(jù)需要自制,自制實(shí)驗(yàn)板是具有挑戰(zhàn)的,需要學(xué)會畫電路板圖。

            (5)選擇單片機(jī)類型

            軟件:支持C語言,免費(fèi)下載。

            仿真器:用于仿真編程的JTAG接口裝置可以自制(很重要,可以節(jié)省開支)。

            單片機(jī):型號多、功能強(qiáng)、資源多、功耗低,程序存儲器容量大。

            資料:書多、資料多,特別是網(wǎng)上資料多。

            滿足上述條件的單片機(jī)只有MSP430系列。



          關(guān)鍵詞: 單片機(jī) MSP430

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();