用单片机控制可测方波100~1000Hz,并显示脉宽

用单片机控制可测方波100~1000Hz,并显示脉宽
用单片机控制可测方波100~1000Hz,并显示脉宽

桂林电子科技大学单片机最小应用系统

指导老师:吴兆华

学生:

学号:

桂林电子科技大学机电工程学院

摘要 (3)

一、实验课题及要求 (4)

二、实验目的及意义 (4)

三、任务系统设计 (5)

3.1 分析任务要求,写出系统整体设计思路 (5)

3.2 问题的难点在按键连续按下超过2S的计时问题,如何实现计时功能。 (5)

3.3 分析软件任务要求,写出程序设计思路,分配单片机内部资源 (5)

3.4 脉冲宽度测量 (6)

3.5 脉冲频率测量 (7)

3.6 扩展测量范围原理 (7)

3.7 选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图 (7)

四、系统硬件电路 (8)

4.1 硬件电路说明 (8)

4.2 AT89C51单片机简介 (9)

4.2.1 AT89S51具有如下特点: (10)

4.2.2 AT89S51的运行模式 (10)

4.2.3 MCS-51系列单片机的并行I/O口 (11)

4.3最小系统控制部分 (12)

4.3.2 复位电路 (14)

4.4数码管显示电路 (15)

4.5 功率放大电路 (17)

4.6 显示部分硬件装备图 (19)

五、用DXP绘制电路图 (20)

5.1 电路板设计规则 (20)

5.1.1 考虑PCB 尺寸大小 (20)

5.1.2 确定特殊组件的位置 (20)

5.1.3 布局方式 (21)

5.1.4 电源和接地线处理的基本原则 (21)

5.1.5 导线设计的基本原则 (22)

5.2 PCB设计注意事项 (22)

六、软件设计 (25)

6.1程序流程图 (25)

6.1.1 主程序图 (25)

6.1.2 这段子程序图 (26)

6.2程序源代码 (26)

七、设计总结 (30)

八、参考文献 (31)

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。单片机是20世纪中期发展起来的一种面向控制的大规模集成电路模块,具有功能强、体积小、可靠性高、价格低廉等特点,在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域得到了广泛的应用,极大的提高了这些领域的技术水平和自动化程度。单片机应用的意义绝不仅限于它的广阔范围以及带来的经济效益,更重要的意义在于,单片机的应用正从根本上改变着传统的控制系统的设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功能,现在使用单片机通过软件就能实现了。随着单片机应用的推广普及,单片机控制技术将不断发展,日益完善。本文是设计频率/脉冲宽度的测量与显示的硬件电路与程序的编制。它可以测量脉冲信号的脉冲宽度,频率等参数。利用定时器的门控信号GATE进行控制可以实现脉冲宽度的测量。利用定时器T0定时T1计数来测量由P3.5口输入的脉冲信号的频率。在单片机应用系统中,为了便于对LED显示器进行管理,需要建立一个显示缓冲区。显示时采用动态扫描的方式将将各位数的BCD码依序输入到LED中,并连续扫描2秒钟。通过采用STC89C52RC单片机为中心器件来设计脉冲宽度测量器,并运用MCS—51/52单片机计数功能,选择好工作模式,对脉宽进行计数。在现有的单片机仿真机系统上掌握相关软硬件设计与调试知识,并在计算机上编写汇编程序调试运行。

关键词: 门控信号GATE;脉冲宽度;扩展测量范围;脉冲频率

一、实验课题及要求

用8031单片机控制可测方波频率100~1000Hz,并显示方波的脉宽

二、实验目的及意义

1、加深外部中断指令的基本使用方法;

2、熟悉外部中断处理程序的编程方法;

3、进一步熟悉8051内部定时/计数器的初始化、使用方法及编程方法;

4、进一步掌握8051中断处理程序的编程方法和应用;

6、学会使用并熟练掌握电路绘制软件Protel99SE(或DXP)。

7、基于STC89C52RC单片机测量脉冲宽度;

8、研究分别使用定时计数器0,1 的GATE 模式和定时计数器2 的捕捉功能完成外

部脉冲宽度测量;

9、通过单片机的综合设计,学会将所学的知识融会贯通,锻炼独立设计、

制作和调试单片机的应用系统能力,领会单片机应用系统的软件、硬件调试方法和系统的研制开发过程,为进一步的科研实践活动打下一定的基

础。

意义:

1、通过单片机的综合设计,能够将所学的知识融会贯通,锻炼独立设计、制作和调试单片机的应用系统能力,领会单片机应用系统的软件、硬件调试方法和系统的研制开发过程,为进一步的科研实践活动打下一定的基础。

2、通过单片机综合设计更加熟悉的掌握51单片机的应用;掌握了方波频率计算以及形成的原理,更加进一步的学习方波宽度的测量,并且对软件编程及硬件设计方法更加好的掌握,掌握根据课题要求,提出并选择设计方案、查找确定所用元器件、设计并搭制硬件电路、编程写入并调试等的一系列,掌握单片机应用的基本方法与步骤。

3、通过单片机的综合设计,对输出方波的原理有很大的了解,掌握方波频率的计算方法,同时对其脉冲测量过程学习到很多,在设计中对系统原理图也有很好地掌握,实验中和本组队员努力配合,明白团队的努力是伟大的。

三、任务系统设计

用单片机产生频率可调的方波信号。控制方波的频率范围为100Hz-1000Hz,频率误差比小于0.5%。要求用“增加”、“减小”2个按钮改变方波给定频率,按钮每按下一次,使给定频率按步进改变,当按钮持续按下的时间超过一定时间后,给定频率以一定的速度连续增加(减少),输出方波的脉宽要求在四位数码管上显示。用输出方波控制一个发光二极管的显示,用示波器观察方波波形。

3.1 分析任务要求,写出系统整体设计思路

任务分析:方波信号的产生实质上就是在定时器溢出中断次数达到规定次数时,将输出I/O管脚的状态取反。

涉及以下几个方面的问题:按键的扫描、功能键的处理、计时功能以及数码管动态扫描显示等。

3.2 问题的难点在按键连续按下超过2S的计时问题,如何实现计时功能。

系统的整体思路:主程序在初始化变量和寄存器之后,扫描按键,根据按键的情况执行相应的功能,然后在数码显示频率的值,显示完成后再回到按键扫描,如此反复执行。中断程序负责方波的产生、按键连续按下超过2S后频率值以10Hz/s递增(递减)。

3.3 分析软件任务要求,写出程序设计思路,分配单片机内部资源

①T0工作方式

通过设置TMOD,使其为定时器模式。在做定时器使用时,将T0定时为0.001S。

当GATE=1时,为门控方式。只有TR0设置为1,且同时外部中断引脚也为高电平时,才能启动T0开始计数工作。把脉冲信号从P3.2脚引入,T0设为定时器方式工作,并工作在门控方式(GATE=1)。在待测信号高电平期间,T0对内部周期脉冲进行计数。在待测脉冲高电平结束时,其下降沿向P3.2发中断,在外部中断0的中断服务程序中,读取TH0、TL0的计数值,该值就是待测脉冲的脉宽。随后,清零TH0和TL0,以便下一脉宽的测量。

计算方法:脉冲宽度=计数值*0.01s,将脉冲宽度的数值转换为压缩BCD码,再将压缩BCD码转换为非压缩BCD码用于显示,最后调用显示程序,读取脉冲宽度。

②T2捕捉工作方式

使用T2的捕捉方式,TH2、TL2的初值设为0,待测信号从T2EX(P1.1)引入,采用定

