找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2063|回复: 2
收起左侧

单片机数码管个位能正常显示,十位一闪一闪的,想问一下怎么解决?

[复制链接]
ID:723431 发表于 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
回复

使用道具 举报

ID:653022 发表于 2020-4-20 15:40 | 显示全部楼层
你是真的虎啊,定时器里做延时来控制数码管
回复

使用道具 举报

ID:723431 发表于 2020-4-20 23:35 | 显示全部楼层
1007947409 发表于 2020-4-20 15:40
你是真的虎啊,定时器里做延时来控制数码管

哈哈哈,后来改了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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