【频率计设计的硬件和软件系统分析案例6300字】_第1页
【频率计设计的硬件和软件系统分析案例6300字】_第2页
【频率计设计的硬件和软件系统分析案例6300字】_第3页
【频率计设计的硬件和软件系统分析案例6300字】_第4页
【频率计设计的硬件和软件系统分析案例6300字】_第5页
已阅读5页,还剩19页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

频率计设计的硬件和软件系统分析案例目录TOC\o"1-3"\h\u14111频率计设计的硬件和软件系统分析案例 19466第一章系统硬件设计 1305141.1硬件总体设计 1324821.2单片机最小系统的设计 2142711.3晶振电路设计 3318851.4复位电路设计 46111.5LCD1602显示屏电路设计 5196681.6频率采集模块电路设计 739871.7按键控制模块设计 9325921.8本章小结 1128057第二章系统软件设计 12312142.1LCD1602显示函数的设计 12246562.2取模软件的使用 1361992.3系统程序代码设计 15183822.4单片机的初始化 16107042.5中断初始化 1834312.6本章小结 2129180第三章系统测试与分析 22209003.1系统设计 2261793.2结果分析 23系统硬件设计1.1硬件总体设计在本设计中,主要是以51单片机为核心的控制芯片。外围电路的设计主要包括以下几个模块:复位电路模块的设计,时钟电路的设计模块、屏幕显示模块的电路设计,按键控制显示模块的电路设计,频率检测模块的电路设计,整个系统的设计原理如图1.1所示。图1.1系统设计原理框图1.2单片机最小系统的设计单片机是一种比较高端的微型处理器。这种处理器高端的地方在于将各个总线都被集成起来了,通过一个个的晶体管的控制来实现对各类外设接口的控制。一般来说这类系统在没有接任何外设之前只是一块能够保证一个最基本的系统运行的状态,这其实就是一个系统最精简的状态,也即是最小系统。但是从该单片机的组成和各类引脚的功能控制和复用功能上看,这完全可以看作一个拥有系统控制主导作用的计算机系统。。STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。十分适合本设计的开展和进行其形状和销钉如图1.2所示。这些模块在使用前需要我们注意,最小系统的电路图如图1.2所示:图1.2最小系统原理图1.3晶振电路设计对于任何单芯片微计算机,时钟信号是一个极其重要的模块。一般而言,单片机的时钟信号来自晶振的振动。晶振可以与电容组合以形成振荡电路,这使得MCU的工作进行。这是外部振荡电路的基本组件。但在STM32的内部,在此类MCU芯片的内部没有振荡器拥有自己的振荡器。在一般使用过程中,为了为MCU供电,有必要提供外部晶体振荡器来驱动MCU,然后MCU内的振荡器会产生振荡,以这种方式,可以为整个单芯片微计算机提供整个系统的时钟信号。没有必要将振荡器连接更多。但是,值得注意的是,尽管STM32单片机与晶体振荡器连接,但振荡器的精度将略有偏差。因此,在某些实地合作中,特别是在精确定时的情况下,如计时器或计数器等,这种内部振荡器无法满足我们的要求。除了主时钟信号之外,上文提到的看门狗信号就是辅助时钟信号,这个时钟信号往往是在一些比较特殊的时候使用的,比如说RTC时钟信号源。晶振模块给了单片机一个准确执行命令的时间,通过时钟信号的牵引,单片机可以按部就班的进行指令的控制和执行。就好比是生物钟一样,到了一个时间点该执行什么动作都必须给出来一个详细的指令目标。只要时钟信号保持稳定,那么单片机在执行的时候就会可以稳定的控制各个模块来进行目标功能的实现。时钟信号的产生来自于晶振模块,晶振模块产生时钟信号的动力来源自振荡电路的稳定输出。晶振本义极为晶体振荡器,通过和电容的配合以及放大电路的输出,可以很方便的输出正弦波,这个正弦波所带有的频率和幅度其实就是震荡信号的频率和幅度,也就是晶振上面标注的频率大小。通过对这个振荡频率进行分频的处理,可以保证单片机的稳定工作,避免因为超频工作导致的一系列问题产生,其电路示意图如图1.3所示。:图1.3时钟电路设计原理图1.4复位电路设计事实上,所谓的重置电路相当于计算机的重新启动。当然,我们的重启就是我们熟悉的。就单芯片微计算机而言,单片机实际上是一台小型计算机,可以进行一些简单的操作和处理。在处理该程序的过程中,单片机可以在某些程序中进入死循环,不能跳出循环,因此为了使单片机的控制系统再次发挥以前的作用,我们将重置一次芯片微型计算机一次。另外,我们在使用微控制器的过程中需要对其进行调试,而目前使用的调试多是针对单片机的每一个操作进行定点的片内调试,但是一旦进行了一次调试单片机程序仍可能执行当前的代码。单片机的最小系统中另外一个重要的电路就是复位电路。复位电路在生活中其实很常见,最常见的就是手机的重启或者是电脑的重启。复位电路本质上就是重启电路的设计。通过对复位电路的设计,可以在进行实际的实物调试过程中,通过对单片机的复位操作来进行功能的重置进而实现对系统模块逐步全面的测试和执行控制。单片机在执行过程中其实是单线程的操作。这就是一个while循环保证系统在不间断的运行着,但是对于单片机在实际的使用中往往会出现意想不到的问题,在进行使用或者是调试的过程中,如果出现了系统卡住或者死机的情况,就需要进行复位控制的操作来实现对整个系统的功能重置,这样在不断的测试过程中发现问题,可以很大程度上提高整个系统的设计效率。其电路原理图如图1.4所示:图1.4复位电路设计原理图1.5LCD1602显示屏电路设计LCD1602显示屏是市场上非常受欢迎的展示屏幕。这种显示不需要添加到汉字库中,因此它可以轻松显示字符。其主要界面实际上是一个点阵板,大小为16x2。它不仅包含各种符号,还可以在其上显示ASCII字符。显示我们想要的文本或模式非常方便。在使用之前,我们需要掌握显示屏的指令功能的含义,以便我们可以轻松读取字符的点阵信息。LCD1602主要是通过电量一个一个的液晶点来实现显示的。每一个液晶点可以通过对其至高至第来进行点亮和关闭。通过各个液晶点的点亮和关闭来实现对目标的显示。这就是的显示不但可以大大的扩展到中文字符,更是可以显示各类复杂的符号,只要是通过对目标的取模来进行液晶点的点亮控制来进一步实现对复杂目标的显示。在本设计中通过一组IO口来作为实际的数据传输端口,通过对其RS以及RW等端口的控制来实现对显示屏读写数据的控制。在控制液晶屏睡眠方面,可设计背光控制电路,通过控制J19(背光源正端)、J20(背光端负端)进行控制。LCD1602操作时序图如图1.5所示。。图1.5LCD1602时序图该模块的设计示意图如图1.5所示:图1.5LCD1602显示屏引脚图1.6频率采集模块电路设计 输出电路对数字读出的速度也有一定的限制和要求,输出电路DAC0832的选择可以满足整个系统的要求。DAC0832是一款常用的嵌入式数模信号转换器。DAC0832的内部辅助电路包括两个8位输入控制寄存器、一个8位信号转换器和另一个相应的辅助电路:8位输入控制寄存器是一级锁存器,其辅助电路锁存信号是ILE[6]。当ILE为高时,CS和WR1为低,LE1为1。在这种情况下,输入控制寄存器的输出控制信号随着数据输入而改变。此后,当WR1从低变为高时,ILE从高变为8位低。此时,数据通过控制信号锁存到8位输入控制寄存器中[7~11]。8位数模转换器输入控制寄存器是一个二级锁存器,其辅助电路锁存控制信号也可以称为通道输入控制信号。当WR2和XFEB引脚均为低电平且LE2为高电平时,8位CS和数模转换器寄存器的输出控制信号随数据输入而变化。,此后,当WR2由低变高时,LE2变为8位的低电平,将输入控制寄存器的通道控制信息和数据锁存到8位的DAC输入寄存器。在辅助电路设计中,当DAC0832采用双缓冲连接方式,CS和XFEB引脚共接片上可选控制信号的WY2,WRl和WR2共接8位的AT89S52的CS和WR该模块的设计示意图如图1.6所示。在本电路中,通过设定好电阻R2的值来确保在波形发射端没有物体遮挡的时候,接收端4号引脚的输出电压为0;在有物体遮挡的时候,其输出电压为2.5V。但是这个电压值相对于单片机来说,都属于是低电平,没有了高低电平的变化是无法进入外部中断的,因此我们在这里通过LM358双运算放大器来实现高低电平的变化。LM358内部有两个相互独立的、高增益的、内部频率补偿的运算放大器,更为确切的说这是两个比较器。如图1.1.所示,如果我们记LM358的3号管脚的正相输入电压为U1,2号管脚的反相输入电压为U2,1号管脚的输出电压为U3,;记5号管脚的正相输入电压为U4,6号管脚的反相输入电压为U5,7号管脚的输出电压为U6,调节电阻R3的值,使得电阻R3起到一个分压的作用,在分压之后,令U2的电压为1V。在出现物体遮挡在发射端和接收端之间的时候,U1的电压为2.5V,此时U1的电压大于U2的电压,从比较器的原理可以得出,此时的1号管教的输出电压U3为VCC,即U3=5V;在发射端和接收端之间不存在物体遮挡的时候,U1的电压和红外光传感器4号管脚的输出电压都为0,此时的U1电压小于U2的电压,那么根据比较器的原理,1号管脚的输出电压U3为0V。通过电阻R4和R5的分压可以得到6号管脚的反相输入电压U5为2.5V。当U3的电压为0时,7号管脚的输出电压U6也为0V;当U3的电压为5V的时候,7号管脚的输出电压U6也为5V。此时,STM32单片机就会通过采集7号管脚的输出电压,如果发生了高低电平的变化就会形成脉冲波,这样就可以来确认是否有准确波形的进入图1.6频率检测模块原理图1.7按键控制模块设计按键电路主要是为了方便对整个系统进行控制添加的。通过试试为了实现人机交互而增加的一个重要模块,使用者也是主要通过该模块来实现对整个系统的操作。对于本系统来说,按键模块控制就是通过单片机的输出高低电平来进行控制,这些按键模块一端是共地的,一端则是由各个单片机的引脚来进行控制输出,本模块的设计原理图如图1.7所示。图1.7按键控制模块

