请选择 进入手机版 | 继续访问电脑版

普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 5449|回复: 3

独立按键 控制静态共阳数码管倒计时,显示9-1,不显示0,哪里出问题了,求老司机

 关闭 [复制链接]

2

主题

5

帖子

27

积分

新手上路

Rank: 1

积分
27
发表于 2018-3-23 09:37:42 | 显示全部楼层 |阅读模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit k1=P3^1;
uchar cz=9;
uchar code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(uint a)
{
        uint i,j;
        for(i=0;i<a;i++)
                for(j=0;j<1827;j++);           //10ms
}
void main()
{
        P0=seg[cz];
        while(1)
        {
                if(k1==0)
                {
                        delay(1);
                        if(k1==0)
                        {
                                cz--;
                                if(cz==0)
                                        cz=9;
                                while(!k1);
                                delay(1);
                                P0=seg[cz];
                        }
                }
               
        }
}
回复

使用道具 举报

2

主题

5

帖子

27

积分

新手上路

Rank: 1

积分
27
 楼主| 发表于 2018-3-23 10:17:53 | 显示全部楼层
本帖最后由 changzf 于 2018-3-23 10:32 编辑

如果没有        
if(cz==0)
        cz=9;
只显示一遍,9-0,
加上
if(cz==0)
        cz=9;
只显示9-1;



若把它改了
uchar cz=10;
......
if(cz==0)
        cz=10;
9-1显示正确,0出现错误,小数点亮了,

回复 支持 反对

使用道具 举报

20

主题

1343

帖子

8341

积分

论坛元老

Rank: 8Rank: 8

积分
8341
发表于 2018-3-23 11:29:04 | 显示全部楼层
本帖最后由 HC6800-ES-V2.0 于 2018-3-23 11:33 编辑

我给你改好了!!!!!
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit k1=P3^1;
char cz=9;//我改的
uchar code seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//这个我也改了一下,用的我的,你原来的有一个乱码,//如果你是共阳的数码管,那么显示时取反就可以了
void delay(uint a)
{
        uint i,j;
        for(i=0;i<a;i++)
                for(j=0;j<1827;j++);           //10ms
}
void main()
{
        P0=seg[cz];
        while(1)
        {
                if(k1==0)
                {
                        delay(1);
                        if(k1==0)
                        {
                                cz--;
                            if(cz==-1)//我改的   
                                        cz=9;
                                while(!k1);
                                delay(1);
                                P0=seg[cz];
                        }
                }
               
        }
}
回复 支持 反对

使用道具 举报

2

主题

5

帖子

27

积分

新手上路

Rank: 1

积分
27
 楼主| 发表于 2018-3-26 11:34:56 | 显示全部楼层
HC6800-ES-V2.0 发表于 2018-3-23 11:29
我给你改好了!!!!!
#include
#define uchar unsigned char

谢谢,试了一遍 ,显示正确,
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2024-3-29 14:25 , Processed in 0.087548 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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