通俗易懂讲PIC单片机:从一窍不通到入门进步
单片机入门不难------谈PIC系列(转自矿石收音机论坛---崂山)十年前的老帖子,讲得通俗易懂,分享之。
请看图1
这个8条腿的小螃蟹就是我们的第一顿饭,只要把它吃下去,以后的大餐就好办了。
第1、8条腿接电源 +5V 和 地线。头两条腿是螃蟹钳子,好吃的很。 现在剩下了 6 条腿
第2、3条腿 使用时外接一个晶振的东西 我们接一个 4 MHz的。
第4条腿是复位脚,是一个信号输入脚。单片机正常运行时接高电平。当有一个低电平脉冲输入到这个脚时单片机就复位。所谓复位就是单片机内部所有的工作部件统统回到规定的状态,程序也复位到头一句上开始逐条运行。例如,你设计的一个报警锁定的 LED红灯亮后,当需要解除报警时,用一个按钮给这个脚瞬时接地一下,相当于给它一个夫脉冲,系统就复位了,led灯就熄灭了,程序从头开始。
以上5个脚,几乎所有单片机都有,包括世界上最复杂的,和世界比较简单的单片机-----PIC12CE519
轮到底几条腿啦?奥是第5条腿,这条叫单片机的 I/O 脚。就是输入输出脚。你可通过程序动态地控制它作为输入或输出,作为输出时可以程序控制它的输出电平为高1或低0。所以,他的工作状态有四种:输入0,输入1,输出0,输出1
剩下的两条腿和第5脚功能一个样。
上边我们已经把8条腿消化掉了,其实我们要弄明白的也就3只腿,我们再简单一些,先整明白两条腿,即GP0,GP1.这两条腿低级一点的用法,可以控制继电器,LED灯,高级一些的用法可以进行I2C总线,RS232总线的通信,作为扩展输入可以模拟出来A/D转换器(6--7bit),可以测量一个电阻的粗略值。作为输出也可以直接推动扬声器奏出音乐。这是后话暂且不提。
现在要控制使用这两只腿,我这个三脚猫功夫的说书的不得不讲一下软件了,要想讲明白软件又不得不涉及到单片机的内部结构。那位说啦,你可别提这软件和结构了,以前俺就是让它们打败的,现在听到这个心里就打鼓。嘿嘿,不要紧,果真如你所说,那你就不妨跟着我再失败一次, 反正吗多一次失败又不纳税,嘿嘿。不过你也要有思想准备,彻底弄明白是个渐进的过程。
要说这程序和单片机内部结构,还真是老大难,不过蟹黄蟹肉都可都在里面。我现在要是给你说PIC单片机是哈佛结构的,51系列是冯-诺伊曼结构的,恐怕你要立马扎走人了。所以我得用点心思不让你溜号。
好在PIC系列的制造商(microchip 微芯公司 美国)理解我等苦衷,全部只有35条指令,而且有一些指令我们一般很少使用,常用的也就十几句,用的时候查手册,无需记忆。就算我们两天学习一句,也就两三个月时间,总比到老了还怕它们强啊。废话少说先看下面的两个例语:
my_name006: movlw 02h '常数2进入w
movwf GPIO 'W 的数进入 寄存器GPIO
这就是我们编的程序里的两个句子,也叫源程序。有以下特点
每行只能写一句话
每句话由四部分组成:
标号: 操作指令 操作数 '程序注释
下面我结合例子把这四部分解释一下。
第一部分 my_name006: 叫做标号,它是由字母或数字组成,由冒号结束。标号可有可无,比如第二句就没有标号。
第二部分movlw 叫做操作指令。它是必须有的,不能省略。PIC 系列的单片机共有 35 条指令。
第三部分02h 叫做操作数。有的指令没有操作数或者操作数是默认的,也不用写。
第四部分是程序注释,必须以单引号开头,主要作用是提醒和备忘。注释也是可有可无。
第二个例句中,省略了标号,当然注释也可以省略。他的指令是movwf, 操作数是GPIO。操作数不一定是数字,也可能是一个由字母组成的字符串。
知道了语句格式以后,我们下面就学习一些常用语句。我们先把这两个例句弄清楚。
这两句话的作用是把 2 这个常数写入到 GPIO 这个寄存器里。
单片机里有一些部件需要我们使用和操作,都是通过读写寄存器来实现的。每个部件都对应有操控它的寄存器,例如我们要控制使用的管脚GP0,GP1 这两个管脚对应的寄存器就叫做GPIO。对GPIO寄存器读操作,实际等效察看管脚电平的高低;对GPIO寄存器相应的位写1操作,实际等校让管脚输出高电平。写0,输出低电平。
每个寄存器可以储存一个八位的二进制数。这八个位的每个位都有名称,从左向右的名称是:
左端第首位名称叫D7,
左端第二位名称叫D6,
左端第三位名称叫D5,
左端第四位名称叫D4,
左端第五位名称叫D3,
左端第六位名称叫D2,
左端第七位名称叫D1,
最后一位叫D0,
而每一个位对应一个管脚的电平,例如当GPIO寄存器的D0位等于1时表示管脚GP0 的电平是高电平。D0位等于0时表示管脚GP0 的电平是低电平。常数2的八位二进制表示是“00000010” 所以,GPIO寄存器存放的8位2进制数的每个位的值以及管脚电平是:
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 对应的内部时钟和数据总线我们现在暂且不要管它。以后本事大了在调教它们。在我们的例句中,向GPIO寄存器写入了2,常数2的八位二进制表示是“00000010” 因此如果此时GP0, Gp1等都已经被定义成输出的话,那么GP1输出高电平(接LED灯亮),GP0 输出低电平(所接led灯熄) 。
截止到现在,你已经学会如何控制管脚的电平高低了。尽管还有一些疑问,比如怎样定义管脚为输出脚(以后会说),我得说如果事先gp1,gp0这两个管脚处于输入状态,这两个例句无效,是控制不了电平的。
无论如何,这一会儿,你就学会了两个指令,35条我看也没啥难的。
'------------------------------------------------------------------------------
再加深一下对寄存器的认识:
要把一个常数存储到,或者说写到一个寄存器中,仅用一条指令是办不到的,必须通过一个特殊的寄存器W,把数据倒过去. 这就应该使用到两个语句。
movlw 02H 指令的意思是把一个常数存入特殊寄存器W, 这个常数是3,后面的H是表示十六进制
movwf GPIO 指令的意思是把特殊寄存器W的数值存入寄存器. 这个寄存器的名称是 GPIO
这里涉及到两个概念,常数和寄存器.
常数好说,比如说十进制数 35, 26 但要注意,在单片机系统里我们一般不用十进制,而使用十六进制. 有关数制转换方面的知识,是计算机的基础,必须会熟练地在二进制、十六进制、十进制之间转换,我就不罗索了.
寄存器也叫单片机的内存。
一个寄存器可以存储的数值范围是0--255,用十六进制表示就是 0---FFH.用二进制表示就是00000000----11111111.
以后要养成习惯用十六进制表示数.
那么,一个单片机里有多少个这样的寄存器哩,pic12ce512里面有1024个这样的寄存器可以供你使用,为了使用方便生产商已经给它们编上了号码,第一号码是000H,往下依照次序为 001H,002H........3FFH.(怎么样,开始用十六进制说事了吧,如果你不熟悉熟制转换赶紧补课来得及)
有了编号就像我们居住的房间有了房间号码,使用就方便的多了.房间号码在邮政行业叫地址,因此我们称这些号码叫做寄存器地址,或称地址数 例如 名称为 GPIO 的寄存器,他的地址,或地址数是 06H 。所以我们的两个例句完全等同于:
my_name006: movlw 02h '常数2进入w
movwf 06H 'W 的数进入 寄存器GPIO
'-----------------------------------------
有两个寄存器比较特殊,它们没有地址,一个名字叫做 W, 另一个叫做 TRIS. 所以他们两个在存储数据的时候比较快,一个指令就可以解决问题,例如: movlw 03H 一条指令就把常数3写入到W寄存器了。关于TRIS寄存器,我们以后用到它再说.
除了他们两个以外的其他所有寄存器,在写入数据时一般都要用两条指令进行。
今天就扯到这里,虽然只有两个指令,但主要目的是要同学们接触一下指令,建立寄存器的概念以及他们同硬件部件的联系。增强学习的信心。能有这些体会,这一节就算过关了。
随着以后的深入,你会发现小小单片机里面是一个大世界,兴趣也由此而生。
我们上一次讲的两个指令是是如何控制管脚电平的高低。前提是所有管脚已经被定义成输出了(OUT)如果被定义成了输入,则上次的指令虽然也能运行,但运行后丝毫不能改变管脚电平高低,因为此时管脚是输入状态,电平取决于外部输入,指令无法改变。
在PIC单片机系列中,改变I/O口的输入输出依靠写入寄存器TRIS的值,相应位写0,表示对应管脚被定义成了输出,写1,就是输入。
现在假如预把GP1、GP2管脚定义成输出,其他脚全是输入。那就应该向TRIS 寄存器写入二进制数 11111001,换算成十六进制就是
F9H.
依照以前我们学到的知识,在PIC系列单片机里,本来应该用下列的语句来完成我们的设定:
movlw 0F9H '常数进W 以字母开头的常数前面必须加0
movwf TRISA '把W内的数复制到TRIS
实际上PIC系列的单片机也都是这么写的,后面加的A,表示第一个8位的口(有的单片机不仅一个口,还有好几个8位的I/O口如TRISB TRISC TRISD等等) .
但是,记住了, PIC12系列的单片机必须改写成为:
movlw 0F9H '常数进W 以字母开头的常数前面必须加0
tris GPIO '把W内的数复制到TRIS 以后凡见到这个指令一律理解成 movwf TRISA
写法不同,意思是一样的. 这样你就又学了一个指令TRIS,不过这个指令的实质还是你曾经学过的movwf 只是写法不同罢了.
在PIC12系列里TRIS作为指令, 在其他系列(PIC161718)里把 TRIS 作为普通寄存器看待.
因为我们现在讲的就是PIC12CE519,所以我们暂时用
tris GPIO
这个格式,等以后进入PIC16C877 我们再写成 movwf TRISA , 至于理解按照后者进行.
'-----------
如果我们要控制GP1 GP2管脚的输出电平, 其他管脚作为输入.并且让GP1输出低电平,GP2输出高电平.完整的程序如下:
movlw 0F9H '常数进W
tris GPIO '把W内的数复制到TRIS ,GP1 GP2为输出,其他为输入
'此行无命令,起到的作用是容易读懂程序
movlw 04H '常数4的二进制是 00000100 ,GP1=0 GP2=1
movwf GPIO 'W内的数进GPIO 输出生效,原来定义成输入的脚的电平,不会受该句影响
上面已经学会了三条指令,但是8位寄存器的概念概念一定要建立起来,程序通过写入寄存器不同的数据
控制管脚作为输入使用还是输出使用,作为输出时是输出高电平还是低电平。
这样的操作又一个特点,就是每次写入数据,同时控制的往往不是一个管脚,而是好几个个.最多一次可
以控制8个管脚.在单片机里往往每8个脚叫做一个口,如口A, 口B,用英文表示就是GPIO PORTA PORTB PORTC 等.
更多的情况是:某个口内的某一个管脚需要改变电平,其他脚电平不变.例如我们仅需要GPIO口上的GP1
这个管脚的电平拉高,其他管脚电平不发生变化.这时候位操作指令为我们提供了方便,假如我们事先已经把GP1管脚定义过输出了(方法见前面讲过的):
bcf GPIO,GP1 '注释 GPIO口上GP1管脚电平拉低,我们行话叫 清除。
bSf GPIO,GP1 '注释 GPIO口上GP1管脚电平拉高,我们行话叫 置位。
怎么样,这样控制某一个管脚的电平就方便多了,你的编程效率大大提高啊.
记住:PIC所有单片机所有寄存器都是可以位操作的,这在51的单片机上是不能完全实现的.
不仅如此,PIC所有单片机所有管脚的单腿驱动输出电流可以高达 25mA,所以如果你驱动一个 5到10mA电流的LED发光二极管,根本不用加三极管,串个电阻直接挂在单片机上就得了,这在51的单片机上也是不能实现的,要加驱动三极管或驱动芯片.
怎么样,学PIC有好处吧. 也别急,好处还有那,且听我慢慢地白话。
一不小心,你已经会 5 个指令了,还有30个,加油啊。
继续
单片机的大部分指令,或者说单片机所做的大部分工作,多数在写入或读出寄存器。关于寄存器的初步概念我想我们已经建立起来了,它是一个能够存储8位二进制数据(最大255 = 0FFH) 的单元 每个单元都有它的编号,我们叫做它的地址,或地址编码. 地址编码也是十六进制的. 另外寄存器里的数据掉电就会丢失。
寄存器的英文是RAM 也要记住.
PIC12CE519 里面共有有48个寄存器供我们操作使用, 它们每一个都有固定的地址编码。
地址编码并不是连续的号码,而是分成了两段:
第一段: 从00H 开始, 依次是01H, 02H, 03H ....0AH, 0BH......到1FH 结束. 计32个寄存器
第二段: 从30H 开始, 依次是31H, 32H, ......................到3FH 结束 计16个寄存器
这种地址不连续编号, 而是要跳过去一段的做法, 对于我们新手来说很是不习惯. 为了让我们容易入门, 我们暂时先不管第二段RAM, 只当它不存在, 所有程序我们只涉及到第一段连续的ram 地址. 等我们熟练的掌握好了ram 的使用,再涉及第二段地址的RAM, 那时,你就会理解单片机设计者把它们分成两段的苦心了.
为了规范,我们今后一律把RAM的分段, 叫做分页. 第一地址段叫00页面, 第二地址段叫01页面.
例如: 我们学过的 I/O 口电平控制寄存器 GPIO, 它的地址编码是 06H, 属于00页面.
'-----------------
所有这32+16=48个寄存器除了在地址上分成了两个页面以外,又把它们分成两类:
一类专用寄存器,一类通用寄存器.
所谓专用,就是这个寄存器的功能已经由系统分配好了.例如 地址为06H 的名称就做GPIO寄存器的功能,是它的每个位,都对应到一个I/O脚的电平.
另一类 是通用寄存器,你可以理解成它的功能系统没有事先预定,而是由你在编程序的时候随机使用.
pic12ce519 的专用寄存器有 7 个, 位置在我们第00叶面的最前面. 这7个专用寄存器的地址编码是: 00H,01H, 02H, ----06 H
剩下的所有寄存器包括所有第01页面, 全部都是通用寄存器.
例子: 在两个通用寄存器 09H, 0AH 内, 写入常数 FC H
movlw 0FCH '常数进W
movwf 9H '复制W内的数到通用寄存器09H
movwf 0AH '复制W内的数到通用寄存器0AH 由于此时W内并没有改变,W不用再进常数.
'----------------------------------------------
下面是PIC12CE519的 寄存器ram的地址地图:
图最上端的 00 01 表示的是页面号码,或叫页面地址。
左侧 从00 --- 1FH 是00页面, 右侧是01页面。
从00H 到 06H 都已经起好了名称 ,它们是专用寄存器,用处各有不同。以后我们会逐个介绍它们
剩下的都是通用寄存器 或者叫普通寄存器 General Purpose Registers 意思是一般用途的寄存器
地址从20H 到 2FH 也不是“空洞”,也不是不能访问,只是读写它们的时候等于读写它们左侧对应的00页面。这一点我们可能有些迷惑,弄不明白也没有关系,以后随着程序理解的深入,会搞清楚的。
内存图谱,不要求记下来,但是应该有个大体印象,用的时候会察看就可以了。等编程时间一长
就那么几个字节,自然就记住了。
所谓字节是衡量二进制数据长度的一个单位。一个寄存器刚好能记住一个字节的数据。如果你要存储的数据比较大超过了255,那就要占2个存储器甚至更多。描述的时候通常我们不说这个数值占了多少个寄存器,而是说这个数据是几个字节的。
字节的英文是byte 一个二进制数的一位,叫比特 英文bit 1 byte 包含 8 bit
继续
下面我们学习一条新指令,叫做空操作指令
nop '什么事情也不做,但执行这个指令也要消耗掉一点时间。它没有操作数。
'不要理解成程序停了,实际上程序仍在正常运行。执行一连串的空操作指令,单片机
'白耗费时间,什么活也不干,往往用于延时
如果你需要一个很短时间的延时,可以采用一连串的空操作。注意每个 nop 也是占一行, 例如:
bsf GPIO,GP1 '管脚GP1输出高电平点亮LED灯(如果你已经接上灯的话)
nop
... .
bcf GPIO,GP1 '管脚GP1输出低电平关闭LED灯
...
运行的效果是接在管脚GP1上的LED灯先亮一段时间,再熄灭一段时间的闪烁。
这回再说一个程序转向的语句,goto 指令,学过basic 和 c 等语言的对它不陌生。
单片机对程序的执行是逐句自上而下进行。当它运行到某个位置,如果你不希望继续运行它下面的语句,而是希望它无条件的强行转到某一句上,就可以使用goto语句。
我们还是通过例子来说明goto 的使用方法。
已知外部晶振的频率为4 MHz, 设计程序从pic12ce512 单片机的GP1管脚上输出一个方波信号,信号频率固定并计算出频率的值。
myWAVE: bsf GPIO,GP1 '管脚GP1输出高电平点亮LED灯(如果你已经接上灯的话)
goto myWAVE 'myWAVE是标号,某行必须有这个标号,否则程序通不过
nop '由于goto的存在,以下语句得不到运行
当程序自上而下运行到goto 语句时, 不再继续运行它底下的语句, 而是让程序强行转向到标号为myWAVE的语句上,并继续运行.
这样一来的结果,程序会永远在标号myWAVE的这一句 bsf GPIO,GP1 到goto之间循环, 打转转.
高手讲解PIC单片机:从管脚到指令,一看就懂
单片机入门不难,这是几年前的一篇老文章,讲得通俗易懂,分享给初学者。
这个8条腿的小螃蟹就是我们的第一顿饭,只要把它吃下去,以后的大餐就好办了。
第1、8条腿接电源 +5V 和 地线。头两条腿是螃蟹钳子,好吃的很。 现在剩下了 6 条腿
第2、3条腿 使用时外接一个晶振的东西 我们接一个 4 MHz的。
第4条腿是复位脚,是一个信号输入脚。单片机正常运行时接高电平。当有一个低电平脉冲输入到这个脚时单片机就复位。所谓复位就是单片机内部所有的工作部件统统回到规定的状态,程序也复位到头一句上开始逐条运行。例如,你设计的一个报警锁定的 LED红灯亮后,当需要解除报警时,用一个按钮给这个脚瞬时接地一下,相当于给它一个夫脉冲,系统就复位了,led灯就熄灭了,程序从头开始。
以上5个脚,几乎所有单片机都有,包括世界上最复杂的,和世界比较简单的单片机-----PIC12CE519
轮到第几条腿啦?奥,是第5条腿,这条叫单片机的 I/O 脚。就是输入输出脚。你可通过程序动态地控制它作为输入或输出,作为输出时可以程序控制它的输出电平为高1或低0。所以,他的工作状态有四种:输入0,输入1,输出0,输出1,剩下的两条腿和第5脚功能一个样。
上边我们已经把8条腿消化掉了,其实我们要弄明白的也就3只腿,我们再简单一些,先整明白两条腿,即GP0,GP1.这两条腿低级一点的用法,可以控制继电器,LED灯,高级一些的用法可以进行I2C总线,RS232总线的通信,作为扩展输入可以模拟出来A/D转换器(6--7bit),可以测量一个电阻的粗略值。作为输出也可以直接推动扬声器奏出音乐。这是后话暂且不提。
现在要控制使用这两只腿,我这个三脚猫功夫的说书的不得不讲一下软件了,要想讲明白软件又不得不涉及到单片机的内部结构。那位说啦,你可别提这软件和结构了,以前俺就是让它们打败的,现在听到这个心里就打鼓。嘿嘿,不要紧,果真如你所说,那你就不妨跟着我再失败一次, 反正吗多一次失败又不纳税,嘿嘿。不过你也要有思想准备,彻底弄明白是个渐进的过程。
要说这程序和单片机内部结构,还真是老大难,不过蟹黄蟹肉可都在里面。我现在要是给你说PIC单片机是哈佛结构的,51系列是冯-诺伊曼结构的,恐怕你要立马走人了。所以我得用点心思不让你溜号。
好在PIC系列的制造商(microchip 微芯公司 美国)理解我等苦衷,全部只有35条指令,而且有一些指令我们一般很少使用,常用的也就十几句,用的时候查手册,无需记忆。就算我们两天学习一句,也就两三个月时间,总比到老了还怕它们强啊。废话少说先看下面的两个例语:
my_name006: movlw 02h '常数2进入w
movwf GPIO 'W 的数进入 寄存器GPIO
这就是我们编的程序里的两个句子,也叫源程序。有以下特点
每行只能写一句话
每句话由四部分组成:
标号: 操作指令 操作数 '程序注释
下面我结合例子把这四部分解释一下。
第一部分 my_name006: 叫做标号,它是由字母或数字组成,由冒号结束。标号可有可无,比如第二句就没有标号。
第二部分movlw 叫做操作指令。它是必须有的,不能省略。PIC 系列的单片机共有 35 条指令。
第三部分02h 叫做操作数。有的指令没有操作数或者操作数是默认的,也不用写。
第四部分是程序注释,必须以单引号开头,主要作用是提醒和备忘。注释也是可有可无。
第二个例句中,省略了标号,当然注释也可以省略。他的指令是movwf, 操作数是GPIO。操作数不一定是数字,也可能是一个由字母组成的字符串。
知道了语句格式以后,我们下面就学习一些常用语句。我们先把这两个例句弄清楚。
这两句话的作用是把 2 这个常数写入到 GPIO 这个寄存器里。
单片机里有一些部件需要我们使用和操作,都是通过读写寄存器来实现的。每个部件都对应有操控它的寄存器,例如我们要控制使用的管脚GP0,GP1 这两个管脚对应的寄存器就叫做GPIO。对GPIO寄存器读操作,实际等效察看管脚电平的高低;对GPIO寄存器相应的位写1操作,实际等校让管脚输出高电平。写0,输出低电平。
每个寄存器可以储存一个八位的二进制数。这八个位的每个位都有名称,从左向右的名称是:
左端第首位名称叫D7,
左端第二位名称叫D6,
左端第三位名称叫D5,
左端第四位名称叫D4,
左端第五位名称叫D3,
左端第六位名称叫D2,
左端第七位名称叫D1,
最后一位叫D0,
而每一个位对应一个管脚的电平,例如当GPIO寄存器的D0位等于1时表示管脚GP0 的电平是高电平。D0位等于0时表示管脚GP0 的电平是低电平。常数2的八位二进制表示是“00000010” 所以,GPIO寄存器存放的8位2进制数的每个位的值以及管脚电平是:
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 对应的内部时钟和数据总线我们现在暂且不要管它。以后本事大了在调教它们。在我们的例句中,向GPIO寄存器写入了2,常数2的八位二进制表示是“00000010” 因此如果此时GP0, Gp1等都已经被定义成输出的话,那么GP1输出高电平(接LED灯亮),GP0 输出低电平(所接led灯熄) 。
截止到现在,你已经学会如何控制管脚的电平高低了。尽管还有一些疑问,比如怎样定义管脚为输出脚(以后会说),我得说如果事先gp1,gp0这两个管脚处于输入状态,这两个例句无效,是控制不了电平的。
无论如何,这一会儿,你就学会了两个指令,35条我看也没啥难的。单片机的入门就是这么简单。
相关问答
如何读出 pic单片机 的程序?如果已经加密了,拷出来也看不了,黑客一不行,因为加密算法是不可逆的。如果程序原本是C语言写的,但C语言程序会被MPLAB先编译成汇编后才能烧写进单片机,所...
pic单片机 的 pic 是什么意思?1.PIC单片机(PeripheralInterfaceController)是一种用来开发和控制外围设备的集成电路(IC)。一种具有分散作用(多任务)功能的CPU。与人类相比,大脑就是C...
通俗的介绍一下 pic单片机 - CHERRY?BIUBO 的回答 - 懂得为什么要和电脑类比呢?看来你没有用过单片机吧,单片机的结构都是大同小异的。那就象征性地类比下。pic是哈佛结构的,程序存在程序存储器,也就是ROM...
Keil可以用来开发 PIC单片机 程序么?keil不能给pic单片机编程。pic有专用的编译软件,mplab和c语言编译软件picc。1、MPLABX目前还不是很成熟,如果用来做项目的话,建议用MPLAB8.86版本即可,到MIC...
PIC单片机 中用C语言编程时ADCON1是什么意思怎么用?ADCON1是AD转换时用到的控制寄存器,有8位,高4位(有的是5位,要看具体单片机型号)是未定义的,把他们置0,不要置1,低三位(或四位),就是PCFG2、1、0(有...ADCON1...
pic单片机 芯片作用?PIC单片机芯片作用:是一种用来开发和控制外围设备的集成电路。一种具有分散作用功能的CPU。与人类相比,大脑就是CPU,PIC共享的部分相当于人的神经系统。PIC...
pic单片机 中断时间计算?关于PIC单片机T0定时器的计算是这样的4M晶振的时候一个时钟周期是1/f(f为时钟频率即4M)。也就是说一个时钟周期是T=1/f=0.00000025s=0.25us。PIC16f877是一个...
pic单片机 porta口检测高低电平需要怎样的配置?单片机的I/O口检测高低电平是需要首先让该端口置为1的。此时这个引脚才被设置为输入。如果是avr单片机,可以通过设置DDRx的值来设置输入输出(详见数据手册)...
PIC单片机 中PWM怎么实现DA转换?PWM是通过改变占空比来改变输出电压的有效值的,即改变输出电压的大小.假设单片机的电源电压为5V,并假设输出高电平也为5V.当PWM的占空比为100%时,输出电压有效...
【 PIC 的 单片机 所有GPIO的最大拉电流和任意I/O引脚最大输出拉...[最佳回答]所有I/O的最大拉电流是针对单片机电源输入脚的电流耐受能力的,因为IC的工艺原因,电源输入引脚的引线不可能像线路板走线那样宽的,属于微小引线的,此...