你好,怎么通过单片机读取编码器脉冲数的c语音程序?

设计技术&&
|||||||||||||||
||||||||||||
&&基于LabVIEW的电机转速监测系统的设计
基于LabVIEW的电机转速监测系统的设计
时间: 13:59:04&&&&&&来源:电子设计工程
LabVIEW是美国国家仪器司(National Instrument)开发的一种虚拟仪器平台,是一种用图标代码来代替文本式编程语言的开发工具。其通过在表示不同功能节点的图标之间连线来完成上位机的程序,在这一点上,其完全不同于以往基于文本的传统开发语言。LabVIEW功能强大、操作灵活,使用图形化的编程语言,大幅节省了程序的开发周期,且其运行速度不受影响,体现出较高的效率,被广泛应用于自动测量系统、工业过程自动化、实验室仿真等领域。以往利用LabVIEW设计数据采集监测系统时,通常采用数据采集卡进行前端信号的采集,但是其价格昂贵。文中设计了一种基于LabVIEW和STC12系列单片机的电机转速监测系统,不仅节约了设计成本,且系统操作简便,稳定可靠,满足电机的测速要求。1 系统的总体方案设计系统由上位机和下位机组成。下位机采用STC12C5410AD单片机作为主控芯片,绝对式光电编码器的脉冲输出信号通过信号调理电路后送至单片机,单片机通过自带的脉冲捕获模块,接受连续的编码器脉冲信号并计算电机转速;上下位机采用RS-232串行接口进行通信,将转速计算值传送到上位机LabVIEW,通过LabVIEW对转速值进行实时处理、显示和保存。基于LabVIEW的电机转速监测系统总体方案如图1所示。
2 电机的测速原理2.1 绝对式光电编码器简介系统采用A-JXW-12A-11-G8-30C绝对式光电编码器,该编码器为11位绝对式轴角编码器,具有零点固定、单值函数、抗干扰能力强等特点。结构上采用防尘、防潮措施、耐冲击、耐振动、体积小、重量轻。能够测量角位移,旋转速度等,并能将所测结果以自然二进制码形式输出。供电电压12 V,集电极开路输出,图2为A-JXW-12A-11-G8-30C绝对式光电编码器实物图。
2.2 转速计算方法设计采用T法测速,即利用计数器对已知频率为的高频时钟脉冲进行计数,测出电机相邻两个转子位置脉冲信号的时间间隔来计算电机的转速。在T法测速中,测速时间T是通过记录高频时钟脉冲个数m得出,即T=m/f (1)电机转动一周转子位置信号含有的脉冲个数为PN,设计采用编码器的最低位进行计算,因此PN为1 024,则转速计算公式为高频时钟脉冲为单片机的晶振频率2分频所得,即22.1184/2 MHz,当电机转速为500r/min时,理论上高频时钟脉冲计数值m为1296,若记录值m为1 295或1 297,T法计算的电机转速分别为500.4 r/min或499.6 r/min,计算误差为-0.08%≤△e≤0.08%;当电机转速为1 500 r/min,理论上高频时钟脉冲计数值m为432,若记录值m为431或433,T法计算的电机转速分别为1503.5r/min或1496.5r/min,计算误差为-0.23%≤△e≤0.23%。本方法完全满足所试验的开关磁阻电机调速系统的误差范围,且测量方法简单可靠,实用性强。
3 系统硬件电路的设计3.1 STC12C5410AD单片机简介STC12C5410AD单片机是一款单时钟/机器周期的微控制器,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统的8051,但速度快8~12倍。其片上集成了10 kB的程序存储器Flash、512 Byte的SBAM,有1个可编程的异步串行UART接口,1个可工作于主从模式的SPI串行接口,共2路16位的定时器/计数器,2路外部中断,8路10位的高速A/D转换器,速度可达100 kHz,集成了4路可编程计数器阵列(Programmable Counter Array,PAC),简称PCA,可用于软件定时器、外部脉冲的捕获、高速输出及脉宽调制输出。3.2 编码器脉冲信号调理电路信号调理电路主要包括:光电隔离电路、施密特整形电路和RC滤波电路。光电隔离采用快速光耦A2630芯片,完成电平的转换,同时对编码器信号和单片机电路进行隔离,起到一定的保护作用。最大输入频率为1 MHz,而编码器的最低位输出脉冲频率为26 kHz,因此完全满足实验要求;施密特整形电路采用六反相施密特触发器74HC14,可将边沿变化缓慢的周期性信号变换为边沿较陡的矩形脉冲信号;RC滤波电路主要用于消除矩形脉冲上的高频干扰信号。3.3 串行接口通信电路系统采用STC12C5410AD单片机作为下位机,PC机作为上位机,二者通过RS-232串口进行通信。单片机输出的TTL电平与PC机串口的RS-232电平不一致,因此需采用MAX232芯片进行电平转换,Tin和Rout输入的是TTL电平,经过转化后Tout和Rin输出为RS-232电平。系统硬件总体电路如图3所示。
系统软件设计包括下位机单片机的软件设计和上位机LabVIEW的软件设计。4 系统软件设计4.1 单片机的软件设计下位机程序采用C语言编写,主要完成脉冲信号捕获、转速计算和上下位机串口通信。程序中首先进行系统的初始化,包括串口初始化和PCA初始化。在串口初始化中,给寄存器TMOD赋值0x20,将设定T1定时器工作在方式2,用定时器T1产生波特率,将波特率设置为115 200;给寄存器SCON赋值0x50使串口工作在方式1下,为10位数据的异步通讯,1起始位,8数据位,1停止位,无奇偶校验位。STC12C5410AD单片机有4路PCA模块,这里用到PCA模块0,在PCA初始化中,PCA模式寄存器CMOD赋值0x02,选择PCA时钟源为系统时钟的2分频;PCA控制寄存器CCON赋值0x00,关闭PCA计数器并清除中断标志位;PCA模块0模式寄存器CCAPM0赋值0x21,设置PCA0脉冲上升沿捕获,并使得寄存器CCON的捕获标志CCF0,用来产生中断;PCA0的16位计数器CH0和CLO分别赋值0x00,用于存储时钟脉冲计数值。当单片机检测到脉冲信号上升沿时,进入PCA0捕获中断,得到PCA0时钟脉冲的计数值,并判断计数值m是否溢出,再利用式(2)进行电机转速的计算,最后调用串口发送程序将数据传送到上位机。单片机软件流程图如图4所示。
4.2 上位机LabVIEW程序设计上位机的操作界面采用LabVIEW进行可视化编程,主要完成上位机和下位机的通信、电机转速波形的显示和数据保存。设计使用LabVIEW 8.6版本,其丰富的函数库中提供了串口通信函数,使程序的编写方便快捷。首先通过VISA配置串口(VISA Configure Serial Port)函数配置串口参数,包括VISA资源名称、串口波特率、数据位、奇偶校验位和停止位,上位机的串口配置应与单片机的串口初始化相同,这才能保证数据的正确传输;VISA读取(VISA Read)函数将读取指定字节的数据到计算机内存中,这里读取的Byte个数为4;最后用VISA关闭(VISA Clo se)函数关闭串口资源。电机转速波形的显示是通过波形图表控件来绘制的,波形图表控件能够实时显示若干个数据点,而且新输入的数据点添加到已有曲线的尾部进行连续显示,因此可直观地反映被测量的变化趋势。LabVIEW从串口接收到的数据形式为字符串,所以在波形数据显示之前需利用十进制字符串至数值转换(Decimal Strings to Number)函数将字符串中的数字字符转换成十进制整数。数据的保存用写入文本文件(Write to Text File)函数,将采集数据以txt形式进行保存,同时可方便地设置保存路径和文件名称。LabVIEW程序框图如图5所示。
5 实验结果设计方案在开关磁阻电机调速系统中进行了测试,实验中电机的调速范围为0~1 500 r/min,对电机的快速启动、运行稳定性以及快速制动进行了实时监测。图6为电机带载20N?m,稳定运行转速为1 250 r/min时的转速波形图,测试结果证明,系统简洁直观、动态实时响应快、稳定可靠。
6 结束语文中设计了一种基于LabVIEW的电机转速监测系统,对系统的硬件和软件分别进行了论述,并在0~1 500 r/min转速范围内的开关磁阻电机调速系统中进行了实验,实验结果验证了设计方案的可行性。同时,还具备了用LabVIEW编写上位机界面,使得系统具有界面友好、操作简单、调试方便、可扩展性和可移植性强等优点。
[上一篇:]
[下一篇:]
智能时代, 在大脑中植入芯片, 所有知识
受益于各种无线协议特定应用的长远发展,智能照明在家庭和楼宇自动化方面已获得显着的成果。在本次在线研讨会期间,我们将讨论最适合智能照明、家庭和楼宇的无线技术,以及在单一设备...... Silicon Labs&&&&日&&&&
本次研讨会中,来自赛灵思公司的视频系统主任架构师,酆毅先生将向大家演示 Zynq UltraScale+ MPSoC EV器件的相关内容,以及如何在多路视频流的转码应用中使用它们。Zynq UltraScale+ MPSoC EV...... 赛灵思 &&&&日&&&&
作为智能家居中的关键技术,智能硬件的设计人员面临着许多研发难题,例如操控信号的接收和发射、身份感应识别、高灵敏触摸屏设计、运动感应传感器设计,以及 5G 网络的应用...... COMSOL &&&&日&&&&
本在线研讨会开头将介绍锁相环和压控振荡器的基本原理。然后,我们将深入探讨环路滤波器配置、相位噪声、锁定时间和杂散等更高级的主题。我们还将讨论先进的PLL操作以及系统优化和性能...... ADI &&&&日&&&&百度文库-信息提示
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
对不起,该文档已被删除,无法查看
15秒后,自动返回首页小白提问,编码器测量A的前进速度,信号传递给单片机 单片机控制电机B转速。硬件和软件怎么设计?求资料_百度知道
小白提问,编码器测量A的前进速度,信号传递给单片机 单片机控制电机B转速。硬件和软件怎么设计?求资料
编码器:增量式光电旋转编码器 360脉冲/线 AB两相 5-24V 电机是:12V 206rpm 直流电机单片机是:单片机开发实验仪,功能都全 解决后,继续加悬赏 谢谢
我有更好的答案
电机就pwm控啦,编码器,看你自己要设置什么规则吧,不过最好带z相比较好点,不过太乱
就是用pwm控制 编码器已经买了,你有相关的资料和程序吗?现在毫无头绪。不知道怎么写程序。
程序是和硬件对应的
为您推荐:
其他类似问题
信号传递的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。增量式光电脉冲编码器的单片机计数器_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
增量式光电脉冲编码器的单片机计数器
&&增量式光电脉冲编码器的单片机计数器
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢所属专题:&&&& 发布时间: 17:25:29
百炼成钢, 积分 857, 距离下一级还需 1543 积分
本帖最后由 张静茹 于
22:39 编辑
写了一个EC11数字旋钮的检测程序,一下午的时间才写稳定,一点不丢动作,其实也不难可能是我水平太低,
EC11的中间脚接地,其余俩脚接上拉电阻,一个接P0.0一个接P0.1
sbit P01=P0^1;//反转
sbit P02=P0^2;//按下
void delay(unsigned int cnt)//10为1ms
for(;cnt>0;cnt--)
for(i=0;i<111;i++);
void main()
unsigned int ys=20,ys2=20;
//PCA初始化
//PCA的16位计数器低八位
//PCA的16位计数器高八位
CMOD=0x00;
//选择 系统时钟/12 为计数脉冲,则PWM的频率f=sysclk/256/12;
CCAP0H=0x80;
占空比控制
PCA_PWM0=0x00; //控制占空比的第九位为0
CCAPM0=0x42;
//允许P13作为PWM输出
//启动PCA计数器
CCAP0H=0x01;
占空比控制
//如果p0.0口变为低电平
delay(ys);
//如果p0.0还是低电平
while(!P00);
//等待p0.0变成高电平
while(P01);
//等待p0.1变成低电平
delay(ys);
while(!P01);
百炼成钢, 积分 857, 距离下一级还需 1543 积分
我说网上没有例程参考,原来大家不知道有这玩意呀,数字示波器,档位旋钮大多是这东西。。。。。。。
百炼成钢, 积分 1643, 距离下一级还需 757 积分
这段程序是一直在查询,太浪费资源了,改成中断式吧。消抖能不用死循环么?或者并联一个10nF电容?旋转编码开关这东东还是比较酷的。
百炼成钢, 积分 857, 距离下一级还需 1543 积分
hefanghua 发表于
这段程序是一直在查询,太浪费资源了,改成中断式吧。消抖能不用死循环么?或者并联一个10nF电容?旋转编码 ...
反正只是输出一个pwm ,死循环才可以稳定的不丢动作,我想不到啥好办法了
实习会员, 积分 1, 距离下一级还需 49 积分
百炼成钢, 积分 857, 距离下一级还需 1543 积分
汗..............
蜀ICP备/网安-00001
网友发言仅代表个人观点 严禁发表不良信息。 值班电话:028-;电子邮箱bbs@kc.ac.cn。法律顾问:李耀辉。成都科创研究院主办。
Powered by
其他人浏览过
” 相关文章推荐
郑重声明:本站资讯源于互联网新闻网站和频道,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库www.qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com),我们审核后将会尽快处理。会员咨询QQ群: 入群验证:企业库会员咨询.}

我要回帖

更多关于 编码器分频脉冲输出 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信