1.8本章小结本章主要介绍了下位机系统的硬件设计,首先对这个系统进行一个总体的阐述,说明以51单片机作为核心控制芯片,其他各个模块于主控芯片之间的联系。接着从硬件设计部分对整个系统进行分模块的说明,逐一介绍了各个模块的电路设计。通过采用分模块的思想对整个系统进行了清晰明了的设计并实现其目标功能。

系统软件设计在本系统设计中,使用keil4对系统进行开发,实现最终的设计目标和控制能力。本系统中的设计思路主要是通过对整个系统的模块化处理来一步一步实现对整个系统的设计目标的。。2.1LCD1602显示函数的设计LCD12864的显示主要是通过对其读写端口的控制进行显示目标的显示,在显示之前,需要对一些特殊字符进行取模的操作,并导入到系统的代码设计中,并通过对每一个字符的显示来对显示屏的一个个液晶点进行点亮或者熄灭的控制,从而实现对目标内容的显示:图2.1主函数流程图2.2取模软件的使用在进行实际的显示屏显示的时候,需要对显示的对象进行取模操作。不论显示的数字还是文字,在进行显示之前都需要进行取模。所谓取模,就是将图片或者文字按照特定的像素进行每一个像素点的数据采集。对于OLED显示屏来说,其显示屏的像素点一共有16x2个,我们对不同的显示内容可以按照不同的像素来进行取模。比如一张图片按照8x8的像素来进行取模,那么就会将这张图片分为64个像素点,每一个像素点都会对应一个显示屏可以读取的16进制的数据,该数据就是在显示屏显示的过程前,送往单片机内部进行处理的数据。单片机可以根据这些数据判断出各个数据显示的位置以及大小。像素点采集的越多,那么得到的图案的形状就会越来越接近于真实的图案。当然,并不是说图像分割的像素越多越好,因为单片机的处理数据的速度是有限的,如果采集的数据量过大导致单片机的处理速度跟不上,就会导致图片无法显示或者显示不完全,达不到最终的设计目标。在本设计中使用的取模软件界面如图2.2所示,主要分为图片取模和数字取模两部分。图2.2取模软件界面图2.3系统程序代码设计在程序设计的过程中,最关键的函数就是主函数,主函数主要包括了对整个系统的控制,从各个模块的初始化到各个系统的实际控制都离不开main函数。主函数的一个核心函数就是while函数。这个函数确保了整个系统在不间断的执行每一条指令。对于单片机的设计来说,除了定时器的初始化、显示屏的初始化以及刷卡机器的初始化之外,还需要对一些单独的引脚控制输出进行初始化,最终保证整个系统的控制功能的完整性。在代码设计中主要是通过c语言来完成开发,在实际的使用中,其实是通过编译系统将c语言转变成机器语言来实现实际功能的。整个系统的程序设计是先对整个系统进行初始化,包括IO口的初始化配置、晶振电路的启动、复位电路的使能等。初始化完成后,整个系统会循环检测按键,判断是否有按键被按下。如果没有,它将继续检测。如果是这样,则需要确定按下哪个键不同的按钮对应不同的功能。系统总体设计流程图如图2.3所示:图2.3程序流程图2.4单片机的初始化在程序运行刚开始的时候,需要将单片机控制程序中的各个模块及逆行初始化,这是一项必须要做的内容,主要包括了传感器的初始化、定时器初始化、中断初始化和AD初始化。定时器初始化:在本模块的程序设计中,加入了一个定时器,主要是用于采集波形频率中,这是为了避免在传感器误报危险增加的一个延时判断。选取了STM32单片机中的8位定时器/计数器来对定时器进行初始化,通过配置其他各寄存器的值对定时器进行使能操作,并对定时器的初值进行设定,计数值的区间在0~255之间,计数值大于255的时候就标志这计数溢出,进入定时器中断。在本系统中,定时器的定时时间为5秒,这个时间内如果波形频率采集器一直发出报警信号,那么在5秒之后就会通过串口发送模块将错误信息发送出去。单片机使用的8MHz的外部晶振,并且对CPU的时钟采用了1024预分频,那么分频之前的时钟周期为1/8000000秒,分频之后的时间则为1024/8000000秒,我们先设定溢出时间为10毫秒,那么定时器会在0.01/(1024/8000000)=78次之后溢出,由此我们可以得出定时器/计数器的初值设定为256-78=178。此时我们添加一个变量来对溢出次数进行统计,在溢出次数达到500的时候,就代表定时器的计时达到了5秒,这就代表在这500次的溢出过程中,提高了准确性。图2.3初始化流程图2.5中断初始化设计中的中断初始化主要是针对于外部中断进行初始化操作。在采集波形模块中的传感器模块中,如果遇到波形的进入,会引起高低电平的变化,这个电平变化可以作为外部中断信号,在外部中断中可以进行发送报警信号的操作。外部中断的触发一般有四种方式,如表1.1所示。在本模块的初始化中主要是配置触发外部中断的方式,选择了以下降沿电平变化的方式触发外部中断。表1.1外部中断触发方式ISC01ISC00触发方式00INT0为低电平时候触发外部中断01INT0引脚上只要产生电平变化即触发外部中断10INT0引脚产生电平下降沿变化时触发外部中断11INT0引脚产生电平上降沿变化时触发外部中断该模块的设计流程图如图2.4所示。

图2.4中断处理程序流程图

2.6本章小结本章主要介绍了软件的程序设计。从开发工具进行阐述,并对选择以keil系软件作为操作系统的原因进行了详细的说明。接着对各个模块软件系统设计进行了详细的介绍,通过对每一个模块的具体介绍,了解了软件的设计流程,保证了整个系统的实用性、准确性和及时性。

系统测试与分析3.1系统设计在进行实物的设计之前我们需要通过仿真设计来实现对目标内容的初步猜测试。在确认了基本的设计目标和功能之后,为了避免在实物的设计中遇到一些

温馨提示

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

最新文档

评论

0/150

提交评论