logo资料库

单片机课程设计报告-脉冲宽度的测量.doc

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY 单 片 机 课 程 设 计 报 告 学院名称: 专 业: 班 级: 姓 名: 学 号: 指导教师: 2009 年 11 月
脉冲宽度测量 目录 第一章 引言…………………………………………… 第二章 方案选择及总体设计………………………… 2.1 硬件技术指标…………………………………… 2.2 方案选择及工作原理…………………………… 2.3 系统实现功能…………………………………… 第三章 控制系统的硬件设计………………………… 3.1 系统模块构成…………………………………… 3.2 系统工作原理图………………………………… 3.3 管脚说明………………………………………… 第四章 软件设计及程序……………………………… 4.1 软件设计流程…………………………………… 4.2 各子程序功能描述……………………………… 4.2.1 定时器 T0 中断服务程序…………………… 4.2.2 显示子程序…………………………………… 4.3 系统总程序………………………………………… 第五章 系统制作与调试………………………………… 5.1 硬件调试…………………………………………… 5.1.1 调试方法……………………………………… 5.1.2 出现问题及解决方法………………………… 5.2 软件调试…………………………………………… 5.3 结果分析…………………………………………… 第六章 总结与体会 ………………………………………
第一章 引言 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检 测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心 部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象 特点的软件结合,加以完善。本系统采用单片机 AT89C51 为中心器件来设计脉冲宽度测量 器,系统实用性强、操作简单、扩展性强。在现有的单片机仿真机系统上掌握相关软硬件设 计与调试知识,根据所选择题目,焊接好硬件电路,正确进行元器件的测试与调试,并在计 算机上编写汇编程序调试运行,并实现参考选题中要求的设计。 第二章 方案选择及工作原理 2.1 硬件技术指标 输入脉冲幅度:0-5V 脉宽测量范围:0.1-50ms 测量精度:1% 显示方式:四位数字显示 2.2 方案选择及工作原理 将脉冲信号从 P3.2 脚引入。将 T0 设为定时器方式工作。并工作在门控方式。初值 TH0、 TL0 设为零。 在待测脉冲高电平期间,T0 对内部周期脉冲进行计数。在待测脉冲高电平结束时,其下降 沿向 P3.2 发中断,在外中断 0 的中断服务程序中,读取 TH0、TL0 的计数值,该值就是待 测脉冲的脉宽。随后清零 TH0 和 TL0,以便下一脉宽的测量。 2.3 系统实现功能 在电源正确接入的前提下,由 RC 震荡器产生信号从 P3.2 口输入,利用内部脉冲对外部信 号进行计数。计数值经过二—十转换后,判断高位是否为零,如果为零即显示低四位,如果 不为零即显示高四位。通过数码管显示计数脉冲的个数,其个数即为脉冲宽度。 第三章 控制系统的硬件设计 3.1 系统模块构成
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.2 各子程序功能描述: 4.2.1 定时器 T0 中断服务程序: 通过对方式寄存器 TMOD 和控制寄存器 TCON 的编程来选择 T0 的工作方式。TMOD 设为 09H,表示门控方式为 1,16 位定时器。TCON 的低四位为外部中断的触发方式控制位 和外部中断请求标志,设为 13H,门控位为 1 时,仅当 TR0 等于 1 且 P3.2 输入为高电平时 T0 才计数,TR0 为 0 或 P3.2 输入低电平时都禁止计数,以此来判断输入脉冲高电平的开始 和结束。
4.2.2 显示子程序: 时间显示子程序每次显示 4 个连续单元的十进制数。首先判断高位是否为 0,为 0 调用 低四位显示,不为 0 则显示高四位。显示时,先取出内存地址中的数据,然后从 P2.4、P2.5、 P2.6、P2.7 口依次由低位到高位显示,在显示过程中通过延时程序控制四个数码管的显示时 间长度,以达到可以清晰读出四位数。 4.3 系统总程序 ORG 0000H AJMP MAIN ORG 0003H AJMP JISHI MAIN: MOV SP,#60H ;设堆栈 MOV TMOD,#09H ;设置控制字方式 方式 0 门控 MOV TH0,#00H MOV TL0,#00H SETB EA SETB EX0 SETB TR0 SETB IT0 ;定时器清零 ;开总中断 ;开 T0 中断 MAIN1:ACALL EX ACALL NEX MOV 50H,#0FAH MOV A,23H ;调用二进制转换为十进制子程序 ;调用拆为非压缩 BCD 码数子程序 ;延时程序 ;将 R4 中低位给累加器 CJNE A,#0H,MAIN3 ;比较累加器中数值和 0,不等于 0 跳转 MAIN2:ACALL DISP ;调用显示子程序 1 AJMP MAIN4 MAIN3:ACALL DISP2 ;调用显示子程序 2
MAIN4:DJNZ 50H,MAIN2 ;循环 250 次 AJMP MAIN1 EX: MOV R2,30H ;将从信号源中读出的数据存入 R2R3 中 ;R3 带进位左移一位 ;2*(R4R5R6)+C 赋值给 R4R5R6 MOV R3,31H CLR A MOV R4,A MOV R5,A MOV R6,A MOV R7,#10H LOOP: CLR C MOV A,R3 RLC A MOV R3,A MOV A,R2 RLC A MOV R2,A MOV A,R6 ADDC A,R6 DA A MOV R6,A MOV A,R5 ADDC A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A DJNZ R7,LOOP ;(R7)-1 赋值给 R7 是否为零
;拆分为非压缩 BCD 码 ;将 R6 中高低四位相互转换 ;将高四位清零,保持低四位不变 RET NEX: MOV A,R6 ANL A,#0FH MOV 19H,A MOV A,R6 SWAP A ANL A,#0FH MOV 20H,A MOV A,R5 ANL A,#0FH MOV 21H,A MOV A,R5 SWAP A ANL A,#0FH MOV 22H,A MOV A,R4 ANL A,#0FH MOV 23H,A RET DISP: MOV DPTR,#TAB ;查表程序 MOV A,19H MOVC A,@A+DPTR ORL P2,#0F0H MOV P0,A CLR P2.4 ACALL YANCHI MOV A,20H
分享到:
收藏