完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本人最近在学习单片机编程,下面的是用中断控制LED灯的程序,请问大神添加按键去抖动的话应当怎么加?
#include < reg51.h > #include ***it LS138A=P2^2; ***it LS138B=P2^3; ***it LS138C=P2^4; unsigned int LedNumVal_1,LedNumVal_2,LedOut[8]; //此表为 LED 的字模, 共阴数码管 0-9 - unsigned char code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; void delay(unsigned int i) { char j; for(i; i > 0; i--) for(j = 200; j > 0; j--); } void main(void) { unsigned char i; P0=0xff; P1=0xff; P2=0xff; // IT0=0; //低电平触发 IT0=1; //下降沿触发 EX0=1; // IT1=0; //低电平触发 IT1=1; //下降沿触发 EX1=1; EA=1; while(1) { LedOut[0]=Disp_Tab[LedNumVal_1%10000/1000]; LedOut[1]=Disp_Tab[LedNumVal_1%1000/100]|0x80; //0x7f小数点 LedOut[2]=Disp_Tab[LedNumVal_1%100/10]; LedOut[3]=Disp_Tab[LedNumVal_1%10]; LedOut[4]=Disp_Tab[LedNumVal_2%10000/1000]; LedOut[5]=Disp_Tab[LedNumVal_2%1000/100]; LedOut[6]=Disp_Tab[LedNumVal_2%100/10]; LedOut[7]=Disp_Tab[LedNumVal_2%10]; for( i=0; i<8; i++) { P0 = LedOut[i]; switch(i) { case 0:LS138A=0; LS138B=0; LS138C=0; break; case 1:LS138A=1; LS138B=0; LS138C=0; break; case 2:LS138A=0; LS138B=1; LS138C=0; break; case 3:LS138A=1; LS138B=1; LS138C=0; break; case 4:LS138A=0; LS138B=0; LS138C=1; break; case 5:LS138A=1; LS138B=0; LS138C=1; break; case 6:LS138A=0; LS138B=1; LS138C=1; break; case 7:LS138A=1; LS138B=1; LS138C=1; break; } delay(150); } } } /******************************************************** * INT0中断函数 * ********************************************************/ void counter0(void) interrupt 0 using 1 { EX0=0; LedNumVal_1++; EX0=1; } /******************************************************** * INT1中断函数 * ********************************************************/ void counter1(void) interrupt 2 using 2 { EX1=0; LedNumVal_2++; EX1=1; } /********************************************************/ |
|
相关推荐
2个回答
|
|
给你一个思路判断延时下再判断最后再加while松键检测
|
|
|
|
按键触发中断之后,延时一定时间再次判断状态,之后可以用while进行松开检测,如果同时开定时器的话还能判断长按短按。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
464 浏览 0 评论
478 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
439 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
994 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1056 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11780 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 02:42 , Processed in 0.666923 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号