标题: 单片机数码管显示不全,怎么解决? [打印本页]

作者: 机电小生    时间: 2020-4-6 15:19
标题: 单片机数码管显示不全,怎么解决?
要做一个60秒的倒计时,十位显示正常,个位显示不全,想问一下怎么解决?

[FBHB]TUU96{`F{_G[MJVSH.png (20.01 KB, 下载次数: 45)

[FBHB]TUU96{`F{_G[MJVSH.png

作者: 机电小生    时间: 2020-4-6 15:22
程序如下
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code ge[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x90};       
uchar code zixingma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x90};       
sbit P10=P1^0;
sbit P11=P1^1;
uchar s,k;
void delay5ms()
{
        uchar i,j;
        for(i=10;i>0;i--)
                for(j=248;j>0;j--);
}
void t_0() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        k--;
        if(k==0)
                {       
                        k=20;
                        s--;
                        if(s==0)
                        {
                                s=60;
                        }
                }
}
void main()
{
        uint t;
        s=60;
        k=20;
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        while(1)
        {
                P11=1;
                P0=zixingma[s/10];
                for(t=0;t<10;t++);
                delay5ms();
                P10=1;
                P11=0;
                P0=zixingma[s%10];
        }
}
作者: 小石头123    时间: 2020-4-6 19:53
机电小生 发表于 2020-4-6 15:22
程序如下
#include
#define uchar unsigned char

个位没有加延时吧
作者: 小石头123    时间: 2020-4-6 19:54
机电小生 发表于 2020-4-6 15:22
程序如下
#include
#define uchar unsigned char

十位 编码 延时 个位 编码 十位 编码-----少了个延时吧
作者: wulin    时间: 2020-4-6 20:53
机电小生 发表于 2020-4-6 15:22
程序如下
#include
#define uchar unsigned char

动态显示要加消隐
void main()
{
//        uint t;
        s=60;
        k=20;
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        while(1)
        {
                P0=0xff;//消隐
                P10=1;P11=0;
                P0=zixingma[s/10];
                //for(t=0;t<10;t++);
                delay5ms();
                P0=0xff;//消隐
                P10=0;P11=1;
                P0=zixingma[s%10];
                delay5ms();
        }
}
作者: benclee    时间: 2020-4-6 21:10
while(1)
        {
                P11=1;
                P0=zixingma[s/10];
                for(t=0;t<10;t++);
                delay5ms();
                P11=0;
                P10=1;
                P0=zixingma[s%10];
                                for(t=0;t<10;t++);
                delay5ms();
                                P10=0;
        }
作者: 机电小生    时间: 2020-4-6 22:17
wulin 发表于 2020-4-6 20:53
动态显示要加消隐
void main()
{

太感谢了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1