片机课程设计安防声光报警器_第1页
片机课程设计安防声光报警器_第2页
片机课程设计安防声光报警器_第3页
片机课程设计安防声光报警器_第4页
片机课程设计安防声光报警器_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.目 录 第一章:序言 (3)第二章:设计任务书 (3)第三章:电路组成和工作原理 (3)第四章:程序设计 (7)第五章:Proteus仿真 (16)第六章:硬件制作及组装调试部分 (17)第七章:组装 及调试部分(18)第一章 序 言单片机课程设计是一门实践课程,要求学生具有制作调试单片机最小系统及外设的能力,能够掌握单片机内部资源的使用。单片机课程设计内容包括硬件设计、制作及软件编写、调试,学生在熟练掌握焊接技术的基础上,能熟练使用单片机软件开发环境Keil C51编程调试,并使用STC ISP调试工具采用串口下载方式联调制作的单片机最小系统。单片机课程设计题目包含基本部分及扩展部分,基本

2、部分即单片机最小系统部分,扩展部分是对单片机内部资源及外部IO口的功能扩展,使制作的单片机系统具有一定的功能。第二章 设计任务书一、设计题目:简易安防声光报警器二、设计任务及要求: 自制一个单片机最小系统,包括串口下载、复位电路,采用两路外部中断输入门禁和红外探测两路信号(采用两个小按键模拟),中断信号输入后能将报警信息在四位一体数码管上显示,并输出声光报警信号。 三、设计内容 1.芯片简介2.电路各部分的组成和工作原理。3.元器件的选取及其电路逻辑图和功能。4.电路各部分的调试方法。5.在整机电路的设计调试过程中,遇到什么问题,其原因及解决的办法。第三章 电路组成和工作原理一. MSC-51

3、芯片简介MCS-51单片机内部结构   8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。    8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:·中央处理器:    中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控

4、制输入输出功能等操作。.数据存储器(RAM)    8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图1·程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。·定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。·并行输入输出(I

5、/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。·全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。·中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。·时钟电路:8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Har

6、vard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。下图是MCS-51系列单片机的内部结构示意图2。二设计过程和有关说明:(1)警情探测:在该设计中,需采用两路外部中断输入门禁报警和红外报警,分别采用两个小按键模拟。其中一个按键模拟门禁报警,对应外部中断0;另一个按键模拟红外报警,对应外部中断1。(2)报警设计:正常状态下, 数码管不显示,当发生门禁报警时,系统发出声光报警信息并在数码管显示1;,当发生红外

7、报警时系统发出声光报警信息并在数码管显示2。只有由主人按下报警接触按钮或系统复位后,才能解除声光报警并将数码管的数字重置为0。三硬件电路设计:本系统是基于51系列单片机的简易安防声光报警系统,主要包括的硬件电路模块有:单片机最小系统、七段数码管显示模块、安防报警器(点触开关模拟)、声光报警。1.单片机最小系统简介单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。结构图如右图所示:各部分的功能介绍如下:复位电路:由电容串联电阻构成,由图并结合"电容电压不能突变"的性质,可以

8、知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位.晶振电路:典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作).其电路系统框图如下:STC89C51串口下载复位电路声光报警红外报警输入门禁报警输入解除报警4位七段数码管显示图1 系统原理框图特别说明:由于实验条件有限,本课程设计中所涉及到的报警器装置采用点触开关模拟,具体电路图如图2所示。

9、当有报警事件发生时,即开关被按下,报警器输出低电平,单片机由此产生一个中断事件,并对其作出相应的处理,图中C53是用于消除点触开关动作时产生的干扰,防止单片机发生误动作。报警器输出图2 报警器模拟电路整体的硬件电路图如图3所示。图3:硬件电路原理图第四章 程序设计基于STC89C51单片机的功能特点,并根据系统的要求编写出基于keil C51的程序,首先单片机上电复位,并进行初始化包括寄存器和数码管,当发生报警事件时,单片机驱动声光报警装置并且在数码管上显示相应的报警信息,退出中断时,单片机检测报警解除按钮,当报警解除按钮被按下时单片机关闭声光报警并清除数码管上的报警信息,具体的程序流程如图4

10、所示。上电复位EA=0数码管初始化INT0、INT1 均设为下降沿触发EA = 1P3.4 是否为0?检测P3.4解除报警信息是否终止图4 主程序流程图中断入口显示报警信息声光报警退出中断图5 中断函数流程图参考程序如下所示:#include <intrins.h>#define uchar unsigned char#define uint unsigned int/uchar code table_data=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;/uchar code table_select=0xfe,0

11、xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/uchar table_buffer=0,0;uchar count0,count1;sbit LEDREDCON=P00;sbit LEDGREENCON=P01;sbit spe=P20;sbit Kint0=P32;sbit Kint1=P33;sbit RS=P37;sbit RW=P36;sbit E=P35;uchar FRQ=0x00;void delay(uint ms) uchar i;while(ms-) for(i=0;i<120;i+);void check_busy() /判断LCD忙,要不停

12、的检测,所以需要有个大循环while(1)E=0; /当RS=0和RW=1时,可以读忙信号。delay(3);RS=0;delay(3);RW=1;delay(3);E=1;delay(3);if(P1&0x80)=0)break;E=0;void write_command(uchar tempdata)E=0; /当RS=0和RW=0时,可以写入指令或者显示地址。delay(3);RS=0;delay(3);RW=0;P1=tempdata;delay(3);E=1; /此处高电平是将数据锁存起来delay(3);E=0;check_busy();void init_1602()

