完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 lbb_1112 于 2015-12-4 13:48 编辑
用74c922做的键盘控制,51单片机和12864显示,按键后总是没反应进不到按键后的程序中去,74c922的输出有信号,能用万用表量到。KeyDA是74c92任一按键按下时,此脚位会输出高电位,按键释放后此脚又会恢复为低电位。感觉进不去键盘子程序,P2口的高四位为键盘的值,低四位不用,程序运行时低四位一直为高,如果P2口初始化为0X00,高四位在按键时就一直是低。 程序如下: void main () { start: //delay_lcd(2000); init_lcd (); init(); shen=0; time=0; KDA=keyDA; KDA=0; counter=0; clrram (); wc(0x80); wh("速度"); wd(0x3a); wc(0x90); wh ("深度"); while(1) { uchar k; delay_lcd(100); k=key1(); if(k==14) {wc(0x98); wd(0x30+k); s=1; shezhi(); } if(k<=9) {wc(0x88); wd(0x30+k); } sushen(); // delay_lcd(1000); if(k==12) { goto start; } } } uchar key1(void) { uchar keyk,k; if(KDA==1) { // P2=0x00; delay_key(20); if (KDA==1) { delay_key(20); keyk=P2&0xf0; P2=0xf0; } switch(keyk) { case 0x00:k=7; break; case 0x10:k=4; break; case 0x30:k=1; break; case 0x20:k=0; break; case 0x40:k=8; break; case 0x50:k=5; break; case 0x70:k=2; break; case 0x80:k=9; break; case 0x90:k=6; break; case 0xb0:k=3; break; case 0x60:k=10;break;//光标 case 0xa0:k=11;break;//确定 case 0xc0:k=12;break;//复位 case 0xd0:k=13;break;//通信 case 0xf0:k=14;break;//设置 case 0xe0:k=15;break;//测量 } if (KDA==1); { next++;} return k; } //else //{ //return;} } |
|
相关推荐
4个回答
|
|
KDA=keyDA;放错地方了得缘故吧 放到while(1)里面看看
|
|
|
|
这个……看看再说吧,,,.........
.................................................................................................................................................................................................................................................................................凯巴伯集团www.kaibabo.com 凯巴伯网络www.kaibabo.net东莞网站建设,东莞网页设计www.kaibabo.cn凯巴伯服饰产业发展有限公司 ,服装印花材料www.kaibabo.cn |
|
|
|
哦,谢谢,放到里面了,按键有反应了,只是总是0x00,好像P2脚会被拉下去 |
|
|
|
不知道为什么p2口不能初始化为0x00,不然总是被拉低 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard EL 1板卡-i2c与从设备通讯编程示例之i2c-tools工具使用
652 浏览 0 评论
stc15f2k60s2利用串口传输字模存储到eeprom并进行点阵显示
696 浏览 1 评论
1264 浏览 0 评论
588 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-串口通讯编程示例之串口编写程序
1190 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11598 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-3 10:29 , Processed in 0.647348 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号