单片机入门并不难。这是几年前的老文章,简单易懂,分享给初学者。这只八条腿的小螃蟹是我们的第一餐。只要吃了,下一顿大餐就好办了。编号
单片机入门并不难。这是几年前的老文章,简单易懂,分享给初学者。
这只八条腿的小螃蟹是我们的第一餐。只要吃了,下一顿大餐就好办了。
编号1、8脚接5V电源和地线。前两条腿是蟹钳,好吃。现在还剩六条腿。
第一个2、3腿用的时候连接一个晶振,我们连接一个4 MHz的。
第四个脚是复位脚,是信号输入脚。单片机正常工作时接高电平。当此引脚输入低电平脉冲时,单片机复位。所谓复位,就是单片机中所有的工作部件都回到指定的状态,程序复位到第一句话开始一个一个的运行。比如一个报警锁定的led灯亮了以后,需要取消报警的时候,用一个按钮瞬间把这一脚接地,相当于给它一个脉冲,系统就会复位,LED灯灭,程序从头开始。
以上五脚几乎在所有的单片机中都有,包括- PIC12CE519,世界上最复杂也是相对简单的单片机。
是哪条腿?哦,这是第五条腿。这个叫做单片机的I/O引脚。是输入和输出引脚。可以通过程序动态控制它作为输入或输出,输出时可以控制它的输出电平为高1或低0。所以他有四种工作状态:输入0,输入1,输出0,输出1,剩下的两条腿的作用和第五条腿一样。
上面我们已经消化了八条腿,其实我们需要理解的只有三条腿。简单点说吧。我们先来了解两条腿,即GP0和GP1。这两条腿的低位用法可以控制继电器、LED灯,高位用法可以和I2C总线、RS232总线通讯。作为扩展输入,我们可以模拟一个A/D转换器(6-7位)并测量一个粗略的电阻。作为输出,也可以直接推送音箱播放音乐。这暂且是后话。
现在要控制这两条腿的使用,我这个三脚说书人就不得不说说软件,而要理解软件,就不得不涉及到单片机的内部结构。那人说,别提这个软件和结构。以前被他们打败过,现在听到这个就打鼓。嘿,嘿,没关系。如果真如你所说,那你还不如跟着我再失败一次。反正又一个不交税的失败者,嘿嘿。但是你也要做好心理准备,了解透彻是一个循序渐进的过程。
这个程序和单片机内部结构真的不好说,但是蟹肉都在里面。如果我现在告诉你PIC单片机是哈佛结构,51系列是冯诺依曼结构,恐怕你得马上走人。所以我必须尽力不让你溜走。
幸运的是,PIC系列的制造商(美国microchip微芯片公司)理解我们的困难。只有35条指令,有些指令很少用,常用的只有十几条。使用它们的时候,不用背就查手册。就算两天学会一句话,也只要两三个月,总比老了还怕他们强。废话少说,看下面两个例子:
My_name006: movlw 02h '常数2输入w。
movfGPIO的数目进入寄存器GPIO。
这是我们编译的程序中的两句话,也叫源程序。具有以下特点
每行只能写一句话。
每个句子由四部分组成:
标签:操作指令操作数的程序注释
我来举例说明这四个部分。
第一部分my_name006称为标签,由字母或数字组成,以冒号结尾。标签是可选的,例如,第二个句子没有标签。
第二部分称为操作说明。是必须的,不能省略。PIC系列单片机有35条指令。
第三部分02h称为操作数。有些指令没有操作数或者操作数是默认的,所以不需要写。
第四部分是程序注释,必须以单引号开头,主要作用是提醒和备忘录。评论也是可有可无的。
第二个例子省略了标签,当然注释也可以省略。他的指令是movwf,操作数是GPIO。操作数不一定是数字,也可能是一串字母。
知道了句子格式之后,下面我们来学习一些常见的句子。先把这两个例句说清楚。
这两句话的作用是将常数2写入GPIO寄存器。
单片机中有一些元器件需要我们使用和操作,都是通过读写寄存器来实现的。每个元件都要有一个寄存器来控制,比如我们要控制的GP0脚,GP1两个脚对应的寄存器叫GPIO。读取GPIO寄存器,实际等效看引脚电平;向GPIO寄存器的相应位写入1,实际上使引脚输出为高电平。写入0并输出低电平。
每个寄存器可以存储一个8位二进制数。这八位中的每一位都有一个名称,从左到右依次是:
最左端的名字是D7。
左边第二个名字是D6。
左边第三个名字是D5。
左边第四个名字是D4。
左端第五个名字是D3。
左边第六个名字是D2。
左边第七个名字是D1。
最后一位称为D0,
并且每个位对应于一个引脚的级别。例如,当GPIO寄存器的D0位等于1时,意味着引脚GP0的电平为高电平。当D0位等于0时,意味着引脚GP0的电平为低。常数2的八位二进制表示为“00000010”。因此,GPIO寄存器中存储的8位二进制数的每个位的值和引脚电平为:
D7向内部总线引脚输出低电平,对应于电平D7=0。
D6对应于内部总线引脚D6=0的电平。内部总线引脚输出低电平。
D5对应GP5引脚的电平D5=0 GP5引脚输出低电平。
D4对应GP4引脚的电平D4=0 GP4引脚输出低电平。
D3对应GP3引脚的电平D3=0 GP3引脚输出低电平。
D2对应GP2引脚的电平D2=0 GP2引脚输出低电平。
D1对应GP1引脚的电平D1=1 GP1引脚输出低电平。
D0对应于GP0引脚的电平D0=0 GP0引脚输出低电平。
GP0 - GP5引脚我们可以从图1的硬件中找到对应的引脚。D7 d6的内部时钟和数据总线,我们暂且不谈。以后有了大本事我再培养他们。在我们的例子中,2被写入GPIO寄存器,常数2的八位二进制表示为“00000010”。因此,如果GP0,Gp1等。此时被定义为输出,则GP1输出高电平(当led灯亮时),GP0输出低电平(当LED灯灭时)。
到目前为止,您已经学会了如何控制销的水平。虽然还有一些疑问,比如如何定义该引脚为输出引脚(后面会说),但我不得不说,如果GP1和GP0两个引脚提前处于输入状态,这两个例子是无效的,无法控制电平。
反正短时间内你就学会了两条指令,我觉得学35也不难。单片机的介绍就是这么简单。
声明本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们