历史上的今天
返回首页

历史上的今天

今天是:2025年01月04日(星期六)

2021年01月04日 | 单片机可调数字钟闹钟整点报时功能

2021-01-04 来源:51hei

待选题目如下:

1、数字钟 要求:24小时制时间显示,可随时进行时间校对调整,整点报时及闹钟功能。

单片机源程序如下:

#include              

#include

//****************************宏定义********************************

typedef unsigned char uchar;   

typedef unsigned int  uint;

//****************************位声明********************************

sbit key1=P1^0;               

sbit key2=P1^1;

sbit key3=P1^2;

sbit key4=P1^3;

sbit beep=P3^0;        

//************************数码管显示的数值**************************

uchar code table[]=        {

                                                0x3f,0x06,0x5b,0x4f,0x66,0x6d,

                                                0x7d,0x07,0x7f,0x6f,0x40,0x00

                                        };                       

//****************************函数声明******************************

void jia();   

void jian();

//********************数组定义,数组内含有8个数值******************

uchar table1[8],table2[8],table3[8],table4[8];

//**************************时间显示初始值**************************

uchar shi=12,fen=0,miao=0;  

//**************************定义全局变量****************************

uchar shi1,fen1,miao1,shi2,fen2,miao2,shi3,fen3,miao3;

uchar shi4,fen4,miao4;

uchar flag, flag1, wss, cnt, cnt1, alm1, alm2, alm3;

//    1秒   等时  位闪 次数 校时   闹1  闹2   闹3

uint flag2;

//   蜂鸣

//*********************延时函数,用于动态扫描数码管*****************

void delay(uchar i)                                    

{  

        uchar x,y;

           for(x=i;x>0;x--)

             for(y=120;y>0;y--);

}

//*******************************初始化函数*************************

void init()   

{  

        TMOD=0x01;         //工作方式1                                                                                

           TH0=0x3c;          //定时时间为:50ms        (65536-50000)/256

           TL0=0x0b0;         //(65536-50000)%256

        EA=1;              //开总中断

           ET0=1;             //打开定时器

           TR0=1;             //启动定时器

        beep=0;

}

//********************显示子函数,用于显示时间数值*****************

void display()  

{  

        uchar i,j;

           if(cnt!=10||wss==0)

    {

                table1[0]=miao%10;        //分离秒的个位与十位

               table1[1]=miao/10;

        }

        else

                 table1[0]=table1[1]=11;

        if(cnt!=11||wss==0)

        {

                table1[3]=fen%10;         //分离分的个位与十位

               table1[4]=fen/10;

        }

        else

                  table1[3]=table1[4]=11;

        if(cnt!=12||wss==0)

        {

                table1[6]=shi%10;         //分离时的个位与十位

               table1[7]=shi/10;

        }

        else

                table1[6]=table1[7]=11;

    table1[2]=table1[5]=10;

    j=0xfb;

    for(i=0;i<=7;i++)          //从秒到时的扫描

    {  

                P2=j;

        P0=table[table1[i]];  //显示数值

        delay(10);

        j=_cror_(j,1);        //循环右移

    }

}

//*******************显示子函数,用于显示定时1时间*****************

void display1()

{  

        uchar i,j;

           if(alm1==0)

    {

                if(cnt!=1||wss==0)

            {

                        table2[0]=miao1%10;        //以下含义同上

                   table2[1]=miao1/10;

                }

                   else

                      table2[0]=table2[1]=11;

                   if(cnt!=2||wss==0)

            {

                        table2[3]=fen1%10;

                   table2[4]=fen1/10;

                }

                   else

                     table2[3]=table2[4]=11;

                   if(cnt!=3||wss==0)

            {

                        table2[6]=shi1%10;

                   table2[7]=shi1/10;

                }

                   else

                     table2[6]=table2[7]=11;

        }

        else

                   table2[0]=table2[1]=table2[3]=table2[4]=table2[6]=table2[7]=10;

           table2[2]=table2[5]=10;

           j=0xfb;

           for(i=0;i<=7;i++)

           {  

                P2=j;

        P0=table[table2[i]];

                delay(10);

        j=_cror_(j,1);

           }

}

//********************显示子函数,用于显示定时2时间******************

void display2()

