求助4X4矩阵按键点亮LED程序
矩阵按键
#include<reg52.h> //52?μáDμ¥???úí·???t
#include<intrins.h>
#define uint unsigned int //oê?¨ò?
#define uchar unsigned char
void delayms(uint xms) //?óê±×óoˉêy
{
uint i,j;
for(i=xms;i>0;i--)
for(j=120;j>0;j--);
}
void main()
{
uchar p20,p21,p30,p31;
while(1)
{
P1=0xef;
p20=P1;
p20=p20&0x0f;
P1=0xdf;
p21=P1;
p21=p21&0x0f;
P1=0xbf;
p30=P1;
p30=p30&0x0f;
P1=0x7f;
p31=P1;
p31=p31&0x0f;
P2=p21*16+p20;
P3=p31*16+p30;
delayms(5);
}
}
可以将4个行信号做输出,4个列信号做输入,这样行信号循环输出高电平,去扫描列信号的状态,就可以了吧
led对应io进行低电平输出就可以了,矩阵按键进行行列扫描就可以了。很简单的,可以尝试一下的
你按下按键后还放开么?还是说要一直按着才亮呢?
我是个初学者,刚接触51单片机,不知道程序,望发一个C程序源码,谢谢
我是个初学者,刚接触51单片机,自己会写就不会在这求助了,谢谢
我是个初学者,刚接触51单片机,自己会写就不会在这求助了,谢谢
我是按一下某个按键相对应的LED灯点亮,如果一直按着按键,LED灯一直亮,谢谢
proteus版块有 很多例子 我找了一个 你看一下
http://bbs.elecfans.com/jishu_475648_1_1.html
二极管正极接地吗?也没有限流电阻!
虽然不适合我的需求,但也要谢谢你
LED正极是接5V电压的,这只是用来仿真的简化图,实际成品要加上电阻电容什么的。
当年在学校就是用51单片机的,程序都是C,做毕业设计的都有保存,不知可还需要
非常感谢,向你致敬