时器T0定时0.001s,刚开始待测信号为高电平或低电平时等待,再次检测为高电平时T2开始计数,定时器T0每定时0.001s,通过串口P1.0的开关状态使T2的计数值增一并将计数值存入RCAP2H和RCAP2L两个寄存器中。

计算方法:脉冲宽度=计数值*0.001s,再将表示脉冲宽度的十六进制转换为压缩BCD 码,再将压缩BCD码转为非压缩BCD码用来显示,数码管显示的数据即为要测量的脉宽。

3.4 脉冲宽度测量

利用定时器的门控信号GA TE进行控制可以实现脉冲宽度的测量。对定时器T1来讲,,被测脉冲信号从INT1端引入,其上升沿启动T1计数,下降沿停止T1计数。定时器的计数

值乘以机器周期即为脉冲宽度。下图中给出了脉冲宽度测量的原理图。

为低时启动T1

为高则等待上升沿开始计数

脉冲宽度测量过程

图 2 系统原理图

3.5 脉冲频率测量

频率测量实际上就是在1s内对脉冲个数进行计数,计数值就是信号频率。令定时器T0工作在方式1,得到100ms的定时间隔,再进行软件计数10次,形成一个1s的测量闸门信号。在测量闸门信号期间令计数器T1工作在计数方式1,对脉冲信号的频率计数,计数值存入COUNT、COUNT+1和COUNT+2单元,计数值通过6位动态数码管显示出来。

3.6 扩展测量范围原理

上述系统被测脉冲宽度范围最大为65535us,扩展计数器的位数可提高脉冲宽度的测量范围。令定时器T1工作在方式1定时,GATE=1,用COUNT单元,COUNT+1单元即定时器T1的计数单元TH1和TL1组成一个32位的计数器对脉冲宽度进行测量。并且在定时器T1溢出时,给COUNT+2赋值#01H,并将THI和TH0置零,重新开始计数。以扩展系统测量范围使可以达到130ms的任务要求。同时在进行频率测量时,当计数器T1溢出时,给COUNT+2赋值#01H,并将THI和TH0置零,重新开始计数。以扩展系统测量范围使可以达到100KHZ的任务要求。

把脉冲信号从P3.2脚引入,T0设为定时器方式工作,并工作在门控方式(GATE=1)。在待测信号高电平期间,T0对内部周期脉冲进行计数。在待测脉冲高电平结束时,其下降沿向P3.2发中断,在外部中断0的中断服务程序中,读取TH0、TL0的计数值,计算出所测。随后,清零TH0和TL0,以便下一个脉宽的测量。显示:将数码管的段控信号与P口与四位LED数码管相连。

3.7 选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图

采用MCS51系列单片机At89S51作为主控制器,外围电路器件包括数码管驱动、独立式键盘、方波脉冲输出以及发光二极管的显示等。

数码管驱动采用2个四联共阴极数码管显示,由于单片机驱动能力有限,采用74HC244作为数码管的驱动。在74HC244的7段码输出线上串联100欧姆电阻起限流作用。

独立式按键使用上提拉电路与电源连接,在没有键按下时,输出高电平。发光二极管串联500欧姆电阻再接到电源上,当输入为低电平时,发光二极管导通发光。

脉宽(Pulse-Width)是脉冲宽度的缩写,脉冲宽度就是高电平持续的时间,常用来作为采样信号或者晶闸管等元件的触发信号。

脉宽由信号的周期和占空比确定,其计算公式是脉宽W=T×P(T:周期,P:占空比)。

占空比计算方式是:

左对齐方式:占空比= [ (PWMPERx - PWMDTYx) / PWMPERx ] × 100%

中心对齐方式:占空比= [ PWMDTYx / PWMPERx ] × 100%

周期的计算公式:

左对齐方式:输出周期= 通道周期× PWMPERx

中心对齐方式:输出周期= 通道周期× PWMPERx × 2

脉宽的计算方法就不言而喻了。本次设计,因为要求产生的是方波,高低电平所占的时间相同(占空比为0.5),即脉宽为:

脉宽W=T/2

四、系统硬件电路

本设计要求用8031单片机控制可测方波100~1000Hz,并显示方波宽度。此功能可通过“最小系统系统”实现。整个设计主要包括单片机基本的晶振电路,按键复位电路,频率调节电路三极管功率放大电路了和数码管显示电路。整体设计原理图如下图1所示。

图1系统设计总电路图

4.1 硬件电路说明

本次硬件系统包括单片机最小系统、外部中断电路、数码管显示电路三

部分在下面介绍中对每一部分都有详细的说明(因为条件有限,本次设计采用AT89S51单片机,其功能与8031基本相同)。

4.2 AT89C51单片机简介

AT89S51单片机是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL 公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。

图2 AT89S51引脚图

AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及89C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价

比的解决方案。

AT89S51有PDIP、PLCC、TQFP三种封装方式,其中最常见的就是采用40Pin 封装的双列直接PDIP封装,外形结构图2。

芯片共有40个引脚,引脚的排列顺序为从靠芯片的缺口(见右图)左边那列引脚逆时针数起,依次为1、2、3、4......40,其中芯片的1脚顶上有个凹点。在单片机的40个引脚中,电源引脚2根,外接晶体振荡器引脚2根,控制引脚4根以及4组8位可编程I/O引脚32根。

4.2.1 AT89S51具有如下特点:

40个引脚,8k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

4.2.2 AT89S51的运行模式

(1)空闲模式

在空闲模式下,CPU处于睡眠状态,振荡器和所有片内外围电路仍然有效。空闲模式可由软件设置进入(设IDL=1)。在这种模式下,片内RAM和SFR中的内容保持不变。空闲模式可通过任何一个允许中断或硬件复位退出。

若用硬件复位方式结束空闲模式,则在片内复位控制逻辑发生作用前长达约两个机器周期时间内,器件从断点处开始执行程序。片内硬件禁止访问内部RAM,但不禁止访问端口。为避免采用复位方式退出空闲模式时对端口的不应有的访问,在紧随设置进入空闲指令(即设IDL=1)的后面,不能是写端口或外部RAM 的指令。

(2)掉电模式

引起掉电模式的指令是执行程序中的最后一条指令(使PD=1的指令)。在掉电模式下,振荡器停止工作,CPU和片内所有外围部件均停止工作,但片内RAM 和SFR中的内容保留不变,直到掉电模式结束。

退出掉电模式可用硬件复位或任何一个有效的外部中断INT0和INT1。复位

可重新设置SFR中的内容,但不改变片内RAM中的内容。在Vcc电源恢复到正常值并维持足够长的时间之后,允许振荡器恢复并达到稳定,方可进行复位,以退出掉电模式。

4.2.3 MCS-51系列单片机的并行I/O口

接口电路是微机必不可少的组成部分,并行输入确出接口是CPU和外部进行信息交换的主要通道。MSC-51系列单片有4个8位并行双向I/O口P0~P3,共32根I/O线。每一根线能独立用作输入或输出。单片机可以外接键盘、显示器等外围设备.还可以进行系统扩展,以解决硬件资源不足问题。4个并行口都是双向口,既可以输入又可以输出。P0、P2口经常作外部扩展存储器时的数据、地址线,P3口除作I/O口外,每一根都有第二功能。这4个I/O口结构基本相同,但仍存在差别。

(1) P1口是最常用的I/O口如图3所示,因为不作数据地址线,其结构中没有数据地址线,也没有多路开关MUX,输出驱动电路接有上拉电阻。P1口输入输出时与P0作I/O时相似,输出数据时.先写入锁存器,经Q端反相,再经场效应管反相输出到引脚。输入时,先向锁存器写l,使v管截止.外部引脚信号由下方读缓冲器送入内部总线,完成读引脚操作。P1口也可以读锁存器。外部提升电阻将引脚拉升至高电平,但输人的低电平信号能将其拉低,不会影响低电平的输入。