{  

        uchar i,j;

           if(alm2==0)

    {

                if(cnt!=4||wss==0)

            {

                        table3[0]=miao2%10;        //以下含义同上

                   table3[1]=miao2/10;

                   }

                   else

                      table3[0]=table3[1]=11;

                   if(cnt!=5||wss==0)

            {

                        table3[3]=fen2%10;

                   table3[4]=fen2/10;

                }

                else

                          table3[3]=table3[4]=11;

                if(cnt!=6||wss==0)

                {

                        table3[6]=shi2%10;

                   table3[7]=shi2/10;

                }

                else

                         table3[6]=table3[7]=11;

        }

        else

           table3[0]=table3[1]=table3[3]=table3[4]=table3[6]=table3[7]=10;

           table3[2]=table3[5]=10;

           j=0xfb;

           for(i=0;i<=7;i++)

    {         

                P2=j;

        P0=table[table3[i]];

                delay(10);

推荐阅读

史海拾趣

Amphenol(安费诺)公司的发展小趣事

Amphenol Corporation,通常简称为Amphenol,是一家全球领先的连接技术公司,提供广泛的连接器解决方案,涵盖了航空航天、汽车、通信、工业、医疗和军事等多个领域。以下是关于Amphenol公司发展的五个相关故事:

  1. 创立与起步阶段:Amphenol公司成立于1932年,总部位于美国康涅狄格州沃拉姆。最初,公司致力于生产无线电连接器,并通过不断的创新和技术改进,逐步发展成为连接器行业的领导者之一。在第二次世界大战期间,Amphenol公司为美国军队提供了大量的军用连接器,为公司的发展奠定了坚实的基础。

  2. 技术创新与产品多样化:随着电子技术的不断进步和市场需求的不断变化,Amphenol公司不断进行技术创新,拓展产品线的多样性。除了传统的连接器产品,公司还开发了许多新型连接器,如光纤连接器、高速数据连接器、环境密封连接器等,以满足不同行业的需求。

  3. 全球化发展与市场拓展:Amphenol公司在全球范围内建立了广泛的销售网络和生产基地,实现了全球化布局和市场覆盖。公司在美国、欧洲、亚洲和其他地区设有多个生产工厂和研发中心,为客户提供当地化的服务和支持。通过不断扩大市场份额和提升产品质量,Amphenol公司成为了全球连接器市场的主要参与者之一。

  4. 客户合作与定制化解决方案:Amphenol公司与客户建立了紧密的合作关系,根据客户的需求和应用场景,提供定制化的连接器解决方案。公司的工程团队与客户共同设计和开发符合特定要求的产品,为客户提供专业化和个性化的服务。这种定制化解决方案能够满足客户多样化的需求,增强了公司在市场上的竞争优势。

  5. 质量管理与持续改进:Amphenol公司高度重视产品质量管理,严格遵循国际质量管理体系标准。公司的生产工艺和质量管理体系通过了ISO 9001质量管理体系认证,并持续进行质量改进和技术创新。此外,Amphenol公司的产品还通过了各种行业认证和标准,如航空航天领域的AS9100认证等,确保产品的可靠性和稳定性。

这些故事展示了Amphenol公司从创立初期到如今在技术创新、产品多样化、全球化发展、客户合作与定制化解决方案以及质量管理与持续改进等方面取得的重要进展。

ADL [ADL Embedded Solutions Inc]公司的发展小趣事

ADL Embedded Solutions Inc. 是一家专注于嵌入式计算解决方案的公司,以下是该公司发展的五个相关故事:

  1. 公司创立与早期发展: ADL Embedded Solutions Inc. 成立于1994年,总部位于美国科罗拉多州科罗拉多斯普林斯市。公司初期致力于为工业、军事、航空航天等领域提供嵌入式计算解决方案。其产品包括工业级嵌入式计算板卡、系统、模块等。

  2. 技术创新与产品推出: ADL 在嵌入式计算领域不断进行技术创新,并推出了多款具有竞争力的产品。公司的产品具有高性能、低功耗、高可靠性等特点,得到了客户的广泛认可。其产品广泛应用于军事航空、医疗、交通、工业自动化等领域。

  3. 客户合作与项目案例: ADL 与各行业的领先企业建立了长期稳定的合作关系,并参与了众多重要项目。例如,公司为航空航天领域的客户提供了符合严格标准的嵌入式计算解决方案,为医疗设备制造商提供了可靠的嵌入式计算板卡等。

  4. 全球市场拓展与国际化发展: ADL 通过不断拓展国内外市场,实现了全球化发展。公司在美国、欧洲和亚洲等地设有销售办事处和服务中心,为客户提供本地化的技术支持和服务。同时,ADL 的产品远销全球各地,深受国际客户的青睐。

  5. 未来展望与持续发展: ADL 将继续致力于技术创新和产品开发,满足客户不断变化的需求。公司将不断扩大在工业、军事、医疗等领域的市场份额,加强与客户的合作,保持行业领先地位,实现业务的持续增长和发展。

GardTec Inc公司的发展小趣事

背景:GardTec始终致力于产品创新和技术研发,不断推出符合市场需求的新产品。

发展:公司积极与风扇制造商密切合作,联合推出了一系列具有创新性的风扇配件产品。同时,GardTec还投入大量资源用于研发工作,不断提升产品的技术含量和附加值。

影响:通过持续的创新与合作,GardTec不仅巩固了其在风扇配件市场的领先地位,还推动了整个行业的技术进步和产业升级。

国盛科技(BOCHEN)公司的发展小趣事

国盛科技在发展过程中获得了多项认证与荣誉。例如,公司获得了知识产权管理体系认证证书,荣登《人民代表报》全国两会特刊,成为“中国质量万里行促进会”会员并获得“收录企业”荣誉称号等。这些认证与荣誉的获得,充分证明了国盛科技在电子行业的领先地位和企业实力的不断提升。

超音(CY)公司的发展小趣事

为了进一步提升品牌影响力,超音开始积极拓展国际市场。公司参加了多个国际展会,与国际知名音频设备厂商建立了合作关系。同时,超音还加强了与国际市场的沟通和交流,了解不同地区的消费者需求,针对性地推出符合当地市场需求的产品。这些努力使得超音在国际市场上的知名度不断提升,产品销量也稳步增长。

GC Electronics公司的发展小趣事
按照电路图将传感器、报警装置和电源等部件连接起来,确保电路连接正确无误。

问答坊 | AI 解惑

十天学会AVR视频教程

第一讲:开发板和软件的操作使用 1、 介绍配件。 2、 安装软件(ICC AVR 和AVR STUDIO)及其使用,包括新建工程、程序下载,仿真调试;整板测试;板上资源。 3、 着重介绍一下USB接口的仿真器。 第二讲:AVR单片机的概述和C语言的基础知识 ...…

查看全部问答>

嵌入式CAN总线控制器与DSP的接口

现场总线是一种开放式、 数字化、多点通信的控制系统局域网络, 是当今自动化领域中最具有应用前景的技术之一。CAN总线是现场总线中的应用热点,CAN总线支持分布式控制和适时控制的串行通信网络。   由于CAN总线具有通信速率高、开放性好、报文短 ...…

查看全部问答>

DS2-电力载波通讯PLC

DS2-电力载波通讯PLC   什么是电力载波通讯PLC技术?   电力载波通讯PLC(英文:Power line communication)是电力系统特有的通信方式,电力载波通讯是指利用现有电力线,通过载波方式将模拟或数字信号进行高速传输的技术。最大特点是不需要重 ...…

查看全部问答>

单片机破解的常用方法及应对策略

单片机破解的常用方法及应对策略…

查看全部问答>

办公室的[危险品]手雷鼠标

在办公室里看到有人手持一个手雷,你会作何感想?别着急,这很可能就是这样一款手雷鼠标。它的功能跟普通的鼠标完全一样,只是增加了一个手雷的外壳。…

查看全部问答>

如何在驱动中创建虚拟串口与USB通信???

最近要在原来的板子上添加3G模块,用的是中兴的MC8630,但该模块的AT指令是通过串口来发送接收的,而相关的数据信息是通过USB来进行的 如此一来,我们是这样设想的:在原来的板子上模拟一个虚拟串口来接收上层的AT指令,然后该虚拟串口再把接收到的指令 ...…

查看全部问答>

sd卡的 RCA作用

小弟目前正在研究SD卡协议相关,对CMD3的Response中的RCA不是很理解,不知道具体作用是做什么的,与读写卡操作时的逻辑地址,物理地址有什么样的关系?…

查看全部问答>

请教MSP430 F5438芯片后带A与否有啥区别?~

请教MSP430 F5438芯片后带A与否有啥区别?~…

查看全部问答>

【TI原创】LM3S8962SD卡例程不好用的解决办法

      这个有的网友调通过,我调了不通,有看官问了,你笔记发了不少,网络程序也编成功并跑通了。怎么SD卡例程还调不通。真地假地?      我SD卡调通过但不是例程。我现在说的是开发板上的TI原装例 ...…

查看全部问答>