1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
(1)按键原理:按键正常状态为默认高电平,当按键按下之后就变成低电平。利用这个特性,我们可以检测出按键是否按下。
(2)数码管原理:想实现数码管的点亮,首先要有位选,即点亮哪一个数码管;其次要有段选,即具体的数码管显示哪一段(一个数码管由8段构成,包括一个小数点) (3)按键原理图: (4)74HC138原理图:(5)数码管原理图:(6)源代码: #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(); //调用按键处理函数 } } |
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9055 浏览 16 评论
4086 浏览 18 评论
1174浏览 3评论
603浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
596浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2333浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1894浏览 2评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 15:46 , Processed in 0.971728 second(s), Total 76, Slave 57 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号