单片机脉冲信号测量Word文档格式.docx

上传人:b****4 文档编号:6928428 上传时间:2023-05-07 格式:DOCX 页数:23 大小:214.31KB
下载 相关 举报
单片机脉冲信号测量Word文档格式.docx_第1页
第1页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第2页
第2页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第3页
第3页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第4页
第4页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第5页
第5页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第6页
第6页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第7页
第7页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第8页
第8页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第9页
第9页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第10页
第10页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第11页
第11页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第12页
第12页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第13页
第13页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第14页
第14页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第15页
第15页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第16页
第16页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第17页
第17页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第18页
第18页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第19页
第19页 / 共23页
单片机脉冲信号测量Word文档格式.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机脉冲信号测量Word文档格式.docx

《单片机脉冲信号测量Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机脉冲信号测量Word文档格式.docx(23页珍藏版)》请在冰点文库上搜索。

单片机脉冲信号测量Word文档格式.docx

五、参考文献…………………………………………………15

六、附录……………………………………………………16

6.1脉冲信号宽度测量设计程序……………………16

6.2脉冲信号频率测量设计程序……………………18

1、引言

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:

中央处理器、存储器和I/O接口电路等。

因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

由于单片机稳定可靠、物美价廉、功耗低,所以单片机的应用日益广泛深入,涉及到各行各业,如工业自动化、智能仪表与集成智能传感器、家用电器等领域。

单片机应用的意义绝不仅限于它的广阔范围以及带来的经济效益,更重要的意义在于,单片机的应用正从根本上改变着传统的控制系统的设计思想和设计方法。

从前必须由模拟电路或数字电路实现的大部分控制功能,现在使用单片机通过软件就能实现了。

随着单片机应用的推广普及,单片机控制技术将不断发展,日益完善。

因此,本课程设计旨在巩固所学的关于单片机的软件及硬件方面的知识,激发广大学生对单片机的兴趣,提高学生的创造能力,动手能力和将所学知识运用于实践的能力。

中断功能是一种应用比较广泛的功能,它指的是当CPU正在处理某件事情的时候,外部发生了某一件事(如一个电平的变化,一个脉冲沿的发生或定时器计数溢出等)请求CPU迅速去处理,于是,CPU暂时终止当前的工作,转去处理所发生的事件。

中断服务处理完该事件以后,再回到原来被中止的地方继续原来的工作,这样的过程称为中断。

本文中用到了定时器T0溢出中断,以实现软件延时。

脉冲信号测量仪是一种常用的设备,它可以测量脉冲信号的脉冲宽度,脉冲频率等参数。

2、设计方案及原理

系统框图

图中给出了整个系统设计的系统框图,系统主要由三个主要部分组成,单片机和晶振电路设计,显示电路设计,复位电路设计。

3、硬件设计任务

AT89C51基本工作电路设计:

使单片机正常工作;

时钟电路:

为单片机提供时钟信号;

复位电路:

为单片机提供高电平复位信号;

显示电路:

显示当前测量脉冲宽度;

按键电路:

开始测量脉冲信号;

3.1基于AT89C51脉冲信号测量系统硬件设计详细分析

3.1.1AT89C51单片机工作电路

本设计的核心是单片机电路,考虑到需要一个中断输入,存储容量、外部接口对单片机端口的需要以及兼顾到节约成本的原则,选用了常用的AT89C51单片机。

AT89C51是低功耗、高性能、经济的8位CMOS微处理器,工作频率为0—24MHz,内置4K字节可编程只读闪存,128x8位的内部RAM,16位可编程I/O总线。

它采用Atmel公司的非易储器制造技术,与MCS51的指令设置和芯片引脚可兼容。

AT89C51可以按照常规方法进行编程,也可以在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

AT89C51工作的最简单的电路是其外围接一个晶振和一个复位电路,给单片机接上电源和地,单片机就可以工作了。

其最简单的工作原理图如下图。

AT89C51单片机工作电路

3.1.2基于AT89C51脉冲信号测量系统复位电路

MCS-51的复位是由外部的复位电路来实现的。

MCS-51单片机片内复位,复位引脚RST通过一个斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。

复位电路通常采用上电自动复位和按钮复位两种方式。

上电自动复位是通过外部复位电路的电容充电来实现的。

