当前位置:文档之家› 单片机测速

单片机测速

用单片机设计动态输入范围的PWM A/D转换器时间:2010-02-06 来源:未知编辑:电气自动化技术网点击:202次字体设置: 大中小1 COP820CJ芯片介绍COP820CJ是美国国家半导体公司生产的一款8位单片机,它内含64字节RAM和1k字节ROM,并带有24个I/O口,时钟频率为10MHz,工作电压为2.5~6.0V。

COP820 CJ具有多输入唤醒(MIWU)、低压复位保护、片上模拟比较器和低电磁辐射设计等功能,其I/O口可编程为三态、推挽输出、弱上拉输入等类型。

COP820CJ的端口分为L/I/D/G四类。

其中I口为4位输入端口,D口为4位输出端口,G口有6位I/O口和2位输入口,L口为8位I/O口。

同时L口也是芯片的唤醒端口,其中L1和L2又是比较器输入口,L3又是比较器输出口。

L口配有数据寄存器(LDATA[0DOH])和配置寄存器(LCONF [0D1H]),两寄存器可共同决定该端口的状态。

具体关系见表1所列。

COP820CJ的片上RAM、端口、寄存器均可映射到00H~FEH的数据内存空间,其中C0~CFH段主要是唤醒及用看门狗控制寄存器,D0~DFH段有8个端口类寄存器,E0~EFH段为计时器和系统寄存器。

00~2FH及F0~FFH为RAM地址。

其中,F0~FEH段可用作寄存器,并包括B地址寄存器[FCH]、X地址寄存器[FEH]和SP堆栈指针[FDH]三个专用寄存器。

2 COP820CJ的工作原理2.1基本原理利用COP820CJ的片上模拟比较器和脉冲宽度调制方式可以构成由软件调控且输入范围可变的A/D转换器。

其工作原理图见图1所示。

图中,L1和L2为比较器输入端,当电容电压小于输入电压时, L3端输出高电平脉冲。

反之,L3输出低脉冲,并对低脉冲减1计数。

电路中的输入电压可通过L1、L2之间并联的两个背向二极管对电容C1快速充放电,以使两者电位迅速接近。

比较器允许的输入电压为0.4V~V CC-1.5V(此时电容电压与充电、放电时间之间为近似线性关系),实际输入电压范围可能要更小一些。

因此,可以通过设定高低脉冲的参数使电容电压始终保持在测量范围之内。

若电源为5V,时钟频率为10MHz,脉冲周期为24个,即2.4μs,输入电压范围是1.0V~3.3V。

那么,可以设置高脉冲为先低8个时钟,再高16个时钟;设置低脉冲为先高5个时钟,再低19个时钟。

这样,如果L3始终输出高脉冲,电容电压V H将近似为V CC×16/24=3.30V;如果L3始终输出低电平,电容电压V L则近似为V CC×5/24=1.04V。

进行A/D转换时,L3可根据比较结果输出高低脉冲,当脉冲数足够多时,计数器的值即代表了输入的电压值,并可用下式表示:其中,N TON为计数器的值,N TOTAL为总脉冲数。

2.2转换时间及分辨率由于脉冲周期为2.4μs,若脉冲总数为100,那么,进行两次计数的转换时间近似为2.4×100×2=480μs。

当输入为高速变化的信号时,只需减少脉冲总数即可。

如脉冲总数为100,输入电压为1.0~3.3V,则分辨率为23mV。

为提高分辨率,可先对输入信号进行粗测,然后调整高低脉冲的占空比,以使对应电压略超出测量结果的上下限值,这样即可获得更高的分辨率。

3 软件设计图2所示是用COP820CJ设计的A/D转换器的工作软件流程图。

其中,控制寄存器2(CNTRL2[CC])的第三位是比较器允许位,第四位为比较器输出。

X指令为交换两寄存器中的数据。

“SBIT(RBIT)i,n”指令为将n寄存器的第i位置1(0)“IFBITi,n”指令在n寄存器的第i位为1时执行下一条指令,否则跳过。

“DRSZn”指令的作用是先将寄存器n的值减1,如结果非零,则执行下一条指令,否则跳过。

要保证脉冲周期为24个时钟,必须精确计算指令周期。

其指令周期的时钟数分别为:用89C51和8254-2实际步进式PWM输出时间:2010-02-05 来源:未知编辑:电气自动化技术网点击:176次字体设置: 大中小引言脉宽调制(PWM)技术最初是在无线电技术中用于信号的调制,后来在电机调速中得到了很好的应用。

本设计中要求输出PWM从1Hz~3kHz 步进式递增,单步为1Hz。

由于89C51的时钟最大能取24MHz,单指令周期为0.5μs,计数频率为×10 6Hz。

当输出2999Hz和3000Hz时,若采用89C51内部计数器来计数,根本无法区别。

因为计数频率为2MHz,单指令周期0.5μs,而要输出2999Hz时,计数应为666.889;输出3000Hz 时,计数诮为666.887。

因此在本设计中,采用外部定时器/计数器8254-2。

因为8254-2最高计数频率可达10MHz,能满足以上设计的要求,另外采用8254-2的工作方式3可输出方波。

当定时器/计数器8254-2以方式3工作时,在计数的过程中输出有一半时间为高,另一半时间为低。

所以,若计数值为N,则其输出在前N/2时可输出高电平,后N/2时可输出低电平,不需要用软件来控制高低电平的转换,但8254-2计数范围有一定的限制,在采用二进制计数时,范围为0000~9999,最大计数为10 000。

