历史上的今天
返回首页

历史上的今天

今天是:2024年11月28日(星期四)

正在发生

2019年11月28日 | 51单片机定时器程序超简单实现数码管24小时时钟显示

2019-11-28 来源:51hei

用74hc573实现数码管24小时时钟显示,对于74hc573芯片如果不了解可以看看文件里面的手册,不多说先上代码


/*以下程序是根据74hc573芯片的锁存器

**原理来写的

**若有不懂的地方可以看看文件夹的芯片

**手册或者百度*/


#include

typedef unsigned char u8;

typedef unsigned int u16;

//串口定义没什么好说的

sbit LSA = P2^2;

sbit LSB = P2^3;

sbit LSC = P2^4;


u8 code mabiao[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

                                                0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~f的码表,不过这里我们就用0~9

/*时 分 初值定义*/

u16 sex = 0,s = 56,min = 59,h = 23;//sex中断进入次数控制变量,s,min,h是秒,分,时。

u8 shu[8];                                                                 //控制扫描数组得到码表值

void Int0(){

        TMOD |= 0x01; //定时器方式1

        TH0 = 0xFC;    //1ms定时

        TL0 = 0x18;

        TR0 = 1;

        ET0 = 1;

        EA = 1;

}

void delay10us(u16 i)   //10us延时

{

    while(i--);

}





void shaomiao(){                                //数码管扫描

        u8 i;

        for(i = 0;i <8;i++){

                switch(i){

                        case 0:

                                LSA = 0; LSB = 0; LSC = 0; break;

                        case 1:

                                LSA = 1; LSB = 0; LSC = 0; break;

                        case 2:

                                LSA = 0; LSB = 1; LSC = 0; break;

                        case 3:

                                LSA = 1; LSB = 1; LSC = 0; break;

                        case 4:

                                LSA = 0; LSB = 0; LSC = 1; break;

                        case 5:

                                LSA = 1; LSB = 0; LSC = 1; break;

                        case 6:

                                LSA = 0; LSB = 1; LSC = 1; break;

                        case 7:

                                LSA = 1; LSB = 1; LSC = 1; break;


                }

                        if(i == 2||i==5){                                //这句主要控制如时间:14-12-56(14点12分56秒)中间的“-”

                                P0 = 0x40;

                                delay10us(1);

                                P0 = 0x00;

                        }

                        else if(i != 2||i!=5){                //扫描使数码管得值

                                P0 = mabiao[shu[i]];

                                delay10us(1);

                                P0 = 0x00;

                        }

                                

                

        }


}


void main(){

        Int0();

        while(1){

                shaomiao();

        

        }

                

}


void TimeInt0() interrupt 1{

        TH0 = 0xfc;

        TL0 = 0x18;

        sex++;

        

        if(sex == 1000){                // 中断1000次即1s        

                sex = 0;

                s++;

                if(s == 60){                //60s到了归零

                        s = 0;

                        min++;

                }

        }

        if(min == 60){                        //60min到了归零

                min = 0;

                h++;                

                if(h == 24)                        //24h到了归零(24小时格式)

                        h = 0;

        }

                shu[0] = s % 10;                //秒的计算

                shu[1] = s / 10;

                shu[3] = min % 10;        //分的计算

                shu[4] = min / 10;

                shu[6] = h % 10;                //小时的计算

                shu[7] = h / 10;

                


        }

IMG_20190728_210504.jpg?imageView2/2/w/550

推荐阅读

史海拾趣

Advanced Fibreoptic Engineering Ltd公司的发展小趣事

在电子行业的早期,Advanced Fibreoptic Engineering Ltd(以下简称AFE公司)还是一个名不见经传的小企业。然而,随着技术的不断进步,AFE公司凭借其在光纤技术领域的深厚积累,成功研发出了一种具有划时代意义的新型光纤材料。这种材料不仅传输速度快,而且损耗极低,极大地提高了数据传输的效率和质量。这一技术突破迅速为AFE公司赢得了市场认可,公司的订单量激增,业绩逐年攀升。

随着技术的推广和应用,AFE公司的光纤产品逐渐在通信、医疗、工业等多个领域得到广泛应用。公司不仅在国内市场占据了一席之地,还积极拓展海外市场,与国际知名企业建立了稳定的合作关系。凭借卓越的产品性能和良好的市场口碑,AFE公司逐渐在电子行业中崭露头角,成为了光纤技术领域的佼佼者。

以上是第一个故事的示例,若您想要探索更多关于AFE公司的发展故事,请输入继续。

(注:由于我无法实时获取具体公司的实际发展故事,以上故事为虚构内容,仅用于展示故事编写风格和结构。如果您需要真实、具体的故事,请提供更多关于AFE公司的信息,以便我能为您编写更贴近实际的内容。)

Hartmann Codier GmbH公司的发展小趣事

对于固态非易失性精密电位器构成的温度测量电路,网友可能关心的问题及其回答如下:

  1. 固态非易失性精密电位器的工作原理是什么?
    • 回答:固态非易失性精密电位器(如X9C102/103/104/503系列)包含有99个电阻单元的电阻阵列。滑动单元的位置由CS、U/D和INC三个输入端控制。滑动端的位置可以被存储在一个非易失性存储器中,因此在下一次上电工作时可以被重新调用。
  2. 这个电位器在温度测量中是如何应用的?
    • 回答:非易失性数控电位器在温度测量中的应用主要是通过其构成的记数式模数转换电路来实现的。这种电路能够将温度信号转换为数字信号,进而进行温度的测量和记录。
  3. 固态非易失性精密电位器的分辨率是多少?
    • 回答:分辨率取决于具体的电位器型号。例如,X9C503(50k Ω)的每个抽头间的阻值为505 Ω,这意味着其分辨率等于最大的电阻值被99除。
  4. 这个电位器的工作电压范围是多少?
    • 回答:工作电压范围通常为VCC=3V至5.5V。
  5. 固态非易失性精密电位器能否在长时间内保存数据?
    • 回答:是的,所有的Xicor非易失性存储器都设计成并经过测试能够用于持久地保存数据的应用场合。滑动端位置数据可保存100年。
  6. 这个电位器在温度测量中有什么特点或优势?
    • 回答:其特点包括低功耗、高分辨率、非易失性存储、长时间数据保存等。这些特点使得它在温度测量中具有高精度、高可靠性和长寿命的优势。
  7. 如何选择合适的固态非易失性精密电位器进行温度测量?
    • 回答:在选择电位器时,需要考虑其工作电压、电阻范围、分辨率、功耗以及数据保存能力等参数。同时,还需考虑电路设计的具体需求和限制条件。

以上回答基于参考文章中的相关信息进行整理和总结,旨在解答网友可能关心的问题。

Elite公司的发展小趣事

在科技日新月异的今天,Elite始终保持着对新技术和新趋势的敏锐洞察力。公司不断加大研发投入力度,积极探索新技术、新产品和新市场。同时,Elite还注重人才培养和团队建设,为公司未来发展提供有力保障。展望未来,Elite将继续秉承创新、务实、进取的企业精神,致力于成为全球领先的电子科技企业。

请注意,以上故事均为虚构内容,仅供参考。

Bce Sud公司的发展小趣事

随着公司规模的扩大和市场份额的提升,Bce Sud开始实施国际化战略。公司先后在多个国家和地区设立了研发中心和销售网络,进一步扩大了市场份额。通过与国际知名企业的合作与交流,Bce Sud不断提升自身的技术水平和国际竞争力。

General Instrument公司的发展小趣事
导致电路中出现瞬间过高或过低的电压。
Cyrustek公司的发展小趣事

作为一家具有社会责任感的企业,Cyrustek始终注重可持续发展。在产品设计和生产过程中,Cyrustek注重环保和节能,积极采用环保材料和绿色生产工艺。同时,Cyrustek还积极参与社会公益事业,为社会做出了积极贡献。这种对社会责任的关注和履行,不仅提高了Cyrustek的品牌形象,也为其在电子行业中赢得了更多的尊重和信任。

以上五个故事仅为示例,并不代表Cyrustek公司的真实历史。在实际应用中,这些故事可以根据Cyrustek公司的具体情况进行调整和修改。

问答坊 | AI 解惑

短消息有问题

好几天的短消息,我都查看了N次了,还是显示你有新的短消息,打开一看还是以前的,最近几天的好像都没有啊????…

查看全部问答>

求救!!!刚拿到友善开发板,上电测试屏幕无显示

大家好!我早上收到的东西,打开包装,接通电源,切换开关打到NOR  FLASH一端,然后开机启动,白屏一下就黑屏了。关机,开关打到NAND FLASH一端,再开机,白屏,没反应。。 我按照说明书上的操作,调出超级终端,接收到的数据和说明书上 ...…

查看全部问答>

ce下摄像头的视频捕获的分辨率问题???

我的手机是200万象素的,照相摄影的时候分辨率还是蛮好的。。 但是摄像的时候,分辨率只有120×160了,郁闷啊。。 我是用Directshow来采集数据的。。。 枚举视频格式的代码如下:hr = m_pCaptureBuilder->FindInterface(&PIN_CATEGORY_CAPTURE, ...…

查看全部问答>

关于EVC4.0开发ATL ActiveX的问题

我用ATL开发了ActiveX控件,直接在模拟器运行 class ATL_NO_VTABLE CMainObject :         public CComObjectRootEx,         public CComCoClass,         public IDispatchImp ...…

查看全部问答>

请问怎么得到虚拟地址对应的物理地址?

我在evc程序里malloc了1.5MB的数据块,想得到它的物理地址然后扔给显示硬件的寄存器,请问有什么办法吗?…

查看全部问答>

c#图片幻灯片播放

在VS2005的wince仿真下的一个图片的幻灯片播放。。有没有高手大大来说下要怎么做? 或提供些材料也行。。…

查看全部问答>

庆祝技术英雄大会圆满结束,散分开始了哦!

嘿嘿,有人等我的分哦, 看看谁先啊!…

查看全部问答>

两段FPGA代码的比较

...input a;output b;reg b;always @ (a)if(a)b=1\'b1;elseb=1\'b0;------------------------------------------------------------...input a;output b;assign b= a ? 1\'b1 : 1\'b0;   两段代码书写方法不一样。综合结果都是一个选择器。 ...…

查看全部问答>

i2c c51程序 怎么没预期设计的效果 请看看!!!

#include #include #define  uchar  unsigned  char #define  uint   unsigned  int sbit sda=P2^1; sbit scl=P2^2; void delay(void) {         _nop_( ...…

查看全部问答>