只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。

除了上电复位外,有时还需要按键手动复位。

按键手动复位有电平方式和脉冲方式两种。

其中电平复位是通过RST端经电阻与电源Vcc接通而实现的。

按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。

上电复位电路

上图兼有上电复位和按钮复位的电路。

在单片机设计中,若有外部扩展的I/O接口电路需初始复位,如果它们的复位端和MCS-51单片机的复位端相连,复位电路中的R、C参数要受到影响,这时复位电路中的R、C参数要统一考虑以保证可靠的复位。

如果单片机MCS-51单片机与外围I/O接口电路的复位电路和复位时间不完全一致,使单片机初始化程序不能正常运行,外围I/O接口电路的复位也可以不和MCS-51单片机复位端相连,仅采用独立的上电复位电路。

一般来说,单片机的复位速度比外围I/O快些。

若RC上电复位电路接MCS-51单片机和外围电路复位端,则能使系统可靠地同步复位。

为保证系统可靠复位,在初始化程序中应用到一定的复位延迟时间。

复位电路软件程序跑飞或者硬件发生错误的时候产生一个复位信号,控制MCS-51单片机从0000H单元开始执行程序,重新执行软件程序。

此电路的输出

端RESET接在单片机的复位引脚。

3.1.3基于AT89C51脉冲信号测量系统时钟电路

时钟在单片机中非常重要,单片机各功能部件的运行都是以时钟频率为基准。

时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。

常用的时钟电路有两种方式,一种是内部时钟方式,另一种为外部时钟方式。

内部时钟方式:

内部时钟方式电路图如下图所示。

内部时钟电路

MCS-51单片机内部有一个用与构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。

这两个引脚接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器电路。

电路中的电容C1和C2典型值通常选择为33PF左右。

对外接电容的值虽然没有严格的要求,但是电容的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。

晶体的振荡频率的范围通常是在1.2MHz—12MHz之间。

晶体的频率越高,则系统的时钟频率也就越高,单片机的运行速度也就越快。

为了提高温度稳定性,应采用温度稳定性能好的NPO高频电容。

MCS-51单片机常选择振荡频率12MHz的石英晶体。

外部时钟方式:

外部时钟方式电路图如下图所示。

外部时钟电路

外部时钟方式是使用外部振荡脉冲信号,常用于多片MCS-51单片机同时工作,以便于同步。

对外部脉冲信号只要求高电平的持续时间大于20us,一般为低于12MHz的方波。

外部的时钟源直接接到XTAL2端,直接输入到片内的时钟发生器上。

由于XTAL2的逻辑电平不是TTL的,因此要外接一个4.7k~10k的上拉电阻。

这次的设计采用MCS-51的内部时钟方式。

因为外部时钟方式是用外部振荡脉冲信号,用于多片MCS-51单片机同时工作。

在这次设计中只用一个MCS-51单片机,不需要振荡脉冲信号。

3.1.4基于AT89C51脉冲信号测量系统按键电路

按键是实现人机对话的比较直观的接口,可以通过按键实现人们想让单片机做的不同的工作。

键盘是一组按键的集合,键是一种常开型开关,平时按键的两个触点处于断开状态,按下键是它们闭合。

键盘分编码键盘和非编码键盘,案件的识别由专用的硬件译码实现,并能产生键编号或键值的称为编码键盘,而缺少这种键盘编码电路要靠自编软件识别的称为非编码键盘。

在单片机组成的电路系统及智能化仪器中,用的更多的是非编码键盘。

下图就是一种比较典型的按键电路,在按键没有按下的时候,输出的是高电平,当按键按下去的时候,输出的低电平。

按键电路

3.1.5基于AT89C51脉冲信号测量系统显示电路

本设计采用6位LED数码管动态显示测量值。

动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为动态扫描。

各位数码管的段选线相应并联在一起,由P0端口送字形代码,各位LED显示器的位选线(COM端)由P1端口控制。

图中,数码管采用共阴极LED,P1端口输出经过6路反相驱动器75452后接至数码管的COM端。

当位选控制口P1的某位输出:

“1”时,75452反相器驱动相应的LED位发光。

LED显示电路

显示缓冲区DISBUF是片内RAM的一个区域,占用片内RAM的70H~75H单元,它的作用是存放要显示的字符,其长度与LED的位数相同。

