电工文库|旋转编码开关工作原理图解

   更新日期:2017-04-01     来源:建材之家    作者:水电之家    浏览:49    评论:0    
核心提示:在电子产品设计中,经常会用到旋转编码开关,比如数码电位器等,它的英文名翻译过来就是Rotary Encoder Switch。在写这个元件的驱动程序之前,我百度了一些它的使用说明资料,知道了它具有左转、右转和按下三个功能,有五个脚,它的外形如下图所示: (1)1、3脚要外接上拉电阻,一般10K就足矣; (2)2脚一般接地就行; (3)4、5脚是下按键的开关接线(按下时,4脚为低电平);

潍坊信赢沟槽管件-法兰管卡安装要求及步骤

推荐简介:1、去除钢管端部毛刺2、密封圈唇部及背部涂润滑剂3、将密封圈套入管段4、将法兰盘打开扣到管子沟槽里5、法兰盘与管子扣紧无间隙6、将法兰与阀门口对齐,安上螺栓7、用限力扳手拧紧螺栓本文出自:福建闵胜通建材有限公司http://fj100tong本文相关词条解释法兰盘法兰是一种盘状零件,在管道工程中最为常见,法兰都是成对使用的。 在管道工程中,法兰主要用于管道的连接。在需......
水电之家讯:在电子产品设计中,经常会用到旋转编码开关,比如数码电位器等,它的英文名翻译过来就是Rotary Encoder Switch。在写这个元件的驱动程序之前,我百度了一些它的使用说明资料,知道了它具有左转、右转和按下三个功能,有五个脚,它的外形如下图所示:

(1)1、3脚要外接上拉电阻,一般10K就足矣;(2)2脚一般接地就行;(3)4、5脚是下按键的开关接线(按下时,4脚为低电平);我调试这个元件时的实物接线示意图为:其实它使用起来并不难,我看到网上的资料大都说操作它时判断正转和反转是一个难点,在这里我希望博友在看了我的代码后会觉得这其实只是一个“传说”!我的代码会把这个问题说的清清楚楚、简简单单的!我觉得其实判断正转和反转的关键就是:当BMA为低电平时,BMB的跳变沿是怎样的——上升沿表示正转,下降沿表示反转。只要用代码把这it P27=P2^7;sbit P26=P2^6;sbit P25=P2^5;

uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};uchar count=0;uchar flag;uchar Last_BMB_status;uchar Current_BMB_status;//************************************************void delay(uchar z) //大约1ms的延时{ uchar x,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}//************************************************void display() //显示子程序{ P0=table[count%10]; //个位 P27=0; delay(10); P27=1;

P0=table[count%100/10]; //十位 P26=0; delay(10); P26=1;

P0=table[count/100]; //百位 P25=0; delay(10); P25=1;}//************************************************void main(){ TMOD="0x01"; //定时器0,工作方式1 TH0=0xD8; TL0=0xF0; //给定时器装上初值,10ms中断一次 ET0=1; //打开定时器中断 EA =1; //打开总中断 TR0=1; //启动定时器0

while(1) { Last_BMB_status=BMB;

while(!BMA) //BMA为低电平时 { Current_BMB_status=BMB; 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=0xD8; TL0=0xF0; //再次装入初值 display(); //每隔10ms显示一次 if(!BMC) //按下旋转编码开关则计数清零 { count="0"; }}水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/
小程序码
 
打赏
 
更多>文章标签:管件
更多>同类水电电工资讯
0 条相关评论

推荐图文更多...
点击排行更多...
最新视频更多...
推荐产品更多...
老姚之家 | 全景头条 | 照明之家 | 防水之家 | 防盗之家 | 区快洞察 | 潜江建材 | 仙桃建材 | 恩施建材 | 随州建材 | 咸宁建材 | 黄冈建材 | 荆州建材 | 孝感建材 | 荆门建材 | 鄂州建材 | 襄樊建材 | 宜昌建材 | 十堰建材 | 黄石建材 | 长沙建材 | 湘西建材 | 娄底建材 | 怀化建材 | 永州建材 | 郴州建材 |
建材 | 720全景 | 企业之家 | 移动社区 | 关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图 | 排名推广 | 广告服务 | 积分换礼 | RSS订阅 | sitemap | 粤ICP备14017808号-1
(c)2015-2017 Bybc.cn SYSTEM All Rights Reserved
Powered by 电工之家