1、0018:00时间段内处于检测人数状态,每当一个人进入,则计数一次,当达到人数上限时,发出报警,人数上限可以手动修改。3.防盗系统在18:0000:00时间段内处于灯控状态,当检测到有人进入则点亮楼道照明灯,无人时则关闭照明灯。1.2.2 主控模块的选择方案一:8051片内有4k ROM,无须外接外存储器和373,更能体现“单片”的简练。但是自己所编写的程序无法烧写到其ROM中,只有将程序交芯片厂代为烧写,并是一次性的,今后任何人都不能改写其内容,技术上有局限,在调试过程中会增大成本。方案二:ATMEL 公司的AT89C51、AT89S51在与众多的51系列单片机相比之下更显实用,因为这两款单
2、片机不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,用户可以用电的方式瞬间擦除、改写程序,一般专为ATMEL AT89xx 做的编程器均带有这些功能。显而易见,这种单片机对开发设备的要求很低,开发时间也大大缩短。另外,AT89C51、AT89S51目前的售价比8031还低,市场供应也很充足,比较符合本次设计的要求。方案三:AT89S52是2003年ATMEL推出的AT89S系列的新型品种,除了完全兼容8051和AT89C51外,还多了ISP编程和看门狗功能,其中的ISP在线编程技术既降低了成本也无需反复插拔芯片,可避免损坏芯片管脚,同时可省去了仿真器和专用编程器
3、,大大减低了操作难度和成本;而且该单片机的性能稳定且内存达8KB,与其他同类单片机相比,它的性价比非常高。综上所述,对这三种方案进行比较后,确定选择方案三中介绍的AT89S52作为本次设计的主控芯片。1.2.3红外信号检测模块的方案选择采用红外线对管收发电路,但是这样不论是检测到人时,还是物体经过,都会产生报警信号,而本次设计所要求的是防盗,只要求对人体进行检测,所以排除本方案。采用人体红外感应模块来输入报警信号,这样硬件连接简单,相应的软件设计也会随之简化,而且这种模块直线检测距离远,范围广,工作也较为稳定。综合比较以上两种方案,决定选择方案二实现本次设计的红外信号检测功能。1.2.4显示模
4、块的方案选择LED数码管静态显示,这种方法编程容易,管理也较简单,但是占用单片机I/O口线资源较多,也给焊接增加了一定的难度。LED数码管动态显示,价格低廉,不仅减少了对I/O口的浪费,而且能够同时驱动多个数码管。其驱动程序容易编写和理解。经过以上二种方案的比较,在考虑成本和程序编写等因素后,选择方案二即LED数码管动态显示作为本次设计显示部分。1.2.5声光报警和键盘控制模块声光报警模块拟采用一个红色发光二极管和一个蓝色发光二极管作为警灯,一个无源蜂鸣器通过编程实现警笛。键盘控制模块准备用8个独立按键分别控制时间调整、报警人数上限设定和解除警报等功能,不采用矩阵按键是因为它的程序编写较为复杂
5、。1.2.6系统最终整体硬件方案经过对以上各模块方案的比较,在考虑成本、编程难易程度等方面的前提下,确定了最终硬件方案为:红外信号检测模块:人体红外感应集成模块;主控芯片:ATMEL公司的AT89S52微控制器;显示模块:LED数码管动态显示;外部控制:8个独立按键;声光报警:无源蜂鸣器,红蓝发光二极管各一个。最终整体方案的系统框图如图1-1所示。图1-1 系统整体原理框图第2章 系统硬件设计第一节 系统硬件及功能概述智能楼宇防盗及灯控系统主要由五个模块组成,其核心AT89S52微控制器,用以对其他子模块进行通信;P3口与键盘控制模块连接,实现系统的人机交互功能;P2口和P0口的部分位连接数码
6、管,通过动态扫描的方式实现系统的显示功能;P0口的其他位连接声光报警模块,主要由一个蜂鸣器、两个发光二极管组成,当有报警信号时则由单片机控制驱动发光管和蜂鸣器实现报警功能;灯控部分以一个发光二极管模拟,与单片机的一位I/O口相连;人体红外感应模块与P1.1相连以实现红外信号检测模块与微控制器之间的通信。第2节 主控模块2.2.1主控芯片简介AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥
7、有灵巧的8位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。其引脚结构如图2-1所示。图
8、2-1 AT89S52引脚结构2.2.2 主控模块电路的设计AT89S52单片机是双列直插40引脚的集成电路芯片,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。MCS-51单片机第20引脚为接地端;第40引脚为电源端;第31引脚需要接高电位使单片机选用内部程序存储器;第18、19脚之间接上一个12MHz的晶振为单片机提供时钟信号;第9脚为复位脚,当其接高电位时,单片机停止当前工作并恢复到初始状态。电路连接如图2-2所示。 图2-2主控模块电路2.2.3红外信号检测模块LM324系列运算放大器是价格便宜的带差动输入功能的四运算放大器,可
9、工作在单电源下,电压范围是332V或16V。设计方案被动式红外报警器主要由光学系统、热释电红外传感器、信号滤波和放大、信号处理和报警电路等几部分组成。热释电红外线传感器 :主要部分是由一种高热电系数的材料制成尺寸为2lmm的探测元件。在每个探测器内装入一个或两个探测元件,并将两个探测元件以反极性串联,以抑制由于自身温度升高而产生的干扰。探测元件的作用是探测、接收红外辐射并将其转换成微弱的电压信号。信号处理及报警电路:电路中的传感器将输出电压信号,然后使该信号先通过一个带通滤波器滤波,由于热释电红外传感器输出的探测信号电压十分微弱(通常仅有1mV左右),而且是一个变化的信号,同时菲涅尔透镜的作用
10、又使输出信号电压呈脉冲形式(脉冲电压的频率由被测物体的移动速度决定,通常为0.110Hz左右),所以应对热释红外传感器输出的电压信号进行放大。本设计运用集成运算放大器LM324来进行两级放大,以使其获得足够的增益。图2-3红外信号检测模块连接图2.2.4 LED数码管显示模块电路的设计从图中可以观察到单片机P1口的低4位连接一片74LS47,由于74LS47的输出是低电位有效的七段译码器,因此采用共阳极的数码管。通过单片机P1口的低4位传输出的信号经过74LS47译码器码后输出给数码管显示。由于采用的是动态方式因此我们使用的是P1口的P1.4、 P1.5、 P1.6、P1.7来组合选择通道,通
11、过编程来实现数码管的动态显示。电路连接图如图2-4所示。图2-4 LED显示模块2.2.5声光报警模块蜂鸣器可以分为有源蜂鸣器和无源蜂鸣器两种。有源蜂鸣器和无源蜂鸣器的差别主要差别为:有源蜂鸣器和无源蜂鸣器的根本区别是产品对输入信号的要求不一样;有源蜂鸣器工作的理想信号是直流电,通常标示为VDC、VDD等。因为蜂鸣器内部有一简单的振荡电路,能将恒定的直流电转化成一定频率的脉冲信号,从面实出磁场交变,带动钼片振动发音。但是在某些有源蜂鸣器在特定的交流信号下也可以工作,只是对交流信号的电压和频率要求很高,此种工作方式一般不采用。而无源蜂鸣器没有内部驱动电路,有些公司和工厂称为讯响器,国标中称为声响
12、器。无源蜂鸣器工作的理想信号方波。如果给预直流信号蜂鸣器是不响应的,因为磁路恒定,钼片不能振动发音。本设计需要产生警笛声,要求有不同声调,所以将采用无源蜂鸣器作为发声器件。系统中的无源蜂鸣器用一个NPN型三极管8050进行驱动,声光报警模块电原理图如图2-5所示。图2-5灯光报警模块原理图2.2.6键盘控制模块键盘采用8个独立按键分别实现时间小时加一、时间分加一、人数千位加一、人数百位加一、人数十位加一、人数个位加一、系统设定开关和解除警报、显示记录的报警时间等作用。考虑到本次设计的I/O口较为充裕,为了简化软件设计难度,从而放弃使用编程复杂的矩阵键盘。因为AT89S52微控制器的P3口内部内
13、部已经集成了上拉电阻,所以键盘控制模块的电路相对简化了很多,如图3-9所示。按键功能分配如表3-1所示。单片机I/O口功能分配P0.0小时加一P0.1分加一P0.2人数千位加一P0.3人数百位加一P0.4人数十位加一P0.5人数个位加一P0.6系统设定开关P0.7解除警报、显示记录的报警时间图2-6键盘模块控制原理图第3章 系统软件设计第一节 编程语言的介绍与选择 汇编语言是用助记符、符号和数字等来表示指令的程序语言,容易理解和记忆,它与机器语言指令是一一对应的。汇编语言不像高级语言那样通用性强,而是属于某种单片机所独有的,与单片机的内部硬件结构密切相关,也就是说,每款或者每个系列的单片机都有
14、自己专有的一套指令系统。使用汇编语言编程的麻烦在于它的可读性和可维护性比较差,如果是别人写的程序,特别是当程序没有很好的标注的时候,将非常不容易被读懂,从而导致代码的可重用性和可移植性也比较低,而且在编程前需要先对所使用的单片机的硬件结构有所了解。C语言是一种结构化语言,它层次清晰,易于调试和维护,语言简洁紧凑,使用方便、灵活。它不仅具有丰富的运算符和数据类型,以便于实现各类复杂的数据结构,还可以直接访问内存地址,进行位操作。用C语言编写的程序,因为其很好的结构性和模块化,更容易阅读和维护;而且由于它的模块化,用语言编写的程序具有很好的可移植性。功能化的代码能够很方便的从一个工程移植到另一个工程,从而减少了开发时间。C语言的特点就是可以使你尽量少地对硬件进行操作,是一种功能性和结构性很强的语言。鉴于以上对汇编语言和C语言的介绍与比较,本次设计将采用可读性和可移植性相对较强的C语言进行软件
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1