




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目设计题目:MSP430F5438单片机在自动恒压供水系统中的应用 摘要:(中英文)在自来水供水系统中,恒压供水是系统设计的重要环节。本文采用MSP430系列单片机作为主控制器,建立并实现恒压自动调节供水系统。给出了系统的工作原理和结构图,阐述了各功能模块的主要功能。该系统的成功在供水公司的供水控制系统中具有一定的应用和推广价值。【关键词】:恒压供水,MSP430F5438单片机,自来水一.导言2二。MSP430F5438单片机II介绍三。自动恒压变频供水机组3的设计1.工作原则32.单片机控制设计42.1硬件设计42.1.1自动恒压供水系统结构框图42.1.2核心板5的电路分析2 . 1
2、. 3 IPM变频驱动水泵5电路分析2 . 1 . 4 AD水压采集回路分析52.1.5压力和流量检测回路的分析62.2软件设计6主程序流程图7编程思路7四。结束语7五.所附程序清单8介绍水是生命之源,人类的生存和发展离不开水。在通常的城镇供水中,离心泵基本上都是由供水站的电机驱动,产生压力使管网中的自来水流动,将供水管网中的自来水输送给用户。然而,供水泵在供水的同时消耗了大量的能量。提高供水泵的效率,保证供水泵可靠稳定运行,同时降低能耗,将具有重要的经济意义。中国的供水泵具有数量多、覆盖面广、类型多样的特点,并具有一定的工程规模。但在技术水平、工程标准、经济效益指标等方面与国外先进水平相比,
3、仍有一定差距。随着城市化规模的逐步扩大和生活水平的不断提高,人们对供水公司供水的可靠性要求越来越高,尤其是对水压的要求。人们通常希望水压能够稳定不变。由于手动方式不够智能,很难实时调节水压。因此,在当今的供水系统中,传统的手动阀门调节方式已经逐渐被自动化设备所取代。如何保证恒压供水,使供水系统能够随着用户需求的变化实时自动调节供水量,保证水压恒定,成为一个重要的课题。本文采用MSP430F5438单片机实时调节和自动控制水泵电机的转速,使管网供水口的水压始终保持在预定值,从而达到恒压供水的目的。MSP430F5438单片机介绍MSP430系列单片机是美国仪器公司开发的16位超低功耗单片机3。由
4、于其简化的指令集,它被称为混合信号处理器。该系列单片机具有以下特点:强大的处理能力MSP430系列单片机是16位单片机,采用RISC结构,具有丰富的寻址方式(7个源操作数寻址,4个目的操作数寻址),简洁的27个核心指令和大量模拟指令;大量的寄存器和芯片数据存储器可以参与各种运算;还有高效的查找表处理指令。这些特性确保可以编译高效的源程序。操作速度快MSP430系列单片机可以实现25MHz晶体驱动的40ns指令周期。16位的数据宽度和40ns的指令周期,配合一个多功能的硬件乘法器(可以实现乘法和加法运算),可以实现一些数字信号处理算法(如FFT)。超低功耗MSP430单片机之所以具有超低功耗,是
5、因为它在降低芯片的电源电压和灵活可控的运行时钟方面有其独到之处。首先,MSP430单片机的电源电压为1.8-3.6V因此,当它以1MHz时钟运行时,芯片的电流最低将为165A左右,RAM保持模式下的最低功耗仅为0.1A .其次,独特的时钟系统设计。MSP430系列有两种不同的时钟系统:基本时钟系统、锁频环(FLL和FLL+)时钟系统和DCO数控振荡器时钟系统。只能使用一个晶体振荡器(32768Hz)或两个晶体振荡器。系统时钟系统产生CPU和各种功能所需的时钟。并且这些时钟可以在指令的控制下开启和关闭,从而控制整体功耗。由于系统运行时启动的功能模块不同,即工作模式不同,芯片的功耗也有显著差异。系
6、统有一个主动模式(AM)和五个低功耗模式(LPM0LPM4)。在实时时钟模式下可以达到2.5A,在RAM保持模式下最低可以达到0.1A。电影资源丰富每个系列的MSP430单片机集成了丰富的片上外设。分别是看门狗(WDT)、模拟比较器A、定时器A0(Timer_A0)、定时器A1(Timer_A1)、定时器B0(Timer_B0)、UART、SPI、I2C、硬件乘法器、LCD驱动器、10位/12位ADC、16位-ADC、DMA、I/O端口。 HYPERLINK ./%20%20%20%20:/baike.so%20%20%20%20/doc/3979887.html t _blank USB几个
7、外围模块(如控制器)的不同组合。其中,watchdog可以在程序失控时快速复位;模拟比较器比较模拟电压,并与定时器配合设计A/D转换器。16位定时器(Timer_A和Timer_B)具有捕获/比较功能和大量的捕获/比较寄存器,可用于事件计数、时序产生、PWM等。有些设备具有串行通信接口,可以实现异步、同步和多路访问,可以方便地实现多机通信等应用;I/O口较多,P0、P1、P2口可接收外部上升沿或下降沿的中断输入;10/12位硬件A/D转换器具有很高的转换速率,高达200kbps,可以满足大多数数据采集应用。最多可直接驱动160段液晶;实现了两路12位D/A转换;硬件I2C串行总线接口实现内存的
8、串行扩展;为了提高数据传输速度,采用了DMA模块。MSP430系列单片机的这些外设为系统的单片机解决方案提供了极大的便利。另外,MSP430系列单片机中断源多,可以任意嵌套,使用灵活方便。当系统处于省电和低功耗状态时,中断和唤醒仅需5s。便捷高效的开发环境MSP430系列有三种类型的设备:OTP、FLASH和ROM。这些设备有不同的开发方法。对于OTP型和ROM型器件,仿真器用于在开发成功后写入或屏蔽芯片。对于FLASH类型,有一个非常方便的开发和调试环境。由于器件芯片有JTAG调试接口和电可擦闪存,所以开发时先将程序下载到FLASH,然后通过软件控制程序在器件中的运行,通过JTAG接口读取芯
9、片信息,供设计人员调试。这种方法只需要一台PC机和一台JTAG调试器,而不需要仿真器和编程器。开发语言包括汇编语言和C语言。三。自动恒压变频供水器的设计工作原理:与水塔或屋顶高位水箱供水相比,变频恒压供水具有投资少、节能、水质二次污染机会小等优点。越来越多的城市和住宅小区已经采用或计划采用变频恒压供水。变频恒压供水系统的组成(如图1所示):图1:变频调速恒压供水系统的组成变频调速恒压供水系统其工作原理是:控制器通过检测实际水压值,比较设定水压值与实际水压值的差值。控制器根据规律计算后,输出控制信号给变频器,变频器根据控制器的输入信号调节水泵电机的供电电压和频率。当用水量增加时,控制器控制变频器
10、提高电机的电压和频率,提高水泵的转速,增加出水量;当用水量减少时,控制器控制变频器降低电机的电压和频率,降低水泵的转速和出水量。通过这种控制模式,水管的压力可以保持在设定值。由于变频器价格较高,变频调速恒压供水系统通常采用多台水泵并联运行,多台水泵共用一台变频器。工作时,控制器控制配电系统根据用水量自动选择投入运行的水泵数量。一般的方法是保持其中一台泵在变频器的控制下,其他的泵会根据供水量的变化全速运行或者工频停机。微控制器的设计;2.1硬件设计核心通过压力和流量传感器采集出水口水压和流量的变化,然后与设定值进行比较。如果与设定值有偏差,IPM变频模块控制电机的电压和频率,从而改变水泵的转速,
11、达到调节水压和流量的目的。2.1.1自动恒压供水系统结构框图自动恒压供水系统结构框图自动恒压供水系统结构图2.1.2核心板电路分析板卡的核心电路主要包括CPU(MSP430F5438)、电源电路、时钟电路、液晶显示、按键部分、串口下载电路和复位电路。2 . 1 . 3 IPM变频驱动水泵电路分析MSP430F5438单片机通过计数脉冲来改变水泵的驱动电压和频率,从而改变水泵的转速,实现对水压和流量的控制。IPM驱动电路原理图如下:IPM驱动电路原理图IPM驱动电路原理图2 . 1 . 4 ad水压采集电路分析本设计采用ADS1118转换芯片。当水压发生变化时,信号采集部分根据水压向单片机输出相
12、应的电压变化,单片机通过AD部分对信号进行运算,调整输出水压。AD转换部分原理图如下:AD采集水压电路AD收集液压回路2.1.5压力和流量检测回路分析并且水压和流量的变化被压力和流量检测传感器采集,转换成相应的电压变化和脉冲频率变化,然后送到单片机进行处理。压力和流量检测电路如下:压力和流量检测电路压力和流量检测电路2.2软件设计2.2.1主程序流程图主程序流程图主程序流程图编程思路:= 1 * GB3分析电路功能,了解各模块电路的功能;= 2 * GB3程序的模块化调试,这是保证条件明确的必要手段;= 3 * GB3组合模块程序,分析各模块的相关性和影响;= 4 * GB3调试整机,测试整体
13、功能的实现,分析存在的问题并解决;= 5 * GB3程序调试完毕。四。结束语采用MsP430系列单片机作为主控制器,实现供水系统的自动恒压,自动调节水压,使供水系统稳定。同时,MSP430系列单片机提高了系统的控制可靠性和抗干扰性。在节约成本的同时,也进一步保证了系统的安全稳定运行。该系统集成了单片机控制技术、反馈控制技术和电机调节技术等。在自来水公司的供水控制系统中具有一定的应用和推广价值。动词 (verb的缩写)附加程序列表:/* LCD: PSB通过PCB板上的VCC选择100并行传输模式* P3.0 - RS* P3.4 - EN* P3.5 - RW* P11.0 - RST* P8
14、 -数据*/#包含 msp430 x54xA.h /#包含 BoardConfigure.h #包含“public.h”#定义uchar无符号字符#定义uint无符号整数/*/* */*检查LCD的忙碌状态*/*当/*lcd_busy为1时,忙,等待。当lcd-busy为0时,它处于空闲状态,可以写入指令和数据。*/* */*/void Delay _ ms(uint t)/50毫秒int j;for(;t 0;t -)for(j = 6245;j 0;j-);void Delay_us(uint t)/50usuint j;for(;t 0;t -)for(j = 19;j 0;j-);无符
15、号字符LCD_Busy()无符号字符结果;LCD _ RS _ L;LCD _ RW _ H;LCD _ EN _ H;delay _ us(400);LCD _ DataIn/数据选择输入Result = P8IN & 0 x80LCD _ EN _ L;返回结果;/*/* */*将指令写入LCD */*RS=L,RW=L,E=高脉冲,D0-D7=指令代码。*/* */*/void LCD_WriteCommand(无符号字符命令)while(LCD _ Busy();/忙检查LCD _ RS _ L;LCD _ RW _ L;LCD _ EN _ L;delay _ us(10);dela
16、y _ us(10);LCD _ DataOutP8OUT = Cmd/P0 = Cmd;delay _ us(10);LCD _ EN _ H;delay _ us(10);LCD _ EN _ L;/*/* */*将显示数据写入LCD */*RS=H,RW=L,E=高电平脉冲,D0-D7=数据。*/* */*/void LCD_WriteData(无符号字符数据)while(LCD _ Busy();/忙检查LCD _ RS _ H;LCD _ RW _ L;LCD _ EN _ L;LCD _ DataOutP8OUT = Dat/P0 = Dat;delay _ us(10);LCD
17、_ EN _ H;delay _ us(10);LCD _ EN _ L;/*/* */* LCD初始化设置*/* */*/void LCD_Init()LCD _ RST _ L;/LCD复位delay _ ms(3);LCD _ RST _ H;delay _ ms(3);LCD _ write command(0 x 34);/扩展指令操作delay _ ms(1);LCD _ write command(0 x 30);/基本指令操作delay _ ms(1);LCD _ write command(0 x0C);/显示开关光标delay _ ms(1);LCD _ write com
18、mand(0 x 01);/清除LCD的显示容量delay _ ms(1);/*/* */*设置汉字的显示位置/eg:LCD_Position(4,0);-意思是写*/ -/eg:LCD_Position(4,1);-意思是写*/ -/* */*/void LCD_Position(无符号字符X,无符号字符Y)无符号字符位置;if(X = = 1)X = 0 x 80;else if(X = = 2)X = 0 x 90;else if(X = = 3)X = 0 x 88;else if(X = = 4)X = 0 x 98;pos = X+Y;LCD _ write command(Pos
19、);/显示地址/* *闪光功能* */void LCD_Flash()LCD _ write command(0 x 08);/关闭显示器delay _ ms(400);LCD _ write command(0 x0c);/打开显示delay _ ms(400);LCD _ write command(0 x 08);delay _ ms(400);LCD _ write command(0 x0c);delay _ ms(400);LCD _ write command(0 x 08);delay _ ms(200);LCD _ write command(0 x0c);delay _ m
20、s(5);LCD _ write command(0 x 01);/清除显示delay _ ms(5);/*;显示字符表代码*/void LCD_Char_Display()无符号字符;LCD _ Clear _ Screen();/清除屏幕LCD _ write command(0 x 80);/将显示位置设置为第一行for(s = 0;s 16s+)LCD _ WriteData(0 x 30+s);LCD _ write command(0 x 90);/将显示位置设置为第二行for(s = 0;s 16s+)LCD _ WriteData(0 x 40+s);LCD _ write c
21、ommand(0 x 88);/将显示位置设置为第三行for(s = 0;s 16s+)LCD _ WriteData(0 x 50+s);LCD _ write command(0 x 98);/将显示位置设置为第四行for(s = 0;s 16s+)LCD _ WriteData(0 x 60+s);/* *清除屏幕功能* */void LCD_Clear_Screen()LCD _ write command(0 x 34);/扩展指令操作delay _ ms(5);LCD _ write command(0 x 30);/基本指令操作delay _ ms(5);LCD _ write
22、command(0 x 01);/清除屏幕delay _ ms(5);void LCD_GPIO_Init()/ Liquid 12864,带字库引脚定义P3DIR | = bit 0+bit 4+bit 5;/ RS、RW、EN选择输出P3OUT | = bit 0+bit 4+bit 5;P11DIR | = BIT0/ RST选择输出P11OUT | = BIT0P8DIR | = 0 xFF/ LCD_Data,选择输出void初始化时钟(void)无符号int I;wdt CTL = wdt pw+WDTHOLD;/停止看门狗定时器/p 11 dir = bit 0+bit 1+bi
23、t 2;/ P11.1-2到输出方向/p11 sel | = bit 0+bit 1+bit 2;/ P11.1-2输出SMCLK、MCLKP5SEL | = 0 x0C/端口选择XT2UCS CTL 6 & = XT 2 off;/ Enae XT2即使不使用UCS CTL 3 | = SELREF _ 2;/ FLLref = REFOUCS CTL 4 | = SELA _ 2;/辅助系统时钟源REFOucsctl 4 | = SELS _ 5+SELM _ 5;/ SMCLK=MCLK=XT2-25M_ NOP();UCS CTL 5 | = DIVM _ _ 2+DIVS _ _ 2
24、;/MCLK = 25M;SMCLK = 25MACLK=32768做UCS CTL 7 & = (XT 2 offg+XT 1 lfo ffg+dco ff);/清除XT2、XT1、DCO故障标志SFRIFG1 & = OFIFG/清除故障标志for(I = 0;i 数据输出(UCB1SIMO)/ | |/ | P5.4|-数据输入(UCB1SOMI)/ | |/ CS 串行时钟输出(UCB1CLK)/沭阳钟/ U-Program中国,德州仪器公司。/2013年3月/内置CCE版本:5.1.1/*#包含 msp430 x54xA.h #包含“ads1118.h”void ADS1118_GP
25、IO_Init(空)P1OUT | = 0 x02/为CS设置P1.1P1DIR | = 0 x02/将P1.1设置为输出方向P3SEL | = 0 x80/ P3.7选项选择P5SEL | = 0 x30/ P5.4,5选项选择P5DIR | = 0 x01/将P5.0设置为输出方向void ADS1118_SPI_Init(空)UC B1 CTL 1 | = UCS wrst;/*将状态机复位* *UC B1 CTL 0 | = UC MST+UC sync+UC msb;/ 3引脚、8位SPI主机/时钟极性高,MSBUC B1 CTL 1 | = UC ssel _ 2;/ SMCLKU
26、C B1 br 0 = 0 x 05;/ /2UC B1 br 1 = 0;/UC B1 CTL 1 & = UCS wrst;/*初始化USCI状态机* *_ _延迟周期(100);/等待从机初始化void ADS1118_ADS_Config(带符号int temp_config_value)有符号整数配置值;配置值=临时配置值;/Config _ Value = 0 x 8583;/初始配置寄存器/ ADS1118配置AIN0/AIN1,FS=+/-2.048,DR=128sps,DOUT上拉P1OUT & = 0 x02/将CS设为低电平_ _延迟周期(100);/等待从机初始化ADS
27、1118_WriteSPI(Config_Value,0);/将配置写入ADS1118_ _延迟周期(100);/等待从机初始化P1OUT | = 0 x02/将CS设为高电平int ADS1118_ADS_Read(void)无符号整型数据Config _ Value/Config _ Value = 0 x 058 b;config _ Value = 0;/ ADS1118配置AIN0/AIN1,FS=+/-2.048,DR=128sps,DOUT上拉P1OUT & = 0 x02/将CS设为低电平data = ads 1118 _ write SPI(Config _ Value,1)
28、;/从ADS1118读取数据P1OUT | = 0 x02/将CS设为高电平返回数据;/*模式0:仅将配置寄存器写入ADS1118*模式1:将配置寄存器写入ADS1118,并从ADS1118读取数据*/有符号整数ADS1118_WriteSPI(无符号整数配置,无符号字符模式)有符号int msb无符号int temp有符号int dummytemp = configif(mode = = 1)temp = 0;而(!(UC B1 IFG & UCTXIFG);UCB 1 tx buf =(temp 8);/写入配置的MSB而(!(UC B1 IFG & UCRXIFG);msb = UC B
29、1 rx buf;/读取数据的MSB而(!(UC B1 IFG & UCTXIFG);UCB 1 tx buf =(temp & 0 x ff);/写入配置的LSB而(!(UC B1 IFG & UCRXIFG);msb =(msb 8);/写入配置的MSB而(!(UC B1 IFG & UCRXIFG);dummy = UC B1 rx buf;/读取配置的MSB而(!(UC B1 IFG & UCTXIFG);UCB 1 tx buf =(temp & 0 x ff);/写入配置的LSB而(!(UC B1 IFG & UCRXIFG);dummy =(dummy 8)| UC B1 rx
30、buf;/读取配置的LSB_ _延迟周期(100);返回msb/*无效总管(无效)volatile int ADC _ Result浮动电压_ ch1浮动电压_ ch2wdt CTL = wdt pw+WDTHOLD;/停止看门狗定时器ads 1118 _ GPIO _ Init();ads 1118 _ SPI _ Init();/ADS _ Config();while(1)ADS 1118 _ ADS _ Config(0 xb 583);/配置ch2ADC _ Result = ADS 1118 _ ADS _ Read();/从ch1读取数据,最后一次结果电压_ ch1 = ADC
31、_结果* 1.0/32768 * 2.048;_ _延迟周期(10000);/需要等待时间,直到转换结束ADS 1118 _ ADS _ Config(0 x 8583);/配置ch1ADC _ Result = ADS 1118 _ ADS _ Read();/从ch1读取数据,最后一次结果电压_ ch2 = ADC _结果* 1.0/32768 * 2.048;_ _延迟周期(10000);if(电压_ch1 电压_ CH2)/范围+1.0V至+1.2VP5OUT & = BIT0/如果结果超出范围,切换LED1else P5OUT | = BIT0/如果在范围内,点亮LED1*/* SP
32、WM发生器-对称规则采样方法*带死区的SPWM波形由6通道PWM产生。Tc:三角波(载波)的周期一般在10KHZ以上;这里,调制信号的频率在5HZ20HZ左右。* Wr:正弦波角频率,m:载波比,n = fc/fr;CPU :20MHZ,DCO系统生成,* UP/VP/WP-三相上桥臂,UN/VN/WN-三相下桥臂,* PWM_UP| - |P4.2/TB0.2* PWM_VP| - |P4.4/TB0.4* PWM_WP| - |P4.6/TB0.6* PWM_UN| - |P4.3/TB0.3* PWM_VN| - |P4.5/TB0.5* PWM_WN| - |P4.1/TB0.1*错误
33、| - |P7.2/TB0OUTH*/#包含 msp430 x54xA.h #包含“math.h”#包含 SPWM.h void SPWM _ GPIO _ INIT();void SPWM _ GPIO _ OFF();void SPWM _ ARRAY _ DATA();unsigned int interval time _ UAM= 0 ;/ 0相位unsigned int interval time _ UBM= 0 ;/-120相位unsigned int interval time _ UCM= 0 ;/+120相位signed int Sina _ UAM= 0 ;signed int Sina _ UBM= 0 ;有符号int Sina _ UCM= 0 ;extern无符号长整型Fc = 10000/默认10khz外部无符号字符Fc _ Change _ Flag上午浮动;void main()无符号int j;wdt CTL = wdt pw+WDTHOLD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年科四考试试题题库及答案
- 慢性粒细胞白血病课件
- 心理演讲素材考试题及答案
- 钦州历史中考试卷及答案
- 管理运营岗位考试题及答案
- 情感障碍护理课件
- 中专外科护理考试题及答案
- 恐龙的时间课件
- 考幼师证考试试题及答案
- 治疗师操作考试题及答案
- 2025年秋季学期安全主题班会教育记录
- 火电厂安全员课件
- 2025年银行内部审计部门财务审计员竞聘考试指南
- 2025至2030中国PCIE行业项目调研及市场前景预测评估报告
- 2025广东深圳市光明区统计局招聘(选聘)专干4人笔试参考题库附答案解析
- Unit 1 A new start Starting out 课件(内嵌音视频)高一英语外研版必修第一册
- 2025年人防工程试题及答案
- 安全烹饪知识培训内容课件
- 2025-2026学年道德与法治八年级上册教学计划
- 中小学校长在2025秋季开学第一次全体教师大会上讲话:人心决定温度人格决定高度人品决定厚度
- 技改管理制度
评论
0/150
提交评论