单片机 实现报警检测_第1页
单片机 实现报警检测_第2页
单片机 实现报警检测_第3页
单片机 实现报警检测_第4页
单片机 实现报警检测_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、1 51系列单片机简介及题目分析1.1 51系列单片机简介1.1.1 时钟电路 8XX51单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。 在引脚XTAL1和XTAL2外接晶体振荡器或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器,并产生振荡时钟脉冲。晶振通常选用6MHZ、12MHZ或24MHZ。内部振荡方式如图1-1所示。图中,电容器C1、C2起稳定振荡频率、快速起振的作用。电容值一般为5-30pF。内部振荡方式所得到的时钟信号比较稳定,实用电路中使用较多。图1-1 内部震荡方式 外部振荡方式是把已有的时钟信号引入

2、单片机内。这种方式适宜用来使单片机的时钟与外部信号保持一致。外部振荡方式如图1-2所示。图1-2 外部振荡方式1.1.2 单片机的时序单位 振荡周期:晶振的振荡周期,又称时钟周期,为最小的时序单位。 状态周期:振荡频率经过单片机内的二分频器分频后提供给片内CPU的时钟周期。因此,一个状态周期包含2个振荡周期。 机器周期:1个机器周期由6个状态周期即12个振荡周期组成,是计算机执行一种基本操作的时间单位。指令周期:执行一条指令所需的时间,一个指令周期由1-4个机器周期组成,依据指令不同而不同。以上4种时序单位中,振荡周期和机器周期是单片机内计算其他时间(如波特率、定时器的定时时间等)的基本时序单

3、位。1.1.3 复位电路 复位操作完成单片机内电路的初始化,使单片机从一种确定的状态开始运行。 当8XX51单片机的复位引脚RST出现5ms以上的高电平时,单片机就完成了复位操作。如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序。因此要求单片机复位后能脱离复位状态。 根据应用的要求,复位操作通常有两种基本形式:上电复位、开关复位。上电复位要求接通电源后,自动实现复位操作。开关复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。常用的上电且开关复位电路如图1-3所示。上电后,由于电容充电,使RST持续一段时间高电平。当单片机已经在运行之中时,按

4、下复位键也能使RST持续一段时间高电平,从而实现上电且开关复位的操作。通常选择C=10-30uF,R=10k。如果上述电路复位不仅要使单片机复位,而且还要使单片机的一些外围芯片也同时复位,那么上述电阻电容参考值应适当调整少许。图1-3 复位电路1.2 题目分析及中断原理和引用 再分析题目,第一个小题中,两个不同频率的驱动信号可分别由两个16位的定时器产生,驱动的外围电路可以是蜂鸣器,扬声器等发音器件;第二个小题中,可由外部中断引脚接一个开关,从而产生外部中断。 80C51 单片机中涉及中断控制的有 3 个方面 4 个特殊功能寄存器: 中断请求:定时和外中断控制寄存器 TCON; 串行控制寄存器

5、 SCON; 中断允许控制寄存器 IE; 中断优先级控制寄存器 IP 。 80C51 外部中断源有2种触 方式,即电平触发和脉冲触发。当外部中断源为电平触发时, 低电平有效。CPU采样到引脚为低电平时,就认为是外中断0 的一个有效的中断请求信号。当外部中断源以脉冲方式触时,负脉冲有效。CPU在一个机器周期采样到引脚为高电平,在接下来的一个机器周期采样到引脚是低电平,即出现了下降沿的跳变时,就认为是外中断0的一个有效的中断请求信号。因为2次检测的间隔时间都至少维持一个机器周期,从而保证CPU能够检测到电平的跳变。 对外部中断的控制主要有:1 ) 外部中断的开放或禁止;2 ) 触发电平方式;3 )

6、 优先级别的选择。这些控制机构分别位于IE、TCON和IP等3个专用寄存器中。 合理编写程序是实现对中断控制的最基本方法,外部中断标志的编程方式有中断方式和查询方式。 中断方式是指CPU在接收到外部中断请求时,暂时停止主程序的执行,转去处理相关的服务程序,之后再返回继续运行原程序。中断方式下的编程一般有如下步骤:1 ) 开中断;2 ) 设置中断优先级;3 ) 中断源的相关控制 ;4 ) 编写中断服务程序。 查询方式就是CPU主动地监测中断源的状态并做出相应反应。其编程步骤如下:1 ) 关中断;2 ) 中断源的相关设置 ;3 ) 关中断查询及相关处理 。 2种方式的特点是:在中断方式下,CPU除

