内容:矩阵键盘控制数码管移位。初始数码管显示00000001,矩阵键盘第一个按键控制数字1左移一位(00000010),矩阵键盘第二个按键控制控制数字1右移一位。
所需模板:
这是该工程所需要引的头文件。具体模板以及功能参考我之前发的文章
51单片机常用的一些模块(模块化编程)延时函数模块(delay)独立按键模块(key)数码管模块(Nixie)LCD1602模块矩形键盘模块定时器模块_Dream_begin_的博客-CSDN博客
代码:
#include <REGX52.H>
#include "Delay.h" //包含Delay头文件
#include "LCD1602.h" //包含LCD1602头文件
#include "MatrixKey.h" //包含矩阵键盘头文件
#include "Nixie.h"
unsigned char KeyNum,Num=1,i;
void main()
{
while(1)
{
KeyNum=MatrixKey();
if(KeyNum)
{
if (KeyNum==1) Num++;
if(KeyNum==2) Num--;
}
if(Num==9) Num=1;
if(Num==0) Num=8;
for(i=1;i<=8;i++)
{
if(i==Num) Nixie(9-i,1);
else Nixie(9-i,0);
}
}
}
#include <REGX52.H>
//#include "delay.h"
#include "matrixKey.h"
#include "Nixie.h"
void main()
{
unsigned char KeyNum;
unsigned char num=1;;
while(1)
{
switch(num)
{
case 1:Nixie(1,0);Nixie(2,0);Nixie(3,0);Nixie(4,0);Nixie(5,0);Nixie(6,0);Nixie(7,0);Nixie(8,1);break;
case 2:Nixie(1,0);Nixie(2,0);Nixie(3,0);Nixie(4,0);Nixie(5,0);Nixie(6,0);Nixie(7,1);Nixie(8,0);break;
case 3:Nixie(1,0);Nixie(2,0);Nixie(3,0);Nixie(4,0);Nixie(5,0);Nixie(6,1);Nixie(7,0);Nixie(8,0);break;
case 4:Nixie(1,0);Nixie(2,0);Nixie(3,0);Nixie(4,0);Nixie(5,1);Nixie(6,0);Nixie(7,0);Nixie(8,0);break;
case 5:Nixie(1,0);Nixie(2,0);Nixie(3,0);Nixie(4,1);Nixie(5,0);Nixie(6,0);Nixie(7,0);Nixie(8,0);break;
case 6:Nixie(1,0);Nixie(2,0);Nixie(3,1);Nixie(4,0);Nixie(5,0);Nixie(6,0);Nixie(7,0);Nixie(8,0);break;
case 7:Nixie(1,0);Nixie(2,1);Nixie(3,0);Nixie(4,0);Nixie(5,0);Nixie(6,0);Nixie(7,0);Nixie(8,0);break;
case 8:Nixie(1,1);Nixie(2,0);Nixie(3,0);Nixie(4,0);Nixie(5,0);Nixie(6,0);Nixie(7,0);Nixie(8,0);break;
}
KeyNum=MatrixKey();
if(KeyNum)
{
if (KeyNum==1)
num++;
if(KeyNum==2)
num--;
}
if(num==9)
num=1;
if(num==0)
num=8;
}
}