还剩5页未读,继续阅读
文本内容:
1.
1.
3.57编程环境与编程语言
1.1单片机是整个液位测量系统的核心,振荡工作电路输出的数据信息运用单片机芯片展开综合处理,并且操作控制自动输出,所以控制软件综合设计通常都是单片机芯片的程序语言综合设计由于要实现单片机采集脉冲信号,然后通过单片机内部通过数据处理转换成相应的频率信号;数据处理思想是两点之间确定一条直线,根据用户需要招输出分成多段直线,每一段线性输出截至当前,单片机芯片应用程序研发运用的编程语言通常包括汇编编程PIC语言、编程语言编程语言具备应用功能超强、应用灵活多样、程序代码小、C c运行工作速率快等先天性的优势,与此同时,编程语言能够很轻易的实现全面翻C版复制,缩短单片机芯片应用程序的研发时间支持单片机设备的编程语言编译处理器设备通常包括:、等c PICCMPLAB是一类满足参考标准的编程语言研发设备,作用功能适合、运用便PICC ANSIC利、专业技术支持好该工具将编辑器单元与工程管理器单元进行集成,在集中的工作环境平台(IDE)下运行,源资料文件都在项目工程之中,资料文件的编辑与项目工程的构筑同时也在这一环境里实现了通过工程管理器单元可以直接自动生成储存格式资料文件,该格式文件能够直接运用,可以通过下载控制器把文HEX件下载保存到单片机芯片里运行工作c总体的软件系统设计运用作为程序编译环境,运用编程语言作为系统PICC C编程语言总体设计
1.2总体软件设计过程中,采用功能模块化设计模式,自顶朝下进行设计应用研究分析所要达到的各个要求,将需要处理和解决的主要问题,经过分割,从一个总的整体结构性问题,分割成一个一个独立的部分,然后对每一个独立的部分提出解决处理方案这样的模块化设计便于设计任务的划分,以及模块化程序的相互调用,整个程序结构清晰,便于调试查找问题,维护灵活方便单片机设备实现了如下作用功能单片机整个系统的初始化处理主要包含单片机芯片端口的初始化I I/O处理,中断程序的初始化处理,定时器单元初始化处理,看门狗初始化处理,存储数据获取EEPROM通过捕获端口,采集振荡电路频率信号,定时器计数2修正数据,控制输出3主要功能程序设计
1.3主应用程序的重要运行工作流程图如下图」所示主程序的首要任务是对单1片机芯片的上电复位清零,运行系统的初始化处理应用程序,然后通过模块CCP1检测引脚状态,开中断进行计数,对采集到的数据进行处理,通过控制输出PWM输出图」软件控制流程图1初始化定时器
1.
3.1定时器选取外部晶振作为时钟源,选择增加计数模式,即增加到某一初12MHz值后溢出若要实现该功能,就需要首先设定定时器的初始值,经过程序指令的不断运行,增加计数达到累计溢出后执行中断程序,输出高电平或者低电平以TMRO定时器为例,是一个位的定时器,所能代表的数值是从至换句话说TMRO80255,定时设备能够从开始一直加到至之后再加一就又转化为这个时候0255,U2550定时设备间断标记位自动置位为TMR0TMROIF1下面以两个流程图的形式,分别以频率和周期的模式而言明从控制时钟频次一直发展到定时设备间断溢出超过相互之间的联系假定控制时钟频次是兆赫兹,
4.0定时设备预分频数值是定时设备初始数值是2,0图时钟频率到定时器溢出中断流程图L2从图可以看出,整个流程期间经历了三个操作应用步骤
1.2第一步兆赫兹的控制时钟频次分频后转化为兆赫兹的程序指令频
14.
041.0次;之后预分频控制器设备分频后转化为兆赫兹的频次供应定时设备;
220.5定时设备通过分频后转化为大概的频次溢出超过间断32561952Hz图时钟周期到定时器溢出中断流程图L3同图一样,整个流程期间也经历了三个步骤
1.21首先
0.25〃s时钟周期4分频后变成lus指令周期;2然后预分频器2分频后变成2〃s周期供给定时器;3定时器每隔2〃s加一,加到256次,256x2〃s=512〃s溢出中断结合上述内容,以时钟晶振为例,要求每间隔输出一个高电平,4MHz50ms50ms输出一个低电平,即要得到周期为的方波信号,需要经过的过程则有100ms首先得到指令周期1t式中,为指令周期;t为晶振时钟的振荡频率,F4MHzo由式5-1可以计算得出,指令周期t=l〃s得到预分频2定时设备能够定时的最大作用时间要求已经超过因此预分频控制器设备50mS,要选用则能够获取的最高的定时控制时间就是倍的预分频,大约256,
25661.536ms,才能满足大于的要求50ms定时器初始化值3从上述分析中,可以推算出,定时器的初始化值设为应是定时器最大值加T0,一后,与定时时间经过预分频后的差值,即T=定时器最大值+1-停野5-2o经过计算可得,定时器的初始化值为四舍五入后应为T
060.6875,61设置相关的寄存器4寄存器设备里我们通常要求设立三处,主要用于预分频OPTION_REG PS2:0作用范围从的设置,设立成是把预分频控制器设备调配给功2〜256PSA0,Timer能模块,设立成使用内部程序指令周期控制时钟代码如下例TMR0CS0,voidInitTOvoid{PSA=0;PS2=0;PS1=0;PSO=O;INTCON|=0x20;TMRO=OxOO;初始化函数
1.
3.2主程序调用函数前,函数初始化,进行标志位配置延时函数的作用,就是为了可以操作控制数据信息收集速率,在采集一次数据之后要求延时作用一定的有效时间,但是假如运用旧有传统类型的软件程序延时的方式,不仅仅会使单片机工作效率降低,耗用单片机设备资源,并且准确度也会出现较大误差所以应用单片机芯片自带的定时模块,结合中断程序使用,定时控制时间到达中断条件后中断,并对中断标志位置位,这类模式能够方便快捷的处理定时或者其他事务,而且可以获取比较准确的延时作用球、输四号
1.
3.3单片机芯片配置设计有捕捉/比较/振荡脉宽调节控制功能模块,也PIC CCP就是有相对独立的十六位寄存器设备功能模块的作用功能主要CCP1,CCP1CCP包含外界数据信号捕捉、内部比较自动输出以及自动输出,和定时设备/计PWM数控制器配合运用功能模块可运行工作在类方式下捕捉模式、比较模式与振荡脉宽调节CCP3控制模式捕捉模式指的是测试管脚上自动输入数据信号的工作状态,当数据信号1的工作状态满足设立的基本条件时调用中断子程序产生中断,并且自动记录中断时的定时设备/计数控制器数值,当功能模块运行工作在捕捉模式的时候,CCP TMR1操作控制寄存器设备需要运行工作在定时设备或者同步计数统计模式下例如,在时间点到来之前将寄存器工作方式设置成捕捉信号脉冲上升tl CCP1沿后中断当数据信号脉冲上升沿到来的时候,满足中断条件产生中断,在CCP中断子程序里记录这个时间寄存器设备里的十六位数值然后将TMR1time1,CCP1转而设置成捕捉信号的下降沿后中断当这个数据信号脉冲下降沿到来的时候,满足中断条件形成中断,在中CPP断子程序里记录这个时间寄存器设备里的十六位数值然后再将TMR1time2,CCP1设置成捕捉信号的上升沿后中断当捕捉到数据脉冲信号的下一个上升沿,满足条件继续执行中断程序,在中断子程序里记录此刻寄存器设备里的十六位数值则整个捕捉中断TMR1time3,的过程中数据脉冲信号的工作周期微秒,数据信号频次信号脉T=time3-timel f=l/T,冲有效宽度微秒,占空比P=time2-time1D=P/Tx PO%因为在捕捉工作模式下,计数的误差可能达到±微秒,如果要满足上述CCP1误差要求,就需要重复多次以上捕捉中断、再捕捉再中断的过程,最终将各次记录的平均有效数值作为最后的测量确定数值▼▼tl捕捉时刻timel t3捕捉时刻time3▼t2捕捉时亥ijtime2图捕捉模式原理示意图
1.2假如要求测量确定的最大频次是工作周期仅有微秒,并且信号脉1000Hz,1000冲的占空比有宽度的作用范围,那么高电平状态能够持续的最短时间为10%—90%微秒,仍然能够有足够的有效时间执行中断子程序100但在实际的使用过程中发现,存在两次捕捉中断的有效时间间隔少于一次中断子程序的作用时间,这样就只能通过合理的设置寄存器设备的数值,可CCP1CON以使功能模块每隔四个信号脉冲捕捉一次上升沿,这样一来两次中断之间的CCP有效时间间隔就能够符合设计需要比较模式指的是把事先设立好的数值和定时设备或者同步计数统计模式2下的数值互相比较,当两个数值相同的时候,进入中断子程序执行程序中已经设定的程序动作振荡脉宽调节控制模式可以设置输出引脚输出信号脉冲有效宽度实寸3B可以调控的数据信号,来完成方波数据信号的操作控制自动输出PWM自动输出是运用定时设备与定时设备作为程序执行的PWM lTimerl2Timer2时钟基准,利用与两个八位加法定时设备中的工作周期寄存器设备,Timerl Timer2与并且设置溢出中断,作为两个八位定时设备/计数控制器运用若使PR1PR2,PWM输出信号,需要通过将和位分别为和P1M1:O CCP1M3:O CCP1CON7:6置来选择合适的模式相应的位也必须设置为输出CCP1CON3:01PWM TRISC自动输出信号周期是通过与工作周期寄存器设备比较判断,PWM1Timerl PR1通过软件程序可以设置自动输出信号周期,并且用与作为时PWM2Timer1Timer2基当位数据被清零,时基是由和决定,TM2PWM2PW2DCL5Timer1PR1当被置时基是由与判断当两个同时工作运行,TM2PWM21,Timer2PR2PWM自动输出的时候,两个个定时设备能够形成两个不相同的信号周期在振荡PWM脉宽调节控制数据信号里,数据信号工作周期一般是维持恒定的,而振荡脉宽是可变化的以自动输出为例来说明如何确定输出的信号频率,将应用PWM1Timerl在时基,应用内部控制时钟,贝!]输出周期二[]PWM1PR1+1x4tosc5-1式中,为振荡周期tosc对于12MHz的振荡频率,振荡周期tosc=l/12x106=
83.3ns,如果PR1=24,贝[]PWM的输出周期为25x4x
83.3x10-9=
8.33频率为1/
8.33x106=120kHz,改变时基的周期值可以控制的输出频率PR1PWM振荡脉宽寄存器设备是双缓冲作用的,当对这两个寄存器设备展开写操作应用的时候,他们第一步被保存在主储存设备里,当或者溢出,并且开Timerl Timer2始一个新的信号周期时,将主储存设备里的数据传送至从储存设备里,预防PWM新的振荡脉宽录入引发的误操作应用,功能模块使用或者作为PWM TMR1TMR2间断,当或者等同于它的工作周期寄存器设备数值,定时设备形成中TMR1TMR2断并且被归零,开始下一个工作周期,在定时设备重新再次工作运行以前,PWM能够录入新的振荡脉宽数值定时设备的间断标记位是上述标记位需要用TMRxlF,软件程序归零软件修正信号输出
13.4根据设计意图,修改程序即可改变输出参数,不考虑外部极板长度、极板间距、装配同轴等因素影响,增强了产品的通用性、互换性;利用两点间确定一条直线的数学思想与数学模型将输出进行线性化修正软件却应^
13.5在设计中加入去抖动算法消除液面抖动影响,主要是利用了概率统计算法,即多次采样数据求平均值、方差和标准差;通过对两变量数值比较后,执行设定程序,消除抖动影响。
个人认证
优秀文档
获得点赞 0