前段时间,小弟闲逛,偶发现一论坛,一前辈讲pic系列,讲得那个通俗啊!估计识字的都能看的懂,好东西不敢独享,拿出来与大家分享,未经作者同意擅自转载,请作者谅解,不过既然前辈那能这么无私,我这样也不为过吧,呵呵!
闲话少说,上菜了!
单片机入门不难------谈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位二进制数据(最大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
一周热门 更多>