风板控制设计报告_第1页
风板控制设计报告_第2页
风板控制设计报告_第3页
风板控制设计报告_第4页
风板控制设计报告_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、2015年全国大学生电子设计竞赛风板控制装置(I题)【高职高专组】本系统通过对直流小风扇风速的调节实现对风板转角的控制,使风板转角能够随风速 变化而改变,且能快速达到设定角度并稳定。IAP15F2K61S2单片机为控制核心,通过键盘设定风板板角度12864实时显示风板当前角度。单片机输出PWM波控制风扇的风速,通过GY521mpu-6050测量风板的倾角反馈至单片机,采用PID控制经典算法,使系统实现精确控制,然后微调小风扇的转速改变风速的大小使风板角度达到稳定。并且在达到设定范 围时进行声光提示。通过调试与测试,实现了基本部分与发挥部分,最终实现在悬挂重物 的情况下风板能达到设定角度控制,且

2、最终绝对值误差不超过5度.关键字:1602; GY521mpu-6050;PWM;PID 算法。目 录1系统方案11.1 角度测量方案选择11.2 风扇控制方案选择21.3 显示方案选择 21.4 控制器方案选择 22系统理论分析与计算32.1 风扇调试原理32.2 角度测量原理32.3 PID控制算法的分析33电路与程序设计43.1 电路的设计43.1.1 系统总体框图43.1.2 角度检测电路43.1.3 风扇驱动电路53.1.4 按键及显示电路53.1.5 电源电路63.2 程序的设计63.2.1 程序功能描述与设计思路3.2.2 程序流程图64测试方案与测试结果74.1 测试方法与仪器

3、74.2 测试过程及数据74.3 测试分析与结论8附录1:电路原理图101系统方案根据题目要求,本系统可以分为控制部分和信号检测部分.控制部分则包括显示模块、按键模块、声光报警模块、风扇驱动模块四个基本部分。信号检测部分为角度测量模块, 测量风板的角度。下面分别论证这几个模块的选择。1.1 角度测量方案选择方案一:采用MMA7260重力加速度传感器,由于加速度传感器在静止放置时受到重力作用,因此会有1g的重力加速度。利用这个性质,通过测量重力加速度在加速度传感器的X轴和丫轴上的分量,可以计算出其在垂直平面上的倾斜角度。根据如图1.1所示,有Ax=gsin a , Ay =gcosa 。贝U =

4、tan a即 a =arctan().这样,根据以上原理一个 2轴加速度传感 器可以测量在X-Y平面上的倾斜角度。该方案原理简单,操作方便,但使用起来运算量较 大,程序较为复杂,对于单片机来说,会显得有点吃力,因此我们放弃选用该方案。图1.1加速度传感器角度测量原理方案二:MPU-6000为全球首例整合性 6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之间轴差的问题,减少了大量的包装空间。MPU-6000能以数字输出6轴或9轴的旋转矩阵、四元数(quaternion) 欧拉角格式(Euler Angle forma)的融合演 算数据。内建之运作时间偏差与磁力感测器校正演算技术,

5、免除了客户须另外进行校正的 需求。符合设计要求,同时也是我们平时有接触的模块。故综合考虑实际中选择方案二。1.2 风扇控制方案选择方案一:采用可控硅控制调速,通过控制双向可控硅的导通角,使输出端电压发生改变, 从而使施加在电风扇的输入电压发生改变,以调节风扇的转速,实现各档位风速的无级调 速。但可控硅控制控制原理决定了只能滞后触发,因此,晶闸管可控制整流器对交流电源 来说相当于一个感性负载,吸取滞后的无功电流,因此功率因素低。并且晶闸管整流装置 的输出电压是脉动的,而且脉波数总是有限的。如果主电路电感不是非常大,则输出电流 总存在连续和断续两种情况,因而机械特性也有连续和断续两段,因此功率因素

6、低,故我 们不选用该方案。方案二:采用直流斩波控制,改变电压输出开关断时间,将直流电源电压断续加到负载上, 即可实现风扇调速控制,它具有效率高、体积小、成本低等优点。我们可以采用单片机由 软件来实现PWM波,简化系统硬件设计,通过改变PWM波的占空比的值即可改变电枢端电压的平均值从而达到调速的目的。再加上PID算法控制,而整个系统的 PWM波形的产生是通过PID算法调节,这样提高了系统的稳定性和可靠性,让系统控制更加精确。故综合考虑实际中选择方案二。1.3 显示方案选择方案一:使用数码管显示,通过数码管显示被测角度和设定角度。该方案程序简单, 但硬件占用单片机I/O 口较多,对于尽量节约端口,

