单片机入门不难------谈pic系列

上传人:mg****85 文档编号:44588749 上传时间:2018-06-14 格式:PDF 页数:14 大小:195.53KB
返回 下载 相关 举报
单片机入门不难------谈pic系列_第1页
第1页 / 共14页
单片机入门不难------谈pic系列_第2页
第2页 / 共14页
单片机入门不难------谈pic系列_第3页
第3页 / 共14页
单片机入门不难------谈pic系列_第4页
第4页 / 共14页
单片机入门不难------谈pic系列_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《单片机入门不难------谈pic系列》由会员分享,可在线阅读,更多相关《单片机入门不难------谈pic系列(14页珍藏版)》请在金锄头文库上搜索。

1、单片机入门不难-谈 PIC 系列单片机入门不难-谈 PIC 系列 作者:佚名来源:不详录入:Admin更新时间:2008-7-27 16:27:15点击数:3 【字体:】单片机入门不难-谈 PIC 系列(转自矿石收音机论坛-崂山)坛子里的老兄小弟, 如果你已经多次想进单片机之门而未入, 如果你有很多空闲时间想打发, 如果你玩收音机感到疲劳想换个口味,如果。 。 。 那就听小弟我白话白话,反正我们这些老大难也没有什么重要的事情做。 。 。 。闲言少许,话说人间事物的学习,不外两类:一类入门易,精通难比如矿石机,再比如练书 法谁都会写两下,可写好却不是一朝一夕的事儿。另一类则入门难精通易,比如超外

2、差收音 机,学会需要各种放大、振荡、反馈、混频、中频、统调等等,但是一旦你学会,做出一个 高质量的收音机,确也不是难事。单片机属于后者,所以无论如何,你得用些时间,学习一 些新名词并理解,甚至还得花一些小钱。但是,一旦你掌握,其乐趣也像收音机一样,很有 吸引力的。本故事说给一点也不懂计算机,甚至数字电路的引引道。一般入门应该有保障。改为:本故事说给懂电工、电子、逻辑电路的老家伙和半老家伙,如果对电子一窍不通人 讲那我劝你也别瞎子点灯了,要是边讲基础边讲 pic 这书就不知唱到何年何月啦。单片机不同于收音机,收音机的任务最终就是听好声音一个,单片机可以做很多事情, 要你来安排它的工作。安排它就先

3、的认识它,熟悉它 请看图 1这个 8 条腿的小螃蟹就是我们的第一顿饭,只要把它吃下去,以后的大餐就好办了。 第 1、8 条腿接电源 +5V和 地线。头两条腿是螃蟹钳子,好吃的很。 现在剩下了 6 条 腿 第 2、3 条腿 使用时外接一个晶振的东西我们接一个 4 MHz 的。 第 4 条腿是复位脚,是一个信号输入脚。单片机正常运行时接高电平。当有一个低电平脉冲 输入到这个脚时单片机就复位。 所谓复位就是单片机内部所有的工作部件统统回到规定的状 态, 程序也复位到头一句上开始逐条运行。 例如, 你设计的一个报警锁定的 LED 红灯亮后, 当需要解除报警时,用一个按钮给这个脚瞬时接地一下,相当于给它

4、一个夫脉冲,系统就复 位了,led 灯就熄灭了,程序从头开始。以上 5 个脚,几乎所有单片机都有,包括世界上最复杂的,和世界比较简单的单片机-PIC12CE519轮到底几条腿啦?奥是第 5 条腿,这条叫单片机的 I/O 脚。就是输入输出脚。你可通过程 序动态地控制它作为输入或输出,作为输出时可以程序控制它的输出电平为高 1 或低 0。所 以,他的工作状态有四种:输入 0,输入 1,输出 0,输出 1剩下的两条腿和第 5 脚功能一个样。原来编辑帖子是有时间限制的阿。也好,俺学乖了,先在记事本上编辑,在复制粘帖。 欢迎各位捧场,在此不敢以讲课回答问题的姿态出现,不过各位的问题我尽力而为。上边我们已

5、经把 8 条腿消化掉了,其实我们要弄明白的也就 3 只腿,我们再简单一 些,先整明白两条腿,即 GP0,GP1.这两条腿低级一点的用法,可以控制继电器,LED 灯, 高级一些的用法可以进行 I2C 总线,RS232 总线的通信,作为扩展输入可以模拟出来 A/D 转换器(6-7bit) ,可以测量一个电阻的粗略值。作为输出也可以直接推动扬声器奏出音乐。 这是后话暂且不提。现在要控制使用这两只腿, 我这个三脚猫功夫的说书的不得不讲一下软件了, 要想讲明白软 件又不得不涉及到单片机的内部结构。那位说啦,你可别提这软件和结构了,以前俺就是让 它们打败的,现在听到这个心里就打鼓。嘿嘿,不要紧,果真如你所

