2 系统设计方案
2.1 单片机的选择
方案:MCS-51单片机
AT89C51是MSC-51单片机中应用最广泛的型号, 现在以其为代表介绍其参数。AT89C51单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。其内部结构主要有以下几部分:
微处理器 该单片机中有一个8位的微处理器,与通用的微处理器基本相同,同样包括
了运算器和控制器两大部分,只是增加了面向控制的处理功能,不仅可处理数据,还可以进行位变量的处理。
数据存储器 片内为128个字节,片外最多可外扩至64k字节,用来存储程序在运行期
间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等,所以称为数据存储器。 程序存储器 由于受集成度限制,片内只读存储器一般容量较小,如果片内的只读存储
器的容量不够,则需用扩展片外的只读存储器,片外最多可外扩至64k字节。 中断系统 具有5个中断源,2级中断优先权。
定时器/计数器 片内有2个16位的定时器/计数器, 具有四种工作方式。
串行口 1个全双工的串行口,具有四种工作方式。可用来进行串行通讯,扩展并行I/O
口,甚至与多个单片机相连构成多机系统,从而使单片机的功能更强且应用更广。 4个并行8位I/O口 分别为P1口、P2口、P3口、P4口
特殊功能寄存器 共有21个,用于对片内的个功能的部件进行管理、控制、监视。实
际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。
2.2光照检测方式
方案一、采用光敏二极管或三极管等光传感器件把环境亮度转换成相应的数字电平,然后
直接接入单片机IO引脚。
方案二、采用光敏电阻把环境亮度转换成相应的电压值(模拟值),然后通过运放后给单
片机输入一个标准的数字信号。
1
由于光敏电阻属于纯阻性器件,所以采用方案一。
2.3 人体感应方式
方案一、采用红外对管进行检测。红外发送管和红外接收管分别安装在通道两侧。当某一
时刻红外接收管如果接收不到信号表示两者之间有遮挡物通过,可以视为有人体进入。
方案二、采用集成电路BIS0001,该芯片是一款具有较高性能的传感信号处理集成电路。
它配以热释电红外传感器和少量外接元器件就可构成被动式的热释电红外开关、报警用人体热释电传感器等。它能自动快速开启各类白炽灯、荧光灯、蜂鸣器、自动门、电风扇、烘干机和自动洗手池等装置,特别适用于企业、宾馆、商场、库房及家庭的过道、走廊等敏感区域,或用于安全区域的自动灯光、照明和报警系统。
方案三、由于本实验课题要求使用仿真软件,把电路图仿真,并答辩时看到仿真结果,及考虑到实验室的条件下,决定用以手动开关模拟人信号(当没人时,灯熄灭)。
综上考虑,决定采用方案三。
2.4 照明设备驱动电路
方案一、采用可控硅控制。可控硅又称晶闸管,是一种具有三个PN 结的四层结构的大功
率半导体器件。其具有体积小、结构相对简单、功能强等特点,是比较常用的半导体器件之一。 方案二、采用继电器控制。继电器是一种当输入量(电、磁、声、光、热)达到一定值时,输出量将发生跳跃式变化的自动控制器件。其具有动作快、工作稳定、使用寿命长、体积小等优点。广泛应用于电力保护、自动化、运动、遥控、测量和通信等装置中。根据结构不同,可以将其分为电磁继电器、热敏干簧继电器、固态继电器、磁簧继电器、光继电器等型号。
由于考虑实验室条件,及软件仿真要求,故采用用发光二极管代替实际电路中的
继电器和照明系统,实现对系统的模拟和仿真。
2
3 硬件电路设计与实现
3.1 系统硬件总述
系统以单片微型计算机为核心外加多种接口电路组成,共有六个主要部分:AT89C51芯片、光信号采集电路(光敏电阻)、人体信号采集电路(用手动开关模拟)、输出控制电路、如图3-1所示。
MCU
图3-1 系统硬件总述图
信号处理电路 光信号检测电路 控制电路 3.2 CPU性能介绍
本系统采用了ATMEL公司MCS-51系列单片机中的AT89C51芯片,它是低压高性能CMOS 8位微处理器,带有4k字节Flash闪速存储器,128字节内部RAM,15个I/O口线,两个16位定时/计数器,—个5向量两级中断结构,一个全双工串行通信口。
3.3 主控制机电路设计
主控制器采用AT89C51单片机作为微处理器,AT89C51是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,片内含4K bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash 存储单元。
3
主控制器系统的外围接口电路由信号处理电路、LED显示及控制电路、等几部分组成。
3.4 热释电传感器及处理电路 3.4.1 热释电红外线传感器
热释电红外传感器能以非接触形式检测出人体辐射的红外线,并将其转变为电压信号。热释电传感器具有成本低、不需要用红外线或电磁波等发射源、灵敏度高、可流动安装等特点。实际使用时,在热释电传感器前需安装菲涅尔透镜,这样可大大提高接收灵敏度,增加检测距离及范围。实验证明,热释电红外传感器若不加菲涅尔透镜,则其检测距离仅为2 m左右;而配上菲涅尔透镜后,其检测距离可增加到10 m以上。由于热释电传感器输出的信号变化缓慢、幅值小(小于1 mV),不能直接作为照明系统的控制信号,因此传感器的输出信号必须经过一个专门的信号处理电路,使得传感器输出信号的不规则波形转变成适合于单片机处理的数字信号。根据以上要求,人体热释电检测电路组成框图如图3-4所示。 检测对象 菲涅尔透镜 热释电红外传感器 信号处理电路
图3-4人体热释电检测电路组成框图
Vm
由于本实验需要仿真,及考虑到学校实验设施条件,本电路采用一手动开关来代替模拟人信号处理。
3.5 光照检测电路
在设计中,采用一光敏电阻来检测光照强弱,并设置了一个可移动的灯,通过移动灯离光敏电阻的远近,来模拟光照强弱。
3.6 控制电路
本电路中利用了一片ADCO801模数转换电路,进行模数转换,使得能处理光照强弱的信号。
4
4 系统软件设计及实现
4.1 系统软件流程图
软件部分的主要任务是完成对光照检测电路和对热释电传感器信号处理电路的输出信号进行处理。在光照较强时,系统继续对光照检测电路的输出状态进行检测。光照较弱时,系统对信号处理电路的输出状态Vo进行检测。若室内有人时Vo为高电平,系统控制照明设备点亮并按设定的时间进行延时。在延时时间内再一次检测到有人时,则系统又按设定的时间进行延时;若在延时时间内检测到室内无人时,则系统控制照明设备熄灭并重新对信号处理电路的输出状态Vo进行检测。基于上述分析,系统软件设计流程如图4-1所示。
开始 系统初始化 (设置中断及Flag=0) 光照检测 是否有人 Y Flag=0熄灭照明设备 Flag=1 设置延时时间 点亮照明设备 Y 时间到否 图4-1系统软件流程图 Flag=1? Y N N 强 弱 N 由于本实验中,有些电路,仿真无法观看到明显的变化,采用了其他电路代替····
5
4.2 仿真环境介绍
4.2.1 Keil介绍
随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil。该软件是美国Keil Software公司出品的软件开发系统,其允许用户使用汇编或者C语言来开发MCS-51单片机(或与MSC-51指令兼容的其它单片机)的应用软件。功能上,Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。外观上采用全Windows界面,容易上手。性能上,即便是使用高级语言开发应用程序,其生成的目标代码效率也非常高,多数语句生成的汇编代码很紧凑。
4.2.2 Proteus介绍
Porteus是一款集单片机仿真与SPICE分析于一身的EDA仿真软件,于1989年由英国
Labcenter Eletronice Ltd研发成功,经过多年的发屏,现已成为当前EDA性价比最高、性能最强的一款软件。
Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其最大的特点是Proteus VSM(Virtual System Modelling)实现了混合模式的SPICE电路仿真,它将虚拟仪器、高级图表仿真、微处理器软仿真器、第三方的编译器和调试器等有机结合起来,在世界范围内第一次实现了在硬件物理模型搭建成功之前,即可在计算机上完成原理图设计、电路分析与仿真、处理器代码调试及实时仿真、系统测试,以及功能验证。 Proteus主要有两大部分组成:
ISIS——原理图设计、仿真系统。它用于电路原理图的设计以及交互式仿真。 ARES——印制电路板设计系统。它主要用于印制电路板的设计,产生最终的PCB文件。
6
5 系统可靠性技术
在实验室里设计的控制系统,在安装、调试后完全符合设计要求,但把系统置入现场后,系统常常不能正常稳定地工作。产生这种情况的原因主要是现场环境复杂和各种各样的电磁干扰,所以单片机应用系统的可靠性设计、抗干扰技术变得越来越重要了。
工业现场环境中干扰是以脉冲产的形式进人单片机系统的,其主要的渠道有三条,即空干扰多发生在高电压、大电流、高频电磁场附近,并通过静电感应,电磁感应等方式侵入系统内部;供电系统干扰是由电源的噪声干扰引起的;过程通道干扰是干扰通过前向通道和后向通道进入系统的。干扰一般沿各种线路侵入系统。系统接地装置不可靠,也是产生干扰的重要原因;各类传感器,输人/输出线路的绝缘损坏均有可能引入干抚。
5.1干扰产生的后果
(1)数据采集误差的加大。当干扰侵入单片机系统的前向通道叠加在信号上,会使数据采集误差增大,特别是前向通道的传感器接口是小电压输入时,此现象会更加严重。
(2)程序运行失常:①控制状态失灵。在单片机系统中,由于干扰的加人使输出误差加大,造成逻辑状态改变,最终导致控制失常。②死机。在单片机系统受强干扰后,造成程序计数器(PC)值的改变,破坏程序正常运行。
(3)系统被控对象误操作。①单片机内部程序指针错乱,指向了其它地方,运行了错误的程序;②DRAM中的某些数据被冲乱或者特殊寄存器的值被改变,使程序计算出错误的结果。③中断误触发,使系统进行错误的中断处理。
(4)被控对象状态不稳定。锁存电路与被控对象间的线路(包括驱动电路)受干扰,从而造成被控对象状态不稳定。
(5)定时不准。①单片机内部程序指针错乱,使中断程序运行超出定时时间;②RAM中计时数据被冲乱,使程序计算出错误的结果。
(6)数据发生变化。在单片机应用系统中,由于外部RAM是可读写的,在干扰的侵入下,RAM中数据有可能发生改变,虽然ROM能避免干扰破坏,但单片机片内RAM以及片内各种特殊功能寄存器等状态都有可能受干扰而变化,甚至EPROM中的数据也可能误读写,使程序计算出错误的结果。
针对以上出现的问题,本系统分别从硬件和软件两个方面来探讨一些提高单片机应用系统抗干扰能力的方法。合理地使用软件和硬件抗干扰技术,可使系统最大限度地避免干扰的产生
7
和受干扰后能使系统恢复正常运行,保证系统长期稳定可靠地工作。
5.2 单片机应用系统的硬件抗干扰设计
(1)供电系统。①防止从电源系统引入干扰,可采取交流稳压器保证供电的稳定性,防止电源的过压和欠压。使用隔离变压器滤掉高频噪声,低通滤波器滤掉工频干扰。②采用开关电源并提供足够的功率余量,主机部分使用单独的稳压电路,必要时I/O供电分别采用DC-DC模块隔离,以避免各个部分相互干扰。
(2)注意印制电路板的布线与工艺。①尽量采用多层印制电路板,多层板可提供良好的接地网,可防止产生地电位差和元件之间的耦合。②印制电路板要合理分区。模拟电路区、数字电路区、功率驱动区要尽量分开,地线不能相混,分别和电源端的地线相连。③元件面和焊接面应采用相互垂直、斜交、或者弯曲走线,避免相互平行以减小寄生耦合:避免相邻导线平行段过长;加大信号线间距。高频电路互联导线尽量短,使用45°或者圆弧折线布线,不要使用90°折线,以减小高频信号的发射。④印制电路板要按单点接电、单点心接地的原则送电。三个区域的电源线、地线分三路引出。地线、电源线要尽量粗,噪声元件与非噪声元件要尽量离远一些。时钟振荡电路、特殊高速逻辑电路部分用地线圈起来,让周围电场趋近于零。⑤使用满足系统要求的最低频率的时钟,时钟产生器要尽量靠近用到该个TTL或20多个CMOS。如果输出负载过重,会降低输出电平,使电平处于或低于被驱动器件的输入门槛电平,从而造成系统不稳定。
(3)提高元器件的可靠性。①选用质量好的电子元件,并进行严格的测试、筛选和老化。②设计时元件技术参数要有一定的余量。③提高印制板和组装的质量。
(4)使用双机冗余设计。在对控制系统的可靠性有严格要求的场合,使用双机冗余可进一步提高系统抗干扰能力。双机冗余,就是执行同一个控制任务,可安排两个单片机来完成,即主机与从机。正常情况下,主机掌握着三总线的控制权,对整个系统进行控制,此时,从机处于待机状态,等待仲裁器的触发。当主机由于某种原因发生误动作时,仲裁器根据判别条件,若认为主机程序已混乱,则切断主机的总线控制权,将从机唤醒,从机将代替主机进行处理与控制。
(5)用好去耦电容。好的高频去耦电容可以去除高到1AHZ的高频成份。陶瓷片电容或多层陶瓷电容的高频特性较好。设计印刷线路板时,每个集成电路的电源,地之间都要加一个去耦电容。去耦电容有两个作用:一方面是本集成电路的蓄能电容,提供和吸收该集成电路开门关门瞬间的充放电能;另一方面旁路掉该器件的高频噪声。数字电路中典型的去耦电容为0.1uf
8
的去耦电容有5nH分布电感,它的并行共振频率大约在7MHz左右,也就是说对于10MHz以下的噪声有较好的去耦作用,对40MHz以上的噪声几乎不起作用。1uf,10uf电容,并行共振频率在20MHz以上,去除高频率噪声的效果要好一些。在电源进入印刷板的地方和一个1uf或10uf的去高频电容往往是有利的,即使是用电池供电的系统也需要这种电容。每10片左右的集成电路要加一片充放电电容,或称为蓄放电容,电容大小可选10uf。
5.3 软件抗干扰技术
1.数据采集误差的软件对策
(1)用软件滤波算法,可滤掉大部分由输入信号干扰而引起的输出控制错误。最常用的方法有算术平均值法、比较舍取法、中值法、一阶递推数字滤波法。具体选取何种方法,必须根据信号的变化规律选择。对开关量采用多次采集的办法来消除开关的抖动。
(2)关键数据可使用软件冗余技术,即给数据增加一定的冗余位,以实现数据的检错和纠错功能。常用的方法有:奇偶校验,海明码和循环码校验。
2.程序运行失控的软件对策
对于程序运行失常的软件对策,主要是发现失常状态并及时将系统引导到初始状态。 (1)指令冗余。对MCS-51系列单片机,大部分指令为单字节,当出错的程序落到其上时,出错的程序可自动纳入正轨;当落到多字节指令的操作数时,程序将继续出错,所以在关键的对程序的流向起决定性的指令之前插入两条NOP指令,以使被弹飞的指令恢复正轨。
(2)设置程序指针陷阱。软件陷阱将出错的程序捕获并强行引入出错处理的程序,软件陷阱可安排在四个地方:①未使用的中断向量区,干扰可使未使用的中断开放并激活中断,在这些地方设置软件陷阱就能及时捕获到错误中断。②未使用的ROM空间,在其中每隔一段设置一个陷阱,可将弹飞至该区域的出错程序捕获。③表格,储存在EPROM中的表格后安排软件陷阱,可在一定程度上防止软件弹飞。④程序区,一般程序中不能任意安排软件陷阱,但是在正常程序中会有一些跳转指令,在这些指令后使用软件陷阱可捕获到弹飞到跳转指令的操作数上的出错程序。
(3)使用程序监视跟踪定时器。程序监视跟踪定时器即Watchdog,在单片机抗干扰设计中使用非常广泛,各大器件生产商提供了不同功能的芯片,如Maxim的MX760、MX813,IMP的IMP690A1692AL是用于微处理器系统的电源监视和控制电路,可为CPU提供复位信号、看门狗监视、备用电池自动切换及电源失效监视。除上/掉电条件下为微处理器提供复位外,这些器件还具有备用电池切换功能。利用watchdog和软件的配合使用可大大提高系统的抗干扰能力。
9
(4)使用实时嵌入式操作系统(RTOS)。操作系统首先建立多个实时任务并初始化,各个任务在操作系统的调度下运行,若某一任务由于干扰而运行失常,操作系统可将该任务强制退出并让出CPU控制权,根据故障情况进行处理。使用RTOS可减小系统的复位次数,提高抗干扰能力。
6·实验电路仿真图
10
7.实验程序
#include #define uint unsigned int #define uchar unsigned char sbit adcs=P1^7; sbit adrd=P3^7; sbit adwr=P3^6; sbit led=P1^5; sbit Seg_ce=P1^0; sbit Dig_ce=P1^1; uchar tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uint ad_data,m=0,n=0,t1=5,t2=25; void delay(uint) {uint j for(i;i>0;i--) for(j=124;j>0;j--) } void keyscan(unit num) { uint ge,shi; ge=num%10; shi=num/10; P0=0;Seg_ce=1;Seg_ce=0; P0=0xff;Dig_ce=1;Dig_cd=0; P0=tab[ge];Seg_ce=1;Seg_ce=0; P0=0xfe;Dig_ce=1;Dig_cd=0; } void read_ad() { adcs=0; adwr=0;delay(1);adwr=1;delay(1); adrd=0;delay(1);ad_data=P2;delay(1);adrd=1; adcs=1; } void main() { 11 P0=0; P1=0x2c; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; IE=0X82; TR0=1; while(1) {if(m==0)keyscan(t1); if(t1==0) {while(t2) read_ad(); if(ad_data<125) {led=1; } else {led=0; delay(1); } if(t2==0) led=0; } } } void T0_timer() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; if(t1!=0)m++; if(m==20) {m=0; t1--; } if(t2!=0)n++; if(t2==20) {n=0; t2--; } } 12 结 论 根据本次设计要求,我首先了解了国内外的智能照明控制系统的背景,便于后面设计。系统阅读了相关大量书籍、资料,学习了51系列单片机的工作原理及使用方法,并仔细分析了课题设计要求,在实际设计过程中,条件艰苦,由于能力有限及考虑到实际情况,部分功能未能实现,就省略掉了。本设计过程中去掉了时间显示电路,只是能延时一段时间然后灯灭。 本文使用AT89C51单片机实现主控制,完成相关电路的设计,最终实现了几个简单功能。能够对输出电路的控制,实验小灯泡能够对光和人的检测并能做出相应反应,开或者关。基本上达到了智能照明的控制。 通过本次课程设计,我受益匪浅,学到了很多知识,大大增强了自己的动手能力。还使我们对一个项目的整体设计有了初步认识,并学会了使用keil软件进行仿真调试,使用Protel se99软件画原理图,画PCB板等。实验中使我们认识到理论知识与实践中的巨大差别,懂得理论知识,并不代表能够很顺利地做出实际想要的效果的电路板。 总之,在这次课题设计过程中,丰富了理论知识,增强了自己的实际动手能力,增强了自己解决问题的能力。 4.主要参考文献: 1. 李军等. 51系列单片机高级实例开发指南.北京航空航天大学出版社.2004.6. 2. 王幸之等. 单片机应用系统抗干扰技术. 北京航空航天大学出版社.2000.2. 3. 赵广林编著. 轻松跟我学Protel 99SE电路设计与制版.电子工业出版社. 2005. 4. 田静.智能照明控制系统在学校的应用.电气&智能建筑,2006. 5. 求是科技编著.单片机典型模块设计实例导航[M]. 人民邮电出版社, 2004 6. 杨将新,李华军,刘东骏编著.单片机程序设计及应用从基础到实践[M]. 电子工业出版社, 2006 7. 徐爱钧, 彭秀华. 单片机高级语言C51应用程序设计[M]. 北京: 北京航空航天大学出版社, 2006. 8. 马忠梅 单片机C语言应用程序设计 2003 其它相关资料 13 课 程 设 计 任 务 书 5.本课程设计课题工作进度计划: 起 迄 日 期 2013年 工 作 内 容 06月 17日~06月17日 下达任务书,任务布置及设计要求说明 查阅材料,方案设计; 06月 18日~06月20日 完成设计初稿 06月21日~ 06月25日 仿真、调试 06月26日~ 06月29日 答辩、成绩考核 06月30日 教研室主任审查意见: 负责人签字: 年 月 日 14 因篇幅问题不能全部显示,请点此查看更多更全内容