找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1461|回复: 7
收起左侧

简易单片机秒表计时器 不成功

[复制链接]
ID:811100 发表于 2021-4-2 13:26 | 显示全部楼层 |阅读模式
功能上电后显示0000,然后每个1秒数码管值加1,加到9999时从0000重新开始。
#include <REGX52.H>
#define uchar unsigned char
#define uint unsigned int
uchar code duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段码
uchar code weima[]={0xef,0xeb,0xe7,0xe3};//位码
//0xff;0xfb;0xf7;0xf3;0xef;0xeb;0xe7;0xe3
uchar dispbuf[];
uint count;
void delayms(uint xms)//延时函数
{
        uchar i, j;
        while(xms--)
                {
                i = 2;j = 199;
                do{while (--j);}
                while (--i);
                }
}
void duan(void)
{
        dispbuf[3]=count/1000;
        dispbuf[2]=count/100%10;
        dispbuf[1]=count/10%10;
        dispbuf[0]=count%10;
        }
void wei(void)
{
        uchar x;
        for(x=0;x<4;x++)
        {
                P0=duanma[dispbuf[x]];
                P2=weima[x];
                delayms(1);
        }
}
void main()
{
        uint k;
        while(1)
        {
                if(++k==220)
                {
                        k=0;
                        if(++count==10000)count=0;
                }
                duan();
                wei();
        }
}
是哪里有问题啊?
回复

使用道具 举报

ID:328014 发表于 2021-4-2 15:15 | 显示全部楼层
现在运行是什么现象,说明一下吧,这样大家才好确定错误的位置,,是编译有问题吗?如果编译有问题,发编译提示错误文本
回复

使用道具 举报

ID:811100 发表于 2021-4-2 15:18 | 显示全部楼层
51hei团团 发表于 2021-4-2 15:15
现在运行是什么现象,说明一下吧,这样大家才好确定错误的位置,,是编译有问题吗?如果编译有问题,发编译提示错 ...

uchar dispbuf[];
这里没有加数组个数
回复

使用道具 举报

ID:811100 发表于 2021-4-2 15:19 | 显示全部楼层
51hei截图20210402132014.png 1617340885747.jpg
回复

使用道具 举报

ID:811100 发表于 2021-4-2 15:20 | 显示全部楼层

第一次发帖忘记放图了
回复

使用道具 举报

ID:811100 发表于 2021-4-2 15:22 | 显示全部楼层
以解决怎么删帖啊
回复

使用道具 举报

ID:451718 发表于 2021-4-2 15:26 | 显示全部楼层
你是如何保证主循环里面,每次count++ 是1秒钟的?   给你个建议,既然要玩计时,就老老实实的去用定时器实现, 你这个delay毫秒的函数, 是非常不合理的。 而且,循环里面的用法也没有搞清楚。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:811100 发表于 2021-4-3 13:36 | 显示全部楼层
robinsonlin 发表于 2021-4-2 15:26
你是如何保证主循环里面,每次count++ 是1秒钟的?   给你个建议,既然要玩计时,就老老实实的去用定时器实 ...

还没学到定时器
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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