7、让线路简单来说不是好方法,而且显 示也不够直观灵活,只能显示数字,不能显示汉字显示功能提示, 故不适合本次设计应用。方案二:使用液晶屏 LCD1602具有体积小,使用方便等特点。并且可以显示字母, 数字等功能,观察显示很直观,通过字幕显示各种菜单界面、设定角度、测量角度等。该方案程序较复杂,但显示观察清晰,显示直接明白,完全符合本系统设计功能。故为最佳 方案,我们选择方案二。方案二:使用液晶屏 LCD1602,具有体积小,使用方便等特点。并且可以显示字母, 数字等功能,观察显示很直观,通过字幕显示各种菜单界面、设定角度、测量角度等。该方案程序较复杂,但显示观察清晰,显示直接明白,完全符合本系统

8、设计功能。故为最佳 方案,我们选择方案二。1.4 控制器方案选择方案一:采用FPGA (现场可编程门阵列)作为系统的控制器;将所有的器件集成在一块芯片上,这样外围电路较少,控制板的体积小,稳定性高,扩展性能好;而且FPGA呆用并行的输入/输出方式,系统处理速度快,再加上FPGA有方便的开发环境和丰富的开发工具等资源可利用,易于调试;但是FPGA得成本偏高,算术运算能力不强,而本设计系统的设计会用到较多算术运算,所以FPGA的高速处理的优势得不到充分体现。方案二:采用STC公司的IAP15F2K61S2单片机作为系统的控制器。单片机算术运算功 能强,软件编程灵活,可用软件较简单的实现各种算术和逻

9、辑控制,并且由于其成本低, 体积小和功耗低等优点,使其在各个领域应用广泛;另外,由于本设计中会用到较多的算 术运算,所以对本系统来说非常适合利用单片机作为控制器。基于以上分析,选择方案二。2系统理论分析与计算2.1 风扇调试原理单片机控制的小型直流电机的一般采用PWM脉冲调制方式实现速度的控制。PWM基本原理:PWM即脉冲宽度调制(定义),是直流电源电压基本不变的情况下通 过电子开关的通断,改变施加到电机电枢端得直流电压脉冲宽度(即所谓的占空比),以调节输入电机电枢的电压平均值的调速方式。通过改变固定周期内直流电压的占空比来改变电机两端的直流平均电压,进而达到控制风力大小的一种方法。 PWM可

10、以应用在许多方面,如电机调速、温度控制、压力控制等。通过改变直流电机电枢上电压的"占空比"来改变平均压的大小,从而控制电动机的转速。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。设电机始终接通电源时,电机转速最大为 Vmax,设占空比为D=t1/T,则电机的平均速度为式中,Vd -电机的平均速度;Vmax-电机全通电时的速度(最大);D=t1/T -占空比。由此可见,当我们改变占空比D: t1/T时,就可以得到不同的电机平均速度Vd ,严格地讲,平均速度Vd与占空比D并不是严格的线性关系,在一般的应用中,可以将其近似地看成线性关系。2.2 角度测量原理mpu6

11、050工作原理:作为一款物理传感器,其工作原理是利用物理效应,诸如压电效应,将被测信号量的微小变化转换成电信号。MPU6050是一款9轴运动处理传感器。它集成了 3轴MEMS陀螺仪,3轴MEMS加速度计,以及一个可扩展的数字运动处理器DMP (Digital Motion Processor),可用I2C接口连接一个第三方的数字传感器,比如磁力计。扩展之后就可以通过其I2C或SPI接口输出一个9轴的信号(SPI接口仅在MPU-6000可用)。MPU-6050也可以通过其I2C接口连接非惯性的数字传感器,比如压力传感器。极大提高系 统最小精度,符合题目要求。2.3 PID控制算法的分析PID算P

