PIC 8位单片机的分类和特点

PIC 8位单片机的分类和特点,第1张

  PIC系列单片机品种虽多,但各产品内部硬件资源的数据存储器设置仍是很有规律的。笔者以PIC16C71A和PIC16C63/65/65A两个品种为实例,查看它们片内数据存储器的结构,找出它们的特点并说明某些寄存器的主要功能,以供用户快速编程。表1和表2分别是PIC16C71A和PIC16C63/65/65A产品片内数据存储器的资源表,其它系列产品的片内数据存储器结构的资源与表1、表2资源都很相似,其差别仅仅是片内功能部件的种类和数量不同(PIC16C57/58单片机有4个存储体)。笔者从下述几个方面介绍表1和表2的特点和主要功能。

  1、统一编址

  型号不同的PIC单片机,其数据存储器的内部资源仅仅是功能种类和多少的不同。如PIC16C71A型,其引脚为18脚,主要功能是带有8位的A/D转换部件,有4个A/D通道模拟输入,所以在表1中与其A/D转换部件有关的专用寄存器ADRES(用于存放A/D转换的数值结果)、A/D控制寄存器ADCON0(用于控制A/D转换器的 *** 作)和A/D控制寄存器ADCON1(用于控制选择A/D引脚的功能)等。对PIC16C65/65A型,其引脚是40脚的,其功能比PIC16C71A单片机强,因而数据存储器表2中的专用寄存器的种类就比表1的增加了很多。

  专用寄存器的每个寄存单元都有相对应的固定用途,它们可分成两类:一类用于供CPU *** 作(如INDF和FSR、STATUS、PCL……);另一类用于控制外围功能芯片的 *** 作。

  学习PIC单片机数据存储器时,不仅要了解各寄存器单元的功能,而且还应在编制程序时会调用它们完成编程目的。下面笔者将以编程实例说明它们的用途。

  2、间接寻址寄存器INDF和FSR 位于PIC单片机数据存储器的最顶端、地址00单元(地址码最小)的间接寻址寄存器INDF是一个空的寄存器。它只有地址码,在物理上不是一个真正的寄存器。它的功能常常与寄存器FSR(又称寄存器选择寄存器)配合工作,实现间接寻址目的。初学专用寄存器INDF和FSR时,记住下述的逻辑关系对编程是有帮助的:使用寄存器INDF的任何指令,在逻辑上都是对寄存器FSR所指向的RAM进行访问,即对INDF(本身)进行间接寻址(访问),读出的应是FSR内容。以下的一个简单程序是用间接寻址方式清除RAM地址20h~2Fh单元寄存器内容的实例。

  MOVLW 0x20 ;20h→w,对指向RAM单元的指针

  ;初始化

  MOVWF FSR ;20h→FSR,FSR指向RAM

  LOOP CLRF INDF ;清除INDF,即清除FSR内容所指

  ;向的单元20h→2Fh

  INCF   FSR ;(指针)FSR内容加1

  BTFSS FSR,4;判别(指令)FSR的D3位,若为零

  ;执行下条循环指令;若为1间跳

  ;执行。

  GOTO LOOP;跳转到LOOP(循环)

  CONTINUE…    ;已完成功能,继续执行程序

  由上述指令看出,因寄存器INDF和FSR的配合工作,达到了对RAM地址20h~2Fh的寄存器清零目的。由于完成上述功能的指令数很少,这就会简化指令系统,使PIC单片机的指令集得以精简。

  说明:上述各条指令易于看懂,所以无需再复述,但其中的一条判别指令“BTFSS FSR,4”比较关键。该条指令是保证题设中要选择RAM地址单元上限值2Fh时,其对应的二进制数为00101111B,此时FSR的第4位恰为1。所以上述指令中用了一条判断指令;BTFSS FSR,4,判断FSR的D3位值是否为1,若不为1而为0,则执行下条循环指令GOTO LOOP,使FSR中的地址不断加1,直到寄存器FSR的D3位为1时,这时它的内容代表的RAM地址恰为2Fh。

  由此可见,学习PIC单片机数据存储器中的专用寄存器时,不必要对每个产品的专用寄存器进行学习,只需先学习它们的共同点,然后选中一个产品型号的专用寄存进行详细分析,有条件时进行必要的相关指令 *** 作,就能完全掌握单片机技术。

  

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2527745.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存