4*4矩阵键盘控制四位数码管显示单片机C语言程序 10
用51单片机实现,矩阵键盘输入数码管显示,多余四位的能保存起来,最好有电路图,用四位共阴数码管、最少能输入四十个数字,并保存起来。谢谢...
用51单片机实现,矩阵键盘输入数码管显示,多余四位的能保存起来,最好有电路图,用四位共阴数码管、最少能输入四十个数字,并保存起来。谢谢
展开
5个回答
展开全部
#include <intrins.h>
#define uchar unsigned char
#define ROWP P3
#define LINP P2
void Delay(uchar i) {
uchar j;
for(;i>0;i--)
for(j=0;j<112;j++)
_nop_();
}
uchar Keyscan(){
uchar i,j,RLP,num;
for(i=0;i<4;i++){
LINP=(LINP|0xf0)&(~(0x10<<i));
Delay(1);
for(j=0;j<5;j++){
RLP=(ROWP|0x1f)&(~(0x10>>j));
if(ROWP==RLP){
Delay(2);
if(ROWP==RLP)
num=i*5+j+1;
}
}
}
return num;
}
5*4的,稍微修改,就是4*4的
#define uchar unsigned char
#define ROWP P3
#define LINP P2
void Delay(uchar i) {
uchar j;
for(;i>0;i--)
for(j=0;j<112;j++)
_nop_();
}
uchar Keyscan(){
uchar i,j,RLP,num;
for(i=0;i<4;i++){
LINP=(LINP|0xf0)&(~(0x10<<i));
Delay(1);
for(j=0;j<5;j++){
RLP=(ROWP|0x1f)&(~(0x10>>j));
if(ROWP==RLP){
Delay(2);
if(ROWP==RLP)
num=i*5+j+1;
}
}
}
return num;
}
5*4的,稍微修改,就是4*4的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
保存起来指的是什么?断电也保存么?还要调用?
追问
我要做一个无线发射器,要一次性发射四十多个数字,还要通个数码管显示,所以要把输入的保存起来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同意2楼
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
去看看C的相关知识
这个是基础中的基础
不然你玩不转单片机的~~~
这个是基础中的基础
不然你玩不转单片机的~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
唉,都是一来就问要程序要电路,都不想想该怎么去实现,这样电子产业怎么提高呀
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询