导航:首页 > 编程语言 > 编码器读取角度程序

编码器读取角度程序

发布时间:2023-06-19 03:29:07

❶ 51单片机开发板和绝对式编码器连接测量角度的程序

#include <reg52.h>
#include "inc/delay.h"
#include "inc/hc595.h"

#define uchar unsigned char
#define uint unsigned int
sbit PIN_ROTARY_A = P2^0; //引脚1接口
sbit PIN_ROTARY_B = P2^1; //引脚2接口
sbit PIN_ROTARY_C = P2^2; //按下的接口

sbit PIN_ROTARY_D = P2^3; //按下的接口

//uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
/* 存储待发送的数据 */
/* 1->8的段码表 */
code unsigned char ucDis_Segmentcode[16] = {0x3f,0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
/* 位码表 */
code unsigned char ucDis_Bitcode[8] = {0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F};
uchar dis_XS[8] = {0x3f,0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d};
uchar count = 0;
uchar flag;
uchar Last_BMB_status;

uchar Current_BMB_status;

void display()
{
uchar i;

dis_XS[0] = ucDis_Segmentcode[count/100]; //百位

dis_XS[1] = ucDis_Segmentcode[count%100/10]; //十位

dis_XS[2] = ucDis_Segmentcode[count%10]; //个位

if(i < 2)
{
i++;
}
else
{
i = 0;
}

// for (i = 0; i < 3; i++ )
{
Send_Data(dis_XS[i], ucDis_Bitcode[i]);
//PIN_ROTARY_D = 0;
// Delay1ms(1);
}
}

//************************************************
void main()
{

TMOD=0x01; //定时器0,工作方式1
TH0=0xD8;
TL0=0xF0; //给定时器装上初值,10ms中断一次
ET0=1; //打开定时器中断
EA =1; //打开总中断
TR0=1; //启动定时器0

while(1)
{
//display();
Last_BMB_status=PIN_ROTARY_B;

while(!PIN_ROTARY_A) //BMA为低电平时
{
Current_BMB_status = PIN_ROTARY_B;
flag = 1; //标志位置为1说明编码开关被旋转了
}

if(flag == 1)
{
flag = 0; //时刻要注意这一点!给标志位清零
if((Last_BMB_status == 0)&&(Current_BMB_status == 1)) //BMB上升沿表示正转
{
count++;
if(count == 255)
{
count = 0;
}
}
if((Last_BMB_status == 1)&&(Current_BMB_status == 0)) //BMB下降沿表示反转
{
count--;
if(count == 0)
{
count = 255;
}
}
}
}
}

//***********************************************
void timer0() interrupt 1//定时器0的中断服务程序
{
TH0=0xF8; // TH0=0xD8;
TL0=0xF0; //再次装入初值
display(); //每隔10ms显示一次
if(!PIN_ROTARY_C) //按下旋转编码开关则计数清零
{
count = 0;
}
PIN_ROTARY_D = !PIN_ROTARY_D;
}

❷ 用三菱PLC怎么接编码器,怎么读取编码器的值

编码器接入电源。把一个编码器的A接入X0,B接入X1;把另一个A接入X3,B接入X4。不可以接入X0,X4,X1和X5,因为有些输入点不支持高速输入。

程序直接DMOV C251 D0,然后就可以读编码器的值,然后要清零,你就DMOV、K0、D0另外一个类似,DMOV C253 D2,程序用不到X0,X1及X3,X4。

读取编码器数据方法:

PLC向编码器发送、01 03 00 00 00 01 84 0A数据(MODBUS格式);编码器返回数据。把编码器返回数据做处理得到角度数据。


(2)编码器读取角度程序扩展阅读:

三菱PLC功能:

【内置时钟功能】内置了时钟功能, 可以执行时间的控制。

【支持RUN中写入】通过计算机用的编程软件, 可以在可编程控制器RUN时更改程序。

【程序内存】内置了64K步的RAM内存。此外, 可以通过使用存储器盒, 将程序内存变为快闪存储器。

【运算指令】除了浮点数、字符串处理指令以外, 还具备了定坐标指令等丰富的指令。

【内置RUN/STOP开关】可以通过内置开关进行RUN/STOP的操作。此外, 也可以从通用的输入端子或外围设备上发出RUN/STOP的指令。

【最大384点的输入输出点数】可编程控制器上直接接线的输入输出(最大256点)和网络(CC-Link)上的远程I/O(最大256点)的合计点数可以扩展到384点。

【可以连接的扩展单元/模块】输入输出的扩展设备可以连接FX2N 系列的输入输出扩展单元/模块。此外,FX0N/FX2N/FX3U系列特殊功能单元/模块最多可以连接8台。(FX0N系列仅可以连接FX0N-3A)。

阅读全文

与编码器读取角度程序相关的资料

热点内容
java监听器延时 浏览:726
itunes备份包含微信聊天记录 浏览:20
怎么向虚拟机传文件 浏览:677
win10怎么用软件激活不了 浏览:816
美版a1453是什么版本 浏览:517
电脑里的文件夹按照拼音归类 浏览:996
文件管理器怎么把视频压缩成文件 浏览:477
标准化文件名称包括哪些 浏览:85
win10不能读取dll文件 浏览:882
云骑士重装系统找不到usb字样文件 浏览:42
皖事通app社保年限在哪里看 浏览:65
为什么快影显示没网络 浏览:356
华为如何让手机升级提醒红1消失 浏览:345
我爱九九商城app 浏览:587
剑灵苍穹武器升级 浏览:248
微信钱包微粒贷 浏览:654
滚动字幕屏找不到文件 浏览:990
郑州青少年学编程哪个机构比较好 浏览:866
ps文件打开不是彩色的 浏览:781
监控硬盘格式化工具 浏览:512

友情链接