任何一款MCU,其根本原理和功用都是迥然不同,所不同的仅仅其外围功用模块的装备及数量、指令体系等。关于指令体系,尽管方式上看似千差万别,但实践上仅仅符号的不同,其所代表的意义、所要完结的功用和寻址办法根本上是相似的。因而,关于任何一款MCU,首要应从如下的几个方面来了解和把握:
MCU的特色
要了解一款MCU,首要需求知道便是其ROM空间、RAM空间、IO口数量、守时器数量和守时办法、所供给的外围功用模块(Peripheral Circuit)、中止源、作业电压及功耗等等。
了解这些MCU Features后,接下来第一步便是将所选MCU的功用与实践项目开发的要求的功用进行比照,清晰那些资源是现在所需求的,那些是本项目所用不到的。关于项目中需求用到的而所选MCU不供给的功用,则需求仔细了解MCU的相关材料,以求用直接的办法来完成,例如,所开发的项目需求与PC机COM口进行通讯,而所选的MCU不供给UART口,则能够考虑用外部中止的办法来完成;
关于项目开发需求用到的资源,则需求对其Manua*进行仔细的了解和阅览,而关于不需求的功用模块则能够疏忽或阅读即可。关于MCU学习来讲,运用才是要害,也是最首要的意图。
清晰了MCU的相关功用后,接下来就能够开端编程了。关于初学者或初度运用此款MCU的规划者来说,或许会遇到许多对MCU的功用描绘不清晰的当地,关于此类问题,能够经过两种办法来处理,一种是编写特别的验证程序来了解材料所述的功用;另一种则能够暂时疏忽,程序规划中则按照自己现在的了解来编写,留到调试时去修正和完善。前一种办法适用于时刻较宽松的项目和初学者,然后一种办规律适合于具有必定MCU开发经历的人或项目进展较急迫的状况;
指令体系千万不要特别花时刻去了解。指令体系仅仅一种逻辑描绘的符号,只要在编程时依据自己的逻辑和程序的逻辑要求来检查相关的指令即可,并且跟着编程的进行,对指令体系也会越来越娴熟,乃至能够不自觉地回忆下来。
MCU的根本功用
关于绝大多数MCU,下列功用是最遍及也是最根本的,针对不同的MCU,其描绘的办法或许会有差异,但本质上是根本相同的:
TImer(守时器):TImer的品种尽管比较多,但可概括为两大类:一类是固守时刻距离的TImer,即其守时的时刻是由体系设定的,用户程序不行操控,体系只供给几种固定的时刻距离给用户程序进行挑选,如32Hz,16Hz,8Hz等,此类TImer在4位MCU中比较常见,因而能够用来完成时钟、计时等相关的功用;另一类则是Programmable Timer(可编程守时器),望文生义,该类Timer的守时时刻是能够由用户的程序来操控的,操控的办法包含:时钟源的挑选、分频数(Prescale)挑选及预制数的设定等,有的MCU三者都一起具有,而有的则或许是其间的一种或两种。此类Timer运用十分灵敏,实践的运用也千变万化,其间最常见的一种运用便是用其完成PWM输出(详细的运用,后续会有特别的介绍)。因为时钟源能够自由挑选,因而,此类Timer一般均与Event Counter(事情计数器)合在一起;
IO口:任何MCU都具有必定数量的IO口,没有IO口,MCU就失去了与外部交流的途径。依据IO口的可装备状况,能够分为如下几品种型:
纯输入或纯输出口:此类IO口有MCU硬件规划决议,只能是输入或输出,不行用软件来进行实时的设定;
直接读写IO口:如MCS-51的IO口就归于此类IO口。当履行读IO口指令时,便是输进口;当履行写IO口指令则主动为输出口;
程序编程设定输入输出方向的:此类IO口的输入或输出由程序依据实践的需求来进行设定,运用比较灵敏,能够完成一些总线级的运用,如I2C总线,各种LCD、LED Driver的操控总线等;
关于IO口的运用,重要的一点有必要紧记的是:关于输进口,有必要有清晰的电平信号,确保不能浮空(能够经过增加上拉或下拉电阻来完成);而关于输出口,其输出的状况电平有必要考虑其外部的衔接状况,应确保在Standby或静态状况下不存在拉电流或灌电流。
外部中止:外部中止也是绝大多数MCU所具有的根本功用,一般用于信号的实时触发,数据采样和状况的检测,中止的办法由上升沿、下降沿触发和电平触发几种。外部中止一般经过输进口来完成,若为IO口,则只要设为输入时其间止功用才会敞开;若为输出口,则外部中止功用将主动封闭(ATMEL的ATiny系列存在一些破例,输出口时也能触发中止功用)。外部中止的运用如下:
外部触发信号的检测:一种是根据实时性的要求,比方可控硅的操控,突发性信号的检测等;而另一种状况则是省电的需求;
信号频率的丈量;为了确保信号不被遗失,外部中止是最理想的挑选;
数据的解码:在遥控运用领域,为了下降规划的本钱,常常需求选用软件的办法来对各种编码数据进行解码,如Manchester和PWM编码的解码;
按键的检测和体系的唤醒:关于进入Sleep状况的MCU,一般需求经过外部中止来进行唤醒,最根本的方式则是按键,经过按键的动作来发生电平的改变;