7、了响应中断之外的时间都用于执行主程序,中断源与CPU实现了并行工作。而在查询方式下,除初始化工作外,CPU完全用于处理中断标志的查询及中断标志有效后的处理,中断一直占用着CPU的时间,并没有处于并行工作状态。2 系统电路图设计和仿真2.1 系统电路图 系统电路图如图2-1所示图2-1 系统电路 图中,核心芯片是proteus提供的89C51,在其基础上搭好最小系统,包括晶振电路,复位系统。对于第一个小题,整个系统是这样的:由P1.0引脚来控制扬声器的发声,而P1.0又要受到SW1开关的控制,即当开关合上时,P1.7会产生一个低电平信号,然后使得P1.0开始产生两种不同频率的方波来驱动扬声器,从

8、而发出报警信号;当SW1断开时,将定时器关闭,同时给P1.0一个低电平,报警声随即消失。对于第二个小题,只需通过P3.2引脚接入一个开关,然后设置为低电平下降沿触发,通过P3.2的信号来控制P1.0的输出,从而发出报警信号。2.2 系统仿真 在P1.0处接入示波器,第一个题目,合上开关SW1,在报警的同时,观测P1.0输出信号的波形,如图3-2所示图2-2 仿真结果1 从仿真结果可以看出来,P1.0处的输出是由两种不同频率的方波构成的,一个是500HZ,一个是1KHZ,从而使得扬声器发出交替音调报警声音。第二个题目,合上开关SW2,在报警的同时,观测P1.0输出信号的波形,如图3-3所示图2-

9、3 仿真结果2 由结果可以看到,输出的是1KHZ的方波,扬声器发出持续的一个音调的报警。3 相关程序及分析3.1 题目一汇编程序ORG 0000HCLR ABEG:SETB P1.7 JB P1.7,$MOV R2,#200DV:CPL P1.0 CJNE A,#0FFH,N1 ACALL D500N1:ACALL D500 DJNZ R2,DV CPL A SJMP BEGD500:MOV R7,#250 DJNZ R7,$ RET END3.2 题目一C程序#include sbit fb=P10;sbit sw=P17;#define uint unsigned int;uint i,w

10、;void T0_irq(void) interrupt 1 using 1TH0 =(65035/256); /定时0.5MS,即频率1KHZTL0 =(65035%256); fb=fb; void T1_irq(void) interrupt 3 using 3TH1 =(64535)/256; /定时1MS,即频率500HZTL1 =(64535)%256; fb=fb;void delay(unsigned int w)/延时1MS uint i; while (w-) for(i=0;i125;i+);void main()TMOD = 0x01;TH0 =(65035/256);

11、 /定时0.5MS,即频率1KHZTL0 =(65035%256);TH1 =(64535-50000)/256; /定时1MS,即频率500HZTL1 =(64535-50000)%256;EA = 1;ET0 = 1;ET1=1;while(sw=0)TR0=1;delay(100);TR0=0;TR1=1;delay(200);TR1=0;while(sw=1)TR0=0;TR1=0;fb=1; 此程序主要用51的两个定时器,其中,T0用来产生频率为1KHZ的信号,T1用来产生频率为500HZ的信号。定时器装初值的方法为:以时钟频率为12M为例,那么一个机器周期大约为1us,对于16位的

12、定时器,若从0开始计数,则计65535us时,会溢出产生中断。所以假如要定时50ms,就应该装入初值为(65535-50000),从而使计数器计数50000us溢出,即为50ms。3.3 题目二C程序#include #include #define uint unsigned int;sbit fb=P10;sbit cx=P32;uint flag,i,w;void delay(unsigned int w)/延时1MS uint i=0; while (w-) for(i=0;i125;i+);void T0_irq(void) interrupt 1 using 1TH0 =(6503

13、5/256); /定时0.5MS,即频率1KHZTL0 =(65035%256); fb=fb;void counter0(void) interrupt 0 EX0=0; delay(5); EX0=1; TMOD = 0x01;TH0 =(65035/256); /定时0.5S,即频率TL0 =(65035%256);ET0 = 1;TR0=1;flag=1;void main() IT0=1; /下降沿触发 EX0=1;EA = 1;while(1)if(cx=1)fb=0;TR0=0; 此程序主要用到了外部中断0。在使用前应对外部中断的触发方式进行设定,有下降沿和低电平两种触发形式。然

14、后打开总中断,打开外部中断即可。设计程序需要注意的地方是:类似于键盘的消抖,外部中断的产生与撤销也要进行延时消抖,体现在中断函数里的delay。4 心得体会本次课程设计用Protues软件仿真及keil软件来实现报警信号的检测与告警提示。通过这次设计,掌握了简单报警器的工作原理及工作过程,学会了使用keil软件来在单片机中加载入程序,并学会通过keil软件来检验汇编程序的正确性,对以后的学习和工作都起到了一定的作用,加强了动手能力和学业技能。在实习的过程中检验了以前学的通信系统的知识掌握度,使我更加熟悉了汇编语言的编写。设计是我们将来必需的技能,这次设计恰恰给我们提供了一个应用自己所学知识的机会,在摸索该如何设计电路使之实现所需功能的过程中,特别有趣,培养了我的设计

温馨提示

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

评论

0/150

提交评论