图3 P1口一位结构

(2) P3口为双功能口,当P3口作为通用I/O口使用时,它为准双向口,且每位都可定义为输入或输出口,其工作原理同P1口类似。

(3)P3口还具有第二功能,其引脚描述,P3口特殊功能。

4.3最小系统控制部分

4.3.1 晶振电路

电源引脚Vcc和Vss

Vcc:电源端,接+5V。

Vss:接地端。

时钟电路引脚XTAL1和XTAL2

XTAL1:接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。

XTAL2:接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚为外部时钟的输入端。

系统扩展时,ALE用于控制地址锁存器锁存P0口输出的低8位地址,从而实现数据与低位地址的复用。

图4 系统晶振电路

系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路(如图5所示)。AT89S单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。

外部程序存储器读选通信号,是读外部程序存储器的选通信号,低电平有效。

程序存储器地址允许输入端/VPP。

当为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFH 时,将自动转向执行片外程序存储器指令。当为低电平时,CPU只执行片外程序存储器指令。

输入/输出口引脚P0、P1、P2和P3。

P0口(P0.0~P0.7):该端口为漏极开路的8位准双向口,负载能力位8高LSTTL负载,它为8位地址线和8位数据线的复用端口。

P1口(P1.0~P1.7):它是一个内部带上拉电阻的8位准双向I/O口,P1口的驱动能力为4个LSTTL负载。

P2口(P2.0~P2.7):它为一个内部带上拉电阻的8位准双向I/O口,P2口

的驱动能力也为4个LSTTL负载。在访问外部程序存储器时,它作存储器的高8位地址线。

P3口(P3.0~P3.7):P3口同样是内部带上拉电阻的8位准双向I/O口,P3口除了作为一般的I/O口使用之外,其还具有特殊功能。

4.3.2 复位电路

复位使单片机处于起始状态,并从此状态开始运行MCS5-51单片机RST引脚为复位端,该引脚连续保持2个机器周期(24个时钟振荡周期)以上的高电平。可使单片机复位。本论文使用的是外部复位电路,单片机在启动后要从复位状态开始运行,因此上电时要完成复位工作,称上电复位,如图5-a所示。上电瞬间电容两端的电压不能发生突变,只RST端为高电平+5v,上电后电容通过及RC电路放电RST端电压逐渐下降,直至低电平0V,如图5-c所示。适当选择R、C的值,使RST端的高I电平维持2个机器周期以上即可完成复位。单片机L在运行过程中,出于本身或外并干扰的原因会导致出错。这时可按复位键以重新开始远行,按键复位可分为按键电平复位或按健脉冲复位,如图5-b所示。按键脉冲复位和上电平复值的原理是一样的,都是利用RC电路的放电原理,如图5-d所示。让RST端能保持一段时间的高电平,以完成复位,按键电平复位时,按键时间也应保持在两个机器周期以上。

(a)上电复位 (b) 按键电平复位

(c) RC放电过程 (d) 电平复位过程

图5 单片机常用复位电路

根据设计要求和计算简便的原则,我们选择12M的石英晶振、22PF的电容、+5V电源,最小系统如下:

图6最小系统连接图

4.4数码管显示电路

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的

数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。

数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。

①静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O 端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

②动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

图7四位数码管引脚图

四位数码管引脚如上图所示,在实际判别中,让有小数点的端对着自己,上面引脚的功能为1,a,f,2,3,b下面引脚为e,d,p,c,g,4 根据七段数码管的连接原则,可以将abcdefg分别依次连接在P0口,然后由P2口控制片选信号就可以了。

内部的四个数码管共用a~dp这8根数据线,为人们的使用提供了方便,因为里面有四个数码管,所以它有四个公共端,加上a~dp,共有12个引脚,下面便是一个共阴的四位数码管的内部结构图(共阳的与之相反)。引脚排列依然是从左下角的那个脚(1脚)开始,以逆时针方向依次为1~12脚,下图中的数字与之一一对应。

4.5 功率放大电路

因为单片机电源为+5V,而在电路中又有电源损耗,会造成数码管无法显示或者亮度不够的问题,故需在电路中加入功率放大电路,以保证发光数码管能够正常发光。

功率放大电路通常作为多级放大电路的输出级。在很多电子设备中,要求放大电路的输出级能够带动某种负载,例如驱动仪表,使指针偏转;驱动扬声器,使之发声;或驱动自动控制系统中的执行机构等。总之,要求放大电路有足够大的输出功率。这样的放大电路统称为功率放大电路。

功率放大电路有以下几个要求:

(1)输出功率要大。输出功率Po = UoIo,要获得大的输出功率,不仅要求

输出电压高,而且要求输出电流大。因此,晶体管工作在大信号尽限运用状态,应用时要考虑管子的极限参数,注意管子的安全。

(2)效率要高。放大信号的过程就是晶体管按照输入信号的变化规律,将直流电源提供的能量转换为交流能量的过程。其转换效率为负载上获得的信号功率和电源供给的功率之比值。

(3)合理的设置功放电路的工作状态。

功放电路的工作状态有甲类、乙类、甲乙类及丙类。

由于在能量转换的过程中,晶体管要消耗一定的能量,从而造成了η下降。显然,要提高η,就要设法减小晶体管的损耗。而晶体管的损耗与静态工作点密切相关。图I0401 给出了晶体管的几种工作状态及对应的输出波形。由图可见,甲类状态,iC始终存在,没有信号输入时,直流电源供给的能量全部消耗在晶体管上,这种状态的效率很低,乙类状态,没有信号输入时,iC = 0,晶体管不消耗能量,这种状态的效率较高。这就指明了提高效率的途径是降低静态工作点。

(4)失真要小。甲类功放通过合理设置静态工作点,非线性失真可以很小,但它的效率低。乙类状态虽然效率高,但输出波形却出现了严重失真。为了保存乙类状态高效率的优点,可以设想让两个管子轮流工作在输入信号的正半周和负半周,并使负载上得到完整的输出波形,这样既减小了失真,又提高了效率,还扩大了电路的动态范围。因而在买际中得到广泛应用。

功率放大电路需要三极管、电阻等元器件,在本设计中,要求输出功率尽可能大为了获得大的功率输出,要求功放管的电压和电流都有足够大的输出幅度,因此管子往往在接近极限运用状态下工作。

4.6 显示部分硬件装备图

器件参数:

数码管4个,排阻,74LS07芯片,74LS00芯片,电阻510欧,电容uf,4.7uf,20pf,晶振,导线诺干。 4 管脚说明 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:来自反向振荡器的输出。

五、用DXP绘制电路图

5.1 电路板设计规则

在PCB 设计中,布线是完成产品设计的重要步骤,PCB 布线有单面布线、双面布线和多层布线。为了避免输入端与输出端的边线相邻平行而产生反射干扰和两相邻布线层互相平行产生寄生耦合等干扰而影响线路的稳定性,甚至在干扰严重时造成电路板根本无法工作,在PCB 布线工艺设计中一般考虑以下方面:

5.1.1 考虑PCB 尺寸大小

PCB 尺寸过大时,印制线条长,阻抗增加,抗噪声能力下降,成本也增加;尺寸过小,则散热不好,且邻近线条易受干扰。应根据具体电路需要确定PCB 尺寸。

5.1.2 确定特殊组件的位置

确定特殊组件的位置是PCB 布线工艺的一个重要方面,特殊组件的布局应主要注意以下方面:

