㈠ 编码器和单片机有什么区别
编码器是组合逻辑电路,其功能明确,单一。
单片机,可通过编程实现各种功能,包括编码器功能。
㈡ ec11编码器开关怎么用五个引脚分别是干什么的51单片机用来测量角度该怎样接线
单独的两个脚是按动开关,另三个脚中间相当于公共
㈢ 编码器与单片机如何连接
NPN开路输出,又叫OC输出。你需要在A、B端分别外接一个电阻,电阻上端的电压由你的电路决定:
单片机接5V,PLC接24V,使用就很方便了。
检测A、B信号就是(1)检测脉冲数量;(2)A、B谁在前?谁在后?A相上升沿在前(出现高电平)表示编码器正转;反之B在前,表示反转。
至于45°,就看你的编码器一周有多少脉冲,自己分配了。
㈣ 编码器与单片机的连接
可以直接和单片机IO相接,但有的设计者为了降低外部干扰,一般通过D触发器或者光耦后与IO相连,一般的光电编码器都是集电极开路输出型的,你看其说明书有具体电路。一般将A、B相接到定时器输入的IO上,这样比较好处理,将定时器设为计数器模式就可以了。检测步进电机转动角度当然可以做到,这只是基本应用。360线,一个脉冲输入就是1度,所以很容易的。接收到45个脉冲就证明转动了45度了。
㈤ 单片机开关控制LED数码管的编码
一,什么是数码管
数码管,其实就是由多个led组合在一起的组合显示块;有共阴极的,也有共阳极的。使用的数码管不同,里面包含的led个数也会有相关的差异。我们通常使用的数码管,里面有8个led灯,大家可以参照生活中的数码管器件就一目了然了,你会发现,数码管显示的每一个数字或字母,都是一段一段组合拼接起来的,并不是像写的那样圆滑。其中,组合的每一个段,就是一个led灯。
二,点亮一个数码管
2.1.在点亮数码管之前,你还必须弄清楚,改数码管的接是共阴极还是共阳极的接法;其次,还得弄清楚是那几个(或一个) IO口是IO口 的断选位(也就是控制显示哪一个数码管,通常由IO口控制一个译码器来实现,因为这样更节约IO口资源)。
2.2.弄清楚断选位之后,还得知道,是哪些IO口控制我们的数码管上的led;
比如:
P0.0 控制数码管上的led.0;(注意:数码管上对应的led位,可以参照原理图上的或查阅相关资料获得,这里仅仅举列)
P0.1-->led.1 P0.2-->led2 ......
2.3.想要点亮数码管很容易,只要开启对应的数码管断选位,再设置数码管上led的值为点亮(有的数码管是共阴极接法,有的是共阳极接法,根据具体的设计,给出相关的高或低电平即可)就OK了。但是,我们要在数码管上显示我们想要的数字增么办呢?这个时候,就是考研创造力的时候了,有的数码管的资料会直接给出它的真值表,但有的却不一定找得到。在这个时候,我们就得根据我们想要显示的数字,点亮并熄灭对应数码管上的led来实现。(推荐:你可以自己先实验,找出0-9,或其他想要显示的字符所对应的IO口的值,来保存起来,这样你就可以重复利用啦!)
三,点亮多个数码管
3.1 我们想要点亮多个数码管,首先可以根据2.1,弄清楚你的数码管的断选位,然后周期性的改变断选位的值,以此动态逐个显示你的数码管。
3.2 在显示多个数码管时,建议周期大于100hz,这样人眼难以识别起关和开的瞬间,我们看起来就像时很多个数码管同时点亮了一样。
四,动态显示数码管
4.1 ,在动态显示数码管的值时,建议先根据2.2和2.3,把对应的数码管显示参数照准,并保存下来,这样你用起来也方便。
4.2, 动态显示数码管,我们可以在规定的时间周期,改变数码管对应led的开关个数来实现,比如说:
0 在数码管中显示的值为0xc0 1是0xf9
那么我们就可以在规定的时间里,切换该值,从而达到动态效果。
4.3 我们应该注意的时,扫描数码管(即显示多个数码管)应该与设置数码管的值(数码管中led的状态更新)区分开,扫描周期我们可以放短一点,而改变它的值的周期我们可以一秒或者是2秒改变一次。
4.4 消除余晖,大家实验后,可能会发现,你显示的值有的时候并不是想要的,它会跳动或者是亮灭不清晰,这个我们就叫做余晖效应。
产生余晖效应的原因是因为你在选则下一个数码管的时候,还保留了上一个数码管的显示值,所以我们消除余晖,只需要在改变数码管显示值的时候,先关闭所有数码管的显示,在值跟新完成后我们再打开显示。这里你不用担心关闭和开启会有闪烁,更新值的时间会很短,肉眼时几乎察觉不到滴。
5,示列代码
/*
芯片:stc89c52
器件:38译码器等
编译环境:UV4,C语言
*/
#include
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
unsigned char code LedChar[] = {undefined
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
};//数码管显示值真值表缓存数组
unsigned char LedBuff[6] = {undefined
0xff,0xff,0xff,0xff,0xff,0xff
};//数码管显示值缓存数组
void main()
{undefined
unsigned char i =0;
unsigned int cnt = 0;
unsigned long sec = 0;
ENLED = 0;
ADDR3 = 1;
TMOD = 0x01;
TH0 = 0xfc;
TL0 = 0x67;
TR0 = 1;
while(1)
{undefined
if(TF0==1)
{undefined
TF0 = 0;
TH0 = 0xfc;
TL0 = 0x67;
cnt++;
if(cnt>=1000)
{undefined
cnt = 0;
sec++;
LedBuff[0] = LedChar[sec%10];
LedBuff[1] = LedChar[sec/10%10];
LedBuff[2] = LedChar[sec/100%10];
LedBuff[3] = LedChar[sec/1000%10];
LedBuff[4] = LedChar[sec/10000%10];
LedBuff[5] = LedChar[sec/100000%10];
}
switch(i)
{undefined
case 0:ENLED = 1;ADDR2=0;ADDR1=0;ADDR0=0;i++;P0=LedBuff[0];ENLED = 0;break;
case 1:ENLED = 1;ADDR2=0;ADDR1=0;ADDR0=1;i++;P0=LedBuff[1];ENLED = 0;break;
case 2:ENLED = 1;ADDR2=0;ADDR1=1;ADDR0=0;i++;P0=LedBuff[2];ENLED = 0;break;
case 3:ENLED = 1;ADDR2=0;ADDR1=1;ADDR0=1;i++;P0=LedBuff[3];ENLED = 0;break;
case 4:ENLED = 1;ADDR2=1;ADDR1=0;ADDR0=0;i++;P0=LedBuff[4];ENLED = 0;break;
case 5:ENLED = 1;ADDR2=1;ADDR1=0;ADDR0=1;i=0;P0=LedBuff[5];ENLED = 0;break;
default:break;
}
}
}
}
以上代码,仅供参考,您需要根据自己原理图的设计来实现。
㈥ 编码器与单片机,具体如何接线呢
如果你想用编码器和单片机进行数据交互的话就用通信的方式可以选择串口,也可以用 I2C 或者 SPI 进行通信如果你是想单方向的,直接随意接IO口就可以了
㈦ 怎样用单片机控制音响的音量
单片机控制音响的音量的方式有两种:
一种是控制音响音量的采用马达电位器,单片机控制马达顺时针或逆时针转动,实现音量控制。和传统的电位器相比相当于在普通电位器基础上增加了马达实现音量控制,这类电位器的尺寸比较大,而且因为马达经常转动,故障率相对较高。
还有种是采用集成电路来实现:用专用的音量控制集成电路加上编码开关(也叫数字电位器)配合单片机程序实现对音量控制。例如PTC(台湾普城 http://www.princeton.com.tw)品牌的PT2313等,和马达控制相比较有可靠性高,体积小的优点。
㈧ 有关编码器与51单片机连接的问题
E6A2-CW3C旋转编码器输出两路正交(相位相差90°)脉冲信号。分辨率200意味着编码器每旋转一周输出200个周期脉冲。如果把每一路脉冲的上沿和下沿都利用起来,相当于四倍频,分辨率可以达到200×4=800。
编码器输出通常为5v的TTL电平,可以直接连接到单片机。能否利用单片机直接读取编码器并计数,则取决于你的应用中,编码器轴旋转的速度有多大?因为,单片机对两路脉冲的计数只能基于对脉冲的上跳(或者下跳,下同)的处理。而单片机对随机上跳处理的较好的方案是上跳引起一个中断,在中断程序中实施判断后再进行加1或减1的计数。中断处理是需要时间的。当编码器旋转足够快,输出脉冲周期少于中断处理时间时,将导致脉冲丢失,这会引起计数误差。
所以,你要准确估计你的编码器旋转速度,得到最小的脉冲周期;然后估算你的中断处理程序的执行时间(在AT89S52最大系统时钟下)。两者比较后才能确定你的设计是否可行。
㈨ 旋转编码开关加单片机实现角度检测
直接按照你的思维就可以了,不用步进电机的,你要是要旋转角度才要用步进电机。具体的可以在网络文库搜索“数字旋转编码开关的原理及使用方法”参考一下就可以了,还不明白再追问。
㈩ 请问旋转编码开关的A、B端接到单片机引脚时,是否还要接上拉电阻
接上啦电阻,主要是为了开机时单片机端口的状态更能确定是高,还是低,如果有输出的话拉低,
关闭输出,上啦电阻啦高,这样对控制的负载抗干扰能力强些。