完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
求救高手帮忙,4*4键盘,4位数码管实现任意四位数的显示。以下是我的程序,只能实现单个数字的移位显示,希望能有高手帮忙修改,在此谢过!{:soso_e100:}
#include #include #define uchar unsigned char #define uint unsigned int uchar Pre_KeyNO = 16,KeyNO = 16; ***it dula=P2^6; ***it wela=P2^7; uchar code wema[]={0xf1,0xf2,0xf4,0xf8}; uchar code DSY_CODE[]= { 0xC0, // 0 0xF9, // 1 0xA4, // 2 0xB0, // 3 0x99, // 4 0x92, // 5 0x82, // 6 0xF8, // 7 0x80, // 8 0x90, // 9 0x88, // A 0x83, // B 0xC6, // C 0xA1, // D 0x86, // E 0x8E // F }; void delay(uint x) { uchar i; while(x--) for(i=0;i<110;i++); } void Keys_Scan() { uchar Tmp; P1 = 0x0f; Tmp = P1 ^ 0x0f; switch(Tmp) { case 1: KeyNO = 0; break; case 2: KeyNO = 1; break; case 4: KeyNO = 2; break; case 8: KeyNO = 3; break; default: KeyNO = 16; } P1 = 0xf0; Tmp = P1 >> 4 ^ 0x0f; switch(Tmp) { case 1: KeyNO += 0; break; case 2: KeyNO += 4; break; case 4: KeyNO += 8; break; case 8: KeyNO += 12; } } void main() { int m; while(1) { P0 = 0x00; while(1) { P1 = 0xf0; if(P1 != 0xf0) Keys_Scan(); { if(Pre_KeyNO != KeyNO) { if(m==4) m=0; P2=wema[m++]; P0=DSY_CODE[KeyNO]; delay(200); Pre_KeyNO = KeyNO; } delay(100); } } } } |
|
相关推荐
6个回答
|
|
请求帮助啊。。。。。。。{:21:}{:21:}{:21:}C:UsersasusPictures手机壁纸
|
|
|
|
有没有人帮帮忙啊,快崩溃了,一周了,没弄出来!{:47:}
|
|
|
|
你就写一个0,然后不断地轮流使能四个数码管,看是否都会亮?
点亮两盏灯的时间间隔要快,因为人眼的视觉停留,就好像四个灯一起亮了。 如果上述上常,你在点亮下一盏的时候,改变要显示的数,每一位都同理,那你就可以显示任意四位数了。 |
|
|
|
谢谢你的提醒,我试一下,不过这样没有将数字储存似乎显示不明显啊!
|
|
|
|
刷新时间快点,具体怎么做,可以发挥自己想象 |
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
7 浏览 0 评论
26 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
13 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
644 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1000 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11770 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 13:15 , Processed in 0.660922 second(s), Total 81, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号