●尽可能缩短高频元器件之间的联机,设法减少它们的分布参数和相互间的电磁干扰。易受干扰的元器件不能相互离得太近,输入和输出组件应尽量远离。

●某些元器件或导线之间可能有较高的电位差,应加大它们之间的距离,以免放电引出意外短路。带高电压的元器件应尽量布置在调试时手不易触及的地方。

基于单片机的电机转速测量系统

兰州交通大学 毕业设计文献综述 题目:基于单片机的电机转速测量系统Title:Motor speed measuring system based on single chip microcomputer 姓名:韦宝芸

学号:3 班级:机设1202班 摘要 本文首先叙述了单片机测量转速的系统构成及转速测量的几种常用方法,分析了相应方法在测量上的特点、误差和计算。其次,针对特定的应用环境,设计出一种基于 80C51单片机的全数字式测速系统,详细阐述了系统的工作原理,指出产生误差的可能原因,并给出了具体解决的方法;根据系统要求编制了源程序,分析其工作流程。最后,对构建的系统利用仿真机进行调试,对测量指标进行了分析、比较并提出改进方案。 关键词:单片机、转速、测量精度 Abstract

This paper first discussed some ways for rotary speed measure. It analyzed characters and errors of these ways. Second, it designed full digital measure system based on a Single-Chip Microprocessor(80C51) responding to special application, stated the working theory of the system and the methods to solve the errors, writed the working programmes by A51 assemble language. Finally, this system implementation was confirmed by using of Keil-51 simulator. The characters on the error margin and accuracy was summarized. Keywords : Single-Chip Microprocessor、rotary speed 、measureprecision Keil-51

单片机方波发生器

单片机方波发生器 组成:单片机最小系统+显示屏+矩阵键盘 1. 数字输入键盘(0-9和小数点)-------11个按键 输入 2. 调整参数光标移动键(上下)----------2个按键 上下移动到需要调整的参数上 3. 参数确认键-------------------------------------1个按键 参数生效 4. 参数取消键-------------------------------------1个按键 参数更改(可无) 5. 脉冲触发输出键-------------------------------1个按键 脉冲输出 6. 信号发生器性能: 显示屏可调的参数有(同时显示三行,价格尽量低一些): 输出脉冲个数:xxxx 1-9999次(可商议) 输出脉冲宽度:xxxx.x us,步进0.05us . 最大值尽可能大 多脉冲间隔时间: xxxx.x us,步进0.05us (可以放宽到 0.1us ) 当输出单脉冲时候,间隔时间依然有效(按下触发等待时间1-5S ) 串口通讯:可以通过串口发送特定命令来输入上述信息和触发动作---本功能另外付50元,本次有没有都可以。没有付150元+硬件。 原材参考(淘宝有卖,接包方自购,买家承担100%费用):单片机最小系+显示屏(尽量不用1602) +16键矩阵键盘 期望输出波形图如下: 围0.05us---max 步进0.05us 围0.05us---max ,步 进0.05us

验收标准: 1. 接包方视频展示功能正确 2. 需求方收到实物,实际验证功能/输出正确 其他要求: 接包方自行购买所需硬件(最小系统+显示屏+按键键盘),软件内代码需做必要注释(尤其功能/参数调整部分),最终把全部功能硬件+软件源代码/执行文件一起寄送给需求方(硬件/邮费需求方支付)。 纯粹自己玩和学习,非毕业设计/成品(任意信号源成品已经很成熟且价格足够低),所 以只需要功能实现即可,对硬件没有要求。 单片机选型尽量低端的,毕竟需要另外买。

05_STM32F4通用定时器详细讲解精编版

STM32F4系列共有14个定时器,功能很强大。14个定时器分别为: 2个高级定时器:Timer1和Timer8 10个通用定时器:Timer2~timer5 和 timer9~timer14 2个基本定时器: timer6和timer7 本篇欲以通用定时器timer3为例,详细介绍定时器的各个方面,并对其PWM 功能做彻底的探讨。 Timer3是一个16位的定时器,有四个独立通道,分别对应着PA6 PA7 PB0 PB1 主要功能是:1输入捕获——测量脉冲长度。 2 输出波形——PWM 输出和单脉冲输出。 Timer3有4个时钟源: 1:内部时钟(CK_INT ),来自RCC 的TIMxCLK 2:外部时钟模式1:外部输入TI1FP1与TI2FP2 3:外部时钟模式2:外部触发输入TIMx_ETR ,仅适用于TIM2、TIM3、TIM4,TIM3,对应 着PD2引脚 4:内部触发输入:一个定时器触发另一个定时器。 时钟源可以通过TIMx_SMCR 相关位进行设置。这里我们使用内部时钟。 定时器挂在高速外设时钟APB1或低速外设时钟APB2上,时钟不超过内部高速时钟HCLK ,故当APBx_Prescaler 不为1时,定时器时钟为其2倍,当为1时,为了不超过HCLK ,定时器时钟等于HCLK 。 例如:我们一般配置系统时钟SYSCLK 为168MHz ,内部高速时钟 AHB=168Mhz ,APB1欲分频为4,(因为APB1最高时钟为42Mhz ),那么挂在APB1总线上的timer3时钟为84Mhz 。 《STM32F4xx 中文参考手册》的424~443页列出与通用定时器相关的寄存器一共20个, 以下列出与Timer3相关的寄存器及重要寄存器的简单介绍。 1 TIM3 控制寄存器 1 (TIM3_CR1) SYSCLK(最高 AHB_Prescaler APBx_Prescaler

产生方波程序

ORG 0000H LJMP MAIN ORG 0003H LJMP KG MAIN: SETB EA ; SETB EX0 ; SETB IT0 ; CLR ET0 ; CLR TR0 ; MOV TMOD ,#00H MOV TH0 ,#0FCH MOV TL0 ,#1CH LOOP: JBC TF0, LOOP1 ;查询方式 AJMP LOOP; LOOP1:CPL P1.0 MOV TH0 ,#0FBH MOV TL0 ,#0AH LOOP3: JBC TF0, LOOP2 ; 查询方式 AJMP LOOP3 LOOP2: CPL P1.0 MOV TH0 ,#0FCH MOV TL0 ,#1CH AJMP LOOP; KG : CPL TR0; RETI END ORG 0000H LJMP MAIN ORG 0003H LJMP KG ORG 000BH LJMP PIOT0 ORG 001BH LJMP PIOT1 MAIN: SETB EA ; SETB EX0 ; SETB ET0 SETB ET1 SETB IT0 SETB IT1

CLR TR0 CLR TR1 MOV TMOD ,#00H MOV TH0 ,#0FCH MOV TL0 ,#1CH HERE :SJMP HERE PIOT0:CPL P1.0 MOV TH1 ,#0FBH; MOV TL1 ,#0AH; RETI PIOT1:CPL P1.0; MOV TH0 ,#0FCH MOV TL0 ,#1CH RETI KG : CPL TR0 CPL TR1 END ORG 0000H LJMP MAIN ORG 0003H LJMP KG ORG 000BH LJMP PIOT0 MAIN: SETB EA ; SETB EX0 ; SETB ET0 CLR ET1 SETB IT0 CLR TR0 CLR TR1 MOV TMOD ,#00H MOV TH0 ,#0FCH MOV TL0 ,#1CH HERE:JBC TF1,LOOP SJMP HERE PIOT0:CPL P1.0 MOV TH1 ,#0FBH; MOV TL1 ,#0AH; CLR TR0 SETB TR1 RETI

STM32单片机定时器调试之方波输出

STM32单片机定时器调试之方波输出 今天试着让STM32的定时器输出50%占空比信号,按 照例程写了一下方波初始化函数,例程用的是STM32自 带库函数,由于嫌麻烦,我又自己写了一个简单的,采 用定时器1进行输出。结果一上来,没反应,修改了很 多参数,还是没反应,然后将开发板例程写进芯片后, 有反应,仔细越多数据手册,没有问题,纠结一上午, 中午吃饭。吃完饭后,下午又开始试验,还是别人程序 有反映,自己程序,没反应。再看了看,开发板程序使 用的是TIM3,而我使用的是TIM1,于是又把我的程序将TIM1换成TIM3,点击调试运行,有反应。不会是高级 定时器只能干高级的任务吧,像输出方波这么简单的低 级任务他不惜的干?郁闷了半天。后来通过在网上查找,这个程序 以下为源代码,CC1进行比较输出,模式为翻转电平. 程序运行后,CC中断可以进去,PA.11的指示灯能闪, 但PA.08的指示一直为低电平,请教一下程序哪里错了??? void TIM1_CC_Init(void) { NVIC_InitTypeDef NVIC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure;

/* 使能定时器 TIM1_CC 中断 */ NVIC_InitStructure.NVIC_IRQChannel = TIM1_CC_IRQChannel; NVIC_InitStructure.NVIC_IRQChannelPreemptionPrior ity = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /* 配置 PA.11 为推挽输出 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIOA->;BSRR = GPIO_Pin_11; // 将PA.08配置为高电平 /* 配置 PA.08 为复用推挽输出 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); /* 预分频自动重载寄存器 */

课程设计—基于单片机的方波信号发生器汇总

微型计算机技术专业方向课程设计 任务书 题目名称:基于单片机的方波信号发生器 专业自动化班级122 姓名学号 学校: 指导教师: 2014年12月9日

课程设计任务书 课程名称:微型计算机技术 设计题目:基于单片机的方波信号发生器系 统硬件要求: 从P1.0口输出方波,分四个档:按下S1时输出1HZ,按下S2时输出10HZ,按下S3时输出1KHZ,按下S4时输出10KHZ的方波,要求误差少于1%, 软件设计: 1)主程序设计 2)各功能子程序设计 其他要求: 1、每位同学独立完成本设计。 2、依据题目要求,提出系统设计方案。 3、设计系统电路原理图。 1、调试系统硬件电路、功能程序。 2、编制课程设计报告书并装订成册,报告书内容(按顺序) (1)报告书封面 (2)课程设计任务书 (3)系统设计方案的提出、分析 (4)系统中典型电路的分析 (5)系统软件结构框图 (6)系统电路原理图 (7)源程序 (8)课设字数不少于2000字 成绩 评语

