单片机课程设计脉冲宽度测量_第1页
单片机课程设计脉冲宽度测量_第2页
单片机课程设计脉冲宽度测量_第3页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、JIANGSU TEACHERSUNIVERSITY OF TECHNOLOGY单片机课程设计报告学院名称:专 业:班 级:姓 名:学 号:指导教师:2009年11月脉冲宽度测量目录第一章引言第二章方案选择及总体设计2.1硬件技术指标2.2方案选择及工作原理2.3系统实现功能第三章控制系统的硬件设计3.1系统模块构成3.2系统工作原理图3.3管脚说明第四章软件设计及程序4.1软件设计流程4.2各子程序功能描述4.2.1 定时器 T0 中断服务程序422 显示子程序4.3系统总程序第五章系统制作与调试5.1硬件调试5.1.1 调试方法5.1.2 出现问题及解决方法5.2软件调试5.3结果分析Ze

2、/r' 、.、:第六章总结与体会 第一章 引言近年来随着科技的飞速发展, 单片机的应用正在不断地走向深入, 同时带动传统控制检 测日新月益更新。 在实时检测和自动控制的单片机应用系统中, 单片机往往是作为一个核心 部件来使用, 仅单片机方面知识是不够的, 还应根据具体硬件结构, 以及针对具体应用对象 特点的软件结合,加以完善。本系统采用单片机 AT89C51 为中心器件来设计脉冲宽度测量 器,系统实用性强、 操作简单、 扩展性强。在现有的单片机仿真机系统上掌握相关软硬件设 计与调试知识, 根据所选择题目,焊接好硬件电路,正确进行元器件的测试与调试,并在计 算机上编写汇编程序调试运行,并

3、实现参考选题中要求的设计。第二章 方案选择及工作原理2.1 硬件技术指标 输入脉冲幅度: 0-5V 脉宽测量范围: 0.1-50ms 测量精度: 1% 显示方式:四位数字显示2.2 方案选择及工作原理将脉冲信号从 P3.2 脚引入。将 T0 设为定时器方式工作。并工作在门控方式。初值 TH0 、 TL0 设为零。在待测脉冲高电平期间, T0 对内部周期脉冲进行计数。在待测脉冲高电平结束时,其下降沿向P3.2发中断,在外中断 0的中断服务程序中,读取 THO、TLO的计数值,该值就是待 测脉冲的脉宽。随后清零TH0和TL0,以便下一脉宽的测量。2.3 系统实现功能在电源正确接入的前提下,由 RC

4、 震荡器产生信号从 P3.2 口输入,利用内部脉冲对外部信 号进行计数。计数值经过二十转换后, 判断高位是否为零, 如果为零即显示低四位, 如果 不为零即显示高四位。通过数码管显示计数脉冲的个数,其个数即为脉冲宽度。第三章 控制系统的硬件设计3.1 系统模块构成3.2系统工作原理图5v日日日日330*874LS074444p0. 0-p0. 7p2. 4 p2 5 p2, 6 p2, 789c51p3. 2 RSTXTAL1 XTAL2741s0012mhz= =20Pf丁 IDuf5vlOuf| 5103.3管脚说明VCC :供电电压。GND :接地。P0 口: P0 口为一个8位漏级开路双

5、向I/O 口,每脚可吸收 8TTL门电流。当P1 口的管脚第 一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在编程时,P0 口作为原码输入口,当进行校验时,P0输出原码,此时 P0外部必须被拉高。P2 口: P2 口为一个内部上拉电阻的8位双向I/O 口,P2 口缓冲器可接收,输出 4个TTL门电流,当 P2 口被写“ 1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输 入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地

