分类：电脑/网络-硬件
问题：stc51单片机c语言编程voidmain(void){whil 
void main(void){  while(1){  P0 = 1;delay(1000);       P0 = 0;delay(1000);}}     我想让接po的八个l一亮一灭，我把这个程序写到单片机里只有po.0的灯才一亮一灭，其他的都一直亮怎么回事   
回答：你这里面写错了，P0=1是不对的，一般来说如果想让P0同步亮或灭，应该是设定P0^7-P0^0这八个独立的口同时为零或同时为一来使这八个口同时为低电平或高电平，来控制与其相连接的八个led灯同时亮或者灭，一般来说都位11111111或00000000，写成16进制形式就是0xff或0x00，完整的程序如下#include<reg51.h>#define uint unsigned intvoid delay(uint);void main(){  while(1)  {    P0=0xff;    delay(10);    P0=0x00;    delay(10);  }}void delay(uint z){  uint x,y;  for(x=z;x>0;x--)    for(y=110;y>0;y--);}还有就是如果要各位显示的亮灭不一样，也是通过修改给P0口的值实现，还有就是如果只是一个口亮，那么要先位定义，如sbit led1=P0^0； 然后后面程序中是led1=1或0来让他亮或者灭