单片机对于我来讲,就是一个超级大机器,上面有一排一排数不尽的开关,我须要作的,就是根据个人设计,拿着一张超级大的表(Datasheet),把须要的开关(reg)都开关(config)到对应功能的位置(硬件配置初始化),而后运行你设计的程序流程(while(1)后面的),这机器应该先作什么在作什么,应该一边作什么可是过一下子查一个什么,什么发生了应该停下来作什么,什么来了应该回复什么,这样这样函数
好比你须要使用一个io口,须要打开时钟,配置方向,控制上下拉,甚至拓展附加功能设计
首先说说它的时钟,51没有时钟控制这一说是由于51比32简单,32内部结构很复杂,若是那个高频的时钟信号好比72M的那个,在全部内部线路上跑,那么芯片就会很费电,若是学过场效应管的原理你就会知道,数字电路让晶体管工做在两个状态中,饱和和截止,为何呢,数字电路在1的时候有电压没电流,数字电路在0的时候有电流没电压,P=UI可知,二者只有其一(严格来讲另外一个很小),则功率很小,在中间切换的时候,处于放大区,比较耗电,因此,时钟是对功耗最好的控制,所以,默认状态下,大部分电路的时钟都是关闭的,当你要启用哪一个模块,你就必须把他的时钟打开,消耗能源,启动功能。开发
第二个是属性类,好比单片机是i口仍是o口,要不要上下拉,由于32的设计应用场景比较复杂,因此多样化的可选配置可让32应付各类各样的设计。经常使用的有推挽(大拉力输出),开漏(小电流再加上拉电阻驱动大电流),上下拉等。还有速度控制,可选高速中速低速。io
第三个是附加功能类,好比io口能够用作pwm输出,Adda输入输出,i2c,usart,等,根据不一样的功能会有对应的功能设置,这个具体要看数据手册对相应寄存器的设定,初学建议用c语言配合库函数开发加深理解,一开始不要求本身能写,你去看别人写的初始化配置函数,能看懂就行。class
说完了寄存器配置,说说中断,32的中断写法跟51的不同,可是思路是同样的,保护现场,记录断点,跳转中断服务,清除标识,回到断电,恢复现场,32的中断比51多不少,也能够嵌套原理
说到底,32,51,430都只是单片机,只要知道他们的寄存器在那里,如何根据本身的功能修改寄存器的值,剩下的功能逻辑实现,就跟单片机无关了,对于你的显示屏来讲,它并不知道你的mcu是什么,只是它发现出来的信号都同样,因此用51能够显示一朵花,一样的程序用32显示也不会变成一棵树,本质同样的