12、ID控制算法是控制理论中应用很广泛的一种算法,对于一般控制系统来说, 法从某种意义来说具有通用性,对各种系统具有广泛的适用性,通过现场的参数调试,可 以达到很好的控制效果。对于我们这次风板控制系统的设计,我们同样也可以使用PID控制算法,具体算法如下:e(i)=t 测-t 设E=(2)算法中,u (i)为当时的功率输出。T为采样时间,E为误差积累,KP为比例常数,Ti 为积分常数,Td为微分常数。根据实际系统,调节这三个常数,可以达到更好的效果。3电路与程序设计2.1 电路的设计2.1.1 系统总体框图系统总体框图如图3.1所示:图3.1系统总体框图2.1.2 角度检测电路采用GY-52角度传

13、感器,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量 的包装空间。MPU-6000整合了 3轴陀螺仪、3轴加速器,可以直接输出角度转换为数字信 号传递给单片机进行调速控制。其电路图如图3.2所示:图3.2角度检测电路2.1.3 风扇驱动电路采用单片机产生 PWM波,简化硬件电路设计,实现性价比高特点,改变PWM波的占空比的值即可改变电枢端电压的平均值从而达到调速的目的。外加LM298驱动电路,即可完全实现调速控制。LM298N它采用单片集成塑装,是一个高电压、大电流全双桥驱动器,由标准的TTL电平控制。L298N支持50V以内的电机控制电压,在直流运转条件下,可以 通过高达2A的电流,因

14、此它满足了一般小型电机的控制要求。接法见图3.3,图中二极管的作用是消除电机的反向电动势,保护电路,因此采用整流二极管比较合适。PWM控制信号由ini、in2输入。如果ini为局电平,in2为低电平时电机为正向转速,反之 ini为低电 平,in2为高电平时,电机为反向转速。本设计将in2直接接地,即采用单向制动的方式。图3.3 L298N模块实物图2.1.4 按键及显示电路图3.4 1602显示电路本设计采用1个键作为键盘,分别为选择2种模式。按是一种,不按又是一种。图3.5按键输入电路2.1.5 电源电路电源由变压部分、滤波部分、稳压部分组成。为整个系统提供5V或者12V电压,确保电路的正常

15、稳定工作。我们采取的是单电源供电,把12V的直流电供给电机,用降压芯片把电压稳定到5V,提供给单片机工作,并实现了互不干扰。同时单片机可以间接控制电 机的调速。LM337可调稳压2.2 程序的设计2.2.1 程序功能描述与设计思路1、程序功能描述:可以输出精确的角度信息,并利用PWM来高速调节电机的开关从而实现对电机速度控制,使得角度传感器,风板,电机,单片机,LCD1602形成了一个简单的系统。2、程序设计思路:先是利用角度传感器对风板的角度进行精确的实时显示,利用角度传感 器传输的数据对pwm进行控制,使得电机的风速得到控制,最后风速来反馈给角度传感器, 形成了一个封闭的反馈使的闭环系统。

16、4测试方案与测试结果2.3 测试方法与仪器测试方法:先通过 Keil C软件实现程序调试和进行初步仿真,再通过 protues仿真软件搭建 电理图,实现对程序功能的实现仿真,并且用虚拟仿真软件 Multisim对硬件电路实现功能仿 真,确保电路无误后,在制作硬质电路板,焊接电路,实现软硬件联合调试。测试仪器:量角器、秒表、直尺、模拟示波器、数字示波器、数字万用表、指针式万用表。2.4 测试过程及数据1 .测试基本功能一:用手搬动风板时,数字显示风板的转角。实际测试时,风板角度能 够从45-135度变化,符合题目要求。2 .测试基本功能二:当悬挂10克重物时,使风板角度能够在45-135度范围变

17、化,并实时显示角度。在完成要求的同时,要求误差不超过5度,反应时间15秒,测试如下:风力大小()角度(° )40 3044 4547 5053 8055 9560 10565 12073 135表1基本功能二测试3 .测试基本功能三:当间距为10cm时,通过控制按键控制风力大小,在 45° ±5°范围内。要求控制过程在 10秒内完成,实时显示 0 ,并由声光提示,以便进行测试。测试数据如表2所示:风力大小()角度(° ) 用时(s)52 48 6.351 48 3.143 44 3.1表2.基本功能测试三4 .测试发挥功能一:当间距挂10克重物

