历史上的今天
返回首页

历史上的今天

今天是:2025年01月02日(星期四)

正在发生

2020年01月02日 | 单片机定时器设置的门铃

2020-01-02 来源:51hei

这是一个单片机定时器设置的门铃程序,附带源代码及文档,用定时器设计的门铃说明:按下按键时蜂鸣器发出叮咚的门铃声。


程序

/* 下载程序后按键K1按下就会触发蜂鸣器门铃“叮咚”响  */


#include

typedef unsigned char u8;

typedef unsigned int u16;

sbit beep=P1^5;

sbit k1=P3^1;

u8 ding,dong,flag,stop;

u16 n;

void delay(u16 i)

{

        while(i--);

}

void time0init()          //定时器0初始化

{

        TMOD=0X01;         //定时器0 方式1

        TH0=0Xff;

        TL0=0X06; //定时250us

//        TR0=1;

        EA=1;

        ET0=1;

}

void biaohaoinit()           //各个标号初始化

{

        ding=0;                //叮声音  计数标志

        dong=0;                //咚声音  计数标志

        n=0;                //定时0.5s标志

        flag=0;

        stop=0;           //结束标志

}

void main()

{

        time0init();

        biaohaoinit();

        while(1)

        {

                if(k1==0)           //判断按键是否按下

                {

                        delay(1000);  //消抖

                        if(k1==0)

                        {

                                TR0=1;        //打开定时器0

                                while(!stop);

                        }

                }        

        }        

}

void time0() interrupt 1

{

        n++;

        TH0=0Xff;

        TL0=0X06; //250us

        if(n==2000)                //定时0.5s  叮响0.5秒,咚响0.5秒

        {

                n=0;

                if(flag==0)

                {

                        flag=~flag;

                }

                else

                {

                        flag=0;

                        stop=1;

                        TR0=0;          //关闭定时器0

                }

        }

        if(flag==0)

        {                                           //通过改变定时计数时间可以改变门铃的声音

                ding++;                          //叮

                if(ding==1)

                {

                        ding=0;

                        beep=~beep;

                }

        }

        else

        {

                dong++;

                if(dong==2)                  //咚

                {

                        dong=0;

                        beep=~beep;

                }        

        }

}

推荐阅读

史海拾趣

爱特姆(ATOM)公司的发展小趣事

在快速发展的同时,爱特姆也积极履行企业社会责任。公司始终坚持绿色生产、环保经营的理念,通过采用环保材料和节能技术,降低生产过程中的能耗和排放。此外,爱特姆还积极参与社会公益事业,为社会的可持续发展贡献自己的力量。

这五个故事从不同角度展现了爱特姆(ATOM)在电子行业发展的历程和成就。通过持续创新、市场拓展、人才引进和社会责任等方面的努力,爱特姆逐渐成长为一家具有全球影响力的电子企业。

ASI [ASI Semiconductor, Inc]公司的发展小趣事

在竞争激烈的电子行业中,创新是企业持续发展的关键。ASI深知这一点,因此一直致力于技术创新和产品升级。通过不断投入研发资源、引进先进技术以及与高校和研究机构的合作,ASI成功推出了一系列具有竞争力的新产品和解决方案。这些创新不仅提升了ASI的市场竞争力,还为其未来的发展注入了强大的动力。

这些故事展示了ASI Semiconductor, Inc.从创立到发展成为电子行业领导者的过程。通过抓住市场机遇、提升产品质量、拓展全球市场、创新技术和优质服务,ASI成功地实现了自身的快速发展,并在行业中树立了良好的声誉。

富满电子(FM)公司的发展小趣事

为了进一步提升产品质量和客户满意度,ASI积极寻求ISO 9001认证。经过严格的审核和准备,ASI最终成功获得了这一国际公认的质量管理体系认证。这一认证不仅证明了ASI在质量管理方面的卓越表现,还为其在全球商用和军用通信领域占据领先地位提供了有力保障。

Cardinal Components公司的发展小趣事

