您现在的位置:首页 > 科技成果科技成果

【新手求助![抱拳]!】|数码管显示时钟

发布时间:2020-11-14 09:58:15  来源:大电流电感厂家   查看:
用动态扫描方法和定时器0在数码管的后五位显示出秒表,精确到1%秒,即最后一位显示1%秒,一直循环下去
数码管显示为    ×××:××   。
我的代码如下://程序运行的结果是数码管压根不亮……求大神指教[抱拳]
#include"reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit LSA=P2^2;                                      //138译码器,用于控制数码管位选
sbit LSB=P2^3;
sbit LSC=P2^4;
u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
                           0x7d,0x07,0x7f,0x6f,0x77,0x7c,
                           0x39,0x5e,0x79,0x71};

u8 b,s,g,sf,bf,tempt,x;
void initial();                                                        //初始化子函数
void delay(u16 a);                                                //延时子函数
void display(u8 b,u8 s,u8 g,u8 sf,u8 bf);             //显示子函数
void main()
{
        initial();
        while(1)
        {
                if(x==10)                                          //x在定时器中,每1ms++
                {
                        tempt++;
                        if(tempt==100000)                 //加到五位数则tempt清零
                                tempt=0;
                        b=tempt/10000;                     //b即百,即×××:××中第一位,b××:××
                        s=tempt%10000/1000;           //s即十,即×××:××中第一位,×s×:××
                        g=tempt%1000/100;              //以此类推
                        sf=tempt%100/10;
                        bf=tempt%10;
                        display(b,s,g,sf,bf);
                }                       
        }
       
}
void delay(u16 a)
{
        while(a--);       
}
void initial()
{
        tempt=0;
        b=0;
        s=0;
        g=0;
        bf=0;
        sf=0;
        TMOD|=0x01;                                                //TMOD=TMOD|0x01
        //TH0=(65535-10000)/256;
        //TL0=(65535-10000)%256;
        TH0=0xfc;
        TL0=0x18;                                                     //初值使定时器显示1ms
        EA=1;
        ET0=1;
        TR0=1;
}
void display(u8 b,u8 s,u8 g,u8 sf,u8 bf)
{
        u8 i;
        for(i=0;i<5;i++)
        {
                switch(i)
                {
                        case 0:
                                LSA=0;LSB=0;LSC=0; break;              //LSA,LSB,LSC为138译码器的三个输入端
                                P0=smgduan[bf];                          //LSA=0;LSB=0;LSC=0位选第一个数码管
                                delay(50);
                        case 1:
                                LSA=1;LSB=0;LSC=0; break;
                                P0=smgduan[sf];
                                delay(50);               
                        case 2:
                                LSA=0;LSB=1;LSC=0; break;
                                P0=smgduan[g];
                            delay(50);
                        case 3:
                                LSA=1;LSB=1;LSC=0; break;
                                P0=smgduan[s];
                                delay(50);
                        case 4:
                                LSA=0;LSB=0;LSC=1; break;
                                P0=smgduan[b];
                                delay(50);
                        }
                        delay(50);
                        P0=0x00;                                                //消影
                }       
}

void timer0() interrupt 1                                             //定时器0
{
        //TH0=(65535-10000)/256;
        //TL0=(65535-10000)%256;
        TH0=0xfc;
        TL0=0x18;   
        x++;       
}


看看位选断码对不对


是不是共阴或共阳数码管选错了


太子的空间 发表于 2017-8-25 01:29
是不是共阴或共阳数码管选错了

战胜心魔 发表于 2017-8-24 20:24
看看位选断码对不对

战胜心魔 发表于 2017-8-24 20:24
看看位选断码对不对

看看最小系统的复位电路和时钟电路

平面变压器厂家 | 平面电感厂家

基于CORTEX的STM32的三相电能表方案背景电能表是用来测量电能的仪表,又称电度表,火表,电能表,千瓦小时表,指测量各种电学量的仪表。基于ARM的方案已经出现,但是适合应用的ARM7 TDMI在性能上不尽人意,同时外设资源不足;而更高端的A

基于ADI ADE7755的单相复费率电能表设计方案1.1 DDSF系列电能表设计方案概述DDSF系列电能表的硬件电路设计由电源电路设计、计量电路设计、通讯电路设计、MCU及其它部分电路设计四大部分组成。其中核心部分是计量电路的设计,它是电能表计量准确

[变压器]脉冲变压器驱动的疑问 本帖最后由 poorhack 于 2015-7-14 10:23 编辑 如下图所示,脉冲变压器的驱动电路,由于电流,功率都很小,所以直接用三极管驱动。 不知道用npn和pnp这两种电路有什么区别。 第一张图在实际实验时发现变压器初级电压并不高,导致次级放大电压也不高,我尝试在初级并联一个谐振电容,效果也不好,求解。 已经解决了,是三极管选型选错满意回复

CopyRight2014
大电流电感 | 大功率电感 | 扁平线圈电感 注塑加工厂