欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
簡易STC15F104E單片機定時報警器制作 附程序
[打印本頁]
作者:
aking991
時間:
2020-3-3 14:09
標題:
簡易STC15F104E單片機定時報警器制作 附程序
非常時期,孩子不能上學,大人沒在家,每天早上都睡得十幾點,有點過份,所以作個簡易定時報警器作鬧鐘用,主要是配合小米智能插座的網絡定時功能用,只是自己的小制作,供有需求的人參考用;
制作出來的實物圖如下:
51hei圖片_20200303140707.jpg
(161.92 KB, 下載次數: 58)
下載附件
2020-3-3 14:06 上傳
功能:
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;
}
}
作者:
51hei團團
時間:
2020-3-3 15:09
好東東,能分享下源碼工程包嗎?
作者:
jmkl128
時間:
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;
這些刪掉會咋樣?
作者:
chinarenxx
時間:
2020-3-16 01:16
測試后,好像沒聲音,蜂鳴輕響了一下就沒聲了。是不是沒有發聲代碼,樓主用的是有源直流蜂鳴器嗎。
作者:
hbcqd
時間:
2020-3-16 12:31
思路很好,沒有實物,不太直觀,謝謝分享!
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1