STC15F2K60S2单片机读取光栅尺距离

这篇博客介绍如何使用STC15F2K60S2单片机读取光栅尺的距离,并通过编码器脉冲计数进行计算。在程序中,单片机的P32和P33引脚分别连接光栅尺的A、B相,通过下降沿触发中断进行计数,最终将计算的距离在显示器上呈现。
摘要由CSDN通过智能技术生成
/*
 2脚 ------ GND

 6脚 A -----P32
 8脚 B -----P33
 9脚 Z -----

 7脚 -------VCC   //注意,烧录程序时,最好把晶振调整到17Mhz
*/
#include "stc15f2k60s2.h"
#include "display.h"
#include "intrins.h"
sbit PIN_B = P3^3;
long num_B,num_A;
unsigned int  volatile counter = 0;     //编码器脉冲计数 
float count = 0;

void commont(void)
{
	P2 = 0xa0; 				
	P0 = 0x10;
	P2 = 0x80; 			
	P0 = 0xff;
}

void display_mc(unsigned long x,unsigned long y)
{
	num_A = x;
	display(0x01,(int)num_A/100/10%10);
	display(0x02,(int)num_A/100%10);
	display(0x04,(int)num_A/10%10);
	display(0x08,(int)num_A%10);
	num_B = y;
	display(0x10,(int)num_B/100/10%10);
	display(0X20,(int)num_B/100%10);
	display(0x40,(int)num_B/10%10);
	display(0x80,(int)num_B%10);
}			


void main(void)
{
	commont();
	IT0=1;   //等于0为电平触发方式,低电平有效,等于1为脉冲触发方式,下降沿有效。
	EA=1;    //外部
引言: 在很多数字化与自动化设备中,执行器件的位移是作为关键的目标来进行控制的,这其中,包括角度(角位移)、直线位移与其他形式的位置移动等。在诸多位移检测器件中,光电编码器是较为常见的一种。其中的旋转编码器通常直接用于检测角度变化,而线性编码器,通常是光栅尺,则用于检测直线移动部件的位移变化。 对于输出信号为差分信号的光栅尺,经过长线接口处理后的信号同样。 如图所示 HCTL-2032光栅数显表设计概述: HCTL-2032是Avago公司生产的一种可用于正交编码器鉴相与倍频计数的集成电路。该芯片内置两个正交编码器接口,内置前向滤波、鉴相、倍频与计数电路,可方便地为不具备正交解码功能的微控制器提供编码器接口功能。本文以STC89C52与HCTL-2032为主要器件,设计了一种可同时显示两路光栅计数值的数显表,并实现了其基本功能。 该设计结构图如下: HCTL-2032功能分析: 可以将光电编码器输出的波形转换成数字信号输入微处理器,两路输入引脚CHAx、CHAy、CHIx和CHBx、CHBy、CHIy经过施密特触发器整形滤波后,通过设置EN1、EN2的值选择采用4×、2×、1×计数模式,而后送入32 位二进制计数器对采集的正交波计数,由于输出数据线只有8位,因此32位的数据需要通过改变控制线SEL1、SEL2、OE的值分四次依次读出。 附件内容包括: 基于HCTL-2032光栅数显表电路设计(STC89C52与HCTL-2032接口电路),用AD软件打开; 源程序,包括初始化单片机与HCTL-2032和读取HCTL-2032的计数值; 该光栅数显表设计论文分析word文档以及参考设计文档;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值