微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 单片机新手求助!

单片机新手求助!

时间:10-02 整理:3721RD 点击:
我想点亮一个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);
         }
        }
}

求助啊

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
         }
        }
}

延时问题吗?我改成了40  还是乱码啊

你先延时再长一点  看一个一个显示是不是正确 或者你软件仿真一下看看实际的值。

把t的数据类型改回unsigned char型。不行看看字型码是否与数码管对应。

上一篇:定时器中断问题
下一篇:门铃模块

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top