EC11数字旋钮 编码器 检测稳定程序 51单片机
张静茹2013/10/01软件综合 IP:安徽
本帖最后由 张静茹 于 2013-10-1 22:39 编辑

写了一个EC11数字旋钮的检测程序,一下午的时间才写稳定,一点不丢动作,其实也不难可能是我水平太低,
网上也没有参考的,所以发出来与大家分享

EC11的中间脚接地,其余俩脚接上拉电阻,一个接P0.0一个接P0.1



#include<STC12C5A60S2.H>                                                                                                                              
sbit P00=P0^0;//正转
sbit P01=P0^1;//反转
sbit P02=P0^2;//按下
void delay(unsigned int cnt)//10为1ms
{
unsigned char i;
for(;cnt>0;cnt--)
for(i=0;i<111;i++);
}

void main()
{
unsigned char zkb;
unsigned int ys=20,ys2=20;

// CCON=0;    //PCA初始化
// CL=0;   //PCA的16位计数器低八位
// CH=0;   //PCA的16位计数器高八位
// CMOD=0x00; //选择 系统时钟/12 为计数脉冲,则PWM的频率f=sysclk/256/12;

// CCAP0H=0x80;  //  占空比控制
// CCAP0L=0x80;  
// PCA_PWM0=0x00; //控制占空比的第九位为0

// CCAPM0=0x42;  //允许P13作为PWM输出

// //CR=1; //启动PCA计数器

// CCAP0H=0x01;  //  占空比控制
// CCAP0L=0x0;  
//   //d2=0;
while(1)
{
if(!P00) //如果p0.0口变为低电平
{
delay(ys); //延时
if(!P00) //如果p0.0还是低电平
{
while(!P00); //等待p0.0变成高电平
while(P01); //等待p0.1变成低电平
delay(ys2); //延时
while(P01); //如果p0.1还是低电平
while(!P01); //等待p0.1变成高电平
zkb+=1; //计数加1
P1=zkb; //输出P1口观察
}
}

if(!P01)
{
delay(ys);
if(!P01)
{
while(!P01);
while(P00);
delay(ys2);
while(P00);
while(!P00);
zkb-=1;
P1=zkb;
}
}


}

}
来自:计算机科学 / 软件综合
7
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
张静茹 作者
10年8个月前 IP:未同步
646993
我说要有光 发表于 2013-10-2 04:02
原来还有EC11这么方便的东西啊


我说网上没有例程参考,原来大家不知道有这玩意呀,数字示波器,档位旋钮大多是这东西。。。。。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
张静茹作者
10年8个月前 IP:未同步
647207
hefanghua 发表于 2013-10-2 20:42
这段程序是一直在查询,太浪费资源了,改成中断式吧。消抖能不用死循环么?或者并联一个10nF电容?旋转编码 ...


反正只是输出一个pwm ,死循环才可以稳定的不丢动作,我想不到啥好办法了
+50
科创币
1038733481
2013-10-07
-
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
张静茹作者
10年5个月前 IP:未同步
661717
q120742915 发表于 2014-1-5 20:43
看不出你这个怎么判断先后的


汗..............
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
张静茹
进士 学者 机友 笔友
文章
138
回复
1857
学术分
1
2010/12/30注册,7天12时前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}