完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 nickychung 于 2014-1-23 23:34 编辑
/*矩阵键盘不起作用,归根到底是矩阵键盘的问题 大神可以看看*/ #include #include #define uchar unsigned char #define uint unsigned int ***it lcdrs=P2^6; ***it lcdwr=P2^5; ***it lcden=P2^7; uchar code table[]="123456789ABCDEF"; /*0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};*/ uchar table1[]="Key is"; uint key,num,num1; uint num2; void delay(uint z) //延时函数 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void write_com(uchar com) //写指令 { lcdrs=0; lcdwr=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; } void write_data(uchar dat) //写数据 { lcdrs=1; lcdwr=0; P0=dat; delay(5); lcden=1; delay(5); lcden=0; } void init() //初始化 { lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); } void keyscan() { uchar temp; temp=0; P1=0xf0; //高四位输入 行为高电平 列为低电平 delay(1); temp=P1; //读P1口 temp=(temp&0xf0); //屏蔽低四位 temp=~((temp>>4)|0xf0); if(temp==1) key=1; else if(temp==2) key=2; else if(temp==4) key=3; else if(temp==8) key=4; else key=16; P1=0x0f; //低四位输入 列为高电平 行为低电平 delay(1); temp=P1; //读P1口 temp=(temp&0x0f); temp=~(temp|0xf0); if(temp==1) key=key+0; else if(temp==2) key=key+4; else if(temp==4) key=key+8; else if(temp==8) key=key+12; else key=16; num2=key; } void keydown() //判断按键是否被按 { P1=0xf0; if(P1!=0xf0) keyscan(); } void main() { delay(10); init(); for(num1=0;num1<6;num1++) { write_data(table1[num1]); delay(5); } write_com(0x80+0x07); keydown(); write_data(table[key]); delay(5); while(1); } |
|
相关推荐
3个回答
|
|
图都没有上一个,看得费劲啊
|
|
|
|
|
|
|
|
顺便说下,用那么多层else if 干脆用switch case算了
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式-ELFBOARD-RGB LCD屏接口的PCB设计要点
346 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-spi编程示例之spi编写程序
786 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第三十七章 image图像对比实验
756 浏览 0 评论
961 浏览 1 评论
652 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11684 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 14:52 , Processed in 0.596764 second(s), Total 79, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号