EDN首页   博客首页

日志档案

发表于 2007-1-20 22:18:11

15

标签: 西谱电子  SP9608  PIC开发板  

PIC18F的CCP模块的捕捉模式实现电机测速的方法


在捕捉模式下,当对应的CCPx 引脚上有事件发生时,CCPRxH:CCPRxL 寄存器对将捕捉TMR1 寄存器或TMR3 寄存器的16 位值。事件定义为下列情况之一:

每个下降沿

每个上升沿

4 个上升沿

16 个上升沿

u        通过模式选择位CCPxM3:CCPxM0CCPxCON<3:0>)选择事件类型。当一个捕捉发生时,中断请求标志位CCPxIF 1,它必须用软件清零。如果在读取寄存器CCPRx 之前发生了另一个捕捉,那么之前捕捉的值将被新捕捉的值覆盖。

u        在捕捉模式下,应该通过将相应的TRIS 方向位置1 来将CCPx 引脚配置为输入

注: 如果RB3/CCP2 RC1/CCP2 引脚被配置为输出,对该端口的写操作会产生捕捉条件。

u        用于捕捉功能的定时器(Timer1 / Timer3)必须运行在定时器模式或同步计数器模式。在异步计数器模式下,无法进行捕捉操作。用于每个CCP 模块的定时器由T3CON 寄存器选择。

u        当捕捉模式改变时,可能会产生错误捕捉中断。用户应该保持CCPxIE 中断使能位清零,以避免错误中断。还应该在工作模式发生任何改变之后清零中断标志位CCPxIF

u        在捕捉模式下有4 种预分频比值设置,它们可作为工作模式的一部分由模式选择位(CCPxM3:CCPxM0)选择。每当关闭CCP 模块或禁止捕捉模式时,预分频计数器就将被清零。这意味着任何复位都将清零预分频计数器。

下面是在SP9608-PIC单片机增强型开发板调试的直流电机测速实验源程序,将RC2/CCP1引脚设置为输入引脚,由光电传感器将电机运行的速度转换成脉冲信号加到RC2/CCP1引脚上,程序中启动CCP模块的捕捉功能来测量脉冲信号的周期,通过计算换算成电机运行的速度值在数码管上显示出来。

测试硬件环境:         SP9608-PIC单片机增强型开发板        1

                                     SP-PICmicro-ICD2在线调试器             1

                                     PIC18F4520单片机                                1

                                     5.9V的微型直流电机                             1

                                     光电传感器                                             1

                                     实验导线                                                 若干

测试软件环境:         MPLAB7.50集成开发环境

                                     MCC18编译器

网址:                         www.supermcu.com

详细的源程序见:www.supermcu.com/yc_info.asp?id=372

系统分类: 单片机   |   用户分类: PIC单片机   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(1302)    回复(2)  

投一票您将和博主都有获奖机会!

  • supermcu

    2007-5-27 9:16:56

    PIC单片机可以输出两路不同长度的PWM信号,但对于步进电机来说,不建议采用PWM模式来控制.

  • wxy

    2007-5-26 12:29:37

    你好,可以用一片pic同时输出两路不同长度的脉冲给步进驱动器,控制两个步进电机吗?