单片机脉冲周期的测量.docx

上传人:b****2 文档编号:512762 上传时间:2023-04-29 格式:DOCX 页数:15 大小:118.82KB
下载 相关 举报
单片机脉冲周期的测量.docx_第1页
第1页 / 共15页
单片机脉冲周期的测量.docx_第2页
第2页 / 共15页
单片机脉冲周期的测量.docx_第3页
第3页 / 共15页
单片机脉冲周期的测量.docx_第4页
第4页 / 共15页
单片机脉冲周期的测量.docx_第5页
第5页 / 共15页
单片机脉冲周期的测量.docx_第6页
第6页 / 共15页
单片机脉冲周期的测量.docx_第7页
第7页 / 共15页
单片机脉冲周期的测量.docx_第8页
第8页 / 共15页
单片机脉冲周期的测量.docx_第9页
第9页 / 共15页
单片机脉冲周期的测量.docx_第10页
第10页 / 共15页
单片机脉冲周期的测量.docx_第11页
第11页 / 共15页
单片机脉冲周期的测量.docx_第12页
第12页 / 共15页
单片机脉冲周期的测量.docx_第13页
第13页 / 共15页
单片机脉冲周期的测量.docx_第14页
第14页 / 共15页
单片机脉冲周期的测量.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机脉冲周期的测量.docx

《单片机脉冲周期的测量.docx》由会员分享,可在线阅读,更多相关《单片机脉冲周期的测量.docx(15页珍藏版)》请在冰点文库上搜索。

单片机脉冲周期的测量.docx

单片机脉冲周期的测量

 

 

JIANGSUTEACHERSUNIVERSITYOFTECHNOLOGY

单片机原理与应用课程设计

 

脉冲周期的测量

 

学院名称:

电气信息工程学院

专业:

单片机原理与应用

班级:

07测控

姓名:

学号:

指导教师:

 

2010年9月

第一章引言

近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。

而本文适应这一发展趋势,把51系列单片机应用于对脉冲周期的测量。

并通过LED显示器自动显示出来,这对于周期的测量带来了极大的方便。

本系统采用单片机AT89C51为中心器件来设计脉冲宽度测量器,系统实用性强、操作简单、扩展性强。

在现有的单片机仿真机系统上掌握相关软硬件设计与调试知识,根据所选择题目,焊接好硬件电路,正确进行元器件的测试与调试,并在计算机上编写汇编程序调试运行,并实现参考选题中要求的设计。

第二章方案选择及工作原理

2.1硬件技术指标

输入脉冲幅度:

0-5V

周期测量范围:

0.1-50ms

测量精度:

±1%

显示方式:

四位数字显示

2.2方案选择及工作原理

将T0设为定时器方式工作,并工作在门控方式,初值TH0、TL0设为零。

在该方式时,TH0、TL0对内部脉冲计数(内部脉冲周期1us)。

将脉冲信号从P3.2脚引入,外中断0开放并设为边沿触发方式。

每来一个待测脉冲,外部中断一次。

在外部中断0的中断服务程序中,读取TH0、TL0的值并存放在内存的周期单元中,该值即为周期(单位us)。

随后将TH0、TL0清零,一边下一周期的测量。

2.3系统实现功能

利用施密特触发器将由RC震荡器产生的信号变换成同周期的矩形脉冲,并从单片机的P3.2口输入,利用内部脉冲对外部信号进行计数。

计数值经过二—十转换后,判断高位是否为零,如果为零即显示低四位,如果不为零即显示高四位。

计数器测量该周期内单片机内部机器周期的个数,经过处理并通过LED直接显示出所加信号的周期。

第三章控制系统的硬件设计

3.1系统模块构成

 

信号源

7407

列驱动

4位数码管显示

 

89C51

单片机控制器

复位电路

 

3.2系统工作原理图

3.3管脚说明

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在编程时,P0口作为原码输入口,当进行校验时,P0输出原码,此时P0外部必须被拉高。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在编程和校验时接收高八位地址信号和控制信号。

P3口也可作为89C51的一些特殊功能口,在本次课程设计中用到的P3口P3.2/INT0(外部中断0)

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

第四章软件设计及程序

4.1软件设计流程

图4.1主程序流图图4.2外中断0服务程序流程图

