找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3195|回复: 3
打印 上一主题 下一主题
收起左侧

简易报警发生器的设计。

[复制链接]
跳转到指定楼层
楼主
1 简易报警发生器的设计。编程实现从P1.5分别输出1KHz500Hz的音频信号驱动其所接的蜂鸣器,作报警信号,要求1KHz信号响100ms500Hz信号响200ms,交替进行。用一开关或按键控制报警器的开和关。(出题时里面的参数可变动;可以用查询法或中断法检测定时时间到,但两种方法必须都会;会计算定时器定时初值,会初始化TMODTCONIE)。
下面这个程序能实现此功能不?
#include<reg51.h>
unsigned char a=0;
unsigned char i=0;
sbit P1_5=P1^5;
sbit P1_0=P1^0;//2úéú1KHZμÄÆμÂê
sbit P1_1=P1^1;//2úéú500HZμÄÆμÂê
void main()
{
  TMOD=0x11;
        TH1=(65536-1000)/256;//¶¨ê±1ms
        TL1=(65536-1000)%256;
        EA=1;
        ET1=1;
        TR1=1;
        TH0=0xd8;//¶¨ê±10ms
        TL0=0xf0;
        ET0=1;
        TR0=1;
        while(1);
}
void int_1() interrupt 1
{
  TH0=0xd8;//¶¨ê±10ms
        TL0=0xf0;
        i++;
        if(i==1)
        {
    P1_5=P1_0;//¶¨ê±100ms
  }
        else if(i==11)
        {
    P1_5=P1_1;//¶¨ê±200ms
                if(i==31) i=1;
  }
}
void int_3() interrupt 3
{
  TH1=(65536-1000)/256;//¶¨ê±1ms
        TL1=(65536-1000)%256;
        a++;
        P1_0=~P1_0;
        if(a==2)
        {P1_1=~P1_1;a=0;}
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:111634 发表于 2016-12-2 08:21 | 只看该作者

电话铃声、救护车报警声

本帖最后由 zl2168 于 2016-12-2 08:27 编辑

电话铃声、救护车报警声


Proteus仿真一下,确认有效。
实例13 双音频输出.rar (26.69 KB, 下载次数: 39)

以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1.。书中电路和程序设计有详细说明,程序语句条条有注解。



回复

使用道具 举报

板凳
ID:111634 发表于 2016-12-2 08:28 | 只看该作者
本帖最后由 zl2168 于 2016-12-2 08:32 编辑

警车声
警车声在电子密码锁案例中,连续4次输入错误,1602第1行显示:input fail!(输入失败),并发出警车声,报警灯VD2(黄)闪烁,中间不能打断。





Proteus仿真一下,确认有效,验证上述功能。
电子密码锁1.rar (1.13 MB, 下载次数: 5)


以上摘自张志良编著《80C51单片机实用教程》ISBN978-7-04-044532-9,高教社出版。书中电路和程序设计有详细说明,程序语句条条有注解。





回复

使用道具 举报

地板
ID:74868 发表于 2016-12-2 11:41 | 只看该作者
基本可以
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表