参考文献
[1]胡萍.串口通信的红外报警器的研制[J].计算机与现代化,2010(10):15-16. [2]唐德琴.电子温度测量仪器技术发展战略研究[J].电子科学技术,2009,27(1):1-8
[3]李行善.基于串口组件的体系结构[J].电子串口与仪器学报,2010(08):15-16.
[4]姜道连等.用于AT89C51设计红外报警器的设计与制作[J].国外电子元器件,2010(12):31-34.
[5]冯国进.嵌入式Linux驱动程序设计从入f-J至U精通D田.北京:清华大学出版社,2008
[6]蔡文斋. 专业级串口调试器设计. 现代电子技术, 2010. [7]熊如贵.串口通信感应装置[J].电子制作,2009(6):23-31.
[8] 时德钢等.基于串口通信的红外报警器的研究[J].计算机测量与控制,2009,10(7):480-482.
17
附录1:总体原理图设计
18
附录2:元器件清单
名称 单片机 单片机座 蜂鸣器 三极管 红色发光二极管 绿色发光二极管 黄色发光二极管 晶振 瓷片电容 红色发光二极管 自锁开关 按键 单排排针 电阻 电阻 红外热电释传感器
型号 STC89C52 DIP-40 有源 S8550 5mm 5mm 5mm 12M 20P 3mm 3P 2K 10K 数量 1 1 1 1 1 1 1 1 2 1 1 4 1 5 1 1
19
附录3:程序源代码
#include
#define key_io P1 uchar key_can;
// 红外热释电平时为0 有输出为1
sbit beep = P2^3; //蜂鸣器定义 sbit red = P2^2; //红色发光二极管定义 sbit green = P2^1; //绿色发光二极管定义 sbit yellow = P2^0; //黄色发光二极管定义 sbit hw = P1^3; bit flag_300ms = 0;
/****************独立按键处理函数************************/ void key() {
变量范围0~255
//无符号整型 宏定义 变量范围0~65535
//红外热释传感器定义
static uchar key_new = 0,key_old = 0,key_value = 0; if(key_new == 0) {
20
//按键松开
}
if((key_io & 0x07) == 0x07)
key_value ++;
else
key_value = 0;
if(key_value >= 5) //按键松开松手检测 { }
key_value = 0;
key_new = 1; //按键松开后进入等待按键状态
else { }
key_can = 20;
if((key_new == 0) && (key_old == 1))
21
if((key_io & 0x07) != 0x07) //按键按下
key_value ++;
else
key_value =0;
if(key_value >= 5) //按键按下消抖 { }
key_value = 0;
key_new = 0; //按键松开后进入等待松开按键状态