4.2各子程序功能描述:

4.2.1定时器T0中断服务程序:

通过对方式寄存器TMOD和控制寄存器TCON的编程来选择T1的工作方式。

TMOD设为01H,表示计数器T0工作在方式1,16位定时器。

TCON的低四位为外部中断的触发方式控制位和外部中断请求标志,设为13H,门控位为1时,仅当TR0等于1且P3.2输入为下降沿时计数,TR0为0或P3.2输入低电平时都禁止计数,以此来判断输入脉冲周期的开始和结束。

4.2.2显示子程序:

时间显示子程序每次显示4个连续单元的十进制数。

首先判断高位是否为0,为0调用低四位显示,不为0则显示高四位。

显示时,先取出内存地址中的数据,然后从P2.4、P2.5、P2.6、P2.7口依次由低位到高位显示,在显示过程中通过延时程序控制四个数码管的显示时间长度,以达到可以清晰读出四位数。

4.3共阴7段LED显示器显示原理:

引脚数

显示数字

P0.7

b

P0.6

g

P0.5

f

P0.4

a

P0.3

e

P0.2

d

P0.1

c

P0.0

h

数码显示

0

0

0

1

1

1

1

1

1

3FH

1

0

0

0

0

0

1

1

0

06H

2

0

1

0

1

1

0

1

1

5BH

3

0

0

1

0

1

1

1

1

4FH

4

0

1

1

0

0

1

1

0

66H

5

0

1

1

0

1

1

0

1

6DH

6

0

1

1

1

1

1

0

1

7DH

7

0

0

0

0

0

1

1

1

07H

8

0

1

1

1

1

1

1

1

7FH

9

0

1

1

0

1

1

1

1

6FH

4.4系统总程序

U1EQU30H;第一个数码管显示的数值

U2EQU31H;第二个数码管显示的数值

U3EQU32H;第三个数码管显示的数值

U4EQU33H;第四个数码管显示的数值

ORG0000H

AJMPMAIN

ORG0003H

AJMPCHULI;外部中断下降沿触发处理

MAIN:

MOVSP,#60H

MOVTMOD,#01H;计数器T0工作在方式1

MOVTH0,#00H

MOVTL0,#00H;计数器TO清零

MOVIE,#81H;开放定时器中断开总中断外部中断0

SETBTR0

SETBIT0;T0允许计数且当外部中断输入为下降沿时计数外部中断0为下降沿触发方式

LOOP:

MOVR5,#20

ACALLBCD;十六位二进制转十进制

ACALLUBCD;压缩BCD码,转非压缩BCD码

LOOP2:

ACALLDISP;显示程序

ACALLDELAY

DJNZR5,LOOP2

AJMPLOOP;循环处理显示计数器T0采集得数

CHULI:

MOV41H,TH0

MOV40H,TL0;将计数器T0中的数转移到40H,41H中

MOVTH0,#00H

MOVTL0,#00H;重新将定时器T0清零

TT:

RETI

BCD:

CLRA;将41H40H中的数值转换成压缩BCD码十进制整数,分别按

高低存储在34H35H36H中

MOV38H,41H

MOV37H,40H

MOV34H,A

MOV35H,A

MOV36H,A

MOVR7,#16

LOOP1:

CLRC

MOVA,37H

RLCA

MOV37H,A

MOVA,38H

RLCA

MOV38H,A

MOVA,36H

ADDCA,36H

DAA

MOV36H,A

MOVA,35H

ADDCA,35H

DAA

MOV35H,A

MOVA,34H

ADDCA,34H

DAA

MOV34H,A

DJNZR7,LOOP1

RET

**************************************************************UBCD:

MOVA,34H

CJNEA,#00H,QUSHU;判断第五位数值是否为0为零则按四位有效值处理不为零按5位有效值处理

MOVR1,#35H;当有4位有效效值时取后四位显示小数点加在第一位

MOVR0,#36H

MOVA,#00H

XCHDA,@R0

MOV30H,A

MOVA,@R0

SWAPA

MOV31H,A

MOVA,#00H

XCHDA,@R1

MOV32H,A

MOVA,@R1

SWAPA

ADDA,#10;加小数点显示

MOV33H,A

RET

