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++

}

sleep()是以毫秒计算的,延时5秒是sleep(5*1000),延时5分是sleep(5*1000*60)包含的头文件看你用的什么编辑软件。我用的vc++是用包含在#include<windows.h>头文件猛州中。

#include<stdio.h>

#include<windows.h>

//sleep(知斗)的头文件

main()

{

int

i

int

n=10

for(i=1i<=ni++)

{printf("%d",i)

sleep(5*1000*60)}

//这里修改延时时间

}

有些人说是用#include<dos.h>做头文件你自己试下把枝猛蔽

还用sleep的s是大写的,不是小写的。

#include <AT89X51.H>//头文件

unsigned int t02s//无符号整数变量t02s

unsigned char t05ms//无符号字正闹符变量t05ms

bit flag//定义一个位

void main(void)//主函数

{

TMOD=0x01//定义定时器0的工作模式

TH0=(65536-250)/256//定时器0赋初值

TL0=(65536-250)%256

TR0=1//定时器0开始运行

ET0=1//使能定时器0中断

EA=1//打开所有中断

while(1)//程举悉罩序在这里中止,等待定时器0中断

}

void t0(void) interrupt 1 using 0//定时器0中断程序

{

TH0=(65536-250)/256//定时器0赋陆散初值

TL0=(65536-250)%256//定时器0赋初值

t02s++//t02s自加1

if(t02s==800)//如果t02s增加到了800

{

t02s=0//t02s清零

flag=~flag//定义的位取反

}

if(flag==0)//如果定义的位为零,执行下面的语句

{

P1_0=~P1_0//P1.0端口输出取反

}

}


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

原文地址: http://outofmemory.cn/yw/12367622.html

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

发表评论

登录后才能评论

评论列表(0条)

保存