6、“ 1 ”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在编程和校验时接收高八位地址信号和控制信号。P3 口也可作为89C51的一些特殊功能口,在本次课程设计中用到的P3 口如下所示:P3.2 /INTO (外部中断0)RST:复位输入。当振荡器复位器件时,要保持 RST脚两个机器周期的高电平时间。XTAL1 :反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2 :来自反向振荡器的输出。第四章软件设计及程序4.1软件设计流程4.2各子程序功能描述:4.2.1定时器TO中断服务程序:通过对方式寄存器 TMOD和控制寄存器TCON的

7、编程来选择TO的工作方式。TMOD 设为09H,表示门控方式为1 ,16位定时器。TCON的低四位为外部中断的触发方式控制位 和外部中断请求标志,设为13H,门控位为1时,仅当TR0等于1且P3.2输入为高电平时TO才计数,TR0为0或P3.2输入低电平时都禁止计数,以此来判断输入脉冲高电平的开始 和结束。时间显示子程序每次显示 4 个连续单元的十进制数。首先判断高位是否为0,为 0 调用低四位显示,不为 0 则显示高四位。显示时 ,先取出内存地址中的数据 ,然后从 P2.4、 P2.5、 P2.6、P2.7 口依次由低位到高位显示, 在显示过程中通过延时程序控制四个数码管的显示时 间长度,以

8、达到可以清晰读出四位数。4.3 系统总程序ORG 0000HAJMP MAINORG 0003HAJMP JISHI;设堆栈;设置控制字方式 方式 0 门控;定时器清零;开总中断;开 T0 中断MAIN: MOV SP,#60HMOV TMOD,#09HMOV TH0,#00HMOV TL0,#00HSETB EASETB EX0SETB TR0SETB IT0MAIN1:ACALL EX;调用二进制转换为十进制子程序ACALL NEX;调用拆为非压缩 BCD 码数子程序MOV 50H,#0FAH;延时程序MOV A,23H;将 R4 中低位给累加器CJNE A,#0H,MAIN3;比较累加器

9、中数值和 0,不等于 0 跳转MAIN2:ACALL DISP;调用显示子程序 1AJMP MAIN4MAIN3:ACALL DISP2;调用显示子程序 2MAIN4:DJNZ 50H,MAIN2AJMP MAIN1;循环 250 次EX: MOV R2,30HMOV R3,31H CLR AMOV R4,AMOV R5,AMOV R6,AMOV R7,#10HLOOP: CLR CMOV A,R3RLC AMOV R3,AMOV A,R2RLC AMOV R2,AMOV A,R6ADDC A,R6DA AMOV R6,AMOV A,R5ADDC A,R5DA AMOV R5,AMOV A,R

10、4ADDC A,R4DA AMOV R4,ADJNZ R7,LOOP;将从信号源中读出的数据存入 R2R3 中;R3 带进位左移一位;2* (R4R5R6)+C 赋值给 R4R5R6;(R7) -1赋值给R7是否为零RETNEX: MOV A,R6ANL A,#0FHMOV 19H,AMOV A,R6;拆分为非压缩 BCD 码SWAP A;将 R6 中高低四位相互转换ANL A,#0FH;将高四位清零,保持低四位不变MOV 20H,AMOV A,R5ANL A,#0FHMOV 21H,AMOV A,R5SWAP AANL A,#0FHMOV 22H,AMOV A,R4ANL A,#0FHMOV

11、 23H,ARETDISP: MOV DPTR,#TAB ;查表程序MOV A,19HMOVC A,A+DPTRORL P2,#0F0HMOV P0,ACLR P2.4ACALL YANCHIMOV A,20HMOVC A,A+DPTRORL P2,#0F0H MOV P0,A CLR P2.5ACALL YANCHIMOV A,21HMOVC A,A+DPTRORL P2,#0F0H MOV P0,ACLR P2.6ACALL YANCHIMOV A,22HMOVC A,A+DPTRORL P2,#0F0H MOV P0,A CLR P2.7ACALL YANCHIRETDISP2: MOV

