您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页单片机课程设计脉冲宽度测量

单片机课程设计脉冲宽度测量

来源:飒榕旅游知识分享网


单片机课程设计报告

设计课题:脉冲宽度测量 学院:物理与电气工程学院 年级专业:10级自动化3班

小组成员姓名:金祁平、胡坤云、刘兵剑、王文建 小组成员学号:080310173、080310176、080310139、080310132 指导老师:丁文祥 设计时间:2012年12月

1

摘要

二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。但是,实际工作中并不是任何需要计算机的场合都要求计算机有很高的性能,一个控制电冰箱温度的计算机难道要用P4吗?应用的关键是看是否够用,是否有很好的性能价格比。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。自从1976年问世以来,单片机获得了巨大的发展。现在比较流行的单片机是美国Intel的MCS51/96以及Motorola的MC系列,Zilog的Z8系列,

同时还有更多新型的、功能更强的单片机不断出现。 Abstract:Twentieth century across the three “power” of the era, that the age of electricity, the electronic age and has now entered the computer age. However, the actual work where the computer is not any need to require a high performance computer, a control fridge temperature P4 computer do you use? The key is to see whether the application of adequate, whether there is a very good cost performance. Single chip, also known as single-chip microcontroller, it is not the completion of a logic function of the chip, but a computer system integrated into a chip. Speaking in general terms: a single chip into a computer. Its small size, light weight, cheap, for learning, application and development of facilities provided. Since its inception in 1976, SCM was a great development. SCM is now more popular in the United States, and Motorola, Intel’s MCS51/96 MC series, Zilog’s Z8 series, as well as

more new, more powerful microcontrollers continue to emerge. 关键字:单片机,脉冲宽度,系统设计。

2

脉冲宽度测量

目录

第一章 引言„„„„„„„„„„„„„„„„„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

3

第一章 引言

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

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

2.1 硬件技术指标 脉宽测量范围:0~9.999s 显示方式:四位数字显示

2.2 方案选择及工作原理

将脉冲信号从P3.0脚引入。将T0设为定时器方式工作。并工作在门控方式。初值TL0、TH0设为(65536-1000)MOD 256 (65536-1000)/256

在待测脉冲高电平期间,T0对内部周期脉冲进行计数。在待测脉冲高电平结束时,其下降沿向P3.0发中断,在外中断0的中断服务程序中,读取TH0、TL0的计数值,该值就是待测脉冲的脉宽。随后清零TH0和TL0,以便下一脉宽的测量。

2.3 系统实现功能

在电源正确接入的前提下,由手动给矩形按键按一下产生信号从P3.0口输入,从手动按下到手动停止之间进行计数。通过数码管显示计数脉冲的个数,其个数即为脉冲宽度。

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

3.1 系统模块构成

4

3.2 显示方案

于系统要显示的内容较简单,显示量不多,所以选用数码管既方便又经济。LED有共阴极和共阳极两种。

二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电阻。

图1.1 LED数码管结构原理图

众所周知,LED显示数码管通常由硬件7段译码集成电路,完成从数字到显示码的译码驱动。本系统采用软件译码,以减小体积,降低成本和功耗,软件译码的另一优势还在于比硬件译码有更大的灵活性。所谓软件译码,即由单片机软件完成从数字到显示码的转换。从LED数码管结构原理可知,为了显示字符,要为LED显示数码管提供显示段码,组成一个“8”

字形字符的7段,再加上1个小数点位,共计8段,因此提供给LED数码管的显 示段码为1个字节。各段码位与显示段的对应关系如表表1.2 段码位 显示段 D7 dp D6 g D5 f D4 e D3 d D2 c D1 b D0 a 表1.2 各段码位的对应关系

需说明的是当用数据口连接LED数码管a~dp引脚时,不同的连接方法,各段码位与显示段有不同的对应关系。通常数据口的D0位与a段连接,D1位与b段连接,„„D7位与dp段连接,如表1所示,表2.3为用于LED数码管显示的十六进制数和空白字符与P的显示段码。

根据STCC52RC单片机灌电流能力强,拉电流能力弱的特点,我们选用共阳数码

5

管。将ATC2051的P1.0~P1.7分别与共阳数码管的a~g及dp相连,高电平的位对应的LED数码管的段暗,低电平的位对应的LED数码管的段亮,这样,当P0口输出不同的段码,就可以控制数码管显示不同的字符。例如:当P0口输出的段码为1100 0000,数码管显示的字符为0。 字型 0 1 2 3 4 5 6 7 8 共阳极段码 C0H F9H A4H BOH 99H 92H 82H F8H 80H 共阴极段码 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 字型 9 A B C D E F 空白 P 共阳极段码 90H 88H 83H C6H A1H 86H 84H FFH 8CH 共阴极段码 6FH 77H 7CH 39H 5EH 79H 71H 00H 73H 表1.3 LED显示段码

注:(1)本表所列各字符的显示段码均为小数点不亮的情况。 (2)“空白”字符即没有任何显示

