标题:
STC15F104W单片机+干簧管手刹提醒电路与源程序
[打印本页]
作者:
风158
时间:
2021-3-18 22:05
标题:
STC15F104W单片机+干簧管手刹提醒电路与源程序
手刹提醒电路图.png
(6.85 KB, 下载次数: 122)
下载附件
2021-3-19 07:15 上传
用STC15F104W+干簧管制作的手刹提醒电路。
手刹拉起时,通电后LED亮,蜂鸣器每隔10S响一次。
程序和电路图见附件。
单片机源程序如下:
//手刹拉起时,通电后LED亮,蜂鸣器每隔10S响一次
//CPU:STC15F104W
#define CPU_Fosc 12000000uL //定义主时钟
#include "STC15.H"
#include<intrins.h>
sbit hand = P3^2; //定义手刹开关接口(任意引脚)
sbit led = P3^3; //输出
sbit be = P3^4; //输出
bit f10s;
float s;
/****************定时器初始化************************/
void Init()
{
TMOD=0x01;//定时器工作于方式1
TH0=0x3c; //50ms
TL0=0xb0;
EA=1; //CPU开中断总允许
ET0=1;//开定时中断
TR0=1;//启动定时
}
//********************** 定时器0中断函数************************
void time0() interrupt 1
{
TH0=0x3c;
TL0=0xb0; //12Mhz 50ms
s=s+.05; //累计秒数
if(s>=10)
{
f10s=1; //10s标志
s=0;
}
}
//========================================================================
// 函数: void delayms(unsigned int ms)
// 描述: 延时函数。
// 参数: ms,要延时的ms数, 这里只支持1~65535ms. 自动适应主时钟.
// 返回: none.
// 版本: VER1.0
// 日期: 2013-4-1
// 备注:
//========================================================================
void delayms(unsigned int ms)
{
unsigned int i;
do{
i = CPU_Fosc/13000;
while(--i) ; //14T per loop
}
while(--ms);
}
/****************蜂鸣器**************************/
void beep()
{
be=0;
delayms(100);
be=1;
}
//****************主函数*************************/
void main()
{
unsigned char i;
Init();
f10s=0;
for(i=1;i<6;i++)
{
beep();
delayms(500);
}
while(1)
{
if(!hand)
{
led=1;
}
else //手刹拉起时,LED亮,蜂鸣器10S响一次
{
led=0; //LED亮
if(f10s==1)
{
beep();
f10s=0;
}
}
}
}
复制代码
以上程序hex文件51hei提供下载:
STC15F104W+干簧管手刹提醒电路.rar
(25.21 KB, 下载次数: 23)
2021-3-19 07:17 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1