摘要 本实验是基于AT89C51单片机单片机所设计的,可以实现四种频率不同的方波信号的发生。本实验方波输出在89C51的P1.0口,分为四档,按下S1时输出1HZ,按下S2时输出10HZ,按下S3时输出1KHZ,按下S4时输出10KHZ的方波。 关键词:51单片机;方波;四档

目录 第一章前言 (5) 第二章系统总体设计 2.1系统介绍 (5) 2.2 硬件简介 (5) 2.3 软件简介 (5) 2.4 系统结构框图 (5) 第三章硬件电路 3.1硬件设计思想 (6) 3.2开关信号采集 (6) 3.3复位电路及晶振电路 (8) 3.4方波输出 (8) 第四章软件系统 4.1软件系统概述 (8) 4.2各部分程序 (10) 第五章总结 (15) 附录 (16)

STM32通用定时器_15-1-6

通用定时器的相关配置 1、预装入(Preload) 预装入实际上是设置TIMx_ARR寄存器有没有缓冲,根据“The auto-reload register is preloaded。Writing to or reading from the auto-reload register accesses the preload register。”可知: 1)如果预装入允许,则对自动重装寄存器的读写是对预装入寄存器的存取,自动重装寄存器的值在更新事件后更新; 2)如果预装入不允许,则对自动重装寄存器的读写是直接修改其本身,自动重装寄存器的值立刻更新; 3)设置方式:TIMx_CR1 →ARPE(1) 2、更新事件(UEV) 1)产生条件:①定时器溢出 ②TIMx_CR1→ UDIS = 0 ③或者:软件产生,TIMx_EGR→ UG = 1 2)更新事件产生后,所有寄存器都被“清零”,注意预分频器计数 器也被清零(但是预分频系数不变)。若在中心对称模式下或DIR=0(向上计数)则计数器被清零;若DIR=1(向下计数)则计数器取TIMx_ARR的值。 3)注意URS(复位为0)位的选择,如下:

如果是软件产生更新,则URS→1,这样就不会产生更新请求 和DMA请求。 4)更新标志位(UIF)根据URS的选择置位。 5)可以通过软件来失能更新事件: 3、计数器(Counter) 计数器由预分频器的输出时钟(CK_CNT)驱动,TIMx_CR1→CEN = 1 使能,注意:真正的计数使能信号(CNT_EN)在 CEN 置位后一个周期开始有效。 4、预分频器(Prescaler) 预分频器用来对时钟进行分频,分频值由TIMx_PSC决定,计数器的时钟频率CK_CNT= fCK_PSC / (PSC[15:0] + 1)。 根据“It can be changed on the fly as this control register

汽车车速检测系统设计

目录 摘要 (1) 关键词 (1) Abstract (1) Key words (1) 引言 (2) 1 论文综述 (2) 1.1 车速检测系统的背景和意义 (2) 1.2 车速检测系统的发展前景 (3) 2 车速检测系统的设计思路 (3) 3 系统单元模块选型 (3) 3.1传感器选择 (3) 3.2 单片机选型 (4) 3.3 显示模块的选型 (4) 3.4 报警电路选择 (5) 3.5 程序语言的选择 (5) 4 系统硬件设计 (6) 4.1 AT89C51主控电路 (6) 4.1.1 AT89C51的管脚说明 (6) 4.1.2 复位电路 (7) 4.1.3 晶振电路 (8) 4.1.4 存储器AT24CO2 (9) 4.2 传感器电路模块介绍 (9) 4.2.1 霍尔式车速传感器 (10) 4.2.2 霍尔传感器的特性 (11) 4.2.3 霍尔传感器引脚说明 (12) 4.2.4 霍尔传感器车速测量原理 (12) 4.2.5 霍尔传感器的转速测量方法 (12) 4.2.6 霍尔传感器设计电路 (12) 4.3 显示模块的介绍 (13) 4.3.1 LED数码管介绍 (13) 4.3.2 LED数码管特性 (13)

4.3.3 74HC573作用………………………………………………………………………… 13 4 4.3.4 显示电路 (13) 4.4 DM74LS14工作原理 (17) 4.4.1 信号处理电路设计 (17) 4.5 硬件总体设计 (17) 5 软件设计 (19) 6 总结 (19) 参考文献 (20) 附录A (21) 附录B (22) 致谢 (29)

基于MCS-51单片机的可调频率方波发生器课程设计报告[1]

单片机课程设计报告 设计题目:频率可调方波发生器 专业班级:生物医学工程09班 组长:李建华 组员:梁国锋,赖水兵,郭万劲,李建华2010 年 06 月 16日

摘要 本实验是基于PHILIPS AT89C51 单片机所设计的,可以实现键位与数字动态显示的一种频率可调方波发生器。通过键盘键入(10HZ-9999HZ)随机频率,使用七段数码管显示,每一个数码管对应一个键位。单片机对各个键位进行扫描,确定键位的输入,然后数码管显示输入的数值,方波发生器输出以数码管显示的数值为频率的方波。 关键词:单片机七段数码管键盘电路频率可调方波发生器

