您当前的位置:五五电子网电子知识单片机-工控设备综合-其它PIC16C84单片机介绍 正文
PIC16C84单片机介绍

PIC16C84单片机介绍

点击数:7396 次   录入时间:03-04 11:51:34   整理:http://www.55dianzi.com   综合-其它
U U U U U U U U U R/P R/P R/P R /P R/P

- - - - - - - - - CP PWRTE WDTE FOSC 1 FOSC0 bit 13 bit0

图4-10 PIC16C84的配置寄存器

 

7-3 写EEPROM数据存储器

与写EEPROM的数据单元、用户必须首先写地址到EEADR寄存器,再送数据到EEDATA,最后用户必须跟着一个专门的序列起动写。例如:下面这段程序是写EEPROM的程序。 ? ? BSF STATUS, RPO ;选择1块

BCF INTCON,GIE ;关闭所有INT中断

MOVLW 55H ;

MOVWF EECON2 ;写55H

MOVLW AAH;

MOVWF EECON2;写AAH

BSF EECON1,WR;置WR位为1,开始写

BSF INTCON,GIE;允许INT中断。

如果这个程序(即先写55H 到EECON2,再写AAH到EECON2,然后置WK=1)未跟有严格的时间,写将不能启动。我们建议在执行这几条指令期间关闭中断。

此外,EECON1中的WREN位必须选置成1,允许写。这样的机构防止了因错误指令的执行而写数据EEPROM。用户在所有的时间应保持WREN位为0,除了当要热修改EEPROM以外。

写序列开始以后,清0WREN位不影响这次写周期。从开始设置,直到WREN=1为止WR位将被禁止。当完成了写周期以后,WR位由硬件清0。写完成中断标志EEIF被置1,EEIF必须由软件将其清0。注意数据EEPROM存储器E/W周期可能偶然超过10ms,为确保写周期的完成,用户使用的EE中断或查询WR位(EECON1<1>)。这两个均可用来判断写周期的完成。

除了上述提到的防止错误的写数据EEPROM外,在电源刚加电期 间的72ms内也防止写EEPROM数据存储器。

八 CPU专门的特征

微控制器为其它处理器的区别是有专门的电路,这些电路涉及实时应用的需要。PIC16C84具有最大的系统可靠性,最低的价格,最少的外部元件,提供了低功能操作模式和代码保护。

PIC16C84具有看门狗计时器,此计时器只可经配置位来关闭,为了增加其可靠性,关闭它的RC振荡器。有两个计时器提供加电时需要的延时。振荡器起振计时器(OST)保持芯片在复位状态直到石晶稳定为止。另外一个是加电计时器(POWER-UP Timer(PWRT))它提供了 固定的72ms的延时。这样保证了器件复位以及电源的可靠供电,用了这两个计时器,使多数应用不需要外接复位电路。

SLEEP方式提供了低功耗方式。用户可经外部复位;看门狗计时器溢出;中断来唤醒芯片。

8-1配置位

配置位分为可编程的位,读作0,不可编程的位,读作1。通过可编程的位来选拔各种配置。这些位映象到程序存储器的2007H单元。注意地址2007H不等于用户程序存储器空间。事实上,它属于专门的测试 /配置存储空间(2000H~3FFH),只有在编程时可以访问。图4-10 是配置寄存器的结构(附后)

其中Fosc<1或0>为振荡器选择位。

11:选RC振荡器

10:选HS振荡器

01:选XT振荡器

00:选CP振荡器

WDTE是看门狗允许与禁止的选择位。此位为1,允许看门狗工作。此位为0禁止看门狗工作。

PWRTE是加电计时器允许与禁止的选择。此位为1,加电计时器允许工作,为0则禁止工作。

CP是代码保护的选择,此位为1代码保护取消,这一位为0,所有程序存储器的代码被保护。其余位是不执行的。读作1。

有关振荡器的配置,振荡器的选择与连接电路与PIC16C6X系列相同。

8-2中断

PIC16C84具有4个中断源。即外部中断RBO/INT引脚上的中断,TMR0溢出中断;PORTB改变中断(RB7:RB4);EEPRDM写完成中断。

中断控制寄存器(INTCON在其标志位,记录了每一个中断请求。它也包括了每个中断的允许/禁止位。所有中断的允许/禁止位(IN TCON<7>),它就开放所有中断或禁止所有中断。从中断返回指令RETFLE返回时,退出中断,并置GIE=1,重新开放所有中断。RBO/INT引脚中断,RB端口改变中断和TMRO溢出中断,这些中断的中断标志在INTCON寄存器中。

当中断的响应时,GIE位被清0,关闭任何新的中断,返回地址被压入堆栈,用0004H装入PC。对于外部中断文件,如RBO/INT引脚或PORTB改变中断,这类中断需3到4个指令周期。严格的时间,取决于中断事件的发生。一旦在中断的中断服务程序中可以通过查询中断标志位来确定中断源。中断的标志位应在重新开发这个中断之前,经软件将其清0。

注意:

①每一个中断的标志位被置位,而与它相应的屏蔽位或GIE无关。

②如果中断发生,而全部中的允许位GIE假设本是清0的,GIE可能被用户中断服务程序的RETFIE指令无意之间连成1。这种事情可能发生在

a、在中断被响应时,指令清0GIE位。

b、程序分支到中断向量并执行中断服务程序。

c、中断服务程序执行RETFIE指令而完成。这会引起GIE位被置1(允许中断)。同时程序返回中断关闭后的指令(实际上由于上述原因引起中断未能关闭)。为确保GIE清0,应有如下一段程序。

l00p BGF INT CON,GIE:关闭全部中断

BTFSC INTCON,GIE;全部中断允许位被关闭了吗?

GOTO l00P;没有返回到l00p,再清0GIE,否则程序继续。

1.INT中断

在RBO/INT上的外部中断是边沿触发。如果INTEDG位(OPTION <6>)是置1,则上升沿有效,如果INTEDG位被清0,则下降沿有效。当有效跳变出现在RBO/INT引脚上时,INTF位(INTCON<1>)被置1。清0INTE控制位(INTCON<4>),关闭这个中断。INTF在重新允许这个中断之前应由中断服务程序中的软件来清0这一位。在芯片进入SLEEP之前,如果INTE位被置1,则INT中断发生后可唤醒芯片。GIE位的状态决定了处理器被唤醒后是否分支到中断向量。

上一页  [1] [2] [3] [4] 


本文关键字:单片机  综合-其它单片机-工控设备 - 综合-其它