发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名
旋转开关的原理分享!
431 数码管 开关
分享
最近一个项目要用到旋转开关,因为我也是第一次接触这个东西,所以就在网上查了一下它的原理。发现网上相关的资料很多都没说清楚,我也搞了几个小时才弄明白,在此分享一下旋转开关的原理。为了使程序结果更加直观,我打算用两位的数码管来显示数值A,当旋转开关正转的时候A加,当旋转开关反转的时候A减。


0
2019-9-29 21:55:41   评论 分享淘帖 邀请回答

相关问题

15个回答
在此说明一下旋转开关的原理,当A端口下降沿时,如果B端口的电平为高则是反转,为低则为正转。
单片机用的是STC15W408AS,P1口接数码管的a~h,P2^7口接数码管第一位公共端,P2^6口接数码管第二位公共端。网上很多资料都没标明哪里是A端,哪里是B端,所以我将旋转开关三脚那边的上下两个脚分别接单片机的两个外部中断I/O口。这样就算接错了,只要修改一下程序就可以了。A端口接P3^3,B端口接P3^2。同时A,B两个端口要接上拉电阻,除此之外A,B两个端口也要接电容滤波。还有另外两边的两个脚跟轻触开关的原理是一样的。
2019-9-30 05:56:07 评论

举报

#include        "STC15.h"
#define uchar unsigned char   //0--255
#define uint unsigned int     //0--65535
#define ulong unsigned long
uchar a1 = 98;
sbit  led1 = P2^7;
sbit  led2 = P2^6;
code uchar num_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x73};//共阴数码管段码表
/*----------------------------
软件延时
----------------------------*/
void Delay(uchar n)
{
    uint x;
    while (n--)
    {
        x = 1000;
        while (x--);
    }
}
//-----------------------------------------
//中断服务程序
void exint1() interrupt 2       //INT1中断入口
{
    if(P32 == 1)
    {
        a1--;                                   //反转
    }
    if(P32 == 0)
    {
        a1++;                                   //正转
    }
}
void main()
{
    P1M1 = 0x00;
    P1M0 = 0xFF;
    INT1 = 1;
    IT1 = 1;                    //设置INT1的中断类型 (1:仅下降沿 0:上升沿和下降沿)
    EX1 = 1;                    //使能INT1中断
    EA = 1;
    while (1)
    {        
            P1 = num_code[a1/10];
            led1 = 0;
            Delay(2);
            led1 = 1;
            P1 = num_code[(a1/1)%10];
            led2 = 0;
            Delay(2);
            led2 = 1;
    }
}
2019-9-30 06:08:00 评论

举报

这相当于是两个开关按不同的次序被接通。
附新绘的图片一张。
把A配置为一个外部中断,读B的状态,即可知道是正转还是反转。
数据的增加通过外部中断服务函数实现即可。
2019-9-30 06:20:17 评论

举报

emmmmmm我还以为你是在问。。然后发现你是在分享。。。
2019-9-30 06:29:07 评论

举报

你这张图比较好懂,网上那些真的不好看懂,对于新手来说。
2019-9-30 06:42:46 评论

举报

emmmmmm我自学能力还是不错的
2019-9-30 06:53:27 评论

举报

当初我了解到这个东西之后,听名字“旋转编码器”感觉很高大上,结果就是一个轴里面装两个不同区域导通金属圈,然后刻几个凹槽产生顿挫感。然后就能每一个step产生两个方波。
其实,
也就是那么回事啦。
2019-9-30 07:00:45 评论

举报

2019-9-30 07:11:53 评论

举报

我第一次看到这个东西也觉得挺高级的,正转反转。。。
2019-9-30 07:31:09 评论

举报

2019-9-30 08:09:48 评论

举报

兄dei,这叫编码开关,不叫旋转开关。原理还是很简单的,看一下其时序就明白了!
程序使用它只需要开两个外部中断,然后判断其边沿变化即可。而且使用它最好在外部中断里面加上消抖处理,不然会存在抖动现象!
2019-9-30 08:19:37 评论

举报

2019-9-30 08:31:35 评论

举报

这里的电容是起到了什么作用啊?
2019-9-30 08:38:52 评论

举报

利用电容两端的电压不能突变的特性,将其并联在机械触点两端,消除接触抖动产生的毛刺电压。
2019-9-30 08:57:53 评论

举报

只有小组成员才能发言,加入小组>>

862个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /10 下一条

快速回复 返回顶部 返回列表