3×3矩阵键盘数码管显示0到8
发布网友
发布时间:2022-12-21 10:01
我来回答
共1个回答
热心网友
时间:2023-10-12 12:56
那就选择数码管吧,假设矩阵键盘连P1口,数码管连P0口,上电后数码管显示0,然后3*3键盘控制显示1~9,程序c语言如下:/****************************************************************************************************************扫描法监测键盘,显示按键数值。我的板子是4*4的,所以没调试,有不对的地方我再给你调我看有别人也再问,不介意我去赚点分吧~~~ o(︶︿︶)o******************************************************************************************************************/#include<reg52.h> //文件包含
#define uint unsigned int
#define uchar unsigned char //宏定义,方便使用
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90}; //数码管显示编码
uchar num,temp,num1; //全局变量定义
/************************延时子函数***********************************/void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/**************************主函数*************************************/uchar keyscan(); //定义键扫描函数void display(uchar aa); //定义显示函数 void main()
{
num=0;
P0 = 0xc0 ;
while(1)
{
display(keyscan()); //调用键盘扫描子函数
}
}
/*************************显示子函数**********************************/void display(uchar aa)
{ P0=table[aa];
}/************************键盘扫描子函数*******************************/uchar keyscan()
{
P1=0xfe; //P1赋值,低位送0
temp=P1; //temp读回P1的值,