基于单片机stc89c52的安防系统.docx
- 文档编号:5998165
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:21
- 大小:932.78KB
基于单片机stc89c52的安防系统.docx
《基于单片机stc89c52的安防系统.docx》由会员分享,可在线阅读,更多相关《基于单片机stc89c52的安防系统.docx(21页珍藏版)》请在冰豆网上搜索。
基于单片机stc89c52的安防系统
基于stc89c52单片的安防系统
系别:
信息工程系
学生姓名:
苏立科
专业班级:
10应用(嵌入式技术)1班
学号:
10311433113
指导教师:
曾海峰
2011年11月15日
摘要
文章所设计的基于单片机stc89c52安防系统所实现的主要功能:
利用红外传感器对人体的感应实现密码输入和密码输入错误报警功能,当人体经过红外传感器时,提示用户输入密码,在预设时间内未输入,或者输入错误次数达到三次时开启报警程序。
气体传感器检测到有害气体的声光报警同时把gasout显示在lcd1602液晶屏上。
ds18b20对温度数据进行采集,ds1302实时时钟芯片把当前室内的温度和时间显示在液晶屏上。
关键词:
单片机;模块;安防;传感器
目录
摘要………………………………………………………………………I
1单片机介绍…………………………………………………………
(1)
1.1单片机的应用领域………………………………………………
(2)
1.2现在世界上单片机的发展水平…………………………………(3)
2
电源模块的设计……………………………………………………(5)
3速度信号采集模块的设计…………………………………………(5)
4时钟模块的设计……………………………………………………(6)
5单片机模块设计……………………………………………………(6)
6储模块的设计………………………………………………………(7)
7示模块的设计………………………………………………………(7)
8键的设计……………………………………………………………(7)
9温度采集模块………………………………………………………(7)
10系统运行流程图…………………………………………………..(8)
11,部分源代码:
…………………………………………………….(9)
参考文献………………………………………………………………(9)
致谢…………………………………………………………………(10)
1单片机介绍
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可......用它来做一些控制电器一类不是很复杂的工作足矣了。
我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!
......它主要是作为控制部分的核心部件。
它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。
单片机是靠程序的,并且可以修改。
通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。
一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!
但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!
只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!
由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?
很多高级的语言已经达到了可视化编程的水平为什么不用呢?
原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。
一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!
对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。
单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。
一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。
可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成。
还有一类计算机,大多数人却不怎么熟悉。
这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。
究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
1.1单片机的应用领域
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。
单片机注定影响一个时代,只要存在计算机的地方就会有它的存在。
以下大致介绍一些典型的应用领域和应用特点。
l.家用电器领域
国内各种家用电器已普遍采用单片微机控制取代传统的控制电路,做成单片微机控制系统,如洗衣机、电冰箱、空调机、微波炉、电饭堡、电视机、录像机及其它视频音像设备的控制器。
2.办公自动化领域
比如一台PC机可能嵌入了10个单片微机,如控制键盘、鼠标、显示器、CD-ROM、声卡、打印机、软/硬盘驱动器、调制解调器等。
现代办公室中所使用的大量通信、信息产品,如绘图仪、复印机、电话、传真机等,多数都采用了单片微机。
3.工业自动化领域的在线应用
如工业过程控制、过程监测、工业控制器及机电一体化控制系统等,许多都是以单片微机为核心的单机或多机网络系统。
如工业机器人的控制系统是由中央控制器、感觉系统、行走系统、擒拿系统等节点构成的多机网络系统。
而其中每一个小系统都是由单片微机进行控制的。
4.智能仪器仪表与集成智能传感器领域
应用单片微机来对传统的仪器仪表行业的产品进行“更新换代”,提供了非常理想的的条件。
目前各种变送器、电气测量仪表普遍采用单片微机应用系统替代传统的测量系统,使测量系统具有各种智能化功能,如存储、数据处理、查找、判断、联网和语音功能等。
5.汽车电子与航空航天电子系统
通常在这些电子系统中的集中显示系统、动力监测控制系统、自动驾驭系统、通信系统以及运行监视器(黑匣子)等,都要构成冗余的网络系统。
比如一台RMW-7系列宝马轿车就用了63个单片微机,大部分还是16位单片微机。
单片微机的应用正从根本上改变着传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分控制功能,现在已能使用单片微机通过软件方法实现了。
这种以软件取代硬件,并能提高系统性能的控制技术,称之为微控制技术。
这标志着一种全新概念的建立。
1.2现在世界上单片机的发展水平
现在可以说单片机是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。
纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:
1.低功耗CMOS化
MCS-51系列的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。
象80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。
CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。
所以这种工艺将是今后一段时期单片机发展的主要途径。
2.微型单片化
现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。
甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。
此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。
现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。
3.主流与多品种共存
现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的Winbond系列单片机。
所以C8051为核心的单片机占据了半壁江山。
而Microchip公司的PIC精简指令集(RISC)也有着强劲的发展势头,中国台湾的HOLTEK公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额。
此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。
在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。
2电源模块的设计
该模块使用的是5V,1A的直流电源。
系统有两个可以作为供电电源:
一方面是通过usb连接,另一种是3脚稳压电源。
当调试程序的时候,可以直接通过usb给本模块供电,只需要简单的双向usb连接线与一条usb转串口线就可以把程序下载到开发板上运行了,三角稳压电源是采用了市场上常见的5V,1A直插式电源,不必为找不到合适的适配电源而烦恼
3红外传感数据采集模块的设计
红外传感器模块的检测原理是:
感应模块采用双元探头,探头的窗口为长方形,双元(A元B元)位于较长方向的两端,当人体从左到右或从右到左走过时,红外光谱到达双元的时间、距离有差值,差值越大,感应越灵敏,当人体从正面走向探头或从上到下或从下到上方向走过时,双元检测不到红外光谱距离的变化,无差值,因此感应不灵敏或不工作;所以安装感应器时应使探头双元的方向与人体活动最多的方向尽量相平行,保证人体经过时先后被探头双元所感应。
为了增加感应角度范围,本模块采用圆形透镜,也使得探头四面都感应,但左右两侧仍然比上下两个方向感应范围大、灵敏度强。
因此,安装的时候,尽量使人走动的方向与双元的方向相平行。
电路图:
4实时时钟模块的设计
时钟模块主要是用于对时、分、秒、年、月、日和星期的计时。
该模块采用的芯片为ds1302时钟芯片。
此芯片集成度高,其外围的电路设计非常的简单,且其性能非常好,计时的准确性高。
数据保存效率高,在自然状态下可以精确运行10年以上。
ds1302为3脚引线分别与单片机上不同的io口进行连接。
其具体与单片机的连接如下所述:
sclk数据线与单片机的IO口相连接,用于同步串口的数据移动,io脚为三个引脚中的双向数据通信引脚,rst为数据复位线,可以把始终恢复到用户预设的初始状态。
5单片机模块的设计
本系统采用两片单片机,两个单片机之间采用串行通讯,用于两者之间的数据交换。
其工作时序是由外部晶振电路提供的,本系统采用的晶振频率是12兆HZ。
其复位电路为自动上电复位。
设计中所采用的单片机为stc89c52。
单片机在系统中主要是用来对其他模块进行控制,是整个系统的核心部件。
主单片机主要是用于对速度信号采集模块、时钟模块和存储模块进行控制,同时还要与从单片机进行数据的交换。
其外围的I/O口主要与这些模块的中心芯片的数据总线或地址总线相连,其控制总线与这些模块的控制线相连。
从单片机主要是用于对显示和校时的控制,因此其I/O口主要与LCD显示器的I/O口相连,其控制线与LCD显示器的控制线相连。
6储存模块的设计
AT24C02支持I2C,总线数据传送协议I2C,总线协议规定任何将数据传送到总线的器件作为发送器。
任何从总线接收数据的器件为接收器。
数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。
主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上。
我们通过at24c02保存初始密码,当我们要修改密码时,通过矩阵按键输入相应的数值,把数值写入到24c02存储模块中,当我们下次输入通行密码时,就把输入的数值与存储模块中的数值做对比。
at24c02的最大特性是掉电储存,所以,根本不用耗费不必要的能源。
原理图:
实物图:
7显示模块的设计
显示器主要是为人机交互提供即时的信息,能让人们与机器进行很好的交流。
在众多种类的显示器中,越来越多的仪器仪表及人机交互界面采用液晶显示器。
LCD可分为段位式LCD、字符式LCD和点阵式LCD。
由于我们只是显示日期、时钟、温度以及气体泄漏提示和密码输入提示。
所以我们采用的是成本最为低廉的1602lcd模块就可以实现以上的所有功能了,1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字),我们初始化状态下lcd显示的是当前的时钟与当前环境下的温度。
当红外传感器触发的时候,屏幕上提示用户输入密码。
原理图:
实物图:
8键的设计
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)
原理图:
图1
实物图:
9温度采集模块(ds18b20)
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等,外表类似我们常见的三极管。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
其独特的单线通信模式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
10系统运行流程图
11,部分源代码:
voidmain()
{
unsignedinttemp;
uchari,j,k=0,z,lock_flag=1;
ucharkeynum=-1;
ucharValid_user=0;
ucharSave_right=0,change=0;
uinty=0;
//P0=P2=P3=0xff;
init();
relay=0;
beep=0;
Init_DS1302();//将1302初始化
while
(1)
{
read_date();
key_scan();
/////////温度/////////
temp=read_temperature();//temp是uint,不然会出现温度到25后回00的现象。
ds18b20_data[0]=temp/100+0x30;
ds18b20_data[1]=temp/10%10+0x30;
if(!
(ds18b20_data[0]>='0'&&ds18b20_data[0]<='9'))
continue;
if(!
(ds18b20_data[1]>='0'&&ds18b20_data[1]<='9'))
continue;
Dis_String(&ds18b20_data[0],0x4c);
Dis_String("'C",0x4e);
if(hc==0)
{
LCD_Initialize();
Dis_String(LCD_title,0x00);
while(hc==0)
{
if(lock_flag==1)
{
P3=0xf0;
if(P3!
=0xf0)
{
DelayMs(10);
if(P3!
=0xf0)
keynum=Key_Pos[Keyscan()];
if(i<16)
{
switch(keynum)
{
case0:
case1:
case2:
case3:
case4:
case5:
case6:
case7:
case8:
case9:
if(i==0)Dis_String("",0x40);
//if(change==0)
//{
if(k==0)
{
userpassword[i]=keynum+'0';
userpassword[i+1]='\0';
}
else
{
user_buf[i]=keynum+'0';
user_buf[i+1]='\0';
}
//}
/*else
{
Password[i]=keynum+'0';
Password[i+1]='\0';
}*/
dis_buf[i]='*';
dis_buf[i+1]='';
dis_buf[i+2]='';
dis_buf[i+3]='';
dis_buf[i+4]='';
dis_buf[i+5]='';
dis_buf[i+6]='';
dis_buf[i+7]='';
dis_buf[i+8]='';
dis_buf[i+9]='';
dis_buf[i+10]='';
Dis_String(dis_buf,0x40);
i++;
break;
case10:
i--;//定义清除键
userpassword[i]='\0';
dis_buf[i]='';
Dis_String(dis_buf,0x40);
break;
case11:
if(change==0)//定义确认键
{
if(strcmp(userpassword,Password)==0)
{
Green_Led=0;//密码正确,绿灯亮
Red_Led=1;
Clear_password();
Dis_String("TheRightCode!
",0x00);
Dis_String("UnlockOK!
",0x40);
Valid_user=1;
}
else
{
Green_Led=1;//密码错误,红灯亮
Red_Led=0;
Clear_password();
Dis_String("ERROR!
",0x40);
DelayMs(300);
Dis_String("",0x40);
Valid_user=0;
y++;
if(y==3)//3次错误,蜂鸣器响,锁死系统
{
beep=1;
Dis_String("3ERRORS!
!
",0x00);
Dis_String("LOCKTHESYSTEM!
!
",0x40);
lock_flag=0;
DelayMs(300);
}
}
}
else
{
if(k==1)
{
Dis_String("InputAgain!
",0x00);
Dis_String("",0x40);
k=0;
}
else
{
if(strcmp(userpassword,user_buf)==0)
{
change=0;
for(j=0;j<16;j++)
Password[j]='\0';
for(z=0;z
Password[z]=userpassword[z];
Dis_String("PasswordSave!
",0x40);
DelayMs(200);
Dis_String("OK!
",0x00);
Dis_String("",0x40);
DelayMs(200);
Dis_String(LCD_title,0x00);
}
else
{
Dis_String("NotAgreeable!
",0x40);
DelayMs(200);
Dis_String("NewPassword:
",0x00);
Dis_String("",0x40);
Clear_password();
k=1;
}
}
}
i=0;
break;
case12:
//定义清屏功能
Green_Led=1;
Red_Led=1;
Clear_password();
Dis_String(LCD_title,0x00);
Dis_String("",0x40);
i=0;
change=0;
Valid_user=0;
break;
case13:
//定义改密码功能,在已经开锁情况下才可以使用
//Dis_String(0,"INPUTOLDCODE:
");
if(!
Valid_user)
{
Dis_String("NotRights!
",0x40);
}
else
{
i=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 stc89c52 系统