完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想使用编码器控制数码管值的加减,一直没有反应,望高手指教,非常感谢!
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; sbit EC11_A=P2^5; sbit EC11_B=P2^6; u8 code smgduan[17]={0x3f0x060x5b0x4f0x660x6d0x7d0x07 0x7f0x6f0x770x7c0x390x5e0x790x71};//显示0~F的值 u8 d=125; /@@******************************************************************************* * 函 数 名 : delay * 函数功能 : 延时函数,i=1时,大约延时10us *******************************************************************************/ void delay(u16 i) { while(i--); } /@@******************************************************************************* * 函 数 名 : DigDisplay * 函数功能 : 数码管动态扫描函数,循环扫描8个数码管显示 *******************************************************************************/ void DigDisplay() { u8 i; for(i=0;i<3;i++) { switch(i) //位选,选择点亮的数码管, { case(0): LSA=0;LSB=0;LSC=0; P0=smgduan[d%10];delay(100); P0=0x00; break;//显示第0位 case(1): LSA=1;LSB=0;LSC=0; P0=smgduan[d%100/10];delay(100);P0=0x00; break;//显示第1位 case(2): LSA=0;LSB=1;LSC=0; P0=smgduan[d/100];delay(100);P0=0x00; break;//显示第2位 } } } void xuanzhun() { u8 flag=0left_flag=0right_flag=0; if((EC11_A) (EC11_B)) { flag=1; } if(EC11_A!=EC11_B) { left_flag = EC11_A; //记录AB的信号状态 right_flag = EC11_B; } if(flag==1) { if((EC11_A==0) (EC11_B==0)) { flag=0; if(left_flag==0) //左转 { d--; } if(right_flag==0) { d++; } } } } |
|
相关推荐
1个回答
|
|
51单片机用旋转编码器要用外部中断法,你的程序主要问题出在xuanzhuan这个函数里面,就算修改好了也会遗漏脉冲,检测也不准
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之电阻屏触摸
892 浏览 0 评论
1422 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-开发板适配之I2C-RTC
616 浏览 0 评论
ATK-DLRK3588开发板deepseek-r1-1.5b/7b部署指南
3125 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第五十章 WiFi热点实验
990 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12394 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-24 14:35 , Processed in 0.588600 second(s), Total 71, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191