msdmqht 2019-10-11 21:25 采纳率: 0%
浏览 230

89C51题目解答失败,特此求助

这是题目

图片说明

这是我的解答


#include"reg51.h"
#define uchar unsigned char  

sbit l0=P2^0;  sbit l1=P2^1;
sbit l2=P2^2;  sbit l3=P2^3;
sbit l4=P2^4;  sbit l5=P2^5;
sbit l6=P2^6;  sbit l7=P2^7;     

void delay()
{
    uchar t,p;
    for(p=0;p<=255;p++)
    for(t=0;t<=255;t++);
}
void jishu()
{   
    l0=0;  delay();  l0=1;
    l2=0;  delay();  l2=1;
    l4=0;  delay();  l4=1;
    l6=0;  delay();  l6=1;
}
void oushu()
{   
    l1=0;  delay();  l1=1;
    l3=0;  delay();  l3=1;
    l5=0;  delay();  l5=1;
    l7=0;  delay();  l7=1;
}
void jiaoti()
{
    l0=0;  l2=0;  l4=0;  l6=0;  delay();
    l0=1;  l2=1;  l4=1;  l6=1;  
    l1=0;  l3=0;  l5=0;  l7=0;  delay();
    l1=1;  l3=1;  l5=1;  l7=1;
}

void main()
{   
    uchar state;
    do
    {   P1=0xff;  state=P1;  state=state&0x03;//读取现在开关状态
        switch(state)
        {
            case 0:  P2=~0x00;  break; //全闭,全灭
            case 1:  jishu();   break;//1闭,0开,奇数灯流水
            case 2:  oushu();   break;//1开,0闭,偶数灯流水
            case 3:  jiaoti();  break;//全开,奇偶交替亮
        }
    } while(1);
}

这个解答语法和逻辑没有错误,在模拟的时候得不到理想的效果,尝试修改失败,求各位大神帮忙瞅瞅怎么纠正,感谢

  • 写回答

1条回答 默认 最新

  • 关注
    评论

报告相同问题?

悬赏问题

  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制