#include <REGX52.H>
#include "LCD1602.h"
#include "key.h"
#include "Delay.h"
unsigned char K,n;
unsigned char chr[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void test(unsigned char location,unsigned char number)
{
switch(location) //位选
{
case 0: P2_4=1;P2_3=1;P2_2=1;break; //7
case 1: P2_4=1;P2_3=1;P2_2=0;break; //6
case 2: P2_4=1;P2_3=0;P2_2=1;break;//5
case 3: P2_4=1;P2_3=0;P2_2=0;break; //4
case 4: P2_4=0;P2_3=1;P2_2=1;break;//3
case 5: P2_4=0;P2_3=1;P2_2=0;break;//2
case 6: P2_4=0;P2_3=0;P2_2=1;break;//1
case 7: P2_4=0;P2_3=0;P2_2=0;break;//0
}
P0=chr[number]; //段选
}
void main()
{
test(0,0);
while(1)
{
K=key(); //返回按键
if(K)
{
test(1,K); //数码管显示数字 如果是0,K,第一个数码管能正常显示,但如果是其他数码管,则不能正常显示。
}
}
}
51单片机数码管显示有问题
最新推荐文章于 2024-08-16 00:57:26 发布