一、目的和功能 1.1 目的: 设计一种频率范围限定且可调的方波发生器,志在产生特定频率的方波。 1.2功能: 假设键盘是4*4的键盘,当键盘输入范围在10hz-9999hz的数字,单片机控制数码管显示该数值,并把该数值当做方波发生器的输入频率,单片机控制该方波发生器以该数值作为频率显示方波,从而得到我们想要频率的方波。 二、硬件设计 2.1 硬件设计思想 键盘的数字和键位关系固定,通过键盘输入产生频率,通过LED数码管显示出来,每一个数码管对应一个键位。基本设备是基于PHILIPS AT89C51单片机,外围设备采用的是4个七段数码管,PHILIPS A T89C51单片机,1个OSCILLOSCOPE 方波发生器,16个Button,若干电阻,电源电池。 2.2 部分硬件方案论述 2.2.1 七段数码管扫描显示方式的方案比较 方案一:静态显示方式:静态显示方式是指当显示器显示某一字符时,七段数码管的每段发光二极管的位选始终被选中。在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。其不足之处是占用硬件资源较多,每个LED数码管需要独占8条输出线。随着显示器位数的增加,需要的I/O口线也将增加。

stm32定时器的区别

STM32高级定时器、通用定时器(TIMx) 、基本定时器(TIM6和TIM7) 区别? 高级定时器TIM1和TIM8、通用定时器(TIM2,TIM3,TIM4,TIM5) 、基本定时器(TIM6和TIM7) 区别? TIM1和TIM8主要特性TIM1和TIM8定时器的功能包括: ● 16位向上、向下、向上/下自动装载计数器 ● 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意数值 ● 多达4个独立通道:─ 输入捕获─ 输出比较─ PWM生成(边缘或中间对齐模式) ─ 单脉冲模式输出 ● 死区时间可编程的互补输出 ● 使用外部信号控制定时器和定时器互联的同步电路 ● 允许在指定数目的计数器周期之后更新定时器寄存器的重复计数器 ● 刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态 ● 如下事件发生时产生中断/DMA:─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) ─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) ─ 输入捕获─ 输出比较─ 刹车信号输入 ● 支持针对定位的增量(正交)编码器和霍尔传感器电路 ● 触发输入作为外部时钟或者按周期的电流管理 TIMx主要功能通用TIMx (TIM2、TIM3、TIM4和TIM5)定时器功能包括: ● 16位向上、向下、向上/向下自动装载计数器 ● 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65536之间的任意数值 ● 4个独立通道:─ 输入捕获─ 输出比较─ PWM生成(边缘或中间对齐模式) ─ 单脉冲模式输出 ● 使用外部信号控制定时器和定时器互连的同步电路 ● 如下事件发生时产生中断/DMA:─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) ─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) ─ 输入捕获─ 输出比较 ● 支持针对定位的增量(正交)编码器和霍尔传感器电路 ● 触发输入作为外部时钟或者按周期的电流管理 TIM6和TIM7的主要特性TIM6和TIM7定时器的主要功能包括: ● 16位自动重装载累加计数器 ● 16位可编程(可实时修改)预分频器,用于对输入的时钟按系数为1~65536之间的任意数值分频 ● 触发DAC的同步电路注:此项是TIM6/7独有功能. ● 在更新事件(计数器溢出)时产生中断/DMA请求 强大,高级定时器应该是用于电机控制方面的吧

基于单片机的汽车速度测量系统设计说明

专业技能实训报告 题目基于单片机的汽车速度测量系统设计 学院信息科学与工程学院 专业通信工程 班级通信0902 学生彭元 学号 20091221 指导教师 二〇一二年一月三日

目录 1前言 (2) 2 总体设计 (3) 2.1 设计方案 (3) 2.2 主要容 (3) 3 单片机速度测量系统 (4) 3.1 单片机速度测量原理 (4) 3.2 单片机速度测量系统结构框图 (4) 4 系统硬件设计 (5) 4.1 传感器的选用 (5) 4.1.1 霍尔传感器的基本工作原理 (5) 4.1.2 CS3020霍尔传感器 (6) 4.1.3 霍尔传感器的硬件连接 (7) 4.2 MCU 控制系统设计 (8) 4.2.1 CPU的选用 (8) 4.2.2 AT89S51 主要特性和引脚说明 (8) 4.2.3 MCU 最小系统设计 (10) 4.3 LED 数码管显示器 (11) 4.4 单片机测速系统总原理图 (11) 5 系统软件设计 (12) 5.1 程序流程图 (12) 5.2 程序功能 (14) 结语 (15) 参考文献 (16) 附录 (16)

1 前言 随着信息技术的不断发展,单片机在测量系统中得到了广泛的应用。速度是一个系统经常需要测量、控制和保持的量。速度的测量方法有许多种,但在不同的应用环境下,相应的测量方法有它自己的特点和误差。因此对单片机速度测量系统的研究有着重要的目的和意义。本设计采用 AT89S51 单片机作为主要控制核心,应用霍尔传感感器采集信号,经过单片机定时计数并运用一个算法测量出汽车行驶速度,最终用4位位的在以上建的系统的基础上LED数码管显示其测量结果,具有较高的实用价值。

单片机输出方波及显示宽度

桂林电子科技大学单片机最小应用系统 设 计 报 告 指导老师:吴兆华 学生:冯焕焕 学号:1000150301

前言 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新.在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善. 单片机是指在一个芯片上集成了中央处理器、存储器和各种I/O接口的微型计算机,它主要面向控制性应用领域,因此又称为嵌入式微控制器。单片机诞生30多年以来,其品种、功能和应用技术都得到飞速的发展,单片机的应用已深入国民经济和日常生活的各个领域。 本次课程设计目的主要是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 本课程设计实在学完单片机原理及课程之后综合利用所学单片机只是完成一个单片机应用系统设计并在实验室实现。该课程设计的主要任务是通过解决一、两个实际问题,巩固和加深“单片机原理和应用”课程中所学的理论知识和实验能力,基本掌握单片机应用电路的一般设计方法,提高电子电路的设计和实验能力,加深对单片机软硬知识的理解,获的初步的应用经验,为以后从事生产和科研工作打下一定的基础。 摘要

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。单片机是20世纪中期发展起来的一种面向控制的大规模集成电路模块,具有功能强、体积小、可靠性高、价格低廉等特点,在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域得到了广泛的应用,极大的提高了这些领域的技术水平和自动化程度。单片机应用的意义绝不仅限于它的广阔范围以及带来的经济效益,更重要的意义在于,单片机的应用正从根本上改变着传统的控制系统的设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分控制功能,现在使用单片机通过软件就能实现了。随着单片机应用的推广普及,单片机控制技术将不断发展,日益完善。本文是设计频率/脉冲宽度的测量与显示的硬件电路与程序的编制。它可以测量脉冲信号的脉冲宽度,频率等参数。利用定时器的门控信号GATE进行控制可以实现脉冲宽度的测量。利用定时器T0定时T1计数来测量由P3.5口输入的脉冲信号的频率。在单片机应用系统中,为了便于对LED显示器进行管理,需要建立一个显示缓冲区。显示时采用动态扫描的方式将将各位数的BCD码依序输入到LED中,并连续扫描2秒钟。通过采用STC89C52RC 单片机为中心器件来设计脉冲宽度测量器,并运用MCS—51/52单片机计数功能,选择好工作模式,对脉宽进行计数。在现有的单片机仿真机系统上掌握相关软硬件设计与调试知识,并在计算机上编写汇编程序调试运行。 关键词: 门控信号GATE;脉冲宽度;扩展测量范围;脉冲频率 ABSTRACT

STM32学习笔记通用定时器PWM输出

