|
我说一下自己大概的学习过程:
1、单片机的资源里最重要的应该就是中断了,是一种处理实时事件的方法,因为中断是异步触发,会打断程序的流程。所以,这部分的深入理解会给写程序带来极大的帮助。至于其他的功能无非就是读写一些相关寄存器来实现,这些相关功能是为整体程序服务的,属于底层(指逻辑意义上)的东西。所有真正项目的完成,都依赖于单片机的基本功能的有机组合。请注意,我这样的描述方式其实透露出了一些“模块化”的设计思想----把程序的逻辑层次分离出来,然后进行有机组合。
2、单片机与pc机程序最大的不同就是没有操作系统,所有的东西都需要从最基本的来。这样的好处是可以更透彻地理解计算机的工作原理。我始终认为在单片机写程序的人比纯在pc上写程序的人更能理解计算机的本质。
3、基本的外围电路、外围芯片需要了解。其实,对于单片机来说,所有与单片机连接的部分,无论输入和输入都是高低电平。注意,“高低电平”这样的说法其实是偏向硬件的说法,是针对硬件电路的。在程序里没有高低电平的说法,都是逻辑0和1。所以,在描述程序中的“高低电位”的时候,我更愿意用逻辑0和1来表述。照此理解,我们完全可以把单片机理解为一个可以处理逻辑信号的“黑盒子”,有很多线(也就是单片机的引脚)连着黑盒子,用来与外界进行交流信息。
4、与单片机外的芯片或电路交流信息又多种方法,串口、各种总线等等。提到总线,一个重要的概念就不得不提,那就是时序。时序是所有芯片工作的基础,否则还要晶振做什么,晶振就是产生时序的原动力。总线中的时序想来一定会有如下这些功能:哪个时输出0和1,哪个时刻读如0和1,怎么表示一次通讯开始、结束、传输错误时怎么处理......
5、在一头扎入所有细节之后,时不时出来从更高的角度重新审视,会有意想不到的收获。 |
|