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