STM32学习笔记(5):通用定时器PWM输出 2011年3月30日TIMER输出PWM 1.TIMER输出PWM基本概念 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术。简单一点,就是对脉冲宽度的控制。一般用来控制步进电机的速度等等。 STM32的定时器除了TIM6和TIM7之外,其他的定时器都可以用来产生PWM输出,其中高级定时器TIM1和TIM8可以同时产生7路的PWM输出,而通用定时器也能同时产生4路的PWM输出。 1.1PWM输出模式 STM32的PWM输出有两种模式,模式1和模式2,由TIMx_CCMRx寄存器中的OCxM位确定的(“110”为模式1,“111”为模式2)。模式1和模式2的区别如下: 110:PWM模式1-在向上计数时,一旦TIMx_CNTTIMx_CCR1时通道1为无效电平(OC1REF=0),否则为有效电平(OC1REF=1)。 111:PWM模式2-在向上计数时,一旦TIMx_CNTTIMx_CCR1时通道1为有效电平,否则为无效电平。 由此看来,模式1和模式2正好互补,互为相反,所以在运用起来差别也并不太大。 而从计数模式上来看,PWM也和TIMx在作定时器时一样,也有向上计数模式、向下计数模式和中心对齐模式,关于3种模式的具体资料,可以查看《STM32参考手册》的“14.3.9 PWM模式”一节,在此就不详细赘述了。 1.2PWM输出管脚 PWM的输出管脚是确定好的,具体的引脚功能可以查看《STM32参考手册》的“8.3.7 定时器复用功能重映射”一节。在此需要强调的是,不同的TIMx有分配不同的引脚,但是考虑到管脚复用功能,STM32提出了一个重映像的概念,就是说通过设置某一些相关的寄存器,来使得在其他非原始指定的管脚上也能输出PWM。但是这些重映像的管脚也是由参考手册给出的。比如

一种单片机的速度测量系统

一种基于单片机的速度测量系统 时间:2010-03-31 14:00:15 来源:中国电子设计网作者:吴敏 1. 引言 在我室研制的某型测控系统中,遇到一弹丸状物体的初速测量要求,速度范围在0~150m/s,要求测速模块实现成本低、可靠性高,测速数据送上位机显示。 目前科研生产中采用的速度测量方法可分为两类;直接测量法和间接测量法两大类。直接测量法是通过某种测量原理或效应直接获得速度量, 如多普勒测速仪、空间滤波测速等。这种方法的最大优点是反应快、可测量瞬时速度,但设备成本高,且受到大气物理环境的限制。间接测量法是测量目标的移动距离和时间, 通过计算得到速度量, 如光电测速、光栅测速、磁栅测速和图像测速等,用于测量小型弹丸的天幕法和光幕法测速系统、用于车辆测速的激光测速仪,以及用于生产流水线上的光电脉冲测速方法等等。 根据本系统的特点,我室采用了基于光电脉冲的间接测量方法,构建了基于AT89C51单片机测速系统,并采用DDE技术、VB和组态王实现速度信息的上位机显示,满足了成本低、可靠性好的测速要求;此外本文提出的单片机与上位机数据通信方法为多种工控软件和非通用性设备的数据交换问题提供了思路。 2. 单片机测速模块的实现 a) 测速原理 在本系统中,两对光电对射管布置在弹丸的通过路径上,光电对射管间距为S,当弹丸经过遮蔽光电管1,2时,光电管1,2产生一个上升沿或下降沿,以光电管1的上升沿或下降沿作为单片机计数器的启动脉冲,启动计数器开始记时,光电管2的上升沿或下降沿作为单片机计数器的停止脉冲,计数器停止记时。此时,得到计数器的记时值n。将值n传送至上位机,已知单片机的机器周期为T,则,可在上位机内计算出弹丸在定距s内的平均速度V,为V=S/nT。见如下图1。 b) 测速部分硬件实现 如下图2硬件原理示意图,光电对射管Q1和Q2分别接入AT89C51的外部中断0和1引脚相联,Q1和Q2均为遮断式对射管(无遮断时导通,遮断时截止)。INT0和INT1均设置为下降沿触发。在INT0中断处理程序中,启动AT89C51内计数器T0开始计数,在INT1中断处理程序中,计数器T0停止计数。计数值暂存于单片机寄存器内。当单片机接收到上位机发出的取数指令时,单片机通过串口将寄存器内计

基于单片机的智能速度里程表的设计.

摘要 随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术, 本文主要介绍了一个基于AT89C51单片机的速度里程系统,详细描述了利用霍尔传感器开发测速系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现实现速度、里程的采集和显示,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,有利于我们日常生活和汽车生产业的发展,也可以当作测速处理模块嵌入其它系统中,作为其他主系统的辅助扩展。霍尔传感器与AT89C51结合实现最简测速系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行速度里程测量,有广泛的应用前景。 关键词:单片机AT89C51;速度检测;霍尔传感器;速度里程表

目录 1 绪论 (1) 1.1技术概述 (1) 1.2本课题的背景和意义 (1) 2 系统设计简介 (3) 2.1 速度里程表简介 (3) 2.2 设计目的及要求 (3) 2.3 设计方案论证 (4) 2.4 硬件设计电路 (4) 3 设计语言及软件介绍 (6) 3.1 C语言介绍 (6) 3.2 软件介绍 (6) 3.2.1Proteus软件 (6) 3.2.2Keil C51 (7) 3.2.3单片机最小系统及复位电路 (7) 4 系统软件设计 (9) 4.1 概述 (9) 4.2 系统程序设计模块及流程图 (9) 4.2.1主程序 (10) 4.2.2延时子程序 (12) 4.2.3显示程序 (13) 4.3 调试及仿真 (13) 5 设计总结和体会 (15) 6 参考文献 (16)

单片机产生脉冲波

晶振12M任意占空比方波输出 信号发生器又称波形发生器,是一种常用的信号源,被广泛地应用于无线电通信、自动测量和自动控制等系统中。传统的信号发生器绝大部分是由模拟电路构成,借助电阻电容,电感电容、谐振腔、同轴线作为振荡回路产生正弦或其它函数波形。频率的变动由机械驱动可变元件完成,当这种模拟信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保证,而且体积和功耗都很大,而由数字电路构成的低频信号发生器,虽然其低频性能好但体积较大,价格较贵。 在今天,随着大规模集成电路和信号发生器技术的发展,许多新型信号发生器应运而生。用信号发生器并配置适当接口芯片产生程控正弦信号,则可替代传统的正弦信号发生器,从而有利于测试系统的集成化、程控化和智能仪表的多功能化。而信号发生器的最大特点是面向控制,由于它集成度高、运算速度快、体积小、运行可靠、价格低,因此在数据采集、智能化仪器等技术中得到广泛的应用,从而使得信号发生器的应用成为工程技术多学科知识汇集的一个专门研究领域,其应用产生了极高的经济效益和社会效益。 如果是占空比任意,现在考虑12M晶振,所以机器周期Tcy为1 μs。 定时器工作方式1最长定时为65536×1×10-6=65.536ms 如果要输出周期为1s的任意占空比的方波。那可以把1s分为100份,每份中断一次。然后在中断里面计数(比如全局变量num)加一。加到100之后,表示一个周期结束。这样就可以控制每一份的电平的高低了。如果,占空比为30%,那么也就是num小于等于100×30%=30的时候,输出高电平,其余输出低电平就可以了。如果占空比为a(百分号的形式),那么也就是num小于等于100×a的时候输出高电平,其余输出低电平就可以了。 现在考虑定时器的初值如何设定,由于定时器需要在1s/100也就是10ms的时候进入一次中断进行判断。如果采用方式1,那么因为(216 ?X) ? 1 ? 10?6 = 10 ? 10?3, 所以定时器的初值为X=65536 – 1000. #include //头文件 sbit output=P1^1; //输出端 unsigned char num=1; //辅助计时 unsigned int a = 0.3;占空比a可以任意设定 void Init(void) //初始化函数 { //对于定时器一般初始化需要六步 TMOD=0x01; TH0=(65536-1000)/256; //(65536-1000)为定时器初值,定时10ms TL0=(65536-1000)%256; EA=1; ET0=1; TR0=1; } main() { Init(); while(1) { if(num<=100*a)output=1; //使占空比为a

