标题: 单片机数码管个位能正常显示,十位一闪一闪的,想问一下怎么解决? [打印本页]

作者: 机电小生    时间: 2020-4-20 11:31
标题: 单片机数码管个位能正常显示,十位一闪一闪的,想问一下怎么解决?
数码管个位能正常显示,十位一闪一闪的,想问一下怎么解决?
程序如下:
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code zixingma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x83,0xf8,0x80,0x98};
sbit P20=P2^0;
sbit P21=P2^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)
        {
                s++;
                k=20;
                SBUF=s;
                if(s==10)
                {
                        s=0;
                }
        }
}
void tr() interrupt 4
{        
        if(TI)
        {
                TI=0;
        }
        if(RI)
        {
                RI=0;
                P0=0xff;
                P20=1;
                P21=0;
                P0=zixingma[SBUF/10];
                delay5ms();
                P0=0xff;
                P20=0;
                P21=1;
                P0=zixingma[SBUF%10];
                delay5ms();
        }
}
void main()
{
        s=0;
        k=20;
        SCON=0x50;
        TMOD=0x21;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        TH1=0xfd;
        TL1=0xfd;
        TR0=1;
        TR1=1;
        EA=1;
        ES=1;
        ET0=1;
        while(1);
}

6SW[}0X9}GC(W6JYF3B}S11.png (22.75 KB, 下载次数: 46)

6SW[}0X9}GC(W6JYF3B}S11.png

作者: 1007947409    时间: 2020-4-20 15:40
你是真的虎啊,定时器里做延时来控制数码管
作者: 机电小生    时间: 2020-4-20 23:35
1007947409 发表于 2020-4-20 15:40
你是真的虎啊,定时器里做延时来控制数码管

哈哈哈,后来改了




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