18、时,通过键盘设定风板转角,其范围为45-135要0在15秒内达到设定值,并实时显示0。最大误差的绝对值不超过50测试数据如表3所示:设定角度(° )实际角度(° )风力大小()调整时间(s)30 30 0050 14 12 1370 24 17 1690 28 22 13130 54 76 11150 180 80 05测试发挥功能二:在功能一的基础上,通过键盘设定模式,要求 0在两个预设角度间摆动四次,摆动周期不超过 5秒,最大误差的绝对值不超过5°。测试数据达到要求2.5 测试分析与结论根据上述测试数据,系统完全符合要求,误差在允许范围内,实现全部功能,有些指

19、标还很高精度。由此可以得出以下结论:综上所述,本设计达到设计要求。附录1:电路原理图角度传感器电路原理图附录2:实物图附录3:系统程序#include <stc15f2k60s2.H> #include <math.h> /Keil library #include <stdio.h> /Keil library #include <INTRINS.H> typedef unsigned char uchar;typedef unsigned short ushort;typedef unsigned int uint;*/定义51单片机端口*#

20、define DataPort P0/LCD1602 数据端口sbitSCL=P2A4;/IIC时钟引脚定义sbitSDA=P2A3;/IIC数据引脚定义sbitLCM_RS=P2A2;/LCD1602 命令端口sbitLCM_RW=P2A1;/LCD1602 命令端口sbitLCM_EN=P2A0;/LCD1602 命令端口*/定义MPU6050内部地址*#define SMPLRT_DIV0x19 陀螺仪采样率,典型值:0x07(125Hz)#define CONFIG0x1A/低通滤波频率,典型值:0x06(5Hz)#define GYROCONFIG0x1B陀螺仪自检及测量范围,典型值

21、:0x18(不自检,2000deg/s)#define ACCELCONFIG0x1C/加速计自检、测量范围及高通滤波频率,典型值:0x01(不自检,2G, 5Hz)#defineACCELXOUTH0x3B#defineACCELXOUTL0x3C#defineACCELYOUTH0x3D#defineACCELYOUTL0x3E#defineACCELZOUTH0x3F#defineACCELZOUTL0x40#definePWRMGMT10x6B/电源管理,典型值:0x00(正常启用)#defineWHOAMI0x75/IIC地址寄存器(默认数值0x68,只读)#defineSlaveA

22、ddress 0xD0/IIC写入时的地址字节数据,+1为读取*/定义类型及变量*uchar dis4;显示数字(-511至512)的字符数组int dis_data;/变量/int Temperature,Temp_h,Temp_l;/温度及高低位数据*/函数声明*void delay(unsigned int k);/延时/LCD相关函数void InitLcd();/初始化lcd1602 void lcd_printf(uchar *s,int temp_data);void WriteDataLCM(uchar dataW);/LCD 数据void WriteCommandLCM(uc

23、har CMD,uchar Attribc);/LCD 指令void DisplayOneChar(uchar X,uchar Yuchar DData);显示一个字符void DisplayListChar(uchar X,uchar Yuchar *DData,L);显示字符串/MPU6050操作函数void InitMPU6050();/ 初始化MPU6050void Delay5us();void I2C_Start();void I2C_Stop();void I2C_SendACK(bit ack);bit I2C_RecvACK();void I2C_SendByte(uchar

24、 dat);uchar I2C_RecvByte();void I2C_ReadPage();void I2C_WritePage();void display_ACCEL_x();void display_ACCEL_y();void display_ACCEL_z();uchar Single_ReadI2C(uchar REG_Address);读取 I2C 数据*void Single_WriteI2C(uchar REG_Address,uchar REG_data); 向 I2C 写入数据*/整数转字符串,*void lcd_printf(uchar *s,int temp_dat

25、a)*+s =temp_data/100+0x30;temp_data=temp_data%100;/取余运算*+s =temp_data/10+0x30;temp_data=temp_data%10;/取余运算*+s =temp_data+0x30;*延时*void delay(unsigned int k)unsigned int i,j;for(i=0;i<k;i+)for(j=0;j<121;j+);/*/LCD1602初始化/*void InitLcd()WriteCommandLCM(0x38,1);WriteCommandLCM(0x08,1);WriteComman

26、dLCM(0x01,1);WriteCommandLCM(0x06,1);WriteCommandLCM(0x0c,1);DisplayOneChar(0,0,'A');DisplayOneChar(0,1,'G');*/LCD1602写允许*void WaitForEnable(void)DataPort=0xff;LCM_RS=0;LCM_RW=1;_nop_();LCM_EN=1;_nop_();_nop_();while(DataPort&0x80);LCM_EN=0;/* /LCD1602写入命令 /* void WriteCommandLCM

27、(uchar CMD,uchar Attribc)if(Attribc)WaitForEnable();LCM_RS=0;LCM_RW=0;_nop_();DataPort=CMD;_nop_();LCM_EN=1;_nop_();_nop_();LCM_EN=0;)*/LCD1602写入数据/*void WriteDataLCM(uchar dataW)WaitForEnable();LCM_RS=1;LCM_RW=0;_nop_();DataPort=dataW;_nop_();LCM_EN=1;_nop_();_nop_();LCM_EN=0;)/*/LCD1602写入一个字符 /*vo

28、id DisplayOneChar(uchar X,uchar Yuchar DData)Y&=1;X&=15;if(Y)X|=0x40;X|=0x80;WriteCommandLCM(X,0);WriteDataLCM(DData);*/LCD1602显示字符串*void DisplayListChar(uchar X,uchar Yuchar *DData,L)uchar ListLength=0;Y&=0x1;X&=0xF;while(L-)DisplayOneChar(X,)DDataListLength);ListLength+;X+;/* / 延时

29、5 微秒(STC90C52RC12M)/不同的工作环境,需要调整此函数/当改用1T的MCU时,请调整此延时函数 /* void Delay5us()_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();*/I2C起始信号*void I2C_Start()SDA = 1;

