8 只数码管显示多个不同数字 仿真不显示

2019-07-18 10:59发布

8 只数码管显示多个不同数字,用proteus仿真 程序中 DelayMS(300) 的时候可以8个字符滚动显示,改成 DelayMS(5) 的时候,偶尔显示,改成 DelayMS(2) 就不显示了。
本人是新手,利用业余时间学习单片机,弄了3个小时,实在找不到原因,请前辈们指导,
/*  名称:8 只数码管动态显示多个不同字符
  说明:数码管动态扫描显示 0~7。
*/
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//延时
void DelayMS(uint x)
{
uchar t;
while(x--) for(t=0;t<120;t++);
}
//主程序
void main()
{
uchar i,wei=0x80;
while(1)
{
  for(i=0;i<8;i++)
  {  
   P0=0xff;
   P0=DSY_CODE;  //发送段码
   wei=_crol_(wei,1);
   P2=wei;     //发送位码
   DelayMS(2);
  }
}
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
syxplc
1楼-- · 2019-07-18 14:49
是不是仿真软件有问题呀,还是数码管要设置呀,请高手发表一下观点呀。
郑青松001
2楼-- · 2019-07-18 15:02
不是仿真问题哦、、、程序要是像你说的也对的、、要是延迟的时间很短、、数码管无法反应、、、要是时间恰当是滚动显示的、、时间短了、显示是跳着的、、要是时间到极限的话就显示不出来了、、
。。。要是你注意的话、、时间调到极限特别短、、protues下面显示的CPU已经达到100%了吧、、、
单片机交流群、177303668、、欢迎你的加入、、
dfgtrghfg
3楼-- · 2019-07-18 18:06
请大家看看我淘宝店的衣服http://www.wosges.com/
奋斗的傻地瓜
4楼-- · 2019-07-18 19:29
我的也是这种情况。。。。
武力戡乱
5楼-- · 2019-07-18 23:23
请把工程文件上传一下,包括仿真和编译文件
我爱俞俊琪
6楼-- · 2019-07-18 23:24
 精彩回答 2  元偷偷看……

一周热门 更多>