单片机产生各种波形及其程序图

源程序如下: #include #define uchar unsigned char #define uint unsigned int unsigned char x=0,m=0,y=128; sbit WR_DA=P2^1; sbit CS_DA=P2^0;//DA与单片机的接口 sbit S0=P3^0; //波形选择,每次按下将产生不同的波形 sbit S1=P3^1; //频率减 sbit S2=P3^2; //频率加 sbit S3=P3^3; //调节方波的占空比 uchar code SinTab[256]={0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2,0xa 5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0xbc,0xbf,0xc2,0xc5 ,0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1,0xe3,0xe5,0xe7,0xe 9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5 ,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xfe,0xfd ,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf2,0xf1,0xef,0xee,0xec,0xea,0x e9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda ,0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc,0xba,0xb7,0xb4,0xb 1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99 ,0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76,0x72,0x6f,0x6c,0 x69,0x66,0x63,0x60,0x5d,0x5a,0x57,0x55,0x51 ,0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30,0x2e,0x2b,0x29,0 x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16 ,0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06,0x05,0x04,0x03,0 x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00

基于单片机速度测量系统的设计

基于单片机计速器的设计 摘要:随着信息技术的不断发展,单片机在测量系统中得到了广泛的应用。速度是一个系统经常需要测量、控制和保持的量。速度的测量方法有许多种,但在不同的应用环境下,相应的测量方法有它自己的特点和误差。因此对单片机速度测量系统的研究有着重要的目的和意义。本设计采用AT89S51单片机作为主要控制核心,应用霍尔传感器采集信号,经过单片机定时计数并运用一个算法测量出汽车行驶速度,最终用4位LED数码管显示其测量结果,具有较高的实用价值。本文的优点是充分发挥了单片机的性能,硬件电路简单,软件功能完善,测量速度快、精度高,成本低等特点。 关键词:单片机;速度测量;霍尔传感器;LED

目录 1总体设计 (1) 1.1系统设计方案论证 (1) 1.2本系统设计的主要内容 (1) 2单片机速度测量系统 (2) 2.1单片机速度测量原理 (2) 2.2单片机速度测量系统结构框图 (2) 3系统硬件设计 (2) 3.1传感器概述 (2) 3.1.1霍尔传感器的基本工作原理 (3) 3.1.2 CS3020霍尔传感器 (4) 3.1.3霍尔传感器的硬件连接 (6) 3.2 MCU控制系统的设计 (6) 3.2.1 CPU的选用 (6) 3.2.2 AT89S51主要特性和引脚说明 (7) 3.2.3 单片机最小系统 (9) 3.3 LED数码管显示器 (10) 3.4单片机测速系统总原理图 (11) 4系统软件设计 (12) 4.1程序流程图 (12) 4.2 程序功能 (13) 4.3 程序调试 (14) 参考文献 (15) 附录 (15)

1总体设计 1.1系统设计方案论证 现在测量速度的方法有很多,可以采用不同的器件做出多种测速器。在这里讨论了两种方案。 方案一:光电式脉冲发生器。 主要由光源、光敏器件和遮光盘组成。车轮旋转带动遮光盘旋转,当遮光盘没有遮住光源时,光源的光射到光敏器件上,光敏器件中有电流流过,于是在输出端产生电压输出。其脉冲频率与车速成正比,经过单片机处理后,即可得出车辆的速度。这种光脉冲发生装置,在转换速度较高的情况下,由于车辆运行中的振动引起的光脉冲干扰等问题不好解决,现在采用的不多。 方案二:磁电式脉冲发生器。 将导磁材料的齿轮固定在转轴上,对着齿轮端面固定一块磁钢,霍尔元件贴在磁钢的一个端面上,随着齿轮转动,元件的输出呈周期性变化,经整形和放大后输出方波脉冲。霍尔传感器输出频率与转速成正比,此信号经单片机处理后,即可得出车辆的速度。 本设计测量要求稳定性好,灵敏度高和精度高,而且对汽车速度的测量要求传感器能够适应各种各样的环境。所以这里选择方案二。其原因还有三点:其一是霍尔传感器输出信号电压幅值不受转速的影响;其二是频率响应高,其响应频率高达20kHz,相当于车速为1000km/h时所检测的信号频率;其三是抗电磁波干扰能力强。 根据脉冲计数来实现转速测量的方法主要有M法(测频法)、T法(测周期法)和M/T法(频率周期法)。测频法一般用于高速测量,在转速较低时,测量误差较大;而测周期法一般用于低速测量,速度越低测量精度越高,但在测量高转速时,误差较大;频率周期法结合了上面两种方法的优点,但是此种方法要求单片机有3个定时/计数器。考虑上面三种因素,该系统选择测频法。 1.2本系统设计的主要内容 根据上面选择的方案,本设计主要内容由以下三大部分组成: 一、信号的采集。这部分主要是用霍尔转速传感器采集车轮转速的信号,并将采集的信号传给单片机。 二、单片机数据处理。这部分主要是使用51系列单片机采用适当的算法来编程快速准确地对采集的数据进行相关运算并得出结果。此部分是本设计的重点和难点。 三、LED数字显示。这部分主要是对测得的结果通过4位LED数码管显示给用户。

用8051单片机定时器产生乐谱的各种频率方波

电子科技大学微机单片机接口 设 计 报 告 指导老师: 学生: 学号:

电子科技大学机电工程学院2009年5月

单片机最小应用系统设计报告 一、设计题目 (1) 二、设计目的 (1) 三、系统硬件图 (2) 3.1 电路设计原理图 (2) 3.2 电路设计PCB图 (4) 四、程序流程图 (6) 五、系统说明与分析 (9) 5.1设计思路及设计过程 (9) 5.2系统结构及各部分说明 (9) 5.3系统连线说明 (16) 5.4系统参数分析 (17) 六、源程序 (17) 七、总结 (25) 八、参考文献 (26)

一、设计题目 用8051单片机定时器产生乐谱的各种频率方波,要求信号经过放大后由喇叭发出声音。可选取某段音乐令单片机连续播放。 二、设计目的 1、通过单片机最小系统的设计,了解常用单片机应用系统开发手段和过程,进一步熟悉和掌握单片机的结构和工作原理,并能初步掌握一般单片机控制系统的编程和应用,从而进一步加深对单片机理论知识的理解。 2、掌握单片机内部功能模块的应用:如定时器、计数器、中断系统、I/O口等。 3、熟悉基本硬件电路的设计与制作。 4、掌握以单片机核心的电路设计的基本方法和技术,了解单片机的基本外围电路的设计和矩阵按键电路及数码管驱动电路的设计。 5、学习UVISION对单片机的编程和调试方法。 6、学习PROTEL软件的使用,掌PROTEL的基本用法,懂得绘制简单得原理图及其PCB的绘制。 7、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。

三、系统硬件图 3.1 电路设计原理图 整个设计主要包括单片机基本的晶振电路,按键复位电路。具体的电路图如下图所示: 对于不同的电路模块进行了分别画图: 下图是最小系统模块。

相关文档
最新文档