完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
程序如下:
#include #include #define uchar unsigned char uchar code a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,}; void delay(uchar ms) { uchar i,j; for(i=ms;i } uchar saomiao() { uchar gk; P2=0x0f; gk=P2; if(gk==0x0f) return(0); else return(1); } uchar keyscan() { uchar i,j,scancode,n,m,k,w=0,v; if(saomiao()) { delay(5); if(saomiao()) { scancode=0xf7; for(i=0;i<4;i++) { P2=scancode; m=P2;n=0x10; for(j=0;j<4;j++) { k=n&m; if(k==0) { v=w+j; while(saomiao()); return(v); } n=_crol_(n,1); } scancode=_cror_(scancode,1); w+=4; } } else return(0xff); }else return(0xff); } void main() { while(1) { if(saomiao()==0) continue; P1=a[keyscan()]; delay(10); } 为什么后三行的按键可以正常运行,而第一行的就不行。。调试时发现当第一行按键按下时程序中k=0x80,不是应该为0吗。。求帮助。
|
|
相关推荐
4个回答
|
|
有时候仿真的情况是坏的,但在实际的板子上它就是好的
|
|
|
|
|
|
|
|
新人,,不懂
|
|
|
|
路过。。。。。。。。。。。。。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
5998 浏览 3 评论
7266 浏览 1 评论
7508 浏览 0 评论
Protues中自己封装的芯片元件无Program File、Clock Frequency选项怎么解决,求求大神了!
9294 浏览 1 评论
基于51单片机的车辆倒车雷达报警系统,HC-SR04超声波测距,全套资料
1271 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 12:44 , Processed in 0.564852 second(s), Total 82, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号