30、/拉高数据线SCL = 1;Delay5us();SDA = 0;Delay5us();SCL = 0;*/I2C停止信号*void I2C_Stop()SDA = 0;SCL = 1;/拉高时钟线/延时产生下降沿/延时/拉低时钟线/拉低数据线/拉高时钟线SDA = 1;Delay5us();/产生上升沿/延时*/I2C发送应答信号 / 入口参数:ack (0:ACK 1:NAK)*void I2C_SendACK(bit ack)SDA = ack;SCL = 1;Delay5us();SCL = 0;Delay5us();/写应答信号/拉高时钟线/延时/拉低时钟线/延时/*/I2C接收应答

31、信号/*bit I2C_RecvACK()SCL = 1;Delay5us();CY = SDA;SCL = 0;/拉高时钟线/延时/读应答信号/拉低时钟线return CY;*/向I2C总线发送一个字节数据*void I2C_SendByte(uchar dat)(/8位计数器/移出数据的最高位/送数据口/拉高时钟线/延时/拉低时钟线/延时uchar i;for (i=0; i<8; i+)(dat <<= 1;SDA = CY;SCL = 1;Delay5us();SCL = 0;Delay5us();)I2C_RecvACK();)/*/从I2C总线接收一个字节数据/*

32、uchar I2C_RecvByte()(uchar i;uchar dat = 0;SDA = 1;for (i=0; i<8; i+)/8(dat <<= 1;SCL = 1;Delay5us();dat |= SDA;SCL = 0;Delay5us();return dat;使能内部上拉,准备读取数据位计数器/拉高时钟线/延时/读数据/拉低时钟线/延时*/向I2C设备写入一个字节数据/*void Single_WriteI2C(uchar REG_Address,uchar REG_data) (I2C_Start();/ 起始信号I2C_SendByte(Slave

33、Address);/ 发送设备地址 + 写信号I2C_SendByte(REG_Address);/ 内部寄存器地址,I2C_SendByte(REG_data);/ 内部寄存器数据,I2C_Stop();/发送停止信号,*/从I2C设备读取一个字节数据*uchar Single_ReadI2C(uchar REG_Address)/起始信号uchar REG_data;I2C_Start();I2C_SendByte(SlaveAddress);I2C_SendByte(REG_Address);I2C_Start();I2C_SendByte(SlaveAddress+1); / 发送设备