在发展的道路上,Cardinal始终将质量管理放在首位。1997年,公司成功获得ISO认证,标志着其质量管理水平达到了国际标准。随后,在2001年,公司又获得了ISO 9001-200认证,进一步巩固了其在行业中的领先地位。这些认证的获得不仅提升了公司的声誉,也为客户提供了更可靠的产品和服务。

Carling Technologies公司的发展小趣事

为了确保产品质量和满足国际标准,Carling Technologies先后获得了多项ISO和TS认证。这些认证不仅证明了公司在质量管理方面的实力,也为其产品在全球市场上的竞争提供了有力支持。同时,公司还建立了标准化的生产流程和质量检测体系,确保每一款产品都能达到客户的期望和要求。

HDK(北陆电气)公司的发展小趣事

随着技术的不断进步和市场需求的多样化,Carling Technologies开始扩展其产品线,涵盖了液压磁热断路器、电子控制以及配电装置等多个领域。同时,公司也积极开拓全球市场,通过设立海外办事处和与当地企业合作,将产品销往世界各地。这一阶段的发展使得Carling Technologies成为了全球电气和电子开关领域的领先制造商之一。

问答坊 | AI 解惑

AD9850

大家看资料吧…

查看全部问答>

Win ce 5.0 下SD卡驱动程序中的"sdbusdriver"

微软自带的Bus层驱动程序中,在其下的文件sdhceventhandlers.cpp下有一个slotstatuschange函数,这个函数是一个死循环专门负责卡插入拨出时的加载和卸载还有设备中断,在循环中有一个pWorkItem->GetMessage(),用来等待消息,以控制循环。有没有高手 ...…

查看全部问答>

MSP430F149单片机,串口通信

我使用USART1模块进行串口通讯,但调试的时候发现程序进不了中断。 相关代码: #include \"msp430x14x.h\" #define uchar unsigned char #define uint  unsigned int #define URXD1 BIT7 #define UTXD1 BIT6 uchar dataSedBuffer[100] ...…

查看全部问答>

新人请教:CE6 模拟器

    wince6.0 编译产生Nk.bin后,如何在pc上模拟啊,怎么设置或者是否要安装其他软件?…

查看全部问答>

RS232发送数据问题

我用单片机IO口模拟RS232通讯,单片机给PC机传数据。但是我不知道PC机的串口数据是如何读取的,因此我就不知道如何发送0和1.比如,串口采用的N8.1格式的数据吗?要发送一个数字或者一个字母(如A),发送的是ASCII码吗?先发送低位还是高位?能具体 ...…

查看全部问答>

C8051F版数字湿度计调试2---硬件调试完成,OLED可显示了!

硬件调试完成,OLED可显示了!           [ 本帖最后由 sdjntl 于 2010-8-17 14:36 编辑 ]…

查看全部问答>

在什么情况下需要8M晶振?

好像只用低频晶振也可以跑125ns嘛,也不知是不是…

查看全部问答>

请教:关于LSD-MSP430PRGS-IIIA编程器

请教:关于LSD-MSP430PRGS-IIIA编程器的BSL密码文件,在说明书中提到 “BSL 密码文件:装载代码的密码文件,芯片熔丝烧掉以后,程序需要更新,但是不希望信息FLASH 里的数据被擦除的情况下使用这种方法,进行这种操作时,务必需要执行以下操作:加 ...…

查看全部问答>

请教:Quartus6.0中打开SOPC打不开,出现at.java.awt....(Unknown Source)

请教各路高手:Quartus6.0中点击SOPC打不开,出现很多诸如at.java.awt....(Unknown Source)          注:Nois 已经安装。           此问题困我很久了,望高手指点迷津。 ...…

查看全部问答>

R7F0C802x -- 随笔(1)

   前面有很多高手都对板子进行了讲解,这里我就不再多说了。下面主要介绍下我开发过程中查到的心得以及碰到的相关问题。     拿到板子后,首先就是上网查资料了。帖子(https://bbs.eeworld.com.cn/forum ... 9&page=1#pid17 ...…

查看全部问答>