显示程序的任务是吧显示缓冲区中待显示的字符送往LED显示器显示。

在进行动态扫描显示时,从DISBUF中依次取出待显示的字符,采用查表的方法得到去对应的字形代码,逐个点亮各位数码管每位显示1ms左右,即可是各位数码管显示要显示的字符。

下图给出了动态扫描显示子程序DISPLAY的流程图。

显示子程序DISPLAY的流程图

主程序首先设置定时器T0为方式1,门控信号GATE=1,在被测脉冲信号INT0的上升启动T0计数码,被测脉冲信号下降沿停止T0计数,脉宽测量过程见下图。

定时器T0以方式1对内部脉冲计数,16位计数值存放在40H(高字节)和41H单元(低字节),调用WDISBUF子程序将该16位计数值换成6位非压缩型BCD码放入显示缓冲区DISBUF中。

主程序流程图如下。

脉宽测量过程图

主程序流程图

系统原理图

4、收获与致谢

机电一体化是我们主要的专业课程之一,通过这次学习,我把平时学习的那些理论知识应用到这次的实践之中,锻炼了我的实践能力。

在不懈的努力下,我顺利并按时地完成《基于单片机的脉冲信号测试仪设计》这个课程设计。

设计过程中,与老师的短暂交流让我毕生受益匪浅,老师丰富的专业知识、以及严谨细致、一丝不苟的作风,将成为我日后生活中的典范,学习中的榜样,在此谨对老师致以衷心的感谢!

在设计过程中,我将基础理论知识融于实践认真完成每个环节、这不仅很好地巩固了我的理论知识而且也锻炼了我的动手能力。

同时也提高了我独立思考问题能力。

本次设计从选题、编程设计到完成整个过程都倾注了老师的心血,我向老师表示衷心的感谢和诚挚的敬意!

5、参考文献

[1]李华,单片机原理及应用,兰州大学出版社,2001

[2]兰吉昌,51单片机应用设计百例,化学工业出版社,2008

[3]冯育长,单片机系统设计与实例分析,西安电子科技大学出版社,2007

[4]李学礼,基于Proteuse的8051单片机实例教程,电子工业出版社,2008

[5]魏立峰,王宝兴,单片机原理与应用技术,北京大学出版社,2006

6、附录

6.1脉冲信号宽度测量设计程序

ORG0000H

LJMPSTART

ORG0040H

COUNTEQU40H;

COUNT,COUNT+1单元存放测量值

START:

MOVSP,#40H

;

主程序

MOVTMOD,#00001001B;

T0方式1,GATE=1

AGAIN:

MOVTH0,#00H;

计数初值=0000H

MOVTL0,#00H

WAIT0:

JBP3.2,WAIT0;

INT0输入为高则开始等待

SETBTR0;

INT0为低时启动T0

WAIT1:

JNBP3.2,WAIT1;

INT0输入为高则开始计数

WAIT2:

JBP3.2,WAIT2;

等待INT0下降沿

CLRTR0;

下降沿后停止T0计数

MOVA,TH0;

取计数值高字节

MOVCOUNT,A

MOVA,TL0;

取计数值低字节

MOVCOUNT+1,A

LCALLWDISBUF;

写DISBUF

LCALLDISPLAY;

显示测量值

LCALLDISPLAY

LJMPAGAIN

;

写DISBUF子程序、

子程序名称:

WDISBUF

子程序功能:

将一个双字节二进制数转换成6位非压缩型BCD码,写入显示缓冲区DISBUF中。

入口参数:

内部RAM的40H(高字节)和41H(低字节)单元中是待转换的数据

出口参数:

转换结果放入DISBUF内部RAM70H~75H单元中,70H单元中为最低位。

HEXEQU40H

DISBUFEQU70H

WDISBUF:

CLRA;

压缩BCD码初始化

MOVR3,A;

R3R4R5暂存压缩BCD码

MOVR4,A

MOVR5,A

MOVR2,#16

HB1:

MOVR6,HEX;

数据高字节暂存于R6中

MOVR7,HEX+1;

数据低字节暂存于R7中

HB2:

MOVA,R7;

从高端移出待转换的一位到CY中

RLCA

MOVR7,A

MOVA,R6

