完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
本帖最后由 lbb_1112 于 2015-12-7 16:38 编辑
51单片机读取74c922键盘的按键,在12864进行显示,程序: /*------------------键盘读值-----------------*/ uchar key1(void) { uchar keyk; //KDA=keyDA; if(KDA==1) { //P2=0x00; delay_key(20); if (KDA==1) { delay_key(20); keyk=P2&0xf0; next++; 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;//测量 } } return k; } void main () { //delay_lcd(2000); //P2=0x00; init_lcd (); init(); KDA=keyDA; shen=0; time=0; KDA=0; counter=0; clrram (); wc(0x80); wh("速度"); wd(0x3a); wc(0x90); wh ("深度"); while(1) { KDA=keyDA; delay_lcd(100); k=key1(); sushen(); if(0<=k<=9) {wc(0x88); wd(0x30+k); } if(k==14) { s=1; shezhi(); } if(k==12) { soft_reset(); } } } /*------------------设置子程序-----------------*/ void shezhi(void) //; { uchar a,b,shejishu; shejishu=0; a=1; b=1,s=0,x=1; clrram(); while(shejishu==0) //设置1 { delay_key(100); // uchar k; wc(0x81); wh("测量方式:"); wc(0x91); wh("1:磁法"); wc(0x89); wh("2:电法"); wc(0x99); wh("选择:"); wc(0x9c); wc(0x14); // wc(0x0c); wd(a+0x30); k=key1(); if(1<=k<=2) { a=k; if(a==1) { c=1; d=0; } if(a==2) { c=0; d=1; } } if(k==11) //设置1完成,跳出 {shejishu++; clrram(); break; } } while(shejishu==1) //设置2 { // uchar k; next=0; wc(0x81); wh("起始深度:"); wc(0x89); // wc(0x0f); k=key1(); if(0<=k<=9) { if(next>=2) {next=0;} wu[next]=k; } wd(wu[0]+0x30); wd(wu[1]+0x30); wc(0x8a); // wc(0x0f); wd(wu[2]+0x30); wd(wu[3]+0x30); shen=wu[0]*1000+wu[1]*100+wu[2]*10+wu[3]; if(k==11) {shejishu++; clrram(); break; } } 不知道为什么设置1的循环能正常,设置2的循环只是执行一次就跳出了?感觉还是键值读取的K=11这个值,有没有办法当K值读完就不再去读了,或着KDA不等于1时不去跳过 k=key1();这个语句, |
|
相关推荐
3个回答
|
|
|
|
可以通过设置标志位来进行切换,当得到你想要的值后就给标志位赋个值,然后判断哪些你想根据这个值来执行的程序是否需要执行
|
|
|
|
建议再看看课本按键处理相关知识
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
494 浏览 0 评论
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
1050 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1151 浏览 0 评论
887 浏览 0 评论
928 浏览 1 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11842 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 12:35 , Processed in 0.703910 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号