34、地址发送设备地址+写信号/发送存储单元地址,从 0开始/起始信号+读信号/*REG_data=I2C_RecvByte();I2C_SendACK(1);I2C_Stop();return REG_data;*初始化MPU6050/*读出寄存器数据/接收应答信号停止信号void InitMPU6050()(Single_WriteI2C(PWR_MGMT_1,0x00);/ 解除休眠状态Single_WriteI2C(SMPLRT_DIV, 0x07);Single_WriteI2C(CONFIG, 0x06);Single_WriteI2C(GYRO_CONFIG, 0x18);Single

35、_WriteI2C(ACCEL_CONFIG, 0x01);*/合成数据*int GetData(uchar REG_Address)char H,L;H=Single_ReadI2C(REG_Address);L=Single_ReadI2C(REG_Address+1);return (H<<8)+L;/ 合成数据/* /在1602上显示10位数据 /* void Display10BitData(int value,uchar x,uchar y)lcd_printf(dis, value);/转换数据显示启始列,行,显示数组,显示长度DisplayListChar(x,y,

36、dis,4);/* / sbit mac1=P1A0;sbit mac=P1A1;void pwm_init()CMOD=0X02;CH=0;CL=0;CCAPM0=0X42;CCAP0L=0X9a;CCAP0H=0X9a;Delay5us();CCAPM1=0X42;CCAP1L=0X9a;CCAP1H=0X9a;Delay5us();CR=1;sbit key=P2A5;sbit key1=P2A6;sbit key2=P2A7;sbit key3=P1A7;sbit led=P1A6;uint flag=0,flag1=0;uchar flag3=0;uint temp;uint cnt

37、=0,cnt1=0;uchar code angl13="060"uchar code angl210="100090"void Delay50ms(uint r) /11.0592MHzunsigned char i, j, k;uint t;for(t=0;t<r;t+)_nop_();_nop_();i = 3;j = 26;k = 223;do(do(while (-k); while (-j); while (-i);uint jd() int v10,i; int y,z;uint te;for(i=0;i<10;i+)y=Get

38、Data(ACCEL_YOUT_H);Delay5us();z=GetData(ACCEL_ZOUT_H);Delay5us();y/=64;z/=64;if(y<0)y=-y;vi=(float)(atan2(z,y)*180)/3.14159265);vi=90-vi;te=v0+v1+v2+v4+v4+v5+v6+v7+v8+v9;te=(te/10)+(te%10);Display10BitData(te,2,0);return te;void ang1_93() /需要进一步优化基本的第一问(if(temp<140)(CCAP0L=150-36;CCAP0H=150-36

39、;CCAP1L=150-30;CCAP1H=150-30;if(temp=105)led=0; 调整时间,if(temp>94)&&(temp<101)&&(led=0)Delay50ms(1);flag+; if(flag=90)led=1;flag1=1;if(flag1=1)CCAP0L=150;CCAP0H=150;CCAP1L=150-36;CCAP1H=150-36;Delay50ms(10);CCAP0L=0x9a;CCAP0H=0x9a;CCAP1L=0x9a;CCAP1H=0x9a;void ang2_70_105()uint fl

40、ag2=0;int j,t2;int pwm_counter0=0,pwm_counter1=0;/负数for(j=0;j<2;j+)tj=jd();delay(15); if(t1-t0)>0)flag2=1;else if(t1-t0)<0)flag2=2;if(temp<85)(if(flag2=2)(pwm_counter1+;pwm_counter1+;delay(1);CCAP1L=150-pwm_counter1;CCAP1H=150-pwm_counter1;if(pwm_counter1>=51)pwm_counter1=51;if(flag2=

41、1)(pwm_counter1+;pwm_counter1+;delay(1);CCAP1L=150-pwm_counter1;CCAP1H=150-pwm_counter1;pwm_counter0-;delay(1);CCAP0L=150-pwm_counter0;CCAP0H=150-pwm_counter0;if(pwm_counter1>=51)pwm_counter1=51;if(pwm_counter0<=0)pwm_counter0=0;if(temp>95)(if(flag2=1)(pwm_counter0+; pwm_counter0+;delay(1);

42、CCAP0L=150-pwm_counter0;CCAP0H=150-pwm_counter0;pwm_counter1-; delay(1);if(pwm_counter0>=47)pwm_counter0=48;if(pwm_counter1<=0)pwm_counter1=0;if(flag2=2)pwm_counter0+; pwm_counter0+; delay(1);CCAP0L=150-pwm_counter0;CCAP0H=150-pwm_counter0;pwm_counter1-; delay(1);CCAP1L=150-pwm_counter1;CCAP1H=150-pwm_counter1;if(pwm_counter0>=47)pwm_counter0=48;if(pwm_counter1<=0)pwm_counter1=0;void time_init()TMOD=0X00;TH

温馨提示

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

评论

0/150

提交评论