直流电机控制器的设计
24 v直流电机控制系统的设计
![24 v直流电机控制系统的设计](https://img.taocdn.com/s3/m/3b34fbc1690203d8ce2f0066f5335a8103d2664a.png)
24 v直流电机控制系统的设计一、引言直流电机广泛应用于各种工业和商业领域,并且在家庭电器中也有着重要的作用。
直流电机的控制系统是保证其正常运行和精确控制的关键。
本文将介绍一个基于24 V直流电机的控制系统设计,并详细介绍其硬件和软件设计。
二、硬件设计1.电机选择:首先需要选择适合的直流电机,考虑到24 V电源的供电情况,选择功率合适的直流电机,同时也要考虑转速和扭矩等工作要求。
2.驱动器选择:直流电机控制系统需要一个驱动器来驱动电机。
驱动器的选择要根据电机的电流要求来确定,同时要考虑其与控制器的接口兼容性。
3.控制器设计:控制器是直流电机控制系统的核心部分,用于控制电机的转速、方向和加速度等参数。
控制器可以使用单片机、FPGA或者PLC等进行设计,根据需求选择合适的控制器,并编写相应的程序。
4.电源模块设计:由于直流电机采用24 V电源供电,需要一个稳定的电源模块来为系统提供稳定可靠的电源。
可以选择开关电源或者线性电源,并根据需求设计合适的电源模块。
三、软件设计1.控制算法设计:针对所需的控制任务,设计合适的控制算法。
常见的控制算法包括PID控制、模糊控制和神经网络控制等。
根据具体情况选择合适的控制算法,并编写相应的代码。
2.编程实现:根据控制算法的设计结果,使用相应的编程语言(如C、C++或者PLC编程语言)实现控制算法。
编程要考虑系统的实时性和稳定性,确保控制算法的准确性和可靠性。
3.用户界面设计:设计一个用户友好的界面,方便用户对控制系统进行操作和监控。
可以使用人机界面和触摸屏等设备,实现控制命令的输入和监测数据的显示。
四、系统测试与调试完成硬件和软件设计后,需要进行系统的测试和调试。
首先进行硬件连接和电源接入的测试,确保电路和连接没有问题。
然后进行软件编程的测试,包括控制算法的功能、编程的准确性和系统的可靠性等方面的测试。
最后进行整个系统的综合测试,包括与电机的实际联动测试、系统的稳定性测试和实际工作情况的测试等。
无刷直流电机控制器设计
![无刷直流电机控制器设计](https://img.taocdn.com/s3/m/42bd7852c4da50e2524de518964bcf84b8d52d66.png)
无刷直流电机控制器设计无刷直流电机控制器的设计是一个复杂的工程,要考虑到多种因素。
首先,控制器需要读取电机的反馈信号,如转速、电流、温度等,以便精确控制电机运行状态。
其次,控制器需要根据用户输入的指令,控制电机的转速、加速度和转向。
此外,控制器还需要具备过载和故障保护功能,以确保电机的安全运行。
在无刷直流电机控制器的设计中,最关键的部分是电机驱动器和控制算法。
电机驱动器是将电源电压转换成适合电机驱动的电压和电流的装置。
在无刷直流电机中,驱动器通常是由电子器件如功率晶体管(MOSFET)或IGBT组成的桥式电路。
控制算法则是根据电机的反馈信号和用户输入的指令,调整驱动器的输出,以实现目标转速和转向。
在控制算法中,最常用的是电机速度闭环控制。
该算法通过比较电机的实际速度和设定速度,并调整驱动器的输出,以使二者保持一致。
此外,还可以采用位置闭环控制算法,通过比较电机实际位置和设定位置,调整驱动器的输出,使电机追踪设定位置。
这两种闭环控制算法可以单独使用,也可以结合使用,以实现更精确的控制效果。
除了速度和位置闭环控制,无刷直流电机控制器还可以具备其他功能,如加速度控制、转向控制、制动控制等。
加速度控制功能可以使电机平稳加速,避免过载和电机损坏。
转向控制功能可以改变电机的旋转方向,以适应不同的任务需求。
制动控制功能可以在电机停止旋转时施加制动力,以便实现快速制动和精确停止。
在无刷直流电机控制器设计中,还需要考虑过载和故障保护功能。
过载保护功能可以监测电机的电流和温度,当超过设定的阈值时,控制器会减小驱动器的输出,避免电机的过载。
故障保护功能可以检测电机和驱动器是否正常工作,当发生故障时,控制器会停止驱动器输出,以避免电机和设备损坏。
总之,无刷直流电机控制器的设计是一个复杂而关键的任务。
它需要考虑到电机的复杂性、用户需求以及过载和故障保护等因素。
只有通过合适的驱动器和控制算法,才能实现电机的精确控制和安全运行。
详解直流电机驱动电路设计
![详解直流电机驱动电路设计](https://img.taocdn.com/s3/m/d414edcacd22bcd126fff705cc17552706225e12.png)
详解直流电机驱动电路设计
直流电机驱动电路设计概述
电机驱动电路是控制电机运行的电路,也称作动力源电路,它的主要
作用是提供电机所需要的适当电压和频率的电能,以控制电机的转速和转
动方向。
一般讲,电机驱动电路包括三个部分:驱动器,控制器和电源电路。
一、直流电机驱动电路的设计
1、驱动器的设计
直流电机驱动电路主要由驱动器、控制器和电源电路组成。
在这里,
驱动器主要负责将控制器的控制信号转换为适合电机工作的电流。
现在,
基于IGBT的驱动器已经成为直流电机驱动电路中的主要组成部分。
驱动
器电路很复杂,包括用于驱动电机的晶体管,用于传输控制信号的晶体管,以及调节电流的电阻等。
2、控制器的设计
控制器是电机驱动电路的核心部分,它负责接收外部输入信号,并根
据设定的参数来调整电机的转速、转向和加速等。
控制器设计非常复杂,
一般包括两个主要部分:控制电路和放大路由部分。
控制电路负责检测电
机的运行状态和外部输入,并根据这些信息来调整电机的转速。
放大部分
负责将控制电路的输出信号放大,并将其转换为能够驱动电机的标准控制
信号。
3、电源电路的设计。
直流无刷电机的控制系统设计方案
![直流无刷电机的控制系统设计方案](https://img.taocdn.com/s3/m/1048d55afad6195f302ba600.png)
直流无刷电机的控制系统设计方案1 引言1.1 题目综述直流无刷电机是在有刷直流电机的基础上发展起来的,它不仅保留了有刷直流电机良好的调试性能,而且还克服了有刷直流电机机械换相带来的火花、噪声、无线电干扰、寿命短及制造成本高和维修困难等等的缺点。
与其它种类的电机相比它具有鲜明的特征:低噪声、体积小、散热性能好、调试性能好、控制灵活、高效率、长寿命等一系列优点。
基于这么多的优点无刷直流电机有了广泛的应用。
比如电动汽车的核心驱动部件、电动车门、汽车空调、雨刮刷、安全气囊;家用电器中的DVD、VCD、空调和冰箱的压缩机、洗衣机;办公领域的传真机、复印机、碎纸机等;工业领域的纺织机械、医疗、印刷机和数控机床等行业;水下机器人等等诸多应用[1]。
1.2 国内外研究状况目前,国内无刷直流电机的控制技术已经比较成熟,我国已经制定了GJB1863无刷直流电机通用规范。
外国的一些技术和中国的一些技术大体相当,美国和日本的相对比较先进。
当新型功率半导体器件:GTR、MOSFET、IGBT等的出现,以及钕铁硼、钐鈷等高性能永磁材料的出现,都为直流电机的应用奠定了坚实的基础。
近些年来,计算机和控制技术快速发展。
单片机、DSP、FPGA、CPLD等控制器被应用到了直流电机控制系统中,一些先进控制技术也同时被应用了到无刷直流电机控制系统中,这些发展都为直流电机的发展奠定了坚实的基础。
经过这么多年的发展,我国对无刷电机的控制已经有了很大的提高,但是与国外的技术相比还是相差很远,需要继续努力。
所以对无刷直流电机控制系统的研究学习仍是国内的重要研究内容[2]。
1.3 课题设计的主要内容本文以永磁方波无刷直流电机为控制对象,主要学习了电机的位置检测技术、电机的启动方法、调速控制策略等。
选定合适的方案,设计硬件电路并编写程序调试,最终设计了一套无位置传感器的无刷直流电机调速系统。
本课题涉及的技术概括如下:(1)学习直流无刷电机的基本结构、工作原理、数学模型等是学习电机的前提和首要内容。
直流无刷电机控制器设计
![直流无刷电机控制器设计](https://img.taocdn.com/s3/m/1eed5405366baf1ffc4ffe4733687e21af45ff0e.png)
直流无刷电机控制器设计随着科技的不断发展,直流无刷电机作为一种环保、节能的电机类型,其应用越来越广泛。
而直流无刷电机的控制器作为实现电机运动的核心部件,其设计对于电机的性能和寿命有着至关重要的影响。
本文将探讨直流无刷电机控制器设计的相关概念和要点,旨在实现高效、长寿命的电机驱动。
直流无刷电机与控制器直流无刷电机是一种通过电子换向装置替代传统机械换向装置的电机,具有结构简单、维护方便、效率高等优点。
而控制器作为直流无刷电机的核心部分,通过调节电机绕组中的电流实现对电机运动的控制。
根据不同的应用场景和需求,控制器可以有多种不同的设计方案。
控制器设计硬件设计控制器硬件设计主要是选择合适的微控制器、功率器件、传感器等元器件,并根据实际需求设计电路板和接插件。
在硬件设计过程中,需要考虑到控制器的可靠性、稳定性和扩展性。
软件设计控制器软件设计主要涉及到电机控制策略和算法的实现。
常见的控制策略包括PID控制、PWM控制、速度闭环控制等。
软件设计需要结合实际应用场景和电机类型,选择合适的控制算法,并进行优化以实现更好的电机控制效果。
实例分析以一款应用于真空泵的直流无刷电机控制器为例,该控制器采用STM32微控制器,通过PWM控制和速度闭环控制策略实现对电机的精确控制。
在实际应用中,该控制器能够在保证电机高效运行的同时,实现对电机的过热保护和故障诊断,有效延长了电机的使用寿命。
直流无刷电机控制器设计是实现高效、长寿命电机驱动的关键。
本文介绍了直流无刷电机与控制器的基本概念,并从硬件设计和软件设计两个方面探讨了控制器设计的要点。
同时,通过实例分析,说明控制器设计需要结合实际应用场景和电机类型,选择合适的控制策略和算法,并进行优化以实现更好的电机控制效果。
针对未来发展,我们认为直流无刷电机控制器设计将朝着更加高效、智能、可靠的方向发展。
具体来说,以下几个方面值得:控制算法的研究与优化。
随着人工智能和机器学习技术的发展,可以尝试将先进的技术引入到电机控制领域,以实现更加精准、智能的电机控制。
永磁无刷直流电机控制系统设计
![永磁无刷直流电机控制系统设计](https://img.taocdn.com/s3/m/c725d1be7d1cfad6195f312b3169a4517623e547.png)
永磁无刷直流电机控制系统设计1.电机模型的建立:建立电机的数学模型是进行控制系统设计的第一步。
永磁无刷直流电机可以使用动态数学模型来描述其动态特性,常用的模型包括简化的转子动态模型和电动机状态空间模型。
简化的转子动态模型以电机的电磁转矩方程为基础,通过建立电机的电流-转速模型来描述电机的动态响应。
这个模型通常用于低频控制和电机启动阶段的设计。
电动机状态空间模型则是通过将电机的状态变量表示为电流和转速变量,用微分方程的形式描述电机的动态特性。
这个模型适用于高频控制和电机稳态响应分析。
2.控制器设计:经典的控制方法包括比例积分控制器(PI)和比例积分微分控制器(PID)。
比例积分控制器是最简单的控制器,通过调节电流的比例增益和积分时间来控制电机的速度。
这种控制器适用于低精度控制和对动态响应要求不高的应用。
比例积分微分控制器在比例积分控制器的基础上增加了微分项,通过调节微分时间来控制系统的阻尼比,提高系统的稳定性和动态响应。
3.参数调节:在控制器设计中,参数调节和整定是非常重要的环节,主要包括根据系统的要求选择合适的控制器参数,并进行优化。
参数调节可以通过试探法、经验法和优化算法等方法进行。
其中,试探法和经验法是相对简单的方法,通过调整控制器的参数值来达到稳定运行或者较好的控制性能。
优化算法可以通过数学模型和计算机仿真的方式进行,通过优化目标函数和约束条件,得到最合适的控制器参数。
总结起来,永磁无刷直流电机控制系统设计主要包括电机模型的建立、控制器设计和参数调节。
在设计过程中,需要根据系统的要求选择合适的控制器,通过参数调节和优化算法来提高系统的稳定性和动态性能。
汽车直流启动电动机正反转控制器硬件电路设计
![汽车直流启动电动机正反转控制器硬件电路设计](https://img.taocdn.com/s3/m/6048353178563c1ec5da50e2524de518974bd37e.png)
汽车直流启动电动机正反转控制器硬件电路设计一、引言直流电动机广泛应用于汽车领域,而其正反转控制是实现汽车启动、停止以及转向等功能的基础。
本文将详细介绍汽车直流启动电动机正反转控制器硬件电路设计的相关内容。
二、背景知识2.1 直流电动机工作原理直流电动机的工作原理是基于电磁感应现象,通过电流在磁场中产生力矩,从而驱动电动机转动。
其正反转即通过改变电流的方向和大小来实现。
2.2 控制器的功能汽车直流启动电动机正反转控制器是电动机驱动的核心部件之一,其作用主要有以下几个方面:1.实现电动机的正反转控制;2.控制电动机的启动、停止;3.调节电动机的转速;4.检测电动机的工作状态和保护电动机。
三、汽车直流启动电动机正反转控制器硬件电路设计方案3.1 控制器整体设计思路汽车直流启动电动机正反转控制器主要由以下模块组成:1.信号输入模块:负责接收外部信号,包括启动、停止、转向等信号;2.电源模块:为各个模块提供电源;3.信号处理模块:对输入信号进行处理,生成相应的控制信号;4.驱动电路模块:根据控制信号驱动电动机;5.保护模块:监测电动机的运行状态,当出现异常情况时进行保护。
3.2 信号输入模块设计信号输入模块主要包括启动、停止和转向信号的接收。
这些信号可以通过按钮、踏板等方式产生。
接收到信号后,经过滤波和放大等处理,送至信号处理模块。
3.3 电源模块设计电源模块负责为各个模块提供稳定的电源。
一般情况下,汽车的电池可以用作电源,并通过电源管理电路进行稳压和滤波等处理,以确保各模块正常工作。
3.4 信号处理模块设计信号处理模块主要对输入信号进行处理,生成相应的控制信号。
例如,当接收到启动信号时,信号处理模块将对应的控制信号发送至驱动电路模块,从而驱动电动机启动。
3.5 驱动电路模块设计驱动电路模块负责根据信号处理模块的控制信号,对电动机进行控制。
一般情况下,采用功率晶体管作为开关元件,通过控制其导通和关闭,实现电动机的正反转控制。
直流电机转速控制系统设计
![直流电机转速控制系统设计](https://img.taocdn.com/s3/m/6bd251ccd1d233d4b14e852458fb770bf78a3bdb.png)
直流电机转速控制系统设计一、控制系统框架1.检测部分:检测部分主要用于反馈直流电机转速信息。
常用的检测方法有编码器、霍尔元件和反电动势法等。
其中,编码器是一种精度高、稳定性好的转速检测传感器。
它通过感应转子上的编码盘,将转速转换为脉冲信号输出。
2.控制器:控制器是直流电机转速控制系统的核心部分。
它根据检测到的转速信息,与设定的目标转速进行比较,产生控制信号驱动执行器。
常用的控制器有比例控制器、比例积分控制器、比例微分控制器等。
其中,比例控制器通过调节输出信号的幅值来控制转速;比例积分控制器通过累积误差来产生输出信号;比例微分控制器则通过控制误差变化率来调节输出信号。
3.执行部分:执行部分主要用于控制电机的转速。
常用的执行器有功率晶体管、场效应管和三相半导体开关等。
其中,功率晶体管是最常用的直流电机转速控制器,它通过调节电路中的开关状态来改变电机的转速。
二、控制策略1.开环控制:开环控制是最简单的控制策略,它通过设定电机的输入电压或电流来控制转速。
缺点是无法对外部干扰和负载变化进行自动调节。
2.闭环控制:闭环控制通过反馈得到的转速信息来调整输入信号,实现对转速的控制。
闭环控制具有精度高、稳定性好的优点,适用于要求较高的转速控制场合。
三、系统参数调节1.参数估计:参数估计是指通过对电机特性进行建模,得到电机参数的估计值。
常用的方法有试验法和辨识法等。
2.参数调节:参数调节是通过对控制器的参数进行优化,以实现准确的转速控制。
常用的调节方法有PID调节和自适应调节等。
四、应用案例总结:本文详细介绍了直流电机转速控制系统的设计。
从控制系统框架、控制策略、系统参数调节和应用案例等方面进行了讲解。
通过合理的设计和调节,可以实现对直流电机转速的精确控制,满足不同场合的需求。
基于stm32的无刷直流电机控制系统设计
![基于stm32的无刷直流电机控制系统设计](https://img.taocdn.com/s3/m/696247143a3567ec102de2bd960590c69ec3d820.png)
基于STM32的无刷直流电机控制系统设计随着现代工业技术的不断发展,无刷直流电机在各行各业中得到了广泛的应用。
无刷直流电机具有结构简单、效率高、寿命长等优点,因此在工业控制系统中得到了广泛的应用。
为了更好地满足工业生产的需求,研发出一套基于STM32的无刷直流电机控制系统,对于提高工业生产效率、减少人力成本具有非常重要的意义。
1. 系统设计需求1.1 电机控制需求电机控制系统需要能够实现对无刷直流电机的启动、停止、加速、减速等控制功能,以满足不同工业生产环境下的需求。
1.2 控制精度要求控制系统需要具有较高的控制精度,能够实现对电机的精确控制,提高生产效率。
1.3 系统稳定性和可靠性系统需要具有良好的稳定性和可靠性,确保在长时间运行的情况下能够正常工作,减少故障率。
1.4 节能环保控制系统需要具有节能环保的特点,能够有效降低能耗,减少对环境的影响。
2. 系统设计方案2.1 选用STM32微控制器选用STM32系列微控制器作为控制系统的核心,STM32系列微控制器具有性能强大、低功耗、丰富的外设接口等优点,能够满足对控制系统的各项要求。
2.2 传感器选型选用合适的传感器对电机运行状态进行监测,以实现对电机的精确控制,提高控制系统的稳定性和可靠性。
2.3 驱动电路设计设计合适的驱动电路,能够实现对无刷直流电机的启动、停止、加速、减速等控制,并且具有较高的控制精度。
2.4 控制算法设计设计优化的控制算法,能够实现对电机的精确控制,提高控制系统的稳定性和可靠性,同时具有节能环保的特点。
3. 系统实现与测试3.1 硬件设计按照系统设计方案,完成硬件设计,并且进行相应的电路仿真和验证。
3.2 软件设计编写控制系统的软件程序,包括控制算法实现、传感器数据采集和处理、驱动电路控制等方面。
3.3 系统测试对设计好的控制系统进行各项功能测试,包括启动、停止、加速、减速等控制功能的测试,以及系统稳定性和可靠性的测试。
直流电机控制器设计说明书
![直流电机控制器设计说明书](https://img.taocdn.com/s3/m/2161a5c0c850ad02df80414f.png)
直流电机控制器设计说明书1.1 设计思想直流电机PWM控制系统主要功能包括:直流电机的加速、减速以及电机的正转和反转,并且可以调整电机的转速,还可以方便读出电机转速的大小,能够很方便的实现电机的智能控制。
其间,还包括直流电机的直接清零、启动、暂停、连续功能。
该直流电机系统由以下电路模块组成:振荡器和时钟电路:这部分电路主要由89C51单片机和一些电容、晶振组成。
设计输入部分:这一模块主要是利用带中断的独立式键盘来实现。
设计控制部分:主要由89C51单片机的外部中断扩展电路组成。
设计显示部分:包括液晶显示部分和LED数码显示部分。
LED数码显示部分由七段数码显示管组成。
直流电机PWM控制实现部分:主要由一些二极管、电机和L298直流电机驱动模块组成。
1.2 系统总体设计框图直流电机PWM调速系统以AT89C51单片机为核心,由命令输入模块、LED显示模块及电机驱动模块组成。
采用带中断的独立式键盘作为命令的输入,单片机在程序控制下,定时不断给直流电机驱动芯片发送PWM波形,H型驱动电路完成电机正,反转控制;同时单片机不停的将从键盘读取的数据送到LED显示模块去显示,进而读取其速度。
1.3 程序设计流程图图1-2中断服务流程图2 总体硬件电路设计2.1 芯片介绍2.1.1 89C51单片机结构特点: 8位CPU ;片振荡器和时钟电路; 32根I/O 线;外部存贮器寻址围ROM 、RAM64K ; 2个16位的定时器/计数器; 5个中断源,两个中断优先级; 全双工串行口; 布尔处理器。
图1.2 定时中断服务流程图图2-1 89C51单片机引脚分布图2.1.2 RESPACK-8排阻RESPACK-8是带公共端的8电阻排,它一般是接在51单片机的P0口,因为P0口部没有上拉电阻,不能输出高电平,所以要接上拉电阻。
图2-2 RESPACK-8引脚分布图2.1.3 驱动器L298L298是双电源大电流功率集成电路,直接采用TTL逻辑电平控制,可用来驱动继电器,线圈,直流电动机,步进电动机等电感性负载。
无刷直流电机控制器设计与实现
![无刷直流电机控制器设计与实现](https://img.taocdn.com/s3/m/0f9bb91ecdbff121dd36a32d7375a417866fc126.png)
无刷直流电机控制器设计与实现无刷直流电机控制器是一种常见的电力控制装置,适用于各种工业生产和民用领域,有着广泛的应用前景。
本文将介绍无刷直流电机控制器的设计与实现,从电机控制原理、硬件设计、软件编程等方面全面解析,帮助读者了解和掌握无刷直流电机控制器的基本知识和技术。
一、电机控制原理无刷直流电机的控制原理是利用调整电子元器件的工作状态,改变电机相序和电压大小,控制电机的转速和方向。
具体实现需要依赖于电机控制芯片和相关的控制电路。
硬件设计方面,无刷直流电机控制器需要包括电源电路、驱动电路、反馈电路等几个方面。
电源电路是为了提供可靠的稳定电压,保证无刷电机的正常工作。
驱动电路是控制电机转速和方向的核心,主要包括电机驱动芯片、功率管、电机端口等。
反馈电路是为了实现电机转速的反馈控制,保证稳定性和精确性。
二、硬件设计无刷直流电机控制器的硬件设计,主要包括电源电路、驱动电路、反馈电路和中控电路等几个方面。
其中,电源电路是为了提供电压和电流,保证无刷电机的正常工作;驱动电路是用来控制电机的方向和速度;反馈电路则是通过反馈电路检测电机的当前转速状态,实现对电机的有效控制;中控电路则是通过处理驱动电路和反馈电路的场效应管的信号,实现对无刷直流电机的一个全面控制。
三、软件编程无刷直流电机控制器的软件编程是制作控制器的一个必要步骤。
其实现基于C 语言,主要应用于控制电路和集成电路之间的通信和控制。
在编程过程中,需要掌握相关的控制原理和编程技巧,进而实现对无刷直流电机的有效控制和操作。
四、实现结果无刷直流电机控制器的实现结果对于工业控制和民用领域有着广泛的应用前景,其中包括机械加工、医疗设备、交通工具等各个领域。
通过对无刷直流电机控制器的掌握和实现,可以实现对无刷直流电机进一步的优化和改进。
无刷直流电机模糊pid控制器的simulink设计
![无刷直流电机模糊pid控制器的simulink设计](https://img.taocdn.com/s3/m/0be87b9929ea81c758f5f61fb7360b4c2e3f2ae8.png)
无刷直流电机模糊pid控制器的simulink设计在控制系统中,PID控制器是最常见且广泛应用的控制器之一,它通过调节比例项、积分项和微分项来实现对系统的控制。
而模糊控制器则是一种基于模糊逻辑的控制器,能够处理系统模型非线性、参数变化较大或难以精确建模的情况。
将PID控制器与模糊控制器相结合,可以充分发挥各自的优势,提高系统的控制性能。
在Simulink中设计无刷直流电机模糊PID控制器,首先需要建立电机模型。
电机模型可以通过数学建模或直接使用Simulink中的电机模型来实现。
接下来,需要设计PID控制器和模糊控制器。
PID控制器的参数可以通过经验法则、试错法或自整定法等方法进行调节,以获得合适的控制效果。
模糊控制器的设计需要确定模糊集合、模糊规则库和模糊推理方法,以实现对系统的模糊控制。
设计无刷直流电机模糊PID控制器的Simulink模型时,可以按照以下步骤进行:1. 建立电机模型:选择合适的直流电机模型,包括电机的电气特性、机械特性和控制接口等。
2. 设计PID控制器:设置PID控制器的比例、积分和微分参数,通过模拟和调节,使得系统的响应速度、稳定性和抗干扰能力达到要求。
3. 设计模糊控制器:确定模糊控制器的模糊集合、模糊规则库和模糊推理方法,设置模糊控制器的输入输出变量和模糊规则。
4. 整合PID控制器和模糊控制器:将PID控制器和模糊控制器串联或并联,根据系统的要求和性能指标来设计控制器的整体结构。
5. 仿真验证:在Simulink中进行仿真验证,通过模拟系统的运行情况和控制效果,来评估控制器的性能和稳定性。
通过以上步骤的设计和仿真验证,可以得到一个合理、有效的无刷直流电机模糊PID控制器的Simulink模型。
在实际应用中,可以根据系统的实际情况和性能要求,进一步优化控制器的参数和结构,以实现更好的控制效果。
同时,不断的实验和调试,能够进一步提高控制器的稳定性和鲁棒性,确保系统的可靠性和性能的提升。
6无刷直流电机控制器的软件设计
![6无刷直流电机控制器的软件设计](https://img.taocdn.com/s3/m/46ce6362a98271fe910ef9ca.png)
第一章绪论1.1 选题的依据及意义随着人们生活水平的提高,产品质量、精度、性能、自动化程度、功能以及功耗、价格等已经是选择家用电器的主要因素。
就电动机而言,传统的有刷直流电动机以机械方法进行换向,存在着相对的机械摩擦,由此存在噪声、火花、无线电干扰以及寿命短等致命弱点,制造成本高及维修困难等缺点,大大地限制了它的应用范围。
永磁无刷直流电动机是近年随着电力电子器件及新型永磁材料发展而迅速成熟起来的一种新型机电一体化电机,既具有交流电机的结构简单、运行可靠、维护方便等优点,又具备直流电机固有的优越的启动性能和调速特性。
其无机械式换向机构,现以广泛应用于各种调速驱动场合,应用前景看好,尤其从当今的环保、能源、效率等综合因素出发,水磁无刷直流电机可望在未来的电动产业占有主导地位。
就目前而言,永磁无刷直流电动机控制器结构已有多种形式,由最初复杂的模拟式到近来以单片机为核心的数字式,新型电机控制专用芯片的出现,给无刷直流电机调速装置设计带来了极大的便利,这种集成模拟控制芯片控制功能强、保护功能完善、工作性能稳定,组成的系统所需外围电路简单、抗干扰能力强、特别适用于对控制器体积、价格性能比要求较高的场合。
然而专用控制芯片优点固然多,但往往价格比较昂贵,在一些控制要求精度不是很高的场合,就需要能有一种工作稳定、价格又比较低廉的控制器。
本设计就是基于此市场需求,详细介绍了一种基于普通的STC89C52单片机作为主控芯片的无刷直流电动机控制器的设计。
1.2 研究概况及发展趋势无刷直流电动机是在有刷直流电动机的基础上发展起来的,这一渊源关系从其名称中就可以看出来。
有刷直流电动机从19世纪40年代出现以来,以其优良的转矩控制特性,在相当长的一段时间内一直在运动控制领域起主导作用。
但是,有机械接触电刷换向器降低了系统的可靠性,使得其在很多场合中无法使用。
为了取代有刷直流电动机的机械换向装置,人们进行了长期的探索。
很早就有人提出了用整流管代替有刷直流电动机的机械电刷,从而诞生了无刷直流电机的基本思想。
《DSP无刷直流电机控制器的设计》范文
![《DSP无刷直流电机控制器的设计》范文](https://img.taocdn.com/s3/m/46558f1ab207e87101f69e3143323968011cf482.png)
《DSP无刷直流电机控制器的设计》篇一一、引言随着现代工业的快速发展,电机控制技术已成为众多领域的关键技术之一。
无刷直流电机(BLDC)以其高效、低噪音、长寿命等特点在众多应用领域中崭露头角。
为了实现精确、稳定的电机控制,本文提出了一种基于DSP(数字信号处理器)的无刷直流电机控制器设计方法。
二、系统设计概述本设计采用DSP作为核心控制器,通过软件算法实现对无刷直流电机的精确控制。
系统主要由DSP控制器、电机驱动电路、传感器电路、电源电路等部分组成。
其中,DSP控制器负责接收传感器信号,进行算法处理后输出控制信号,驱动电机进行工作。
三、DSP控制器设计DSP控制器是本设计的核心部分,其性能直接影响到电机的控制效果。
在DSP选择上,我们应考虑处理速度、功耗、成本等因素,选择适合的DSP芯片。
DSP控制器的主要功能包括:1. 接收传感器信号:通过ADC(模数转换器)将传感器信号转换为数字信号,供DSP处理。
2. 算法处理:根据传感器信号,通过软件算法计算出电机的控制参数,如PWM(脉宽调制)信号的占空比等。
3. 输出控制信号:将计算出的控制参数通过PWM模块输出为控制信号,驱动电机进行工作。
四、电机驱动电路设计电机驱动电路是连接DSP控制器和电机的桥梁,其性能直接影响到电机的运行效果。
驱动电路应具备较高的驱动能力和较低的功耗。
同时,为了保护电机和控制器,驱动电路还应具备过流、过压等保护功能。
五、传感器电路设计传感器电路用于检测电机的运行状态,为DSP控制器提供反馈信号。
常见的传感器包括电流传感器、速度传感器等。
传感器电路应具备较高的精度和较低的噪声,以保证反馈信号的准确性。
六、电源电路设计电源电路为整个系统提供稳定的电源供应。
在设计中,应考虑电源的稳定性、效率、抗干扰能力等因素。
同时,为了降低系统的功耗,应采用低功耗的电源管理策略。
七、软件设计软件设计是DSP无刷直流电机控制器的关键部分。
在软件设计中,应采用合适的算法实现电机的精确控制。
基于PLC的直流电机调速控制器设计
![基于PLC的直流电机调速控制器设计](https://img.taocdn.com/s3/m/0a71eae1aff8941ea76e58fafab069dc502247de.png)
基于PLC的直流电机调速控制器设计作者:郝结来谢军来源:《江苏理工学院学报》2018年第06期摘要:基于PLC的直流电机调速控制器以三菱FX2N为核心,通过定时器T246和T247实现了PWM波的输出功能,使PWM输出不受输出继电器的限制。
系统设置了启动开关自锁按键,三档位速度控制旋钮。
通过软件继电器M0实现了软件程序启动自锁,防止启动开关异常时程序无法启动的问题。
设置系统启动指示灯和电机启动指示灯,便于用户知晓系统工作是否正常。
通过对6 V小型直流电机的实验,论证了该控制器能够达到较好的控制效果。
关键词:PLC;PWM;定时器;电机调速中图分类号:TM925.11;TP273 文献标识码:A 文章编号2095-7394(2018)06-0047-05直流电机在生产生活中应用广泛,对直流电机的速度调控只需要控制电机的工作电压即可[1],这也是其应用广泛的一个重要原因。
利用PWM脉宽调制方法,可方便地控制负载端的平均电压,在脉冲的低电压趋近于0时,负载的平均电压与PWM的占空比成正比[2-4]。
三菱FX2N型PLC是一款小型高性能的超小程序裝置,具有配置固定灵活,编程简单,高性能与高运算速度等特点,具有丰富的软件定时器与软件继电器,可满足多样化广泛需求。
1 PWM输出与PLC配置1.1定时器PWM输出配置定时器PWM波输出配置PWM波是周期变化的方波信号,其占空比可调,通过调节占空比可实现不同平均电压的输出[5-7]。
PWM波形函数可表示为:在PLC中可使用高速定时器完成PWM波的输出功能,三菱FX2N型PLC内部集成有PWM输出功能[ PWM S1 S2 D],其中S1用于指定脉冲的宽度,S2用于指令脉冲的周期,单位都为 ms,取值范围为0~32767,S1应小于等于S2。
D用于指令脉冲输出端口,FX2N晶体管输出型PLC仅能使用Y0和Y1作为PWM输出口。
在保证PWM输出性能的情况下,选择使用高速定时器可克服上述缺陷。
PWM直流电机无级调速控制器设计资料
![PWM直流电机无级调速控制器设计资料](https://img.taocdn.com/s3/m/6294e51c52d380eb63946d08.png)
PWM直流电机无级调速控制器
【简要说明】
一、尺寸:长80mmX宽48mmX高38mm
二、主要芯片:KA3525
三、工作电压:直流8V~24V
四、额定工作电流3A以下
五、特点:
1、具有电源指示功能
2、实现对直流电机的无级调速
3、可控制一台直流电机
4、可间接控制直流电机调速
5、PWM信号输出
6、散热片可以更换
7、调制范围可从0-100%的调整
8、最低电流消耗约为35毫安。
最大峰值电流可以达到6A。
9、效率优于90%满负荷。
主意:如果要驱动大功率直流电机,可以更换芯片使用IGBT驱动直流电机。
适用场合:单片机学习、电子竞赛、产品开发、毕业设计。
【图片展示】
【原理图】
【占空比】
占空比(Duty Cycle)有如下含义:1)在一串脉冲串中,正脉冲的持续时间与脉冲总周期的比值。
例如:脉冲宽度1μs,信号周期4μs的脉冲串,其占
空比为0.25。
在开关电源测试中,占空比的定义就属于这一类。
下面是占空比在其它场合的定义,供参考 2)在一段连续工作时间内脉冲占用的时间与总时间的比值。
在CVSD调制(continuously variable slope delta modulation)中,比特“1”的平均比例(未完成)。
3)在周期型的现象中,现象发生的时间与总时间的比。
4)负载周期在中文成语中有句话可以形容:“三天打鱼,两天晒网”,则负载周期为0.60, 暨:三天/(三天+二天) = 3/(3+2) = 0.6。
【图片展示】。
基于MSP430的直流电机控制器设计
![基于MSP430的直流电机控制器设计](https://img.taocdn.com/s3/m/62b067876529647d272852cd.png)
产生外部 中断时 ,t i me s ; f J I 1 1 ;1 s 定 时器 中断到时 ,
停 止计 数 。
# p r a g ma ve c t o r = POR T2 VECT OR
_
l
l
1
0
0
1
正转
履转
1 l
0
l 0
X
号 的频 率 。
4 . 4 P I D算法 。P I D( k L 例 、积分 、微分) 控制技术在
自动控制系统 中正得 到越来越广泛 的应用。P I D 调节器
是一种线性调节器 ,它将给定值r ( t ) 与实际输 出值 c ( t ) 的 偏差 的比例( P ) 、积分( I ) 、微分( D ) 通过线性组合构成控
模块 、U A R T 与S P I 通信模块 。
P WM波形 ,通过光电隔离器件连接到E N A。P 1 . 0 与P 1 . 1
信息 系统 工程 l 2 0 1 3 . 1 0 . 2 0 8 1
<
T E C H N O L O G Y 技 术 应 用
通过光 电隔离器件分别连接I N1 、1 N2 。 真值表如表 1 所示。 3 . 3 转速检测部分 。对 于转速的检测方法 ,常见的
部 中断模式。
t i me r A工作在增计数模式 ,输 出模式7 ,利用C C R O 确
定P WM波形 的周期 ,C C R1 确定P WM波形 的占空 比。 代码如下 :
T A C T L=T A S S E L 2+T AC L R +MC 1 ; / / 设置
制量 对控制 对象进 行控制[ 4 1 。模拟 电路 的P I D控制器
自动控制原理—直流电机PI控制器参数设计
![自动控制原理—直流电机PI控制器参数设计](https://img.taocdn.com/s3/m/70f2e3d0b9f3f90f76c61bf2.png)
yss (t ) t
1 120 和瞬态分量
1 60t 1 60t e cos 60t e sin 60t 120 120
组成。 系统误差响应为 e(t ) r (t ) y(t ) 。当时间 t 趋于无穷时,误差响应 e(t ) 的稳态值为稳态 e ( ) 误差,以 ss 标志。对于此处单位斜坡响应时,其稳态误差为 1 ess () t y () 120 误差响应为
目录
1 系统结构分析 .............................................................. 1 2 数学模型 .................................................................. 2 2.1PI 模型建立 ............................................................ 2 2.2 单位反馈传递函数 ...................................................... 2 2.3 扰动下的非单位反馈闭环传递函数 ........................................ 2 2.4 参数计算 .............................................................. 3 3 动态跟踪性能分析 .......................................................... 4 3.1 比例积分控制的分析方法 ................................................ 4 3.2 单位阶跃参考输入 ...................................................... 4 3.3 单位斜坡参考输入 ...................................................... 5 4 数学仿真与验证 ............................................................ 7 4.1MATLAB 中连续系统模型表示方法 .......................................... 7 4.2 单位阶跃输入时的动态性能 .............................................. 7 4.3 单位斜坡输入时的动态性能 .............................................. 8 5 心得体会 ................................................................. 11 参考文献 ................................................................... 12
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
直流电机控制器(华侨大学信息学院08自动化)摘要目前见到的许多关于直流电机的测速与控制类文献中,虽然能实现直流电机的无级调速,但还存在一些问题,如无法与计算机直接接口,许多较为复杂的控制算法无法在不增加硬件成本的情况下实现,控制器的人机界面不理想。
总的来讲,控制器的智能化程度不高,可移植性差。
虽然采用PWM芯片来实现电机无级调速的方案成本较低,但当控制器针对不同的应用场合增加多种附加功能时,其灵活性不够,而且反而增加硬件的成本。
还有一些使用PLC控制器或高档处理器芯片(如DSP器件)的文献,它们虽然具有较高的控制性能,但由于这些高档处理器价格过高,需要更多的外围器件,因此也不具备在通常情况下大规模使用的条件。
从发展趋势上看,总体的研究方向是提出质量更高的算法和调速方案,以及在考虑成本要求的前提下选择适合这种算法的核心控制器。
本设计采用MCU(AT89S52),完成了小型直流电机转速的采集、计算、显示、键盘设定,采用直流电机的PWM调速,实现了对电机转速的测量和控制,解决了通常低采样周期时系统的超调以及积分饱和问题。
关键词单片机;转速;调速;显示一、设计任务与要求1、设计任务设计并制作一个直流电机控制器,控制电机的转速、转向和转速显示(用数码管动态显示)。
2、技术指标a.基本要求(1)具有转速显示功能(在同一CPU上,并留有测试点)。
(2)具有转向控制功能。
(3)可任意定义并控制转速。
(4)转速范围在60~600转/分钟之间连续可调。
(5)可显示任一时刻的占空比。
(6)任何时候控制信号无明显跳变。
b.发挥部分(1)转速范围扩展至30~800转/分钟之间连续可调。
(2)可按步进.30转调整转速。
(3)用键盘输入任意占空比控制电机(大于60转/分),该状态下仍可按步进.10转调整转速。
3、题目评析本题的重点是实现转速的可调可控;难点在于电机的驱动以及控制的算法;由于电机的广泛应用,实现电机的调速控制,实用价值很大。
二、方案比较与论证根据设计任务,需要设计一个直流电机控制系统。
该系统采用脉宽调速,使电机速度等于设定值,并且实时显示电机的转速值。
通过对设计功能分解,设计方案论证可以分为:速度测量方案论证,电机驱动方案论证,键盘显示方案论证,PWM软件实现方案论证。
1、转速测量方案论证方案一:使用红外对射管测速。
硬件简单,只要使用两个电阻,一个红外对管,即可完成要求。
方案二:使用红外反射管测速。
硬件需要电压比较器,使得硬件电路板比较繁琐。
2、电机驱动方案论证方案一:采用专用小型直流电机驱动芯片。
这个方案的优点是驱动电路简单,几乎不添加其它外围元件就可以实现稳定的控制,使得驱动电路功耗相对较小,而且目前市场上此类芯片种类齐全,价格也比较便宜。
方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对电机的速度进行调整。
这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。
方案三:采用由达林顿管组成的H型PWM电路。
用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。
这种电路由于工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术。
本次设计不得使用专用模块,所以本设计采用方案三。
3、键盘显示方案论证方案一:采用4×4键盘,可直接输入设定值。
显示部分使用8位数码管,优点是显示数据充分,缺点是功耗大,动态显示耗时长。
方案二:使用4个按键,进行逐位设置,操作繁琐。
显示部分是使用LCD,优点是功耗低,软件编程简单,不符合题目要求。
根据设计要求,本设计采用方案一。
4、 PWM软件实现方案论证脉宽调制的方式有三种:定频调宽、定宽调频和调宽调频。
本设计采用了定频调宽方式,采用这种方式的优点是电动机在运转时比较稳定,并且在采用单片机产生PWM 脉冲的软件实现上比较方便。
对于实现方式则有两种方案。
方案一:采用定时器做为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确,误差只在几个us。
方案二:采用软件延时方式,这一方式在精度上不及方案一,特别是在引入中断后,将有一定的误差。
但是基于不占用定时器资源,且对于直流电机,采用软件延时所产生的定时误差在允许范围。
因此选择方案一。
三、硬件部分总体框图:系统原理框图如图所示,是一个带键盘输入和数码管动态显示测量控制系统。
主体思想是通过系统设定信息计算输出控制信息。
AT89S52键盘输入P3.0正转控制P3.1反转控制P3.2计数输入P3.3红外输入数码管显示(段码)数码管显示(位选)BCD65432C110412J2L1L2L3L4A-+MG1Q18050Q28050Q38050Q48050Q5D882Q6D882Q7B772Q8B772D14007D24007D34007D44007U1PC817U2PC817Q99012Q109012R1150R247K R3100KR4510R547K R6100K R747K R8510R9150R1047K R1147KR12100KR13510R1447KR15100K R047KR1647K R17510C2104+C310U12J3C4104+C510U1J01J1PWM1PWM2+12V+12V VCC VCCVCC图1 整机框图四、各模块的分析、计算与硬件电路设计1、速度测量电路的设计1.1转速/频率转换电路的设计理论上,是先将转速转化为某一种电量来测量,如电压,电流等。
设计中将转速测量转化为电脉冲频率的测量。
基于这一思想,在电机转轮剪成锯齿型,,总共有八个齿,这样,每转一圈,三级管(红外接收头)透光导通八次,OUT 端变化十六次,即完成了转速/频率的转换。
1.2 电机驱动电路的设计图2 电机驱动原理图R00Q20R201-2 LCD 2-3 DSY P00P01P02P03P04P05P06P07a b c d e f g dpR01R02R03R04R05R06R07R21R22R23R24R25ab c d e f g d p a b c d e f g d pR26R27a b f cg dedp a b f cg dedp a b f cg dedp 1298DIG1DIG2DIG31234571011a b c d e f g dpa b f cg dedp DIG46DS1P20P21P22P23P24P25P26P271234JP23-4 LED VCC a b f cg dedp a b f cg dedp a b f cg dedp 1298DIG1DIG2DIG31234571011a b c d e f g dpa b f cg dedp DIG46DS2Q21Q22Q23Q24Q25Q26Q271.4 LED 数码管显示电路的设计图3 LED 数码管显示电路1.5 4×4矩阵键盘的设计矩阵键盘又称为行列式键盘,它是用4条I/O 线作为行线,4条I/O 线作为列线组成的键盘。
在行线和列线的每一个交叉点上,设置一个按键。
这样键盘中按键的个数是4×4个。
这种行列式键盘结构能够有效地提高单片机系统中I/O 口的利用率。
图为矩阵键盘电路图,行线接P1.4-P1.7,列线接P1.0-P1.3。
K1P14K2P15K3P16K4P17K5RESEVCCS43S87S32S76S21S65S1Comment: 0S54S12B S11A S109S98S16FS15ES14DS13C距阵键盘P10P11P12P13P14P15P16P17014589CDK1KP14P15P16P17独立键盘图4 矩阵键盘电路图5 按键排列键盘程序设计的任务是赋予各按键相应的功能,完成速度设定值的输入和向控制器的发送。
0~9作为占空比数字键输出;A:正转命令;B:反转命令;C:占空比输入命令键;D:步进0.3rpm键;E:步进0.1rpm键;F:stop键五、程序流程框图五、结束语本设计完成了设计的基本要求和扩展要求,由于所使用的直流电机的启动速度在200转/分左右,所以电机的转速测量控制范围为30~800转/分。
另外,参数的确定需要反复的实验观测,所以本系统的各参数设置不一定都是较理想的选择,但系统稳定时控制精度可达1转/分。
根据实际需要,若要进一步提高系统控制的反映速度、精确度和稳定度还需要设计更稳定和精确的转速测量电路以及设置更准确的参数。
附录1 主要元器件清单类型型号数量MCU AT89S52 1晶振12MHz 1 电解电容10UF 4光耦 2 电感100UH 2瓷片电容104 422PF 2三极管772 2 882 2 8050 4 9012 2电阻10K 20 芯片74LS245 2 数码管共阳8 二极管1N4007 2 排阻10K 4开关微动17自锁 1 红外对管 1 发光二极管 3 排针若干导线若干附录2 程序清单#include <REGX52.H>#define uchar unsigned char#define uint unsigned intuchar code key_code[]={0xee,0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7,0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77 };uchar code dispcode[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0x63,0x5c,0x00,0x40,0x01,0x08};//定义共阴极字型码0123456789-0.1.2.3....20口,21口,22消隐,23-,24上-,25下-sbit ZZ=P3^0;//控制端sbit FZ=P3^1;//控制端sbit CE=P3^2; //测速sbit HW=P3^3;//控制端void init_sys(void);void fanzh();void zhenzh();void stop();void set_z();void set_s3();void set_s1();ucharZKB1,ZKB2,pwm1,pwm2,Key,ZKB,biao,biao1,hui,MM ;uint sudu=0,count,zhong,hui1;/***********************************************延时子函数***********************************************/ void delayms(uint ms){uchar t;while(ms--){for(t = 0; t < 100; t++);} }/***********************************************显示子函数***********************************************/ void display(uchar i,uint j){P2=0xfe;P0=dispcode[i/10];delayms(3);P0=0x00;P2=0xfd;P0=dispcode[i%10];delayms(3);P0=0x00;P2=0xfb;P0=biao1;delayms(3);P0=0x00;P2=0xf7;P0=biao;delayms(3);P0=0x00;P2=0xef;P0=dispcode[j/1000];delayms(3);P0=0x00;P2=0xdf;P0=dispcode[j%1000/100];delayms(3);P0=0x00;P2=0xbf;P0=dispcode[j%1000%100/10+10];delayms(3);P0=0x00;P2=0x7f;P0=dispcode[j%1000%100%10];delayms(3);}/***********************************************键盘扫描子函数***********************************************/ uchar keyscan(){uchar scan1,scan2,keycode,j;P1=0xf0;scan1=P1;if((scan1&0xf0)!=0xf0) //判键是否按下{display(ZKB,sudu); //延时30msdisplay(ZKB,sudu);scan1=P1;if((scan1&0xf0)!=0xf0) //二次判键是否按下{P1=0x0f;scan2=P1;keycode=scan1|scan2; //组合成键编码for(j=0;j<=15;j++){if(keycode== key_code[j]) //查表得键值{Key=j;return(Key);}}}}else P1=0xff;return (16);}/***********************************************判键是否按下子函数***********************************************/ void keydown(){P1=0xf0;if((P1&0xf0)!=0xf0){keyscan();}}/***********************************************按键功能**********************************************/ void Keyfic(uchar key){switch(key){case 0x0a: zhenzh(); break;case 0x0b: fanzh(); break;case 0x0c: set_z(); break;case 0x0d: set_s3(); break;case 0x0e: set_s1(); break;case 0x0f: stop(); break;default: break;}}/***********************************************按键功能***********************************************/ uchar shuchu(uchar i){if(Key<10){hui=i%10*10+Key;Key=16;return(hui);}}void set_z(){Key=16;while(Key!=0x0c){biao1=dispcode[23];display(ZKB,sudu);ZKB=shuchu(ZKB);keydown();if(Key==0x0a)zhenzh();if(Key==0x0b)fanzh();}biao1=dispcode[22];Key=16;}void zhenzh(){biao= dispcode[20];ZKB2=ZKB/2+50;ZKB1=100-ZKB2;}void fanzh(){biao= dispcode[21];ZKB1=ZKB/2+50;ZKB2=100-ZKB1;}void stop(){ZKB1=50;ZKB2=100-ZKB1;biao=dispcode[22];ZKB=0;}void set_s3(){uint sudu1;sudu1=sudu;while(Key!=0x0f){Key=16;biao1=dispcode[24]; display(ZKB,sudu1); keydown();display(ZKB,sudu1); keydown();display(ZKB,sudu1); keydown();if(Key==0x0d)sudu1+=3;if(sudu1>sudu){display(ZKB,sudu1);ZKB++;if(ZKB>=99) ZKB=0;ZKB2=ZKB/2+50;ZKB1=100-ZKB2;}else{display(ZKB,sudu1);ZKB--;if(ZKB<=0) ZKB=99;ZKB2=ZKB/2+50;ZKB1=100-ZKB2;}if(HW==0){while(HW==0){EA=0;ZZ=0;FZ=0;}EA=1;}}biao1=dispcode[22];}void set_s1(){uint sudu2;sudu2=sudu;while(Key!=0x0f){Key=16;biao1=dispcode[25]; display(ZKB,sudu2); keydown();display(ZKB,sudu2); keydown();display(ZKB,sudu2); keydown();if(Key==0x0E)sudu2++;if(sudu2>sudu){display(ZKB,sudu2);ZKB++;if(ZKB>=99) ZKB=0;ZKB2=ZKB/2+50;ZKB1=100-ZKB2;}else{display(ZKB,sudu2);ZKB--;if(ZKB<=0) ZKB=99;ZKB2=ZKB/2+50;ZKB1=100-ZKB2;}if(HW==0){while(HW==0){EA=0;ZZ=0;FZ=0;}EA=1;}}biao1=dispcode[22];}/***************************************主程序*****************************************/void main (void){init_sys();ZKB1=50;ZKB2=50;CE=1;while(1){display(ZKB,sudu);keydown();Keyfic(Key);if(HW==0){while(HW==0){EA=0;ZZ=0;FZ=0;}EA=1;}}}/*********************************************** 初始化,包括定时器初始化和变量初始化***********************************************/ void init_sys(void){/***************************************定时器初始化****************************************/TMOD=0X01;TH0=0XFF;TL0=0X9B;TR0=1;ET0=1;EA=1;}/***********************************************中断函数***********************************************/ void timer0(void) interrupt 1 using 2{static uchar click=0;static uint count=0;TH0=0XFF;TL0=0X9B;++click;if (click>=100) click=0;if (click<=ZKB1)ZZ=0;elseZZ=1;if (click<=ZKB2)FZ=0;elseFZ=1;count++;if(MM==~CE){MM=CE;zhong++;}if(count>=5000){count=0;sudu=zhong*2/16*60;zhong=0;}}- 11 -。