此外,为了使分辨率达到要求,还需要考虑程序指令所占用的时间,尤其是在输出高频时,分辨率尤为重要。

1 硬件设计1.1 8254可编程定时器/计数器[1]简介Intel公司的8254是8253的改进型,操作方式及引脚与8253完全相同。

它的改进主要反映在2方面:①8254的计数频率更高,可由直流至6MHz;8254-2可高达10MHz。

②8254多个1个读回命令(写至控制器的寄存器),其格式如图1所示。

这个命令可以令3个通道的计数器都锁存(8253要3个通道的计数值都锁存,需写入3个命令)。

另外,8254中的每个计数器都有1个状态字可由读回命令令其锁存,然后由CPU读取。

状态字的格式如图2所示。

其中D5~D0即为写入此通道的控制字的相应部分。

D7反映了该计数器的输出引脚。

输出(OUT)为高电平,D7=1;输出为低电平,D7=0。

D6反映时间常数寄存器中的计数值是否已经写入了计数单元中。

当向通道写入控制字以及计数值后,状态字节中的D6=1;只有当计数值写入计数单元后,D6=0。

本设计选择8254-2的方式3工作。

方式3是一种方波速率发生器。

在这种方式中,当CPU设置控制字后,输出将为高,在写完计数值后就自动开始计数,输出保持为高;当计数到一半计数值时,输出变为低,直至计数到0,输出又变高,重新开始计数。

若在计数期间写入个新的计数值,并不影响现行的计数过程。

但是若在方波半周期结束前和新计数值写入后收到GATE脉冲,计数器将在下一个CLK脉冲时装入新的计数值并以这个计数值开始计数。

否则,新的计数值将在现行半周期结束时装入计数器。

1.2 PWM输出的硬件设计本设计选用可编程定时器/计数器8254-2,其最高计数频率可达10MHz;充分利用8254-2的3个定时器/计数器,采取频率的分频输出,并且不需要外部的信号源输入,硬件电路简化;通过软件的处理可以实现连续(1Hz~3kHz)PWM波的输出。

本设计中将要输出的PWM波分为3段,分别由8254-2中的3个定时/计数器输出,门控由P2.2、P2.3、P2.4分别加以控制。

在1~20Hz的输出时,采用定时器0,计数频率为10 4Hz,最大计数为10 4,最小计数为500符合要求,21~200Hz的输出中,采用定时器1,计数频率为10 5Hz,最大计数为4762,最小计数为500;在201Hz~3kHz 的输出中,采有定时器2,计数频率为10 7Hz,最大计数为49 751,满足二进制计数的范围,最小计数为3333。

这些计数值可由单片机89C51[2]送给8254-2的数据输入端,通过除法运算来得到这些计数值,由除法运算得到商。

所得到的商去程序指令占用的时间即为所需要的;送上次计算出来的这中。

比较余数中。

假设程序指令所,即为,中作中的内容作为除法运算中的除数,调用除法运算子程序,将所得的商中。

比较余数是否大于除数的一半,若大于除的一半则所得的商加、中作为中的内容作为除法运算中的除数,调用除法运算子程序,将所得的商送,,即则当程序因干扰PWM单片机控制直流无刷电动机驱动及接口电路时间:2012-03-17 来源: 编辑:电气自动化技术网点击:367次字体设置: 大中小单片机控制直流无刷电动机驱动及接口电路图1示出采用8751单片机来控制直流无刷电动机的原理框图。

8751的P1口同7406反相器联结控制直流无刷电动机的换相,P2口用于测量来自于位置传感器的信号H1、H2、H3,P0口外接一个数模转换器。

图1 直流无刷电动机计算机控制原理图换相的控制根据定子绕组的换相方式,首先找出三个转子磁钢位置传感器信号H1、H2、H3的状态,与6只功率管之间的关系,以表格形式放在单片机的EEPROM中。

8751根据来自H1、H2、H3的状态,可以找到相对应的导通的功率管,并通过P1口送出,即可实现直流无刷电动机的换相。

起动电流的限制主回路中串入电阻R13,因此Uf=R13*IM,其大小正比于电动机的电流IM。

而Uf和数模转换器的输出电压U0分别送到LM324运算放大器的两个输入端,一但反馈电压大于Uf大于来自数模转换的给定信号U0,则LM324输出低电平,使主回路中3只功率管VF4、VF6、VF2不能导通,从而截断直流无刷电动机定子绕组的所有电流通路,迫使电动机电流下降,一旦电流下降到使Uf小于U0,则LM324输出回到高电平。

主回路又具备导通能力,起到了限制电流的作用。

转速的控制在直流无刷电动机正常运行的过程中,只要通过控制数模转换器的输出电压U0,就可控制直流无刷电动机的电流,进而控制电动机的电流。

即8751单片机通过传感器信号的周期,计算出电动机的转速,并把它同给定转速比较,如高于给定转速,则减小P2口的输出数值,降低电动机电流,达到降低其转速的目的。

反之,则增大P2口的输出数值,进而增大电动机的转速。

PWM控制的实现转速控制也可以通过PWM方式来实现。

图2和图3为PWM控制实现直流无刷电动机转速的控制。

图2PWM控制原理图图3PWM控制原理图直流无刷电动机的正转反转,通过改变换相次序来改变其转动方向。

具体做法只需要更换一下换相控制表。

单片机在可编程直流稳压电源中的设计时间:2012-02-14 来源: 编辑:电气自动化技术网点击:483次字体设置: 大中小目前,市场上各种直流电源的基本环节大致相同,都包括交流电源、交流变压器、整流电路、滤波稳压电路等。

相关主题