MOVR6,A

MOVA,R5;

BCD码带进位自身相加,相当于乘2

ADDCA,R5

DAA;

十进制调整

MOVA,R4

ADDCA,R4

DAA

MOVR4,A

MOVA,R3

ADDCA,R3

双字节十六进制数的万位数不超过6,不用调整

DJNZR2,HB1;

处理完十六位

MOVR0,DISBUF+5;

转换成分离BCD码存于70H~75H单元中

MOVA,#00H

MOV@R0,A

MOVA,R3:

R3不超过6,不用转换

DECR0

MOV@R0,A

MOVA,R4

SWAPA

ANLA,#0FH

SWAPA

ANLA,#0FH

MOVA,R4

MOVA,R5

RET

动态扫描显示子程序

子程序名:

DISPLAY

子程序功能:

从DISBUF中依次取出待显示的字符,逐个点亮各位数码管

入口参数:

DISBUF(内部RAM70H~75H单元中,70H单元中伟最低位)中是待显示的字符

DISPLAY:

MOVR0,#70H;

R0指向DISBUF首地址

MOVR3,#01H;

右起第一个LED的选择字

NEXT:

MOVA,#00H;

取位选控制字为全灭

MOVP1,A;

瞬时关显示器

MOVA,@R0;

从DISBUF中取出字符

MOVDPTR,#DSEG;

取段码表首地址

MOVCA,@A+DPTR;

查表,取对应的字形码

MOVP0,A;

输出字形码

MOVA,R3;

取当前位选控制字

点亮当前LED显示位

LCALLDELAY;

DELAY延时1ms

INCR0;

R0N指向下一个字符

JBACC.5,EXIT;

诺当前显示位是第六位则结束

RLA;

下一个LED的选择字

MOVR3,A

SJMPNEXT

EXIT:

RET;

返回

段码表0~9,A~F,空白,P

DSEG:

  DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH

DB6FH,77H,7CH,39H,5EH,79H,71H,00H,73H

DELAY:

MOVR7,#02H;

延时1ms的子程序

DEL1:

MOVR6,#0FFH

DEL2:

DJNZR6,DEL2

DJNZR7,DEL1

6.2脉冲信号频率测量设计程序

频率测量实际上就是在1s内对脉冲个数进行计数,计数值就是信号频率。

利用已有的电路可以实现脉冲信号的频率测量。

令定时器T0工作在方式1,得到50ms的定时间隔,在进行软件计数20次,形成一个1s的测量闸门信号,在测量闸门信号期间响应INT0中断,对脉冲信号加1计数来完成对输入信号的频率计数,计数值存入COUNT和COUNT+1单元,计数值通过6位动态数码管显示出来。

程序如下:

频率计程序清单

ORG0000H

LJMPSTART

ORG0003H

LJMPPINT0;

INT0中断入口

ORG000BH;

T0中断入口

LJMPT0INT

ORG0040H

定义计数单元

COUNT,COUNT+1对脉冲个数计数,高位在前

COUNT+2为秒计数单元

START;

MOVSP,#40H;

主程序

AGAIN;

MOVCOUNT,#00H;

计数单元清0

MOVCOUNT+1,#00H

MOVCOUNT+2,#00H

MOVTMOD,#01H;

初始化T0

MOVTH0,#3CH;

计数初值,50ms的定时间隔

MOVTL0,#0B0H

启动T0

SETBET0;

允许T0中断

SETBEX0

SETBIT0;

INT0为负沿触发方式

SETBEA

WAIT:

JNBF0,WAIT;

不到1s则等待

将双字节计数值转换成6位非压缩型BCD码

LCALLDISPLAY

写WDISBUF子程序

DISPLAY显示子程序

定时器T0中断服务程序

T01NT:

PUSHA

MOVTH0,#3CH;

再次启动计数器

MOVTL0,#0B0H

INCCOUNT+2;

秒计数单元加1

MOVA,COUNT+2

CLRC

SUBBA,#20

JCEXIT

SETBF0;

闸门时间到

CLREA;

关中断

POPA

RETI

INT0中断服务程序

PINT0:

MOVA,COUNT+1

ADDA,#01H;

计数值+1

MOVA,COUNT

ADDCA,#00H;

高字节

MOVCOUNT,A

POPA

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2