普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 7010|回复: 1

静态数码管循环显示无法实现?求指点迷津。。。

[复制链接]

2

主题

3

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2018-6-10 11:41:16 | 显示全部楼层 |阅读模式
以下程序是实现共阳极的静态数码管“0-f”的循环显示,但是下载后却一直显示8,无法循环。这是怎么回事呢?求指点。。。

#include "reg51.h"

typedef unsigned char uc8;
typedef unsigned int ui16;

uc8 code smgduan[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x07,
                                          0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

                                          
void delay(uc8 i)
{
        while(i--);
}

                                          
void main()
{
        ui16 a;
        P0=~smgduan[0];
        delay(50000);
        while(1)
        {       
                for(a=0;a<16;a++)
                {
                        P0=~smgduan[a];
                        delay(50000);
                        delay(50000);
                }
        }
}
回复

使用道具 举报

0

主题

16

帖子

51

积分

注册会员

Rank: 2

积分
51
发表于 2018-6-11 00:35:17 | 显示全部楼层
while(uc8 i)要改成ui16,这个改掉就可以显示数字了
void main()
{
ui16 a;
P0=~smgduan[0]; 这句可以不要否则就显示两次0,这里一次,for里一次
delay(50000);这句和上面一起的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-24 18:03 , Processed in 0.089251 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表