完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
unsigned char code du[17]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void delay(int sum) { int x,y; for(x=sum;x>0;x--) for(y=110;y>0;y--) {;} } unsigned char key_scan() { unsigned char key,key_l,key_h; P1=0xf0; key_l=P1; key_l=key_l&0xf0; if(key_l!=0xf0) { delay(10); if(key_l!=0xf0) { key_l=P1&0xf0; key_l=key_l|0x0f; P1=key_l; key_h=P1; key_h=key_h&0x0f; key_l=key_l&0xf0; key=key_l+key_h; while(P1!=0xf0); } } return key; } void main(void) { unsigned char keynum; P0=0xff; while(1) { keynum=key_scan; switch(keynum) { case(0xee): P0=du[0]; break; case(0xde): P0=du[1]; break; case(0xbe): P0=du[2]; break; case(0x7e): P0=du[3]; break; case(0xed): P0=du[4]; break; case(0xdd): P0=du[5]; break; case(0xbd): P0=du[6]; break; case(0x7d): P0=du[7]; break; case(0xeb): P0=du[8]; break; case(0xdb): P0=du[9]; break; case(0xbb): P0=du[10]; break; case(0x7b): P0=du[11]; break; case(0xe7): P0=du[12]; break; case(0xd7): P0=du[13]; break; case(0xb7): P0=du[14]; break; case(0x77): P0=du[15]; break; default: break; } } } |
|
相关推荐
2个回答
|
|
keynum=key_scan; 这里key_scan是一个函数,你要取的应该是他的返回值key,所以要加括号
最佳答案
|
|
|
|
谢咯 我改后 按键还是没反应 我写的矩阵扫描程序有问题没 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
151 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1043 浏览 0 评论
836 浏览 0 评论
874 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
869 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11824 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 22:43 , Processed in 0.765160 second(s), Total 74, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号