3×3矩阵键盘数码管显示0到8

3×3矩阵键盘数码管显示0到8,第1张

那就选择数码管吧,假设矩阵键盘连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=zx>0x--)

for(y=110y>0y--)

}

/**************************主函数*************************************/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的值,

SCANPORT= ( SCANPORT&0XC0) | ( uca_LineScan[ucLine|0XC0) //运算, 高2位保持,低6位变成想要的。

Temp=SCANPORT &0x07 //你要高山注意, SCANPORT里面的值戚昌中包括P2.6、P2.7

if(Temp!=0x07)

一般的与、或运算可以解决。可能我写的不太好,你可以用一个中间变量在运算那儿。迅派


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12374052.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存