6、说,那你就不妨跟着我 再失败一次, 反正吗多一次失败又不纳税,嘿嘿。不过你也要有思想准备,彻底弄明白是 个渐进的过程。要说这程序和单片机内部结构,还真是老大难,不过蟹黄蟹肉都可都在里面。我现 在要是给你说 PIC 单片机是哈佛结构的,51 系列是冯-诺伊曼结构的,恐怕你要立马扎走人 了。所以我得用点心思不让你溜号。好在 PIC 系列的制造商(microchip 微芯公司 美国)理解我等苦衷,全部只有 35 条指令,而且有一些指令我们一般很少使用,常用的也就十几句,用的时候查手册,无需记 忆。就算我们两天学习一句,也就两三个月时间,总比到老了还怕它们强啊。废话少说先看 下面的两个例语:my_na

7、me006:MOVlw02h常数 2 进入 w MOVwfGPIOW 的数进入 寄存器 GPIO这就是我们编的程序里的两个句子,也叫源程序。有以下特点每行只能写一句话 每句话由四部分组成:标号:操作指令操作数程序注释下面我结合例子把这四部分解释一下。第一部分 my_name006: 叫做标号,它是由字母或数字组成,由冒号结束。标号可有可无, 比如第二句就没有标号。 第二部分 MOVlw 叫做操作指令。它是必须有的,不能省略。PIC 系列的单片机共有 35 条 指令。 第三部分 02h叫做操作数。有的指令没有操作数或者操作数是默认的,也不用写。 第四部分是程序注释,必须以单引号开头,主要作用是提

8、醒和备忘。注释也是可有可无。第二个例句中,省略了标号,当然注释也可以省略。他的指令是 MOVwf, 操作数是 GPIO。 操作数不一定是数字,也可能是一个由字母组成的字符串。知道了语句格式以后,我们下面就学习一些常用语句。我们先把这两个例句弄清楚。这两句话的作用是把 2 这个常数写入到 GPIO 这个寄存器里。 单片机里有一些部件需要我们使用和操作, 都是通过读写寄存器来实现的。 每个部件 都对应有操控它的寄存器,例如我们要控制使用的管脚 GP0,GP1 这两个管脚对应的寄存器 就叫做 GPIO。对 GPIO 寄存器读操作,实际等效察看管脚电平的高低;对 GPIO 寄存器相 应的位写 1 操作

9、,实际等校让管脚输出高电平。写 0,输出低电平。每个寄存器可以储存一个八位的二进制数。 这八个位的每个位都有名称, 从左向右的名称是: 左端第首位名称叫 D7, 左端第二位名称叫 D6, 左端第三位名称叫 D5, 左端第四位名称叫 D4, 左端第五位名称叫 D3, 左端第六位名称叫 D2, 左端第七位名称叫 D1, 最后一位叫 D0,而每一个位对应一个管脚的电平,例如当 GPIO 寄存器的 D0 位等于 1 时表示管脚 GP0 的 电平是高电平。 D0 位等于 0 时表示管脚 GP0 的电平是低电平。 常数 2 的八位二进制表示是 “00000010”所以,GPIO 寄存器存放的 8 位 2

10、进制数的每个位的值以及管脚电平是: D7 对 应于内部总线管脚的电平D7=0内部总 线管脚输出低电平 D6 对应于内部总线管脚的电平D6=0内部总 线管脚输出低电平 D5 对应于 GP5 管脚的电平D5=0GP5 管脚输出低电平 D4 对应于 GP4 管脚的电平D4=0GP4 管脚输出低电平 D3 对应于 GP3 管脚的电平D3=0GP3管脚输出低电平 D2 对应于 GP2 管脚的电平D2=0GP2 管脚输出低电平 D1 对应于 GP1 管脚的电平D1=1GP1 管脚输出低电平 D0 对应于 GP0 管脚的电平D0=0GP0 管脚输出低电平 GP0-GP5 管脚我们可以从上一讲的图 1 硬件中

