收藏 分销(赏)

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

上传人:仙人****88 文档编号:9464385 上传时间:2025-03-27 格式:DOC 页数:13 大小:315.50KB
下载 相关 举报
单片机脉冲周期的测量.doc_第1页
第1页 / 共13页
单片机脉冲周期的测量.doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述
JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY 单片机原理与应用课程设计 脉冲周期的测量 学院名称: 电气信息工程学院 专 业: 单片机原理与应用 班 级: 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 系统总程序 U1 EQU 30H ;第一个数码管显示的数值 U2 EQU 31H ;第二个数码管显示的数值 U3 EQU 32H ;第三个数码管显示的数值 U4 EQU 33H ;第四个数码管显示的数值 ORG 0000H AJMP MAIN ORG 0003H AJMP CHULI ;外部中断下降沿触发处理 MAIN: MOV SP,#60H MOV TMOD,#01H ;计数器T0工作在方式1 MOV TH0,#00H MOV TL0,#00H ;计数器TO清零 MOV IE,#81H ;开放定时器中断 开总中断 外部中断0 SETB TR0 SETB IT0 ;T0允许计数且当外部中断输入为下降沿时计数 外部中断0为下降沿触发方式 LOOP: MOV R5,#20 ACALL BCD ;十六位二进制转十进制 ACALL UBCD ;压缩BCD码,转非压缩BCD码 LOOP2: ACALL DISP ;显示程序 ACALL DELAY DJNZ R5,LOOP2 AJMP LOOP ;循环处理显示计数器T0采集得数 CHULI:MOV 41H,TH0 MOV 40H,TL0 ;将计数器T0中的数转移到40H,41H中 MOV TH0,#00H MOV TL0,#00H ;重新将定时器T0清零 TT: RETI BCD:CLR A ;将41H 40H中的数值转换成压缩BCD码十进制整数, 分别按 高低存储在34H35H 36H中 MOV 38H,41H MOV 37H,40H MOV 34H,A MOV 35H,A MOV 36H,A MOV R7,#16 LOOP1: CLR C MOV A,37H RLC A MOV 37H,A MOV A,38H RLC A MOV 38H,A MOV A,36H ADDC A,36H DA A MOV 36H,A MOV A,35H ADDC A,35H DA A MOV 35H,A MOV A,34H ADDC A,34H DA A MOV 34H,A DJNZ R7,LOOP1 RET ************************************************************** UBCD: MOV A,34H CJNE A,#00H,QUSHU ;判断第五位数值是否为0 为零则按四位有效值处理 不为零按5位有效值处理 MOV R1,#35H ;当有4位有效效值时 取后四位显示 小数点加在第一位 MOV R0,#36H MOV A,#00H XCHD A,@R0 MOV 30H,A MOV A,@R0 SWAP A MOV 31H,A MOV A,#00H XCHD A,@R1 MOV 32H,A MOV A,@R1 SWAP A ADD A,#10 ;加小数点显示 MOV 33H,A RET QUSHU:MOV R1,#34H ;当有5位有效值时取前四位显示 小数点加在第二位 MOV R0,#35H MOV A,#00H XCHD A,@R0 MOV 31H,A MOV A,@R0 SWAP A ADD A,#10 ;加小数点显示 MOV 32H,A MOV A,#00H XCHD A,@R1 MOV 33H,A MOV A,@R1 SWAP A ANL 36H,#0F0H MOV A,36H SWAP A MOV 30H,A RET DISP: MOV DPTR,#TAB ;显示千位 MOV A,U4 MOVC A,@A+DPTR MOV P0,A MOV A,#0F7H ;位选信号 第一个数码管 MOV P2,A ACALL DELAY MOV DPTR,#TAB ;显示百位 MOV A,U3 MOVC A,@A+DPTR MOV P0,A MOV A,#0FBH ;位选信号 第二个数码管 MOV P2,A ACALL DELAY MOV DPTR,#TAB ;显示十位 MOV A,U2 MOVC A,@A+DPTR MOV P0,A MOV A,#0FDH ;位选信号 第三个数码管 MOV P2,A ACALL DELAY MOV DPTR,#TAB ;显示个位 MOV A,U1 MOVC A,@A+DPTR MOV P0,A MOV A,#0FEH ;位选信号 第四个数码管 MOV P2,A ACALL DELAY RET DELAY: MOV R7,#25 ;延时程序 DELAY1: MOV R6,#40 DJNZ R6,$ DJNZ R7,DELAY1 RET TAB: DB 3fh, 06h, 5bh ,4fh , 66h ,6dh ,7dh, 07h, 07fh ,6fh DB 0Bfh,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语言)的掌握方面都能向前迈了一大步。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服