在用仿真器调试程序时,每执行一条语句就可以看到之后相关变量的值的变化。如在本程序中当PC指针执行过 “P10=0;”后指到“P0=0xFA;”时,我就可以看到P10的值就变为0了。但是为什么在PC指针执行过“P0=0xFA;”后 指到“delay(60000);”时,却看不到P0变为FA呢?只有执行过“delay(60000);”语句后才能看到P0变为FA。*/ /****************************************************** 程序功能:用数码管依次显示0-9 备注:P0口为数据输出来控制数码管8个阳极 P10接数码管的阴极 P0输出高电平P10输出低电平时数码管亮 0-9对应为:FA,82,B9,AB,C3,6B,7B,A2,FB,EB ******************************************************/ #include <reg52.h> sbit P10=P1^0; sbit P11=P1^1; sbit P12=P1^2; sbit P13=P1^3; sbit P14=P1^4; sbit P15=P1^5; sbit P16=P1^6; sbit P17=P1^7;
/************延时************/ void delay(unsigned int i) { while(i>1) i--; } /****************************/
void main(void) { while(1) { P10=0; P0=0xFA; //显示0 delay(60000); P0=0x82; //显示1 delay(60000); P0=0xB9; //显示2 delay(60000); P0=0xAB; //显示3 delay(60000); P0=0xC3; //显示4 delay(60000); P0=0x6B; //显示5 delay(60000); P0=0x7B; //显示6 delay(60000); P0=0xA2; //显示7 delay(60000); P0=0xFB; //显示8 delay(60000); P0=0xEB; //显示9 delay(60000); } }
|