程序如下:
#include "reg51.h"
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit P2_0=P2^0;
static uint8 idata _7LED[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x6f,0x77,0x7c,0x39,0x5e,0xf9,0xf1,0x7f};
/*0-0x3f,1-0x06,2-0x5b,3-0x4f,4-0x66,5-0x6d,6-0x7d,7-0x07,
8-0x7f,9-0x6f,A-0x77,B-0x7c,C-0x39,D-0x5e,E-0xf9,F-0xf1*/
void Delay(uint16 ms)
{
uint8 i,j;
while(ms--)
{
for(i=0;i<8;i++)
{
for(j=0;j<79;j++);
}
}
}
//=================================================
void main(void)
{
uint8 i;
while(1)
{
for(i=0;i<8;i++)
{
P0=_7LED;
P2_0=1;
Delay(1000);
P2_0=0;
}
}
}
问题:1、仿真时为什么P2.0和另外7个IO都不受控制?数码管显示到“1”时就停住了。
2、P0口的灰色脚是怎么回事?
3、既然红色数码管的NPN没导通,但数码管却亮了?
|