刚刚学习几天,求大佬帮忙检查一下这段代码,自己检查了很多遍,实在发现不了问题所在
问题是:下载后8个数码管最后一个一直全亮,用别人的代码最后一个正常显示
单片机源程序如下:
- #include <reg52.h>
- #define SEG P0 //数码管段选
- //***********************************
- sbit c=P2^7; //138译码器 **
- sbit b=P2^6; // 端口 **
- sbit a=P2^5; // 分配 **
- //***********************************
- unsigned char code Display[6]={0xb0,0x71,0xdb,0x76,0xcf,0x5e};//菜单段码
- void MenuDisplay();//菜单显示
- void mian()
- {
- MenuDisplay();
- }
- void MenuDisplay()
- {
- unsigned char i;
- unsigned int j;
- for(i=0;i<6;i++)
- {
- switch(i)
- {
- case(0):
- c=0;b=0;a=0;break;
- case(1):
- c=0;b=0;a=1;break;
- case(2):
- c=0;b=1;a=1;break;
- case(3):
- c=1;b=0;a=0;break;
- case(4):
- c=1;b=1;a=0;break;
- case(5):
- c=1;b=1;a=1;break;
- }
- SEG=Display[i];
- j=50; //将变量 j 增大发现最后一个数码管的显示方式是----正常代码与全亮交替显示
- while(j--);
- SEG=0x00;//消隐
- }
- }
复制代码
|