AT89c51用C语言编写程序制作报警器

AT89c51用C语言编写程序制作报警器,第1张

K1你就作一个电源开关吧

#include<reg52.h>

sbit beep=P1^0 // 定义蜂鸣器

long int code table[]= // 定义发出不同频率的各个时间长度table表,因为定义

//晶振为12MHZ,所以一个周期也正好为1US。

{

2000,4000

}

long int num1,num2

char num

void main()

{

TMOD=0x11 //定义定时器0,1工作方式1

EA=1ET0=1ET1=1

TH0=(65535-50000)/256 //装载定时器0初值,50ms为一次中断

TL0=(65535-50000)%256

TH1=(65535-1)/256 //装载定时器1初值,1us为一次中断

TL1=(65535-1)%256

TR0=1 //打开定时器0

while(1)

{

if(num1==2) //判断定时器0中断了2次,也就是100ms

{

TR0=0 //关闭定时器0

TR1=1 //打开定时器1

beep=0 //蜂鸣器报警

num1=0//让num1清零,以备再次计数

}

if(num2==table[num]) //判断当时间达到第num个秒数

{

TR1=0 //关闭定时器1

TR0=1 //打开定时器0

num2=0 //让num2清零,以备再次计数

beep=1 //关闭蜂鸣器

num++ //让num循环计数

}

if(num==2)

{

num=0

}

}

}

void T0_time()interrupt 1

{

TH0=(65535-50000)/256

TL0=(65535-50000)%256

num1++

}

void T1_time()interrupt 3

{

TH1=(65535-1000)/256

TL1=(65535-1000)%256

num2++

}

具体其它程序自己添加:

#defineKey P1_0

#define BeepP1_2

#define Key_ON 0

#define Beep_ON1

#define Beep_OFF 0

if(Key==Key_ON)

{

Beep=Beep_ON

}

else

{

Beep=Beep_OFF

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7791892.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存