QUSHU:

MOVR1,#34H;当有5位有效值时取前四位显示小数点加在第二位

MOVR0,#35H

MOVA,#00H

XCHDA,@R0

MOV31H,A

MOVA,@R0

SWAPA

ADDA,#10;加小数点显示

MOV32H,A

MOVA,#00H

XCHDA,@R1

MOV33H,A

MOVA,@R1

SWAPA

ANL36H,#0F0H

MOVA,36H

SWAPA

MOV30H,A

RET

DISP:

MOVDPTR,#TAB;显示千位

MOVA,U4

MOVCA,@A+DPTR

MOVP0,A

MOVA,#0F7H;位选信号第一个数码管

MOVP2,A

ACALLDELAY

MOVDPTR,#TAB;显示百位

MOVA,U3

MOVCA,@A+DPTR

MOVP0,A

MOVA,#0FBH;位选信号第二个数码管

MOVP2,A

ACALLDELAY

MOVDPTR,#TAB;显示十位

MOVA,U2

MOVCA,@A+DPTR

MOVP0,A

MOVA,#0FDH;位选信号第三个数码管

MOVP2,A

ACALLDELAY

MOVDPTR,#TAB;显示个位

MOVA,U1

MOVCA,@A+DPTR

MOVP0,A

MOVA,#0FEH;位选信号第四个数码管

MOVP2,A

ACALLDELAY

RET

DELAY:

MOVR7,#25;延时程序

DELAY1:

MOVR6,#40

DJNZR6,$

DJNZR7,DELAY1

RET

TAB:

DB3fh,06h,5bh,4fh,66h,6dh,7dh,07h,07fh,6fh

DB0Bfh,86h,0DBh,0Cfh,0E6h,0Edh,0Fdh,87h,0FFh,0Efh

NOP

END

第五章系统制作与调试

5.1硬件调试

5.1.1调试方法

硬件调试是利用基本测试仪器(万用表、示波器等),检查系统硬件中存在的故障。

第一步:

目测。

检查外部的各种元件或者是电路是否有断点。

第二步:

用万用表测试。

先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。

第三步:

加电检测。

给系统加电,检测所有器件的电源端是否符合要求。

(1)取稳压电源打开电源,检查电源的输出电压是否为5V,可通过观察电源的量程及指针的读数来判断或用万用表测量。

(2)在确定输出电压正确的情况下,接好电路,用一根导线从地引出,接到P3.2口;再用另一根线从地引出分别接到P2.4、P2.5、P2.6、P2.7口,观察数码管的亮灭情况。

5.1.2出现问题及解决方法

在观察信号发生器产生波形时发现所产生的波形并不是标准的方波。

经过老师的讲解知道问题时处在波形整形步骤中,将信号源连接两个非门后再观察波形发现波形的垂直程度得到很好的改善。

在测试数码显示器时,其中一个数码显示管特别暗,经检查得知该数码显示管的小数点位没有接上拉电阻,这样导致分流出现问题。

接上电阻后该问题得到解决。

5.2软件调试:

软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。

在LCA51编译器下进行程序编译,检查程序是否有语法错误。

接好仿真机判断接口。

以子程序为单位逐个进行仿真,最后结合硬件实时调试。

将上述各编译好的子程序结合为总程序编译后加载到单片机芯片中进行仿真,结果并不是出现稳定的四位数字,闪的频率比较快,调整延时时间后问题解决。

第六章总结与体会

本系统是以单片机89C51芯片为核心部件,通过89C51芯片内部软件计数来测量脉冲周期的功能。

此次在软件上是花费时间最多的,我们上网查找相关资料,到图书馆翻阅各种参考资料,尽可能的了解有关于脉冲周期测量这方面的知识。

通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。

虽然在整个实验的过程中遇到了不少的麻烦、难题,但是在老师的指导,同学的帮助,以及我跟搭档孙德超的不懈努力、协力合作下,最终我们顺利的完成了这个课题的设计。

通过这次的课程设计的锻炼,使我在单片机的基本原理、单片机应用系统结合过程,以及在常用编程设计思路技巧(特别是汇编语言C51语言)的掌握方面都能向前迈了一大步。

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

当前位置:首页 > 解决方案 > 学习计划

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

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