(高手帮忙)51单片机proteus仿真环境下的问题
程序片段1:
P3=scan[i];
switch(i)
{
case 0:
P1=seven_seg[now.minute%10];
break;
case 1:
P1=seven_seg[now.minute/10];
break;
case 2:
P1=seven_seg[now.hour%10];
P1_7=1;
break;
case 3:
P1=seven_seg[now.hour/10];
break;
}
i++;
if(i==4)i=0;
与程序片段2:
switch(i)
{
case 0:
P1=seven_seg[now.minute%10];
break;
case 1:
P1=seven_seg[now.minute/10];
break;
case 2:
P1=seven_seg[now.hour%10];
P1_7=1;
break;
case 3:
P1=seven_seg[now.hour/10];
break;
}
P3=scan[i];
i++;
if(i==4)i=0;
的区别?其中scan为片选信号,seven_seg为7段led显示器(7SEG-MPX4-CC-BLUE)
实验是在proteus的仿真环境下做的,但2个结果明显不一样,
程序段1正常显示,但程序段2就显示乱码了。
还有,如果改成用4个7SEG-COM-AN-BLUE,进行实验,结果是每个管都在左右2个管的值上乱跳不停。而且对单片机的CPU使用率居然达到95%或以上,如果达到100%程序就死了。我想应该不是驱动问题吧?!(我猜测会不会是仿真软件有问题!)
小人单片机刚入门,经老师介绍使用这个仿真软件,因为是准备学嵌入式,以后要转ARM处理器学习,单片机只是个过渡性芯片,所以不想买个开发板学习。望各位高手勿嫌弃,帮帮小弟的忙!
程序是每秒200次T0中断,每次中断走过上面程序段一次。
[解决办法]
先和你说个事:单片机的开发和ARM的开发是两回事.
会不会单片机对ARM开发影响不大...