11、查出所对应的管脚。d7 d6 对应的内部时钟 和数据总线我们现在暂且不要管它。以后本事大了在调教它们。在我们的例句中,向 GPIO 寄存器写入了 2,常数 2 的八位二进制表示是“00000010”因此如果此时 GP0, Gp1 等都已 经被定义成输出的话,那么 GP1 输出高电平(接 LED 灯亮) ,GP0 输出低电平(所接 led 灯 熄) 。截止到现在,你已经学会如何控制管脚的电平高低了。尽管还有一些疑问,比如怎 样定义管脚为输出脚(以后会说) ,我得说如果事先 gp1,gp0 这两个管脚处于输入状态,这 两个例句无效,是控制不了电平的。无论如何,这一会儿,你就学会了两个指令,35 条

12、我看也没啥难的。-再加深一下对寄存器的认识:要把一个常数存储到,或者说写到一个寄存器中,仅用一条指令是办不到的,必须通过一个 特殊的寄存器W,把数据倒过去. 这就应该使用到两个语句。MOVlw02H指令的意思是把一个常数存入特殊寄存器W,这个常数是 3,后面的 H 是 表示十六进制 MOVwfGPIO指令的意思是把特殊寄存器 W 的数值存入寄存器. 这个寄存器的名称 是 GPIO这里涉及到两个概念,常数和寄存器. 常数好说,比如说十进制数 35,26 但要注意,在单片机系统里我们一般不用十进制,而使用 十六进制. 有关数制转换方面的知识, 是计算机的基础, 必须会熟练地在二进制、 十六进制、

13、十进制之间转换,我就不罗索了. 寄存器也叫单片机的内存。 一个寄存器可以存储的数值范围是 0-255,用十六进制表示就是 0-FFH.用二进制表示就是 00000000-11111111. 以后要养成习惯用十六进制表示数.那么,一个单片机里有多少个这样的寄存器哩,pic12ce512 里面有 1024 个这样的寄存器可以 供你使用,为了使用方便生产商已经给它们编上了号码,第一号码是 000H,往下依照次序为 001H,002H.3FFH.(怎么样,开始用十六进制说事了吧,如果你不熟悉熟制转换赶紧补 课来得及)有了编号就像我们居住的房间有了房间号码,使用就方便的多了.房间号码在邮政行业叫地址,

14、因此我们称这些号码叫做寄存器地址,或称地址数例如 名称为 GPIO 的寄存器,他的地址, 或地址数是06H 。所以我们的两个例句完全等同于:my_name006:MOVlw02h常数 2 进入 w MOVwf06HW 的数进入 寄存器 GPIO - 有两个寄存器比较特殊,它们没有地址,一个名字叫做W,另一个叫做 TRIS. 所以他们两个 在存储数据的时候比较快,一个指令就可以解决问题,例如:MOVlw03H一条指 令就把常数 3 写入到 W 寄存器了。关于 TRIS 寄存器,我们以后用到它再说. 除了他们两个以外的其他所有寄存器,在写入数据时一般都要用两条指令进行。今天就扯到这里,虽然只有两个

15、指令,但主要目的是要同学们接触一下指令,建立寄存器的 概念以及他们同硬件部件的联系。增强学习的信心。能有这些体会,这一节就算过关了。 随着以后的深入,你会发现小小单片机里面是一个大世界,兴趣也由此而生。0 onc我们上一次讲的两个指令是是如何控制管脚电平的高低。前提是所有管脚已经被定义成输 出了(OUT)如果被定义成了输入,则上次的指令虽然也能运行,但运行后丝毫不能改变 管脚电平高低,因为此时管脚是输入状态,电平取决于外部输入,指令无法改变。在 PIC 单片机系列中,改变 I/O 口的输入输出依靠写入寄存器 TRIS 的值,相应位写 0,表 示对应管脚被定义成了输出,写 1,就是输入。 现在假

16、如预把 GP1、GP2 管脚定义成输出,其他脚全是输入。那就应该向 TRIS 寄存器写入 二进制数 11111001,换算成十六进制就是F9H.依照以前我们学到的知识,在 PIC 系列单片机里, 本来应该用下列的语句来完成我们的设定:MOVlw0F9H常数进 W以字母开头的常数前面必须加 0 MOVwfTRISA把 W 内的数复制到 TRIS实际上PIC系列的单片机也都是这么写的,后面加的A,表示第一个8 位的口(有的单片机不仅 一个口,还有好几个 8 位的 I/O 口如 TRISBTRISCTRISD 等等) .但是,记住了,PIC12 系列的单片机必须改写成为:MOVlw0F9H常数进 W以字母开头的常数前面必须加 0 trisGPIO把 W 内的数复制到

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号