单片机课程设计脉冲宽度测量Word文档下载推荐.docx
《单片机课程设计脉冲宽度测量Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机课程设计脉冲宽度测量Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
第一章
引言……………………………………………4
第二章方案选择及总体设计…………………………4
2.1硬件技术指标
2.2方案选择及工作原理
2.3系统实现功能
第三章控制系统的硬件设计…………………………5
3.1系统模块构成
3.2系统工作原理图
3.3管脚说明
第四章软件设计及程序………………………………8
4.1软件设计流程
4.2各子程序功能描述
4.2.1定时器T0中断服务程序
4.2.2显示子程序
4.3系统总程序
第五章系统制作与调试…………………………………11
5.1硬件调试
5.1.1调试方法
5.2软件调试
5.3结果分析
第六章总结与体会………………………………………12
第七章教材及参考书………………………………………12
第一章引言
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
本系统采用单片机AT89C51为中心器件来设计脉冲宽度测量器,系统实用性强、操作简单、扩展性强。
在现有的单片机仿真机系统上掌握相关软硬件设计与调试知识,根据所选择题目,焊接好硬件电路,正确进行元器件的测试与调试,并在计算机上编写汇编程序调试运行,并实现参考选题中要求的设计。
第二章方案选择及工作原理
脉宽测量范围:
0~9.999s
显示方式:
四位数字显示
将脉冲信号从P3.0脚引入。
将T0设为定时器方式工作。
并工作在门控方式。
初值TL0、TH0设为(65536-1000)MOD256(65536-1000)/256
在待测脉冲高电平期间,T0对内部周期脉冲进行计数。
在待测脉冲高电平结束时,其下降沿向P3.0发中断,在外中断0的中断服务程序中,读取TH0、TL0的计数值,该值就是待测脉冲的脉宽。
随后清零TH0和TL0,以便下一脉宽的测量。
在电源正确接入的前提下,由手动给矩形按键按一下产生信号从P3.0口输入,从手动按下到手动停止之间进行计数。
通过数码管显示计数脉冲的个数,其个数即为脉冲宽度。
第三章控制系统的硬件设计
3.2显示方案
于系统要显示的内容较简单,显示量不多,所以选用数码管既方便又经济。
LED有共阴极和共阳极两种。
二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。
一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管。
当在某段发光二极管施加一定的正向电压时,该段笔划即亮;
不加电压则暗。
为了保护各段LED不被损坏,需外加限流电阻。
图1.1LED数码管结构原理图
众所周知,LED显示数码管通常由硬件7段译码集成电路,完成从数字到显示码的译码驱动。
本系统采用软件译码,以减小体积,降低成本和功耗,软件译码的另一优势还在于比硬件译码有更大的灵活性。
所谓软件译码,即由单片机软件完成从数字到显示码的转换。
从LED数码管结构原理可知,为了显示字符,要为LED显示数码管提供显示段码,组成一个“8”字形字符的7段,再加上1个小数点位,共计8段,因此提供给LED数码管的显
示段码为1个字节。
各段码位与显示段的对应关系如表表1.2
段码位
D7
D6
D5
D4
D3
D2
D1
D0
显示段
dp
g
f
e
d
c
b
a
表1.2各段码位的对应关系
需说明的是当用数据口连接LED数码管a~dp引脚时,不同的连接方法,各段码位与显示段有不同的对应关系。
通常数据口的D0位与a段连接,D1位与b段连接,……D7位与dp段连接,如表1所示,表2.3为用于LED数码管显示的十六进制数和空白字符与P的显示段码。
根据STC89C52RC单片机灌电流能力强,拉电流能力弱的特点,我们选用共阳数码管。
将AT89C2051的P1.0~P1.7分别与共阳数码管的a~g及dp相连,高电平的位对应的LED数码管的段暗,低电平的位对应的LED数码管的段亮,这样,当P0口输出不同的段码,就可以控制数码管显示不同的字符。
例如:
当P0口输出的段码为11000000,数码管显示的字符为0。
字型
共阳极段码
共阴极段码
C0H
3FH
9
90H
6FH
1
F9H
06H
A
88H
77H
2
A4H
5BH
B
83H
7CH
3
BOH
4FH
C
C6H
39H
4
99H
66H
D
A1H
5EH
5
92H
6DH
E
86H
79H
6
82H
7DH
F
84H
71H
7
F8H
07H
空白
FFH
00H
8
80H
7FH
P
8CH
73H
表1.3LED显示段码
注:
(1)本表所列各字符的显示段码均为小数点不亮的情况。
(2)“空白”字符即没有任何显示
数码管显示器有二种工作方式,即静态显示方式和动态扫描显示方式。
为节省端口及降低功耗,本系统采用动态扫描显示方式。
动态扫描显示方式需解决多位LED数码管的“段控”和“位控”问题,本电路的“段控”(即要显示的段码的控制)通过P0口实现;
而每一位的公共端,即LED数码管的“位控”,则由P1口控制。
这种连接方式由于多位字段线连在一起,因此,要想显示不同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出这一位相应要显示字符的字段码。
在这一瞬时,只有这一位在显示,其他几位则暗。
在本系统中,字位线的选通与否是通过74HC138来控制,这里74HC138的功能不再详述。
STC89C52RC单片机介绍
STC89C52RC单片机是由深圳宏晶公司代理销售的一款MCU,是由美国设计生产的一种低电压、高性能CMOS8位单片机,片内含8kbytes的可反复写的FlashROM和256bytes的RAM,2个16位定时计数器[5]。
STC89C52单片机内部主要包括累加器ACC(有时也简称为A)、程序状态字PSW、地址指示器DPTR、只读存储器ROM、随机存取存储器RAM、寄存器、并行I/O接口P0~P3、定时器/计数器、串行I/O接口以及定时控制逻辑电路等。
这些部件通过内部总线联接起来,构成一个完整的微型计算机。
其管脚图如图所示。
STC89C52RC单片机管脚结构图
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)
3.4仿真分析图:
第四章软件设计及程序
..
4.2各子程序功能描述:
4.2.1定时器T0中断服务程序:
通过对方式寄存器TMOD和控制寄存器TCON的编程来选择T0的工作方式。
TMOD设为09H,表示门控方式为1,16位定时器。
TCON的低四位为外部中断的触发方式控制位和外部中断请求标志,设为13H,门控位为1时,仅当TR0等于1且P3.0输入为高电平时T0才计数,TR0为0或P3.0输入低电平时都禁止计数,以此来判断输入脉冲高电平的开始和结束。
4.2.2显示子程序:
时间显示子程序每次显示4个连续单