数码管显示器有二种工作方式,即静态显示方式和动态扫描显示方式。为节省端口及降低功耗,本系统采用动态扫描显示方式。动态扫描显示方式需解决多位LED数码管的“段控”和“位控”问题,本电路的“段控”(即要显示的段码的控制)通过P0口实现;而每一位的公共端,即LED数码管的“位控”,则由P1口控制。这种连接方式由于多位字段线连在一起,因此,要想显示不同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出这一位相应要显示字符的字段码。在这一瞬时,只有这一位在显示,其他几位则暗。在本系统中,字位线的选通与否是通过74HC138来控制,这里74HC138的功能不再详述。

STCC52RC单片机介绍

STCC52RC单片机是由深圳宏晶公司代理销售的一款MCU,是由美国设计生产的一种低电压、高性能CMOS 8位单片机,片内含8kbytes的可反复写的FlashROM和256bytes

[5]

的RAM,2个16位定时计数器。

STCC52单片机内部主要包括累加器ACC(有时也简称为A)、程序状态字PSW、地址指示器DPTR、只读存储器ROM、随机存取存储器RAM、寄存器、并行I/O接口P0~P3、定时器/计数器、串行I/O接口以及定时控制逻辑电路等。这些部件通过内部总线联接起来,构成一个完整的微型计算机。其管脚图如图所示。

6

STCC52RC单片机管脚结构图

3.3 管脚说明

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口也可作为C51的一些特殊功能口,在本次课程设计中用到的P3口如下所示: P3.2 /INT0(外部中断0)

7

3.4 仿真分析图:

第四章 软件设计及程序

4.1 软件设计流程 . .

开始 显示单元清0 设置T0计数器工作模式,采用查询法对脉冲宽度的计算 调用显示子函数 N 键按下? Y 允许T0中断 进行计时 8

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

4.3 系统总程序

ORG 0000H LJMP MAIN

ORG 000BH ;//设置定时器T0入口为000BH LJMP FORT0 ORG 0050H MAIN:

MOV P3,#0FFH;//P3.0接外部按键 MOV IE,#82H;//开中断并且设置T0初值 MOV TMOD,#01H

MOV TL0,#(65536-1000)MOD 256 MOV TH0,#(65536-1000)/256 M0: LCALL DISPLAY

JB P3.0,M0;//判断按键是否按下,按下即开始计时 MOV R0,#0 MOV R1,#0 MOV R2,#0 MOV R3,#0 SETB TR0

JNB P3.0,$;//按键抬起后定时结束

9

CLR TR0

LCALL DISPLAY;//在数码管显示脉冲宽度 SJMP M0

FORT0: MOV TL0,#(65536-1000)MOD 256;//定时器中断子程序 MOV TH0,#(65536-1000)/256 INC R0

CJNE R0,#10,M2 MOV R0,#0 INC R1

CJNE R1,#10,M2 MOV R1,#0 INC R2

CJNE R2,#10,M2 MOV R2,#0 INC R3 M2: RETI

DISPLAY:MOV P2,#3;//显示子程序 MOV A,R0

MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A

LCALL DELAY

MOV P2,#2 MOV A,R1

MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A

LCALL DELAY

MOV P2,#1 MOV A,R2

MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A

LCALL DELAY

MOV P2,#0 MOV A,R3

MOV DPTR,#TAB MOVC A,@A+DPTR

10

MOV P0,A

LCALL DELAY

RET

DELAY: MOV R6,#5;//延时子程序 DL0: MOV R7,#250 DJNZ R7,$ DJNZ R6,DL0 RET

TAB: ;//字型码查询表

DB 03FH,006H,05BH,04FH DB 066H,06DH,07DH,007H DB 07FH,06FH,077H,07CH DB 039H,05EH,079H,071H END

第五章 系统制作与调试

5.1 硬件调试

5.1.1 调试方法

硬件调试是利用基本测试仪器(万用表、示波器等),检查系统硬件中存在的故障。 第一步:目测。检查外部的各种元件或者是电路是否有断点。

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

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

(1)取稳压电源打开电源,检查电源的输出电压是否为5V,可通过观察电源的量程及指针的读数来判断或用万用表测量。(2)在确定输出电压正确的情况下,接好电路,用一根导线从地引出,接到P3.2口;再用另一根线从地引出分别接到P2.4、P2.5、P2.6、P2.7口,观察数码管的亮灭情况。

5.2 软件调试:

软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。在keil编译器下进行程序编译,检查程序是否有语法错误。接好仿真

11

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

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

调试前:

调试后:

5.3 结果分析

通过测试我们一般的手动按下按钮再停止一般时间为165~225ms,比较符合事实情况,成功完成实验要求。

12

第六章 总结与体会

本系统是以单片机C52芯片为核心部件,通过C52芯片内部软件计数来测量脉冲宽度的功能。此次在软件上是花费时间最多的,我们上网找资料,上图书馆,尽可能的了解有关于脉冲宽度测量这方面的知识。通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统结合过程,以及在常用编程设计思路技巧(特别是汇编语言C51语言)的掌握方面都能向前迈了一大步。

第七章 教材及参考书

[1] 胡汉才,单片机原理及其接口技术,清华大学出版社

[2] 邹逢兴,微型计算机接口原理与技术,国防科技大学出版社 [3] 阎凯,微型计算机硬件设计原理分析与维修,科学出版社

[4] 何立民,MCS-51系列单片机应用系统设计系统配置与接口技术,北京航空航天大学出版社

[5] 沈德金,MCS-51系列单片机接口电路与应用程序实例,北京航空航天大学出版社

13

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务