单片机at89c51用C语言编写报警器

报警信号用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行。开关K1进行控制,当开关合上响警报信号,当开关断开警告信号停止。
我不要百度已有的,要有中断系统,
每句后面有解析的,AT89C51的
1506260101

#include<reg51.h>
#define uchar unsigned char
uchar time;
sbit spk=P1^0;
void t0isr() interrupt 1
{
TH0=t_h;
TL0=t_l;
spk=~spk;
}
void t1isr() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
time++;
time%=6;
if(time==0)
{
t_h=(65536-500)/256;
t_l=(65536-500)%256;
}
if(time==2)
{
t_h=(65536-1000)/256;
t_l=(65536-1000)%256;
}
}
main()
{
TMOD=0x11;
t_h=(65536-500)/256;
t_l=(65536-500)%256;
TH0=t_h;
TL0=t_l;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR0=1;
TR1=1;
ET0=1;
ET1=1;
EA=1;
while(1);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-12-02
百度哪有这个东西啊。都是现写的
第2个回答  2017-12-03
写这个程序,一般都要一个钟以上,
第3个回答  2017-12-04
这点分有人帮你写就不错了 还想再加解析,谁会浪费这个时间

单片机at89c51用C语言编写报警器
include<reg51.h>#define uchar unsigned charuchar time;sbit spk=P1^0;void t0isr() interrupt 1{TH0=t_h;TL0=t_l;spk=~spk;}void t1isr() interrupt 3{TH1=(65536-50000)\/256;TL1=(65536-50000)%256;time++;time%=6;if(time==0){t_h=(65536-500)\/256;t_l=(65536-500)%256;...

用AT89C51单片机设计声音报警器
用89C51片定时器 fosc=12MHz,从P1.0口输出500Hz org 000h sjmp do ;跳初始化程序 org 000bh ajmp t1ms ;1毫秒定时中断 do:mov tmod,#00010001b ;双定时T0,T1 setb et0 ;开中断 setb ea ;开中断 MOV TH0,#252 ;设定T0: 1ms中断一次12MHz MOV TL0,#24 setb tr0 ;开始...

单片机60秒计时报警器 求c程序 用AT89C51单片机的定时\/计数器T0产生...
include <reg51.H> sbit P3_5 =P3^5;void delay(){ unsigned char i,j;for(j=20;j>0;j--)for( i= 250;i>0;i--);} unsigned char code dispcode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x00};unsigned char second...

求C语言程序,AT89C51单片机为核心,DS18B20测温度,实时用4位LED显示...
include<reg52.h> \/\/ 试试#define uchar unsigned char #define uint unsigned int sbit DQ=P1^4; \/\/ds18b20与单片机连接口 unsigned char code str[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40} ; \/\/共阴数码管字码表unsigned char code str1[]={0...

单片机AT89C51用C语言编,两个按钮分别控制一个数码管加减数,最好...
0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; \/\/0到f uchar dat;void ext0() interrupt 0 { dat++;dat%=10;P1=distab[dat];} ext1() interrupt 2 { if(dat>0)dat--;P1=disab[dat];} main(){ EX0=1;EX1=1;IT0=1;IT1=1;EA=1;while(1);} ...

用C语言编写AT89C51单片机程序,设计一个智能数字钟。
sbit QB1=P1^0;sbit QB2=P1^1;\/\/数码管段选 sbit QB3=P1^2;sbit QB4=P1^3;sbit QB5=P1^4;sbit QB6=P1^5;sbit fm=P1^6; \/\/蜂鸣器 sbit s1=P2^4; \/\/s5按键,切换显示 sbit s2=P2^3; \/\/s2按键,设置调时 sbit s3=P2^2; \/\/s3按键,加1 sbit s4=P2^1; \/\/s4按键,减1 ...

求用单片机设计一个秒表AT89C51
SETB EA ;定时器初始化结束,下面循环显示即可 MOV R1, #99H ;0~99计数.MOV R7, #1 ;50ms计数.MOV P0, #0C0H MOV P2, #0C0H LOOP:SJMP LOOP ;--- DELAY: ;延时子程序.AA4: MOV R4, #0 DJNZ R4,DJNZ R4,RET ;---...

求一个单片机AT89C51的C语言程序 控制8个灯的 要求有中断程序 至少有两 ...
65536-50000)\/256;TL0=(65536-50000)%256;cnt++;if(cnt>=10) { cnt=0; if(flag) { P1=led; led=_crol_(led,1); } else { P1=led; led=_cror_(led,1); } }}

用C语言怎么在单片机AT89C51上编写一个用一个开关控制一个灯亮和灭...
电路有问题啊,电源怎么能直接接到GPIO,这样大电流会损坏IC。P1口好像没有外部中断,那只有轮询了。这个就是按键检测嘛,网上一堆代码,so easy!

求at89c51 流水灯C语言代码。要求第一三五七个灯亮,另一个是二四六八...
假设P1口接8个LED灯,通过灌电流驱动(即0亮1灭)。编译器keil C代码如下:include<reg51.h> include<intrins.h> \/\/包含循环左移函数 _cro_l头文件 unsigned char tmp; \/\/中间变量 \/\/\/ \/\/ 延时子程序 \/\/\/

相似回答