《数字PID温度控制器设计与实现.doc》由会员分享,可在线阅读,更多相关《数字PID温度控制器设计与实现.doc(191页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date数字PID温度控制器设计与实现数字PID温度控制器设计与实现毕业综合实践课题名称: 数字PID温度控制器设计与实现 作 者: 学 号: 系 别: 电气电子工程系 专 业: 电子信息工程技术 指导老师: 专业技术职务: 实验师 2016年 3月 浙江温州课 题 摘 要温度是重要的物理量,温度的测量和控制在工业生产和科研工作中都非常要。其控制系统属于一阶纯滞后环节,具有大
2、惯性、纯滞后、非线性等特点,导致传统控制方式超调大、调节时间长、控制精度低。采用单片机进行温度控制,具有电路设计简单、精度高、控制效果好等优点,对提高生产效率、促进科技进步等具有重要的显示意义。本文介绍了一种以MST430单片机为检测控制中心的数字式水温自动控制系统。温度测量部分采用,使系统简单可靠且易于操作。温度设置部分采用四个独立按键组成,显示部分采用四位共阳数码管显示使系统变得简便而高效。温度控制采用PID数字控制算法通过计算偏差值来控制光耦合和可控硅的通断,从而控制加热器的加热程度。实际调试表明采用PID算法能使温度稳定在设定值附近。关键词: PID算法单片机温度控制光耦合可控硅目 录
3、1引言42系统设计方案与选择52.1单片机的选择52.2系统控制方式62.3系统控制方式72.4显示驱动电路72.5数字温度传感器72.6显示部分82.7电源电路82.8按键电路92.9最终方案确定93硬件设计93.1硬件设计的基本原则103.2系统硬件的基本组成部分103.3主要单元的电路设计113.3.1单片机控制电路设计113.3.2系统时钟电路113.3.3显示电路设计113.3.4按键电路123.3.5滤波电路设计133.3.6过零检测电路设计133.3.7数据转换电路143.3.8输出控制电路143.3.9电源电路154主要单元的PCB设计165系统软件的设计与实现175.1软件设
4、计的基本原则175.2系统软件功能设计175.3软件总体设计185.4主要模块软件设计185.4.1初始化模块的软件设计185.4.2显示模块的软件设计205.4.3定时中断模块的软件设计305.4.4PID算法模块的软件设计315.4.5过零检测输出控制中断模块的软件设计33结论33致 谢34参 考 文 献35附录一 主机原理图36附录二 部分时数字PID温度控制器PCB图37附录三 程序清单381 引言现代工业生产过程中,用于热处理的加热炉,需要消耗大量的电能,而且温度控制是纯滞后的一阶大惯性环节。现有企业多采用常规仪表加接触器的断续控制,随着科技进步和生产的发展,这类设备对温度的控制要求
5、越来越高,除控温精度外,对温度上升速度及下降速度也提出了可控要求, 显而易见常规控制难于满是这些工艺要求。 随者微电子技术的发展,采用功能强、体积小、价格低的智能化温度控制装置控制加热已成为现实。采用单片机来对温度进行控制不仅具有控制方便、简単灵活性等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量,比过去单纯采用电子线路进行 PID调节的控制效果要好的多.微机控制系统的快速计算、灵活多样的逻辑判断和高效的信息加工能力使自动控制进入了更高一级的领域,提高了生产过程的自动化程度,减少了人工干预,并不断地完善和满足工农业生产和国防科技日益增长的需要。微机控制系统由于具有
6、成本低、体积小、功耗小、可靠性高和使用灵活等特点,因而广泛的应用工农业生产、交通运输、国防建设和空间技术等各个领域。其控制对象己从单一的工厂流程扩展到企业生产过程的管理和控制.随着微机和单片机的推广使用,实現信息自动化与过程控制相结合的分级分布式计算机控制, 使计算机控制技术的水平发展到一个崭新的阶段。现在,许多常规的控制仪表和调节器已经为计算机所取代。计算机不断地监视整个生产过程,对生产中的各个参数进行采样,迅速进行复杂的数据处理,打印和显示工艺过程的统计数字和参数,并发出各种控制命令。温度控制是工业生产过程中经常遇到的过程控制, 有些工艺过程对其温度的控制效果直接影响着产品的质量, 因而设
7、计一种较为理想的温度控制系统是非常有价値的。系统总体设计思路为当系统上电后数码管会显示当前的温度,然后等待按键输入设定值,设定完毕后系统开始温度自动控制过程,如果当前温度高于设定温度系统会断开光耦器件及可控硅使水温冷却.如果当前温度低于设定温度,若低于2度以上系统会采取全加热的方式.如果温差小于2度则采用PID算法进行控制加热。定时器0每半秒钟会进行一次温度采样然后与设定值进行比较比较出来的值将会决定定时器控制的可控硅器件的通断时间长短,从而实现对温度的精确控制。2 系统设计方案与选择2.1 单片机的选择随着集成电路技术的发展,单片微型计算机(单片机)的功能也不断增强,许多高性能的新型机种不断
8、涌现出来。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化和各个测控领域中广泛应用的器件,在工业生产中成为必不可少的器件尤其是在日常生活中发挥的作用也越来越大。方案一:采用传统51单片机为控制核心,利用KEIL软件编程,下载烧制实现。适合初学者入门,容易上手,价格一般。但发布较早,解密容易,不适合产品生产,EEPROM等功能要靠扩展,增加硬件和软件负担。方案二:采用msp430单片机为控制核心,利用IAR Systems软件编程,下载烧制实现。各个型号的系统工作稳定、强大的处理能力、,超低功耗、高性能模拟技术及丰富的片上外围模块、,方便高效的开发环境等。方案三:采用ia
9、p15w4k58s4芯片为控制核心,利用KEIL软件编程,下载烧制实现。功耗低、体积小、价格便宜、功能多、抗干扰能力强,EEPROM大,串口编程方便。生产时就已经考虑到与传统8051系列单片机的兼容性问题,兼容做的很好,内载看门狗、EEPROM功能,12时钟/机器周期和6时钟/机器周期可任意选择。基于上述分析,方案一、方案二与方案三均满足要求,本设计选择方案二。2.2 系统控制方式方案一输出开关量控制:对于惯性较大的过程可以简单地采用输出开关量控制的方法。这种方法通过比较给定值与被控参数的偏差来控制输出的状态:开关或者通断,因此控制过程十分简单,也容易实现。但由于输出控制量只有两种状态,使被控
10、参数在两个方向上变化的速率均为最大,因此容易硬气反馈回路产生振荡,对自动控制系统会产生十分不利的影响,甚至会因为输出开关的频繁动作而不能满足系统对控制精度的要求。因此,这种控制方案一般在大惯性系统对控制精度和动态特性要求不高的情况下采用。方案二比例控制(P控制):比例控制的特点是控制器的输出与偏差成比例,输出量的大小与偏差之间有对应关系。当负荷变化时,抗干扰能力强,过渡时间短,但过程终了存在余差。因此它适用于控制通道滞后较小、负荷变化不大、允许被控量在一定范围内变化的系统。使用时还应注意经过一段时间后需将累积误差消除。方案三比例积分控制(PI控制):由于比例积分控制的特点是控制器的输出与偏差的
11、积分成比例,积分的作用使得过渡过程结束时无余差,但系统的稳定性降低。虽然加大比例度可以使稳定性提高,但又使过渡时间加长。因此,PI控制适用于滞后较小、负荷变化不大、被控量不允许有余差的控制系统,它是工程上使用最多、应用最广的一种控制方法。方案四比例积分加微分控制(PID控制):比例积分加微分控制的特点是微分的作用使控制器的输出与偏差变化的速度成正比例,它对克服对象的容量滞后有显著的效果。在比例基础上加上微分作用,使稳定性提高,再加上积分作用,可以消除余差。因此,PID控制适用于负荷变化大、容量滞后较大、控制品质要求又很高的控制系统。结合本例题设计任务与要求,由于水温系统的传递函数事先难以精确获
12、得,因而很难判断哪一种控制方法能够满足系统对控制品质的要求。但从以上对控制方法的分析来看,PID控制方法最适合本例采用。另一方面,由于可以采用单片机实现控制过程,无论采用上述哪一种控制方法都不会增加系统硬件成本,而只需对软件作相应改变即可实现不同的控制方案。因此本系统可以采用PID的控制方式,以最大限度地满足系统对诸如控制精度、调节时间和超调量等控制品质的要求。2.3 系统控制方式方案一:采用集成运放电路及硬件AD转换电路。使用集成运放对温度传感器所测到的微小小电压进行放大,再用AD转换电路进行采样。这样就可以得到温度的数据进行处理。方案二:采用max6675数据转换器。MAX6675冷端温度
13、补偿、热电偶数字转换器可进行冷端温度补偿,并将K型热电偶信号转换成数字信号。数据输出为12位分辨率、SPI兼容、只读格式。转换器温度分辨率为0.25C,可读取温度达+1024C,热电偶在0C至+700C温度范围内精度为8 LSB。方案三:采用集成运放电路及软件AD采样。使用集成运放对温度传感器所测到的微小小电压进行放大,再用单片机进行AD采样转换。这样就可以得到温度的数据进行处理。经上述分析,本设计采用max6675数据转换器2.4 显示驱动电路方案一:采用晶体三极管驱动。晶体三极管,是半导体基本元器件之一,具有电流放大作用,是电子电路的核心元件。利用三极管电路放大特性轻易满足数码管所需要的电
14、流。方案二:采用74HC573透明锁存器。74HC573的八个锁存器都是透明的D 型锁存器,当使能(G)为高时,Q 输出将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。基于以上分析:本设计采用方案二。2.5 数字温度传感器方案一:采用k型热电偶。K型热电偶是目前用量最大的廉金属热电偶,其用量为其他热电偶的总和。K型热电偶具有线性度好,热
15、电动势较大,灵敏度高,稳定性和均匀性较好,抗氧化性能强,价格便宜等优点,能用于氧化性惰性气氛中广泛为用户所采用。方案二:采用e型热电偶。E型热电偶的特点:热电动势之大,灵敏度之高属所有热电偶之最,宜制成热电堆,测量微小的温度变化。对于高湿度气氛的腐蚀不甚灵敏,宜用于湿度较高的环境。E热电偶还具有稳定性好,抗氧化性能优于铜-康铜,铁-康铜热电偶,价格便宜等优点,能用于氧化性和惰性气氛中,广泛为采用。E型热电偶不能直接在高温下用于硫,还原性气氛中,热电势均匀性较差。方案三:采用其他热电偶。例如:J、R、S、B、N、T、PT100与CU50等其他热电偶。基于上述分析:本设计采用k型热电偶。2.6 显
16、示部分方案一:采用晶体三极管驱动。晶体三极管,是半导体基本元器件之一,具有电流放大作用,是电子电路的核心元件。利用三极管电路放大特性轻易满足数码管所需要的电流。方案二:采用74HC573透明锁存器。74HC573的八个锁存器都是透明的D 型锁存器,当使能(G)为高时,Q 输出将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。基于以上分析:
17、本设计采用方案二。2.7 电源电路方案一:采用线性电源,线性电源的调整管工作在放大状态,因而发热量大,效率低,需要加体积庞大的散热片,所以体积大,但稳定性好。方案二:采用开关电源,开关电源的调整管工作在饱和和截至状态,发热量小,但开关电源输出的直流上面会叠加较大的纹波等,相对线性电源稳定性能较差。基于以上分析,本设计采用了方案一。2.8 按键电路方案一:采用键盘显示芯片HD7279。HD7279是串行数据,可同时驱动8位数码管的键盘显示驱动芯片。该芯片同时还可连接多达64键的矩阵键盘,单片即可完成LED显示、键盘接口的全部功能。7279内部含有译码器,可直接接受BCD码或16进制码并同时具有2
18、种译码方式(下载数据并译码方式、下载数据但不译码方式),此外还具有多种控制指令如消隐、闪烁、左移、右移、段寻址等,工作状态稳定等特点。但本设计已有独立的显示电路。且该方案系统过于繁冗,开发成本高。方案二:采用独立按键式键盘。独立式按键是直接用I/O口线构成的单个按键电路。每个按键单独占有一根I/O口线,且其工作状态不会影响其他I/O口线的工作状态。这种按键的电路配置灵活,软件结构简单。基于以上分析,本设计采用了方案二。考虑到对预置数值和设置预定模式这两种操作使用频率不是很高,为了精简系统和节省成本,本设计只设定4个键。2.9 最终方案确定1)滤波电路:本设计采用47uf的极性电容与0.1uf的
19、无极性电容并联以滤除高频与低频干扰。2)系统CPU的选择:采用msp430f149单片机3)输出驱动:采用三极管和光耦驱动组成的电路;4)显示电路:采用P4口段驱动、P5.5、P6.6位驱动,动态扫描显示;5)键盘电路:采用独立按键式键盘;6)电源电路:采用线性电源;7)输出控制电路:采用可控硅;8)过零检测电路:采用光耦器件组成;9)传感器选择:采用k型热电偶;10)加热器选择:采用玻璃透明加热器。11)数据采样电路:采用max6675。12)显示驱动电路:采用74HC573。3 硬件设计3.1 硬件设计的基本原则(1) 良好的性价比。系统硬件设计中,一定要注意在满足性能指标的前提下,尽可能
20、地降低价格,以便得到高的性能价格比,这是硬件设计中优先考虑的一个主要PID温控系统的设计和仿真温控系统的设计因素。因为系统在设计完成后,主要的成本便集中在硬件方面,当然也成为产品争取市场关键因素之一。 (2) 安全性和可靠性。选购设备要考虑环境的温度、湿度、压力、振动、粉尘等要求,以保证在规定的工作环境下,系统性能稳定、工作可靠。要有超量程和过载保护,保证输人、输出通道正常工作。要注意对交流市电以及电火花等的隔离。 (3) 较强抗干扰能力。有完善的抗干扰措施,是保证系统精度、工作正常和不产生错误的必要条件。例如强电与弱电之间的隔离措施,对电磁干扰的屏蔽,正确接地、高输人阻抗下的防止漏电等。 3
21、.2 系统硬件的基本组成部分本系统基本组成框图如图片 1系统基本组成框图所示。以单片机为控制核心,用数码管显示参数和按键设定参数,用光耦电路进行正弦信号的过零检测。用单片机的位操作控制光耦器件的开关控制可控硅。图片 1系统基本组成框图3.3 主要单元的电路设计3.3.1 单片机控制电路设计图片 2 msp430f149处理系统的芯片选择msp430f149是msp430系列单片机如图片 2,具有低电压、超低功耗,16位精简指令集MCU,命令周期125nS。2个16位计数器。具有捕获、门限功能。具有片内比较器等特点。程序存储器类型为Flash,程序存储器大小为60 KB,数据 RAM 大小为2
22、KB,接口类型为 SPI or UART or USART,最大时钟频率为8 MHz,可编程输入/输出端数量为 48,定时器数量为2,工作电源电压: 1.8 V to 3.6 V,最大工作温度为 + 85 C,最小工作温度为 - 40 C,片上 ADC: 8-chx12-bit,支持超小型封装:64P-QFP、64P-QFN。3.3.2 系统时钟电路图片 3系统时钟电路对时间要求不是很高的系统只要按图进行设计就能使系统可靠起振并能稳定运行。如图片 3所示,由于C19、C5电容起着系统时钟频率微调和稳定的作用,因此,在本时间控制系统的实际应用中一定要注意正确选择参数并保证电路的对称性(尽可能匹配
23、)。选用正牌厂家生产的瓷片或云母电容,如果可能的话,温度系数要尽可能低,实验表明,这两个电容元件对时钟的正负走时误差有较大关系。1)晶振:X2采用8MHZ的无源晶振。2)电容:C19、C20使用1UF/16V的贴片电容封装为0805。3.3.3 显示电路设计图片 4显示电路本设计采用四位一体式的共阳极数码管动态显示,目的是为了简化电路的设计。两排四位一体式共阳极数码管显示电路如下图片 4显示电路所示。该显示电路采用了锁存器实现的。74HC573是拥有八路输出的透明锁存器,输出为三态门,是一种高性能硅栅CMOS器件。单片机点亮数码管的方式为动态扫描方式,顺序点亮数码管,由于人的肉眼具有视觉停留效
24、应,故人的肉眼无法识别数码管因顺序点亮而有的闪烁现象。1)数码管:采用3641AS四位一体的共阳极数码管。2)锁存器:采用74HC573八路输出的透明锁存器。3.3.4 按键电路图片 5独立式按键电路在单片机应用系统中,通过按键实现控制功能和数据输入是非常普遍的。在所需按键数量不多时,系统常采用独立式按键。独立式按键是直接用I/O口线构成的单个按键电路。每个按键单独占有一根I/O口线,且其工作状态不会影响其他I/O口线的工作状态。这种按键的电路配置灵活,软件结构简单。如下图片 5独立式按键电路所示。由于实际应用中,不同系统对按键的要求不同,因此,对按键程序的设计要考虑全面,以便更好地完成按键所
25、设定的功能。在系统需要按键很多时,系统常采用矩阵式键盘或用专用的键盘芯片。这两种方式是按键,结构比较复杂,成本高。由于本设计要求按键不多,所以采用独立式按键。按键与按钮电路设计中关键要考虑的就是按键消除抖动问题,一般有硬件消抖和软件消抖两种方式。过去硬件消抖电路通常采用分立元件或触发器实现,目前市场上已有硬件消除抖动专业接口芯片,例如:MAXIM公司MAX68166818,均为单电源供电,电压为2.75.5V,分别为单输入、双输入和八输入,输出端具有欠压锁定功能。这里考虑到系统的硬件简化和成本,没有采用硬件去抖,而采用软件去抖。1)电阻:R23、R24、R25、R26采用普通的金属膜电阻,阻值
26、为10k,封装为0805。2)按键:采用通用的6*6*5轻触开关。3.3.5 滤波电路设计整流电路的输出电压不是纯粹的直流,从示波器观察整流电路的输出,与直流相差很大,波形中含有较大的脉动成分,称为纹波。为获得比较理想的直流电压,需要利用具有储能作用的电抗性元件(如电容、电感)组成的滤波电图片 6滤波电路路来滤除整流电路输出电压中的脉动成分以获得直流电压。常用的滤波电路有无源滤波和有源滤波两大类。无源滤波的主要形式有电容滤波、电感滤波和复式滤波(包括倒L型、LC滤波、LC型滤波和RC型滤波等)。有源滤波的主要形式是有源RC滤波,也被称作电子滤波器。直流电中的脉动成分的大小用脉动系数来表示,此值
27、越大,则滤波器的滤波效果越差。本设计为考虑电路的简易性,采用地电容滤波。如图片 6滤波电路所示。1)极性电容:C6采用铝电解电容470uf/25v。2)非极性电容:C5采用0.1uf的瓷片电容。3.3.6 过零检测电路设计图片 7过零检测电路本设计采用光耦器件设计,电路的核心就是“光耦合器”,亦称光电隔离器或光电耦合器,简称光耦。它是以光为媒介来传输电信号的器件,通常把发光器(红外线发光二极管LED)与受光器(光敏半导体管)封装在同一管壳内。当输入端加电信号时发光器发出光线,受光器接受光线之后就产生光电流,从输出端流出,从而实现了“电光电”转换电路如图片 7过零检测电路所示。1)电阻:R27为
28、金属膜色环电阻2W,封装自制。R28、R29为通用贴片电阻0805。2)光耦合器:采用贴片光耦合器PC817,封装为SOP4。3.3.7 数据转换电路图片 8MAX6675本设计采用M AX 6675如图片 8MAX6675所示,M AX 6675带有冷端补偿、线性校正、热电偶断线检测的串行K型热电偶模数转换器,它的温度分辨能力为0 25,冷端补偿范围为一20+ 80,工作电压为3055,它主要由热电偶模拟信号放大电路、冷端补偿信号产生电路、AD转换器以及数字控制电路等组成。1)、电阻:R1、R2、R3为通用贴片电阻0805。 2)、电容:C1、C2、C3采用0.1uf的瓷片电容。 3)、MA
29、X6675:采用MAX6675ISA,封装为为SOP-83.3.8 输出控制电路图片 9输出控制电路本设计主要采用三极管与可控硅输出的光电耦合器作为输出驱动控制。单片机输出的信号由三极管驱动可控硅输出的光电耦合器来控制外部可控硅和加热去。1)三极管:采用通用三极管9012.2)可控硅输出的光电耦合器:采用MOC3021。3)电阻:R17、R18采用通用贴片电阻0805,R19、R20、R21、R22采用大功率2W电阻。3.3.9 电源电路由于msp430f149通常工作在5.53.3V。考虑到交直流两用的要求和三端稳压电路选用的方便,选择工作电压为5V。电源系统设计如图3-9所示。应当说明的是
30、,尽管有很多型号的7805三端稳压集成芯片,其标称最大输出电流均为1.5A,但在实际应用中。该最大输出电流值往往取决于两个方面:(1)足够的散热面积;(2)不同的生产厂家;在设计中,必须保证7805是输入电压Vi和输出电压Vo的压差大于2.5V,即Vi-Vo=2.5V,否则会失去稳压能力。同时考虑到功耗问题,此压差又不宜太大,太大则增加7805本身的功耗,增加芯片的温升,不利于安全。1)变压器:采用交流220V-交流12V的通用变压器。2)电容:C2、C3用0.1uf的非极性瓷片电容。C1、C4采用470uf/25V的极性电容。3)二极管:采用通用的1N4007二极管。4)三端稳压器:采用78
31、05三端稳压器。 图片 10电源电路4 主要单元的PCB设计本设计采用proteus仿真软件进行数字PID温度控制器的PCB设计制作,由于部分电路采用学习板,PCB部分效果图见附录二。5 系统软件的设计与实现5.1 软件设计的基本原则 (1) 结构合理。程序应该采用结构模块化设计。这不仅有利于程序的进一步扩充或完善,而且也有利于程序的后期修改和维护。 (2) 操作性能好,使用方便,具备良好的人机界面。 (3) 具有一定的保护措施和容错功能。系统应设计一定的检测程序,例如状态检测和诊断程序,以便系统发生故障时,便于查找故障部位。对于重要的参数要定时存储,以防止因掉电而丢失数据。 (4) 提高程序
32、的执行速度,尽量减小占用系统的内存。 (5) 给出必要的程序说明,便于后期程序维护。5.2 系统软件功能设计本系统功能主要由软件控制实现,采用C语言对单片机编程。软件主要实现了以下功能:1)初始化设计:程序设计中所使用到的寄存器进行初始化。 2)显示设计:由P4端口进行段驱动与位驱动,P5.5、P6.6对段驱动与位驱动进行使能。3)按键设计:使用四个独立按键。对设定值,PID的参数进行设置。4)延时设计:系统中需要延时,例如数码管显示中,需要进行动态显示,数码管在动态扫描期间要延时一段时间。5)定时设计:在系统经过定时的一段时间后,产生中断,之后调用各个子程序。6)过零检测设计:在外部正弦信号
33、过零点时,系统对过零的次数进行计数,用于输出控制。7)PID运算设计:在进行温度控制时,由于精度的要求,采用PID运算。8)热电偶转换设计:由于AD转换采用max6675芯片,所以要设计相应的程序进行采样转换。9)数字滤波设计:在AD转换采样后,由于可能出现误差或某次采样丢失,所以采用数字滤波法,以减小误差。图片 11主函数流程图5.3 软件总体设计软件总体流程,如图片 11主函数流程图所示。系统软件主程序如下:void main(void) /主函数 WDTCTL=WDTPW+WDTHOLD;/关看门狗 csh();/初始化 while(1)/死循环 图片 12初始化函数流程图5.4 主要模
34、块软件设计5.4.1 初始化模块的软件设计初始化模块流程框图,如图片 12初始化函数流程图所示。初始化模块程序如下:void csh(void) /初始化函数 /时钟设定MCLK、SMCLK为高速时钟8MHZ, uint i; do IFG1&=OFIFG; for(i=0;i=0xff;i+);while(IFG1&OFIFG)!=0); BCSCTL1&=XT2OFF; BCSCTL1|=XTS; BCSCTL2|=SELM_2+SELS+DIVM_0+DIVS_0; /P1.01.3设置为输入,用作按键,P1.4使用中断,过零检测 P1DIR&=0XE0; P1IES=0X10; P1I
35、FG=0; P1IE=0X10; /P2.0P2.2用于ADC6675,P2.0,设为输入,P2.1、2.2设为输出,P2.3使用输出用作加热棒 P2DIR|=0X8E; P2DIR&=0XFE; P2OUT=0XFF; P3DIR=0XFF; P3OUT=0XFF; /P4使用输出,数码管段驱动 P4DIR|=0XFF; /P5.5使用输出,数码管位驱动 P5DIR|=0X20; P5SEL&=0XEF; /P6.6使用输出,数码管位驱动 P6DIR|=0X40; /uint i; /PED计算参数初始化 PID.P=0; /比例系数 PID.I=0; /积分系数 PID.D=0; /微分系
36、数 PID.E=0; PID.ui_1=0; /16位定时器的寄存器设置,输出PWM图片 13显示流程图 CCTL0=CCIE; CCR0=1000; TACTL=TASSEL_2+MC_1+TACLR; _EINT();5.4.2 显示模块的软件设计显示模块流程框图,如图片 13显示流程图所示。显示模块程序如下:void disp(void) /显示函数 char i;/定义变量 for(i=0;i5)/功能键大于5? gongneng=0;/功能键清零 ZZ();/值送最终显示数组函数 if(gongneng=1)/如果功能键为1,则判断其他键 if(k=0x0D)/ YS(1); if(
37、k=0x0D) while(k=0x0D) k=P1IN&0x0F; disp(); fang=0; if(led_bufyiwei=0X0A) led_buf9=led_bufyiwei;led_bufyiwei=led_buf8;led_buf8=led_buf9; fang=1; SSyiwei+; if(SSyiwei9) SSyiwei=0; ZZ();/值送最终显示数组函数 if(k=0x0B) YS(1); if(k=0x0B) while(k=0x0B) k=P1IN&0x0F; disp(); fang=0; if(led_bufyiwei=0X0A) led_buf9=le
38、d_bufyiwei;led_bufyiwei=led_buf8;led_buf8=led_buf9; fang=1; SSyiwei-; if(SSyiwei10) SSyiwei=9; ZZ();/值送最终显示数组函数 if(k=0x07) YS(1); if(k=0x07) while(k=0x07) k=P1IN&0x0F; disp(); fang=0; if(led_bufyiwei=0X0A) led_buf9=led_bufyiwei;led_bufyiwei=led_buf8;led_buf8=led_buf9; fang=1; yiwei+; if(yiwei7) yiwe
39、i=4; if(gongneng=2)/功如果能键为2,则判断其他键 if(k=0x0D) YS(1); if(gongneng=2) while(k=0x0D) k=P1IN&0x0F; disp(); fang=0; if(led_bufyiwei=0X0A) led_buf9=led_bufyiwei;led_bufyiwei=led_buf8;led_buf8=led_buf9; fang=1; Pyiwei+; if(Pyiwei9) Pyiwei=0; ZZ();/值送最终显示数组函数 if(k=0x0B) YS(1); if(k=0x0B) while(k=0x0B) k=P1I
40、N&0x0F; disp(); fang=0; if(led_bufyiwei=0X0A) led_buf9=led_bufyiwei;led_bufyiwei=led_buf8;led_buf8=led_buf9; fang=1; Pyiwei-; if(Pyiwei10) Pyiwei=9; ZZ();/值送最终显示数组函数 if(k=0x07) YS(1); if(k=0x07) while(k=0x07) k=P1IN&0x0F; disp(); fang=0; if(led_bufyiwei=0X0A) led_buf9=led_bufyiwei;led_bufyiwei=led_buf8;led_buf8=led_buf9