用八位数码管实现12345678同时亮

2019-07-18 08:43发布

搞了一下午也没弄好啊 求大神指点
15259507966832120532996.jpg
15259508866431933917800.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
gtzhchg
2019-07-18 21:50
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int

uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code LED_W[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
/********************************************************************
* 名称 : Delay_1ms()
* 功能 : 延时子程序,延时时间为 1ms * x
* 输入 : x (延时一毫秒的个数)
* 输出 : 无
***********************************************************************/
void Delay(uint i)
{
        uchar x,j;
        for(j=0;j<i;j++)
        for(x=0;x<=148;x++);       
}

/********************************************************************
* 名称 : Main()
* 功能 : 数码管的显示
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Main(void)
{
        uchar i;
        while(1)
        {
                for(i=0;i<8;i++)
                {
                        P0 = 0;               
                        P2 = LED_W;                 //选择哪一位数码管点亮
                        P0 = table;                 //赋值段码给P0口
                        Delay(2);                         //延时0.02秒
                }
        }
}
参考

一周热门 更多>