12、 DPTR,#TABMOV A,20HMOVC A,A+DPTRORL P2,#0F0H MOV P0,A CLR P2.4ACALL YANCHIMOV A,21HMOVC A,A+DPTRORL P2,#0F0HMOV P0,ACLR P2.5ACALL YANCHIMOV A,22HMOVC A,A+DPTRORL P2,#0F0HMOV P0,ASETB P0.7CLR P2.6ACALL YANCHIMOV A,23HMOVC A,A+DPTRORL P2,#0F0HMOV P0,ACLR P2.7ACALL YANCHIRETYANCHI: MOV 51H,#50HTL: MOV

13、52H,#10HDJNZ 52H,$DJNZ 51H,TLRETTAB: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHJISHI:MOV 30H,TH0MOV 31H,TL0MOV TH0,#00HMOV TL0,#00HRETIEND第五章 系统制作与调试5.1 硬件调试5.1.1 调试方法 硬件调试是利用基本测试仪器(万用表、示波器等) ,检查系统硬件中存在的故障。 第一步:目测。检查外部的各种元件或者是电路是否有断点。第二步: 用万用表测试。 先用万用表复核目测中有疑问的连接点, 再检测各种电源线与地线 之间是否有短路现象。第三步:加电检测。给

14、系统加电,检测所有器件的电源端是否符合要求。 (1)取稳压电源打开电源, 检查电源的输出电压是否为 5V ,可通过观察电源的量程及指针 的读数来判断或用万用表测量。 (2)在确定输出电压正确的情况下,接好电路,用一根导线 从地引出,接到 P3.2 口;再用另一根线从地引出分别接到P2.4、P2.5、P2.6、P2.7 口,观察数码管的亮灭情况。5.1.2 出现问题及解决方法 在观察信号发生器产生波形时发现所产生的波形并不是标准的方波。 经过老师的讲解知 道问题时处在波形整形步骤中, 将信号源连接两个非门后再观察波形发现波形的垂直程度得 到很好的改善。 在观察过程中还发现本次课程设计中用来产生信

15、号源的方案所实现的方波并 不等宽。在测试数码显示器时,其中一个数码显示管特别暗,经检查得知该数码显示管的小数点位没有接上拉电阻,这样导致分流出现问题。接上电阻后该问题得到解决。5.2 软件调试:软件调试是通过对程序的汇编、 连接、 执行来发现程序中存在的语法错误与逻辑错误并 加以排除纠正的过程。在 LCA51 编译器下进行程序编译,检查程序是否有语法错误。接好 仿真机判断接口。以子程序为单位逐个进行仿真,最后结合硬件实时调试。将上述各编译好的子程序结合为总程序编译后加载到单片机芯片中进行仿真, 结果并不 是出现稳定的四位数字,闪的频率比较快,调整延时时间后问题解决。5.3 结果分析通过数字示波

16、器观测,输入信号的高电平的宽度为6.72ms,波形的峰一峰值为 4.08V。数码管显示脉宽为 6.48 ms。输入脉冲幅度及脉宽测量范围都满足要求。测量精度 =±( 6.72-6.48)/6.72=±4.5% 数码管显示时数字在不断的跳动,可能原因是输入信号不稳。第六章 总结与体会本系统是以单片机 89C51 芯片为核心部件,通过 89C51 芯片内部软件计数来测量脉冲 宽度的功能。此次在软件上是花费时间最多的,我们上网找资料,上图书馆,尽可能的了解有关于脉冲宽度测量这方面的知识。 通过这次课程设计, 使我得到了一次用专业知识、 专业 技能分析和解决问题全面系统的锻炼。 使我在单片机的基本原理、 单片机应用系统结合过程, 以及在常用编程设计思路技巧(特别是汇编语言 C51 语言)的掌握方面都能向前迈了一大仅供个人用于学习、研究;不得用于商业用途For personal use only in study and research; not for commercial use.Nur f u r den pers?nlichen f u r Stu

温馨提示

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

最新文档

评论

0/150

提交评论