标题:
GSM模块远程报警--安防报警单片机程序
[打印本页]
作者:
yangjiang1
时间:
2019-9-10 14:07
标题:
GSM模块远程报警--安防报警单片机程序
原理图,仿真图
C[}JA4H@Y~9T056QZGQ8$V1.png
(40.17 KB, 下载次数: 37)
下载附件
2019-9-10 14:06 上传
程序
#include <reg51.h>
#include <intrins.h>
char code str_warning[] = "Warning of illegal entry into vehicles!\n\r";
bit warning_enable = 0;
sbit K1 = P2^0;
sbit LED = P2^1;
void uart_init(void)
{
TMOD = 0x20; // 定时器1工作于8位自动重载模式, 用于产生波特率
TH1 = 0xFD; // 波特率[url=mailto:9600@11.0592MHz]9600@11.0592MHz[/url]
TL1 = 0xFD;
SCON = 0x50; // 设定串行口工作方式
PCON&= 0xef; // 波特率不倍增
TR1 = 1; // 启动定时器1
}
void send_warning()
{
unsigned char i = 0;
while(str_warning[i] != '\0')
{
SBUF = str_warning[i];
while(!TI); // 等特数据传送
TI = 0; // 清除数据传送标志
i++; // 下一个字符
}
}
void delay_ms(unsigned int ms)
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
void main()
{
uart_init();
LED = !warning_enable;
EX0 = 0;
IT0 = 1;
EA = 1;
while(1)
{
if(K1 == 0) // 扫描按键
{
delay_ms(10); // 延时去抖动
if(K1 == 0) // 再次扫描
{
while(K1 == 0);
warning_enable = !warning_enable; // 报警使能标志
LED = !warning_enable; // led指示灯
IE0 = 0; // 清除中断标志
EX0 = warning_enable; // 使能或禁止外部中断
}
}
}
}
void exit0() interrupt 0
{
send_warning(); // 触发中断则发送报警信息
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1