单片机新手求助!!

2019-07-15 22:24发布

我想点亮一个4位共阳数码管,输出2013四个数字,写的程序如下,用STC89C52RC开发板仿真,出现了乱码,我感觉程序没错啊
,求大神帮忙
#include<reg51.h>
#define uchar unsigned char
#define uint  unsigned int
code uchar SEG_CODE[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
code uchar array[]={2,0,1,3};
void delay(uint x)
{
        uint i;
        while(x--) for(i=0;i<120;i++);

}
void main()
{
        uint t;
        while(1)
        {
         for(t=0;t<4;t++)
         {  
           P0=0xff;
           P2=1<<t;
           P0=SEG_CODE[array[t]];
           delay(4);
         }
        }

}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
疯子329
1楼-- · 2019-07-16 00:48
求助啊
waltonzxh
2楼-- · 2019-07-16 02:19
本帖最后由 waltonzxh 于 2013-9-22 22:30 编辑

void main()
{
        uint t;
        while(1)
        {
         for(t=0;t<4;t++)
         {  
           P0=0xff;
           P2=1<<t;
           P0=SEG_CODE[array[t]];
           delay(40);//delay about 2ms
         }
        }

}
疯子329
3楼-- · 2019-07-16 06:57
 精彩回答 2  元偷偷看……
qq729101414
4楼-- · 2019-07-16 12:07
你先延时再长一点  看一个一个显示是不是正确 或者你软件仿真一下看看实际的值。
ntmusic
5楼-- · 2019-07-16 13:58
把t的数据类型改回unsigned char型。不行看看字型码是否与数码管对应。

一周热门 更多>