创建博客 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Dragonfly

人生若只如初见

 
 
 

日志

 
 
关于我
文章分类
LOFTER精选

C8051f单片机的PCA模块  

2010-07-11 18:18:14|  分类: 默认分类 |  标签: |举报 |字号 订阅

PCA(可编程计数器阵列Programmable Counter Array)可编程计数器阵列(PCA0)提供增强的定时器功能,与标准8051计数器/定时器相比,它需要较少的CPU干预。由高字节(PCA0H)和低字节(PCA0L)组成。在读PCA0L 的同时自动锁存PCA0H 的值,先读PCA0L 寄存器将使PCA0H 的值得到保持(在读PCA0L 的同时),直到用户读PCA0H 寄存器为止。读PCA0H 或PCA0L 不影响计数器工作。PCA0MD 寄存器中的CPS2-CPS0 位用于选择PCA 计数器/定时器的时基信号。
  CPS2 CPS1 CPS0 时间基准
  0 0 0 系统时钟的12 分频
  0 0 1 系统时钟的4 分频
  0 1 0 定时器0 溢出
  0 1 1 ECI 负跳变(最大速率 = 系统时钟频率/4)
  1 0 0 系统时钟
  1 0 1 外部振荡源8 分频(与系统时钟同步)
  1.工作原理:当计数/定时器溢出时,PCA0MD中的计数器溢出标志(CF)被置为1,并产生中断请求(如果CF 中断被允许)。将PCA0MD 中ECF 位设置为逻辑1 即可允许CF 标志产生中断请求。当CPU 转向中断服务程序时,CF 位不能被硬件自动清除,必须用软件清0。(注意:要使CF 中断得到响应,必须先总体允许PCA0 中断。通过将EA 位(IE.7 )和EPCA0 (EIE1.3 )设置为逻辑1 来总体允许PCA0 中断。清除PCA0MD寄存器中的CIDL 位将允许PCA 在微控制器内核处于等待方式时继续正常工作。
  位7: CF: PCA 计数器/定时器溢出标志
  当PCA0 计数器/定时器从0xFFFF 到0x0000 溢出时由硬件置位。在计数器/
  定时器溢出(CF) 中断被允许时,该位置1 将导致CPU 转向CF 中断服务
  程序。该位不能由硬件自动清0, 必须用软件清0
  位6: CR: PCA0 计数器/定时器运行控制
  该位允许禁止PCA0 计数器定时器
  0: 禁止PCA0 计数器定时器
  1: 允许PCA0 计数器定时器
  位5: 未用读=0b 写=忽略
  位4: CCF4 PCA0 模块4 捕捉/比较标志
  在发生一次匹配或捕捉时该位由硬件置位。当CCF 中断被允许时,该位置1
  将导致CPU 转向CCF 中断服务程序。该位不能由硬件自动清0 必须用软件
  清0
  位3: CCF3: PCA0 模块3 捕捉/比较标志
  在发生一次匹配或捕捉时该位由硬件置位。当CCF 中断被允许时该位置1
  将导致CPU 转向CCF 中断服务程序。该位不能由硬件自动清0 ,必须用软件
  清0
  位2: CCF2: PCA0 模块2 捕捉/比较标志
  在发生一次匹配或捕捉时该位由硬件置位。当CCF 中断被允许时该位置1
  将导致CPU 转向CCF 中断服务程序。该位不能由硬件自动清0 ,必须用软件
  清0
  位1: CCF1: PCA0 模块1 捕捉/比较标志
  在发生一次匹配或捕捉时该位由硬件置位。当CCF 中断被允许时该位置1
  将导致CPU 转向CCF 中断服务程序。该位不能由硬件自动清0 ,必须用软件
  清0
  位0: CCF0: PCA0 模块0 捕捉/比较标志
  在发生一次匹配或捕捉时该位由硬件置位。当CCF 中断被允许时该位置1
  将导致CPU 转向CCF 中断服务程序。该位不能由硬件自动清0 ,必须用软件
  清0
  PCA0MD:PCA发生选择寄存器
  CIDL - - - CPS2 CPS1 CPS0 ECF 00000000
  位7 位6 位5 位4 位3 位2 位1 位0 SFR地址
  0xD9
  位7: CIDL: PCA0 计数器/定时器等待控制
  规定CPU 等待方式下的PCA0 工作方式
  0: 当系统控制器处于等待方式时,PCA0 继续正常工作
  1: 当系统控制器处于等待方式时,PCA0 停止工作
  位6-4 :未用读=000b 写=忽略
  位3-1: CPS2-CPS0 PCA0 计数器/定时器脉冲选择
  位0: ECF: PCA 计数器/定时器溢出中断允许
  该位是PCA0 计数器/定时器溢出CF 中断的屏蔽位
  0: 禁止CF 中断
  1: 当CF(PCA0CN.7) 置位时允许PCA0 计数器/定时器溢出中断请求
  PCA0CPMn 地址 PCA0CPM0 0xDA(n=0)
  PCA0CPM1 0xDB(n=1)
  PCA0CPM2 0xDC(n=2)
  PCA0CPM3 0xDD(n=3)
  PCA0CPM4 0xDE(n=4)
  位7: PWM16n: 16 位脉冲宽度调制允许
  当脉冲宽度调制方式被允许时(PWMn = 1), 该位选择16 位方式
  0: 选择8 位PWM
  1: 选择16 位PWM
  位6: ECOMn: 比较器功能允许
  该位允许禁止PCA0 模块n 的比较器功能
  0: 禁止 1: 允许
  位5: CAPPn: 正沿捕捉功能允许
  该位允许禁止PCA0 模块n 的正边沿捕捉
  0: 禁止 1: 允许
  位4: CAPNn 负沿捕捉功能允许
  该位允许禁止PCA0 模块n 的负边沿捕捉
  0: 禁止 1: 允许
  位3: MATn 匹配功能允许
  该位允许/禁止PCA0 模块n 的匹配功能.如果被允许,当PCA0 计数器与一
  个模块的捕捉比较寄存器匹配时,PCA0MD 寄存器中的CCFn 位置位
  0 :禁止
  1: 允许
  位2: TOGn 电平切换功能允许
  该位允许/禁止PCA0 模块n 的电平切换功能.如果被允许,当PCA0 计数器
  与一个模块的捕捉/比较寄存器匹配时,CEXn 引脚的逻辑电平切换.如果
  PWMn 位也被置为逻辑1, 则模块工作在频率输出方式
  0: 禁止
  1: 允许
  位1: PWMn 脉宽调制方式允许
  该位允许/禁止PCA0 模块的PWM 功能.如果被允许,CEXn 引脚输出脉冲
  宽度调制信号.如果PWM16n 为逻辑0, 使用8 位PWM 方式;如果PWM16n
  为逻辑1, 使用16 位方式;如果TOGn 位也被置为逻辑1 ,则模块工作
  在频率输出方式
  0: 禁止
  1: 允许
  位0: ECCFn 捕捉比较标志中断允许
  该位设置捕捉比较标志CCFn 的中断屏蔽
  0: 禁止CCFn 中断
  1: 当CCFn 位被置1 时允许捕捉比较标志的中断请求
  3.捕捉/比较模块的工作方式:
  边沿触发捕捉、软件定时器、高速输出、频率输出、8位脉宽调制器和16位脉宽调制器
  评论这张
 
阅读(1880)| 评论(0)
推荐 转载

历史上的今天

最近读者

热度

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2014