爱问知识人 爱问教育 医院库

stc51单片机c语言编程

首页

stc51单片机c语言编程

void main(void){  while(1){  P0 = 1;delay(1000);
       P0 = 0;delay(1000);}}     我想让接po的八个led一亮一灭,我把这个程序写到单片机里只有po.0的灯才一亮一灭,其他的都一直亮怎么回事   

提交回答
好评回答
  • 2012-10-13 11:44:28
      你这里面程序写错了,P0=1是不对的,一般来说如果想让P0同步亮或灭,应该是设定P0^7-P0^0这八个独立的口同时为零或同时为一来使这八个口同时为低电平或高电平,来控制与其相连接的八个led灯同时亮或者灭,一般来说都位11111111或00000000,写成16进制形式就是0xff或0x00,完整的程序如下
    #include
    #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来让他亮或者灭。
      

    s***

    2012-10-13 11:44:28

其他答案

类似问题

换一换

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):