第2章 PIC16F87X系列单片机.ppt

  1. 1、本文档共158页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 PIC16F87X系列单片机

图2.32 端口E引脚结构 图2.33 方向寄存器TRISE 表2.26 端口E的功能 表2.27 与端口E有关的寄存器 2.8.6 并行从动端口 在PIC16F877(A)/874(A)中,端口D除可以作为一般的双向I/O口外,还可以用作8位的从动并行端口。当TRISE寄存器中的D4位(PSPMODE)置l时,端口D就工作在从动并行端口方式(微处理机端口方式)。这时,端口E的三根引脚I/O线RE0、RE1和RE2分别成为从动并行口PORTD的三根控制线:读操作 、写操作 和片选 。但这时相应方向TRISE寄存器的D2:D0必须置为“111”,以使RE2:RE0成为输入线。A/D控制器寄存器1(ADCON1)的PCFG3:PCFG0设置为1。 利用从动并行端口PORTD可直接与8位微控制器的数据总线相接口,这时该微控制器可以把PORRTD作为一个数据锁存器来读写。 图2.34 并行从动端口引脚结构 并行从动端口由PORTD和PORTE两个端口构成。在PORTD口中,实际上有二个8位锁存器,分别用于数据输入(写操作)和数据输出(读操作)。当写操作时,用户把8位数据写入PORTD数据锁存器,读操作则是从PORTD引脚锁存器读入数据。需要注意的是这两个不同的物理锁存器的逻辑地址相同。 从动端口的写/读 图2.35和图2.36分别给出了从动端口写和读时序。 一旦检测到/CS和/WR同时为低,开始写从动端口。当/CS或/WR 任一引脚变为高,输入缓冲器满标志位IBF置位,即表示写操作完成。IBF标志位只有通过读端口D输入锁存器来清除。当前一数据还没有读走,第二个数据又写入从动端口,前者就被覆盖,同时输入缓冲器溢出标志位IBOV(TRISE的D5)置位(必须通过软件清除)。 CPU写入数据到PORTD等待外部总线读时,输出缓冲器满OBF标志位(即TRISE寄存器中的D6)被置为“1”。一旦检测到/CS和/RD 同时为低,开始读从动端口,输出缓冲器满(OBV) 标志位(TRISE的D7)立即复位,即表示端口D的锁存器等待外部总线读。当/CS或/RD任一引脚变为高,即表示读操作完成。OBF低电平保持到下一个数据写入到端口D。 当读或写操作完成,产生中断,PSPIF标志位置1。标志位一旦置位,需要用软件清零。 从动端口的写/读时序 §2.9 中断组织 PIC16F87X系列单片机可以接收多达14中断源。中断控制器寄存器INTCON标记着各个中断源的请求。对各个中断设置了屏蔽位,对总的中断设置了总的屏蔽位。 2.9.1 中断源 PIC16F87X系列的中断包含有: TMR0溢出中断(T0IF) 外部中断(INTF) 端口B变化中断(RBIF) 并行从动端口中断(PSPIF) A/D变换中断 USART异步接收中断(RCIF)和异步发送中断(TXIF) 同步串行端口中断(SSPIF) CCP1中断(CCP1IF) TMR2中断(TMR2IF) TMR1中断(TMR1IF) CCP1中断(CCP2) E2PROM中断(EEIF) 总线碰撞中断(BCLIF) 各个中断时采用查询方式进行,即当CPU响应中断时,实现要通过查询中断标志位去判断是谁产生中断请求,然后执行相应的中断服务程序。 图2.37 PIC16F87X系列单片机的中断逻辑 中断现场保护是中断技木一个很重要的组成部份。在中断期间,只有地点地址PC值自动保存在堆栈中,对其它一些装有主要数据的寄存器(如W寄存器、状态寄存器STATUS),且需要用软件写入RAM中,实现现场保护。 对于主要的寄存器(如W寄存器、状态寄存器STATUS),有与之对应的暂时寄存器(如W_TEMP、STATUS_TEMP),地点现场保护往往采用这种技术。暂时寄存器开辟在存储体的RAM中。 2.9.2 中断的控制 中断现场保护是中断技木一个很重要的组成部份。在中断期间,只有地点地址PC值自动保存在堆栈中,对其它一些装有主要数据的寄存器(如W寄存器、状态寄存器STATUS),且需要用软件写入RAM中,实现现场保护。 对于主要的寄存器(如W寄存器、状态寄存器STATUS),有与之对应的暂时寄存器(如W_TEMP、STATUS_TEMP),地点现场保护往往采用这种技术。暂时寄存器开辟在存储体的RAM中。 2.9.3 中断现场的保护 对PIC16F873(A)/874(A),W_TEMP寄存器必须定义在存储体0和存储体1,也必须定义与存储体基址具有相同的偏移量,如W_TEMP在存储体0定义在0x20,在存储体1必须定义在0xA0。寄存器PCLATH_TEMP和STATUS_TEMP定义在存储体1。 对PIC16F876(A)/877(A),每个存储体的最上16个字节是共用的,就将暂时保存寄存

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档