任何一款mcu,其基本原理和功能都是大同小異,所不同的只是其外圍功能模塊的配置及數(shù)量、指令系統(tǒng)等。對于指令系統(tǒng),雖然形式上看似千差萬別,但實際上只是符號的不同,其所代表的含義、所要完成的功能和尋址方式基本上是類似的。因此,對于任何一款mcu,主要應(yīng)從如下的幾個方面來理解和掌握:* mcu的特點:要了解一款mcu,首先需要知道就是其rom空間、ram空間、io口數(shù)量、定時器數(shù)量和定時方式、所提供的外圍功能模塊(peripheral circuit)、中斷源、工作電壓及功耗等等。* 了解這些mcu features后,接下來第一步就是將所選mcu的功能與實際項目開發(fā)的要求的功能進(jìn)行對比,明確那些資源是目前所需要的,那些是本項目所用不到的。對于項目中需要用到的而所選mcu不提供的功能,則需要認(rèn)真理解mcu的相關(guān)資料,以求用間接的方法來實現(xiàn),例如,所開發(fā)的項目需要與pc機(jī)com口進(jìn)行通訊,而所選的mcu不提供uart口,則可以考慮用外部中斷的方式來實現(xiàn);* 對于項目開發(fā)需要用到的資源,則需要對其manual進(jìn)行認(rèn)真的理解和閱讀,而對于不需要的功能模塊則可以忽略或瀏覽即可。對于mcu學(xué)習(xí)來講,應(yīng)用才是關(guān)鍵,也是最主要的目的。* 明確了mcu的相關(guān)功能后,接下來就可以開始編程了。對于初學(xué)者或初次使用此款mcu的設(shè)計者來說,可能會遇到很多對mcu的功能描述不明確的地方,對于此類問題,可以通過兩種方法來解決,一種是編寫特別的驗證程序來理解資料所述的功能;另一種則可以暫時忽略,程序設(shè)計中則按照自己目前的理解來編寫,留到調(diào)試時去修改和完善。前一種方法適用于時間較寬松的項目和初學(xué)者,而后一種方法則適合于具有一定mcu開發(fā)經(jīng)驗的人或項目進(jìn)度較緊迫的情況;* 指令系統(tǒng)千萬不要特別花時間去理解。指令系統(tǒng)只是一種邏輯描述的符號,只有在編程時根據(jù)自己的邏輯和程序的邏輯要求來查看相關(guān)的指令即可,而且隨著編程的進(jìn)行,對指令系統(tǒng)也會越來越熟練,甚至可以不自覺地記憶下來;mcu的基本功能:對于絕大多數(shù)mcu,下列功能是最普遍也是最基本的,針對不同的mcu,其描述的方式可能會有區(qū)別,但本質(zhì)上是基本相同的:* timer(定時器):timer的種類雖然比較多,但可歸納為兩大類:一類是固定時間間隔的timer,即其定時的時間是由系統(tǒng)設(shè)定的,用戶程序不可控制,系統(tǒng)只提供幾種固定的時間間隔給用戶程序進(jìn)行選擇,如32hz,16hz,8hz等,此類timer在4位mcu中比較常見,因此可以用來實現(xiàn)時鐘、計時等相關(guān)的功能;另一類則是programmable timer(可編程定時器),顧名思義,該類timer的定時時間