基于单片机的数字存储示波器设计(7)

2019-04-22 15:00

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊

长 春 大 学 毕业设计(论文)纸

4 系统功能的软件设计

4.1单片机软件开发系统

keil uVision简介

keil uVision是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。keil uVision软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

C51工具包的整体结构,其中uVision是C51 for Windows的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A5l编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存储器如EPROM中

4.2主程序设计及流程图

仪器是一个以硬件为基础的、软硬件紧密结合的系统,软件是智能仪器的灵魂。示波器软件采用C语言来编写,完成对人机界面、系统控制、系统硬件、波形参数分析等的控制。

系统的软件设计主要是单片机程序设计,对于单片机控制程序,采用C语言来编写。输入信号频率计算,A/D转换,数据存储,键盘扫描,液晶显示等。整个系统由键盘驱动,不同的按键对应不同的事件处理。整个主程序的软件框图如下图4-1所示。

系统的主程序采用一个do-while循环语句,判断条件设置为死循环,不停地扫描按键,以执行相应的操作。

第 29 页 共 36页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊

长 春 大 学 毕业设计(论文)纸

开始程序初始化i对50取余是否为0YES计算频率值NO采样存储A/D转换值数据处理清屏显示判断是否有键按下 YESNO采样点数增加8采样点数减少8显示峰值显示峰峰值显示有效值重新计算显示清屏复位i++图 4-1 主程序的流程图

4.3频率及幅值计算子程序设计

4.3.1频率计算的原理及程序流程图

本设计频率的计算采用单片机外部中断/INT,对频率计算电路产生的脉冲频率的测量,再通过对测量数据的校正来完成。

单片机对频率测量的原理如下图4-2所示

第 30 页 共 36页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊

长 春 大 学 毕业设计(论文)纸

图4-2 测频率原理图示

利用 GATE=1,TR1=1,只有/INT引脚输入高电平时,T1才允许计数,利用此,将外部输入脉冲经/INT引脚上输入,等待高电平的到来 ,当检测到高电平时开定时器开始计数,然后检测低电平 当检测到低电平时已经测得脉冲的脉宽,但我们测得是频率,故在程序中要继续检测等待下一个高电平的到来,此时关定时器停止计数,用此计数值乘以单片机的一个脉冲周期(晶振频率已知),得出周期,然后再经过数据处理便得到输入信号的频率。程序流程图如图4-3所示 。

开始程序初始化Nfw是否为1 Y开定时器TR=1fw是否为0Yfw是否为1Y数据处理结束NN图4-3频率计算程序流程图

4.3.2幅值计算的原理及程序流程图

幅值计算程序是通过采32个点,根据不同的频率计算出不同的采样步长,即32个采样点之间的计数间隔,从而确定采样值,然后将这32个采样点的采样值存放在一维数组中,通过循环比较得出最大值和最小值。然后经过数据处理函数,计算出相应的幅值、峰峰值、有效值,最终修正为为液晶显示数据进行显示。 程序流程图如图4-4所示

第 31 页 共 36页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊

长 春 大 学 毕业设计(论文)纸

开始将第一个采样值赋给aa,bbkkk=0kkk<64Y比较各采样值的大小N求得最大值和最小值计算幅值液晶显示修正结束

图4-4 幅值计算程序流程图

4.4按键子程序

在硬件电路中对按键的硬件设计已经做了详细的描述,为了能清楚地描述程序的流程重抄按键的地址和功能表如表4-1所示

表4-1按键的地址和功能表 地 按 键 功 能 址 KEY1 0X01 KEY2 0X02 KEY3 0X04 KEY4 0X08 KEY5 0X10 KEY6 0X20 KEY7 0X40 KEY8 0X80 采样点数增加8个 采样点数减少8个 显示峰值 显示峰峰值 显示有效值 重新计算频率和长度 显示清屏 复位 表中已经详细的给出了各个按键的功能和地址 ,下面给出按键子程序。按键子程序的流程图如图4-5所示

第 32 页 共 36页

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊

长 春 大 学 毕业设计(论文)纸

开始读键值Y0x01采样点数增加8个0x02N0x04N0x08N0x10N0x20N0x40N0x80N跳出判断Y采样点数减少8个Y显示峰值Y显示峰峰值Y显示有效值Y重新计算频率和幅值Y显示清屏Y复位结束图4-5按键字程序流程图

4.5显示子程序

液晶显示器简称LCD(Loguid Crystal Diodes),其显示原理是利用经过处理后的液晶具有能改变光线传输方向的特性,达到显示字符和图形的目的。目前大量使用的是点阵式LCD显示器,它既可以显示字符和数字,又可以显示汉字和图形。本设计中液晶显示屏用的是LCM12864,其特点和管脚功能已在前述硬件电路中叙述过。

由于LCM12864是一个左右半屏独立控制显示的液晶屏,所以利用其结构特点在液晶的左半屏显示重组修正后的波形,在液晶的右半屏显示输入信号的频率和幅值。

显示子程序流程图如图4-6所示 。

第 33 页 共 36页


基于单片机的数字存储示波器设计(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小学语文四上《猫》教学设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: