定时器_定时器设计的门铃

这个博客介绍了如何使用定时器进行门铃控制系统的实现。通过C语言编程,利用定时器0初始化设置,配合按键输入,实现了不同声音的定时播放功能。通过改变定时计数时间,可以调整门铃的音效。
摘要由CSDN通过智能技术生成

#include

typedef unsigned char u8;

typedef unsigned int u16;

sbit beep=P1^5;

sbit k1=P2^7;

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

{

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;

}

}

}

eaf63c96d97825845bddbe92a049cbe4.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值