13、/LCD1602的初始化子函数write_command(0x38);/写指令write_command(0x0c);/显示开和光标位置write_command(0x01);/显示清屏write_command(0x06);/显示光标移动设置void write_data(uint j) /向LCD1602液晶显示器写数据E=0; /当RS=1和RW=0时,可以写入数据。delay(3);RS=1;delay(3);RW=0;P1=j;delay(3);E=1; /此处高电平是将数据锁存起来delay(3);E=0;check_busy();void init() /初始化子函数TMOD =

14、 0x11;TH0 = 0x00;TL0 = 0xff;IT0 = 1;IT1 = 1;IE = 0x8f;/EA=1;ET1=1;EX1=0;ET0=1;EX0=1;IP = 0x05;TR0 = 0;TR1 = 0;void main()init();init_1602();while(1) FRQ+; delay(1); void external_int0() interrupt 0 TR1=!TR1;write_command(0x01);LEDGREENCON=1;if(LEDREDCON=1) LEDREDCON=0; else LEDREDCON=1; if(Kint0=0)w

15、hile(!Kint0);delay(5);LEDREDCON=0;write_data('0');spe=spe;void external_int1() interrupt 2write_command(0x01);LEDREDCON=1;if(LEDGREENCON=1)LEDGREENCON=0;else LEDGREENCON=1;if(Kint1=0)/低电平有效while(!Kint1);delay(5);LEDGREENCON=0;write_data('1');/显示数据void timer0() interrupt 1 TH0=0xfe;TL

16、0=FRQ;spe=spe;void timer1() interrupt 3 TH0=-5000/256;TL0=-5000%256;第五章 Proteus仿真Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机

17、系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本课程设计在做完方案设计和程序编辑后后就是利用Proteus进行硬件仿真,先把需要的元器件从元件

18、库里面调出来,再按照接线原理图把线连接好,检查线路准确无误后再把用KELL生成的HEX程序文件导入单片机里,一切就绪后开始进行联调,若仿真结果与设计的不同,则先找有无硬件设置错误,再检查程序,不断检查,直至仿真成功。仿真联调过程如下:1、Keil C51 v7.50 软件和 Proteus 7.0 SP 软件,分别进行安装。2、把Proteus 安装目录下 VDM51.dll ( C:ProgramFilesLabcenter ElectronicsProteus 6ProfessionalMODELS)文件复制到Keil 安装目录的 C51BIN 目录中。3、 编辑C51 里tools.in

19、i 文件,加入TDRV1=BINVDM51.DLL("PROTEUS VSM MONITOR 51 DRIVER")4、 Keil 里设置: project->options for project->debug tab5、 选中use Proteus VSM monitor 516、 载入Proteus 文件7、 KeilC与Proteus连接仿真调试 单击仿真运行开始按钮,我们能清楚地观察到每一个引脚的电频变化,红色代表高电频,蓝色代表低电频。在LED显示器上,循环显示1-4。8、若联调失败,则返回重新检查再进行调试。报警器硬件仿真图如下:第六章 硬件制作及

20、组装调试部分一、硬件制作在软件仿真成功交老师检查后,就可以去领取器件做硬件设计了。硬件制作所要求的就是细心,再就是经验。硬件制作过程如下:1、 领取元器件,检查元器件是否是自己所需要的;2、 规划,综合考虑各个器件的引脚及接电源和节点的情况,对接线路径进行规划,尽量避免线路的重叠,要求做的美观、使用;3、 焊接固定座槽,注意不要短路和段路;4、 连接各条线路,不要错漏,也不要重复,这里尤其要小心;5、 接线完毕进行检查,再把芯片装上去;6、 下载程序7、 接通电源,测试8、 测试成功则交老师检查,否则返回5重做。二、程序调试过程1、现对调试过程中出现的问题做如下说明:(1)硬件:这部分没有多大

21、的难题。主要是在最开始对最小系统的理解和参数的选择上面。单片机最小系统是指用最少的元件组成的单片机可以工作的系统。应该包括:单片机、晶振电路、复位电路等。由于之前没有这类概念,因此查了很多资料才开始有所理解,并开始动手焊接板子。而在参数的选择方面,有很多参数都是经典的参数,但我也要求自己认真去分析了一下为什么要这么选择。有些是因为单片机内部要求,有些是用于上拉电阻,还有些则要通过模电中的相关知识进行计算。对于这部分现在虽有所了解了,但面对一个很复杂的、完全需要自己搭建系统时,我想现在还远远不够。所以,尽管课程设计结束了,但对单片机的学习不能结束。(2)软件:软件的编程选用C来编程,容易理解和掌握。但是跟我们所学的汇编又有很多的差异。首先,我学习了KEIL_C51最基本的使用:从头文件到中断入口地址的编程,再到如何定义和使用单片机的资源,我学到了很多。比如最开始,我不知道在编程中P0.0口需写为P00口,以及大小写都要注意;另外,在数字的使用中不要写在最前面等等很多细节要注意。我想,如果以后编写更大的一个系统,碰到的问题将会更多,也能收获更多。(3)但是,在整个设计过程中我没有先使用仿真再进行实物的连接,这是一个不好的习惯,以后必须改掉,以免不必要的损失。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论