题目:
实验板上电时,数码管不显示,顺序按下矩阵键盘后,在数码管上依次显示0~F,6个数码管同时静态显示即可。(来自郭天祥老师的51单片机练习)
代码:
初始化函数:
//初始化函数
void Init()
{
DLE = 1;
P0 = 0x00;//关闭数码管(共阴极)段选,数码管不显示
DLE = 0;
WLE = 1;
P0 = 0xc0;//打开所有数码管的位选
WLE = 0;
}
延时1ms函数:
//延时1ms函数
void delay_1ms(uint z)
{
uint x,y;
for(x = z;x > 0;x--)
{
for(y =110;y > 0;y--){}
}
}
矩阵键盘函数:
//矩阵键盘函数
void MatrixKeyboard()
{
uchar temp;
uint keyNum;
P3 = 0xfe;//第一排按键
temp = P3;
temp = temp & 0xf0;
while(temp != 0xf0)
{
delay_1ms(10);//消抖
temp = P3;
temp = temp & 0xf0;
if(temp != 0xf0)
{
temp = P3;
switch(temp)
{
case 0xee:
keyNum = 0;
break;
case 0xde:
keyNum = 1;
break;
case 0xbe:
keyNum = 2;
break;
case 0x7e:
keyNum = 3;
break;
}
//等待按键释放
while(temp != 0xf0)
{
temp =

文章讲述了如何使用51单片机控制数码管显示,通过矩阵键盘输入并实现逐个数码管动态显示,介绍了初始化、延时函数和矩阵键盘处理技巧。
最低0.47元/天 解锁文章
1050

被折叠的 条评论
为什么被折叠?



