6.zip

  • 浏览量:1096
  • 下载量:3
  • 资料大小:40.38 KB
  • 日期:2015-08-09
  • 上传者:630183258
  • 分享
  • 评论
  • 举报
  • 收藏

资料描述

    1、仿真效果





    2、代码




    #include
    #include

    bit flag;
    sbit p1_7=p1^7;
    sbit p1_0=p1^0;

    unsigned char count;

    void dely500(void)
    {
    unsigned char i;
    for(i=250;i>0;i--)
    {
    _nop_();
    }
    }

    void main(void)
    {
    while(1)
    {
    if(p1_7==0)
    {
    for(count=200;count>0;count--)
    {
    p1_0=~p1_0;
    dely500();
    }
    for(count=200;count>0;count--)
    {
    p1_0=~p1_0;
    dely500();
    dely500();
    }

    }
    }
    }





    3、分析


          (1)这个程序实现的是蜂鸣器发声,不过我认为程序是有一些问题,下面分析下。


          (2)cpu在两个for循环中运行时,p1_7发生变化时,不会跳出循环,不过我计算了下时间大概在几百毫秒,貌似影响不大。


          (3)p1_7为高电平时,p1_0没有一个确定的状态,我觉得p1_0应该为高电平,否则凤鸣器会一直响。


          (4)if(p1_7==0)好像也有问题,应该是先读取p1_7的值,再判断。例如;


                    temp=p1_7;



                    if(temp==0);


           最后附上附件,手懒得可以自己下载直接仿真。
评论(0)

登录后可评论,请 登录注册

   
相关资料
换一换