久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4916|回復: 4
打印 上一主題 下一主題
收起左側

簡易STC15F104E單片機定時報警器制作 附程序

[復制鏈接]
跳轉到指定樓層
樓主
非常時期,孩子不能上學,大人沒在家,每天早上都睡得十幾點,有點過份,所以作個簡易定時報警器作鬧鐘用,主要是配合小米智能插座的網絡定時功能用,只是自己的小制作,供有需求的人參考用;

制作出來的實物圖如下:


功能:
1.上電時即啟動報警;
2.定時30S后自動停止;
3.報警過程中如有按鍵按下即停止報警;

硬件:
1.P32按一個按鍵,作為取消報警用;
2.P35接蜂鳴器,作為報警聲;


/*/******************************************************************************
-------------------------STC15F104E定時報警器-----------------------------------

功能:
1.上電時即啟動報警;
2.定時30S后自動停止;
3.報警過程中如有按鍵按下即停止報警;

硬件:
1.P32按一個按鍵,作為取消報警用;
2.P35接蜂鳴器,作為報警聲;

說明:此報警器是配合智能插座(例小米智能插座,帶USB那種)用的,主要作用是當鬧鐘用
//******************************************************************************/
        #include <STC15F104E.H>
//        #include <RTX51TNY.H>
        #include "intrins.h"
        #include "stdio.h"


/*/******************************************************************************/


/*/******************************************************************************/
        sbit KEY1   = P3^2;                                //根據原理圖,KEY1對應的IO口

        sbit BUZZ   = P3^5;                                //根據原理圖,CLOCKOUT0

/*/******************************************************************************/
        bit  time0out_flag = 0;                        //定時器0超時標志位
        bit  time1out_flag = 0;                        //定時器0超時標志位

        unsigned char t1_jishu = 0;                //定時1計數變量
        unsigned int t1_jishu2 = 0;                //定時1計數變量2



/*/******************************************************************************/
void Timer1Init(void)                //50毫秒@11.0592MHz
{
        AUXR &= 0xBF;                        //定時器時鐘12T模式
        TMOD &= 0x0F;                        //設置定時器模式
        TL1 = 0x00;                                //設置定時初值
        TH1 = 0x4C;                                //設置定時初值
        TF1 = 0;                                //清除TF1標志
        TR1 = 1;                                //定時器1開始計時
}
/*/******************************************************************************/
void Delay1ms()                //@11.0592MHz
{
        unsigned char i, j;

        _nop_();
        i = 11;
        j = 190;
        do
        {
                while (--j);
        } while (--i);
}
//-----------------------------------------
void delayms(unsigned int t)
{
        while(--t) Delay1ms();
}
/*/******************************************************************************/
/*/*********************************************************************************
/***********************************************************************************
//--------------------------------------初始化------------------------------------*/
void START(void)
{
        P0M0 = 0x00;    P0M1 = 0x00;
    P1M0 = 0x00;    P1M1 = 0x00;
    P2M0 = 0x00;    P2M1 = 0x00;
    P3M0 = 0x00;    P3M1 = 0x00;
    P4M0 = 0x00;    P4M1 = 0x00;
    P5M0 = 0x00;    P5M1 = 0x00;
    P6M0 = 0x00;    P6M1 = 0x00;
    P7M0 = 0x00;    P7M1 = 0x00;

        Timer1Init();                                //50毫秒@11.0592MHz
        ET1 = 1;                                        //使能定時器1中斷

        IT0 = 1;                    //設置INT0的中斷類型 (1:僅下降沿 0:上升沿和下降沿)
        EX0 = 1;                    //使能INT0中斷

    EA = 1;
}

/**********************************************************************************/
/******************************主函數**********************************************/
/**********************************************************************************/
void main(void)
{
        START();                                                                                //初始化
    while(1)
        {
                WDT_CONTR = 0x37;                                               //看門狗定時器

                delayms(1000);
        }
}

//-----------------------------------------
//中斷0服務程序
void exint0() interrupt 0       //INT0中斷入口
{
        delayms(20);                                //中斷按鍵防抖
        if(!KEY1)
        {
                TR1 = 0;                                //定時器1
                t1_jishu = 0;
                t1_jishu2 = 0;
                BUZZ = 1;                                //關閉報警
        }
}

/* Timer1 interrupt routine */
void tm1_isr() interrupt 3 //using 1
{
        t1_jishu ++;
        t1_jishu2 ++;
        if(t1_jishu == 5)
        {
                t1_jishu = 0;
                BUZZ = ~BUZZ;        
        }
        if(t1_jishu2 == 20*30)
        {
                BUZZ = 1;                                //關閉報警
                TR1 = 0;                                //定時器1
                t1_jishu = 0;
                t1_jishu2 = 0;        
        }
}



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:328014 發表于 2020-3-3 15:09 | 只看該作者
好東東,能分享下源碼工程包嗎?
回復

使用道具 舉報

板凳
ID:67356 發表于 2020-3-4 08:23 | 只看該作者
P0M0 = 0x00;    P0M1 = 0x00;
    P1M0 = 0x00;    P1M1 = 0x00;
    P2M0 = 0x00;    P2M1 = 0x00;
    P3M0 = 0x00;    P3M1 = 0x00;
    P4M0 = 0x00;    P4M1 = 0x00;
    P5M0 = 0x00;    P5M1 = 0x00;
    P6M0 = 0x00;    P6M1 = 0x00;
    P7M0 = 0x00;    P7M1 = 0x00;

這些刪掉會咋樣?
回復

使用道具 舉報

地板
ID:214276 發表于 2020-3-16 01:16 | 只看該作者
測試后,好像沒聲音,蜂鳴輕響了一下就沒聲了。是不是沒有發聲代碼,樓主用的是有源直流蜂鳴器嗎。
回復

使用道具 舉報

5#
ID:695749 發表于 2020-3-16 12:31 | 只看該作者
思路很好,沒有實物,不太直觀,謝謝分享!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕一区二区三区四区 | 91原创视频在线观看 | 中文字幕视频网 | 91视频网 | 99精品一区二区三区 | 精品久久国产老人久久综合 | 一区二区三区免费 | 国产精品久久久久永久免费观看 | 亚洲国产一区视频 | 久久久成人网 | 久久a久久 | 久久一区二区视频 | 欧美日韩福利视频 | 久久国产欧美日韩精品 | 亚洲美女网站 | 色综合视频 | 男人天堂色 | 手机三级电影 | 日韩成人高清在线 | 国产精品7777777 | 男女羞羞视频在线观看 | 亚洲av毛片 | 国产精品999 | 欧美黄色一区 | 午夜99| 天天干天天操天天射 | 91av在线免费 | 国产精品999 | 精品一区二区三区四区外站 | 久久久久久国产精品mv | 精品日韩在线 | 亚洲日本视频 | 日韩av在线一区二区 | 日韩一级免费电影 | 99精品久久久 | www.国产| 精品久久久久久亚洲综合网站 | 性一交一乱一透一a级 | 黑人精品xxx一区一二区 | 中文字幕欧美日韩一区 | 桃花av在线|