如果要说做单片机很难吗?任何芯片包括51或者ARM其实都不难,最基本的原理用3句话就可以明白:
第1句话:一个芯片管脚要么是输入,要么是输出.
所有的程序,用单片机控制的产品,以及外设,无非就是控制芯片的各个管脚输入或者输出两个状态;例如,芯片发送数据就是输出,芯片驱动一个产品,也是输出,芯片接收数据就输入,单片机对一个存储芯片写输入,可以理解为单片机与存储芯片连接的管脚输出状态,输出数据到存储芯片的管脚上,而存储芯片此时它的芯片对应管脚被配置成输入,将数据写入芯片内部.所以说,芯片管脚不是输入,就是输出,当然,如果你不使用这个管脚,也可以将它配置成某一种中间
状态,免得干扰了外界,影响了PCB板上的其它元器件状态.
第2句话:芯片管脚不是高电平,就是低电平.
芯片管脚不是高电平就是低电平两种状态,当然也有第三种,既不高电平也不是低电平的状态,这样的管脚状态表示没有任何内容和数据;无论管脚是输入还是输出,它的目的都是传输数据\传输信息,所以管脚的高电平我们将它表示为"1",低电平表示为"0",通过0和1这样的数据来传输它想传输的内容,这个就是所谓的二进制.
例如:假如复位芯片管脚是低电平进行复位,我们将该管脚一直拉为高电平"1"的时候,芯片可以正常工作,如果将管脚拉低至低电平"0"的时候,芯片通过检测这个管脚状态为低电平,芯片内部就会自动进行复位;我们通过控制这个管脚拉高和拉低,从而就可以达到控制芯片的工作;其它的管脚也是同样的道理.
第3句话:传输协议
什么是传输协议,比如与串口芯片通信,那么就要是串口协议的;如果是I2C协议的EERPOM,那么就是I2C协议;还有其它一些比如:485协议,USB协议,CAN协议,SD卡的SDIO协议...等等数不胜数.
而这些协议,无非就是按照预先规定的表达方式进行通信.比如举个例子,我约定先连续发4个1,然后再发4个0,就表示芯片A要开始发数据给芯片B了,即芯片A通过它的芯片管脚发"11110000"给到芯片B的时候,那么芯片B就知道芯片A要给它真正的数据,它就要做好准备工作,准备好之后,芯片B就会给芯片A一个回应,当芯片A收到芯片B的回应,就正式开始发数据.
这样通信双方之间的协商规定,就构成了协议,经过这么多年,就形成了我们所常见到的串口协议,CAN协议,USB协议(像USB协议又分为USB1.0协议,USB2.0协议,USB3.0协议,版本越高,速度就越快,协议进行优化后,通信效率也变高子).
所以总结下来,一个芯片最简单的外设莫过于I/O口的高低电平控制,只要掌握了I/O管脚的输入和输出,高电平与低电平控制,再理解传输的协议,就基本算是掌握了单片机的本质了,在这里下面详细讲解一下如何用一个I/O口控制一个LED的灯灭,由最基础的例程入门吧.
|