完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
|
|
相关推荐
1个回答
|
|
|
(1)按键原理:按键正常状态为默认高电平,当按键按下之后就变成低电平。利用这个特性,我们可以检测出按键是否按下。
(2)数码管原理:想实现数码管的点亮,首先要有位选,即点亮哪一个数码管;其次要有段选,即具体的数码管显示哪一段(一个数码管由8段构成,包括一个小数点) (3)按键原理图: (4)74HC138原理图: #include ***it K4=P3^3; ***it LSA=P2^2; ***it LSB=P2^3; ***it LSC=P2^4; typedef unsigned char u8; typedef unsigned int u16; u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x80/*显示小数点*/}; void delay(u16 i)//延时函数 { while(i--); } void keypros() { u8 i; if(K4==0) delay(1000); //按键消抖 if(K4==0) { for(i=0;i<8;i++) //for循环实现数码管0~7的循环显示 { switch(i) { case 0: LSA=0;LSB=0;LSC=0;break; case 1: LSA=1;LSB=0;LSC=0;break; case 2: LSA=0;LSB=1;LSC=0;break; case 3: LSA=1;LSB=1;LSC=0;break; case 4: LSA=0;LSB=0;LSC=1;break; case 5: LSA=1;LSB=0;LSC=1;break; case 6: LSA=0;LSB=1;LSC=1;break; case 7: LSA=1;LSB=1;LSC=1;break; } P0=smgduan; //数码管显示具体数字 delay(50000); } } if(K4!=0)//按键正常状态,不按下 { LSA=1; LSB=1; LSC=1; P0=smgduan[0]; } } void main() { while(1) { keypros(); //调用按键处理函数 } } |
|
|
|
|
只有小组成员才能发言,加入小组>>
1599 浏览 0 评论
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
4738 浏览 0 评论
4229 浏览 9 评论
3822 浏览 16 评论
4398 浏览 1 评论
4210浏览 3评论
2379浏览 0评论
3393浏览 0评论
1158浏览 0评论
2843浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:07 , Processed in 0.659053 second(s), Total 74, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2561