家用电风扇控制器
- 格式:doc
- 大小:428.48 KB
- 文档页数:19
Roland Mossig, Noctua CEO.非常感谢您选择我们的NA-FC1。
NA-FC1是一种紧凑型,高度灵活性的4引脚PWM风扇的控制器,可以独立的工作,手动降低速度也可以自动主板风扇控制一起工作。
每个NOCTUA产品在离开工厂之前都经过了我们质量检验部门的双重严格检查,我相信您在使用的过程中能感受到我们对产品的投入研究与细心关注。
尊敬的用户:欣赏您的NA-FC1吧!您们的朋友本手册将介绍如何使用NA-FC1风扇控制器。
如果你在使用中遇到任何困难,请查看我们网站上的常见问题(www.noctua.at/cn/faqs),或者与我们的服务支持团队support@yanyi-noctua.com取得联系。
由于兼容性问题造成的任何损坏,NOCTUA不承担任何责任。
本手册的多语言版本可在我们的网站上获得:www.noctua.at/manuals设备和附件概述将设备连接到电源(S-ATA连接器)和主板(从主板获得PWM输入将RPM速度信息转发到主板)。
安装带电源适配器的NA-AC4输入电缆将NA-AC4的S-ATA连接器插入电源的S-ATA连接器之一。
将NA-S AC4的母头4针连接器插入主板风扇接头连接器,将公头4针连接器插入NA-FC1的输入接口。
然后将风扇连接到输出连接器。
如果要控制多个风扇,首先将NA-SC1分离器电缆连接到输出连接器,将风扇连接到NA-SC1。
NA-S EC1输入电缆警告:请记住,常见的主板风扇头通常只支持9.6或12W(查看您的主板手册了解详细信息)。
超过此功率可能会严重损坏您的主板,而NOCTUA 对此类损坏概不负责。
请始终使用随附的NA-S AC4适配器(请参阅有关连接的风扇超过最大值。
主板风扇接头的额定功率的设置选项。
将NA-S EC1输入电缆连接到输入接口和主板风扇接头连接器上或其他电源。
然后将风扇连接到输出连接器。
如果要控制多个风扇,首先将NA-SC1分离器电缆连接到输出连接器,再将风扇连接到NA-SC1。
目录前言 (3)摘要 (4)1.课程设计任务要求 (4)2.方案设计 (5)2.1总体思路2.2基本原理2.3框图3.单元电路设计 (6)4.Multisim 仿真设计 (14)5.安装调试步骤 (17)6.故障分析与电路改进 (18)7.总结与涉及调试体会 (23)8.队员分工 (24)参考文献 (24)附录一 (25)实验清单 (25)前言炎炎夏日,酷暑难耐,很多家庭选择使用电风扇来降温解暑。
之所以家用电风扇普及范围广,是因为它经济,便捷,实用的性质。
本次课程设计任务为设计并制作一个家用风扇控制器,并实现一定的功能控制功能。
相关功能要求包括风速、类型和通断的调节与控制,并在风扇运行于任意状态下都对其实现功能的切换,充分体现其可控制性。
设计内容是用一个按钮来实现风速强、中、弱的转换并且实现循环;一个按钮来实现风种从正常风、睡眠风、自然风的转换并且实现循环;并且用不同颜色LED灯的显示来表示风速与风种的状态各个状态。
一个模块是风速的循环控制电路,利用74ls192、74ls138芯片实现三种状态的循环计数,并且利用高低电平实现LED灯的亮与灭;一个模块是风种的循环控制电路,利用74ls192、74ls138芯片实现三种状态的循环计数,并且利用高低电平实现LED灯的亮与灭,其中周期性脉冲是利用555发生器产生周期为1s的方波,并且利用74ls161产生周期为8s和16s的脉冲。
本课题基本实现了控制循环电路的功能,将之有效的连接在一起,实现了家用电风扇控制逻辑电路的总体功能。
关键字:LED 电风扇循环控制汇编语言 74LS161D 74LS138D 74LS192D 74LS04 74LS08 74LS32摘要在电路板上有六个指示灯指示电扇的状态。
三个按键分别为选择不同的操作----风速、风种、停止。
其操作方式和状态指示如下:1、电扇处于停转状态时,所有指示灯不亮。
此时只有按“风速”键电扇才会响应,其初始工作状态为“风速”-弱,“风种”-正常位置,且相应的指示灯亮。
电风扇模拟控制系统设计一、引言电风扇作为日常生活中常见的电器之一,广泛应用于家庭、办公和工业场所。
电风扇的控制系统是为了实现对风速、运行时间和摇头等功能的控制,提高用户的使用便利性和舒适度。
本文将介绍电风扇模拟控制系统的设计。
二、系统设计1.硬件设计(1)电机驱动:电风扇的核心部件是电机,控制系统需要对电机进行驱动。
采用直流电机驱动器,通过PWM(脉宽调制)信号控制电机的转速。
可以根据用户的需求设置不同的PWM占空比,实现不同风速档位的调节。
(2)温度传感器:电风扇的控制系统需要实时监测环境温度,以便进行温度控制。
采用温度传感器来检测环境温度,当温度超过设定的阈值时,自动开启电风扇并控制风速。
(3)遥控器:为了方便用户对电风扇的控制,设计一个遥控器。
通过无线通信协议与电风扇的控制系统进行通信,实现遥控开关、风速调节和摇头控制等功能。
2.软件设计(1)PWM控制:控制系统通过PWM信号控制电机的转速。
根据用户设置的风速档位,计算相应的PWM占空比,并将PWM信号发送给电机驱动器,控制电机的转速和风速。
(2)温度控制:通过温度传感器实时监测环境温度,当温度超过设定的阈值时,控制系统自动开启电风扇,并根据设定的温度范围调节风速,以保持室内温度的稳定。
(3)遥控功能:设计一个可以与电风扇控制系统进行无线通信的遥控器。
通过遥控器,用户可以远程控制电风扇的开关、风速调节和摇头控制等功能,提高用户的使用便利性。
三、系统特点1.支持多档风速调节:用户可以根据需要,调节电风扇的风速,以满足不同的舒适需求。
2.自动温度控制:通过温度传感器监测环境温度,自动调节电风扇的风速,以保持室内温度的稳定。
3.远程控制功能:通过遥控器与电风扇的控制系统进行无线通信,用户可以随时随地对电风扇进行控制。
4.节能环保:通过智能控制电风扇的运行时间和风速,减少能源消耗,达到节能环保的目的。
5.使用方便:系统设计简单,用户通过遥控器即可实现对电风扇的控制,操作简单便捷。
风扇遥控器产品说明书掌握风扇遥控器的风速调节和定时功能设置风扇遥控器产品说明书产品简介:本风扇遥控器是一款功能全面的智能设备,具备风速调节和定时功能设置。
通过简单的操作,您可以轻松掌握风扇的风速和定时自动关闭功能,为您的生活带来更大的便利和舒适。
一、风速调节1. 开启风扇将风扇置于待命状态(插入电源并打开电源开关),使用遥控器的开/关按钮,点击一下风扇将开始运转。
2. 风速调节使用遥控器上的风速按钮可以进行风速的调节。
共设有低档、中档和高档三种风速模式,每点击一次风速按钮,风速将逐级递增。
您可以根据自己的需求选择适合的风速档位。
二、定时功能设置本风扇遥控器还具备定时功能,您可以设置风扇在一定时间后自动关闭,省去了夜间起身关闭风扇的麻烦。
1. 定时设置按下遥控器上的“定时”按钮,进入定时设置模式。
屏幕上将显示当前风扇的运行时间和倒计时时间。
2. 倒计时设定在定时设置模式下,您可以通过按下“+”和“-”按钮分别增加或减少倒计时时间。
倒计时时间以分钟为单位,最长可设定为120分钟(即2小时)。
3. 定时启动设定好倒计时时间后,点击遥控器上的“确定”按钮,即可启动定时功能。
风扇将在设定的时间到达后自动关闭。
注意事项:1. 请在使用风扇遥控器前确认电源插座的连接是否正确,并确保风扇的电源开关处于开启状态。
2. 定时功能设置后,风扇将自动在设定的时间到达后关闭,无需额外操作。
3. 请您在使用过程中注意安全,避免将遥控器放置在儿童可触及的地方。
4. 如需停止定时功能,您可以点击遥控器上的“定时”按钮,将倒计时时间设定为0即可。
5. 请勿将风扇遥控器浸入水中或暴露在潮湿的环境中,以免发生电路故障。
6. 若遥控器长时间不使用,请及时取出电池,以免电池漏液导致设备损坏。
7. 建议定期清洁风扇以保持其正常运转。
请先关闭电源并拔掉电源插头,然后用干布轻轻擦拭风扇的表面。
产品规格:- 产品名称:风扇遥控器- 适用范围:各类家用风扇- 功能:风速调节、定时功能- 供电:2节AAA电池(不包含)- 适用距离:最远约10米- 商品重量:50克- 商品尺寸:长 ×宽 ×高(10厘米 × 4厘米 × 1.5厘米)感谢您选购本风扇遥控器产品,如果您在使用过程中有任何问题或意见,欢迎随时联系我们的客服热线或通过官方网站留言,我们将竭诚为您解答和提供支持。
1 引言家用电扇是生活中常见普遍的系统,然而,传统的家用电扇不具备自动转速的功能,人们需要手动调节电扇的转速,以达到舒适的风流量。
因此,对家用电扇的功能不断进行改进和优化,本设计可以智能控制风速,有利于提高人们的生活水平,且有利于能源环保。
家用电扇是一种利用电动机驱动扇叶旋转,来达到使空气加速流通的家用电器,主要用于清凉解暑和流通空气。
广泛用于家庭,办公室,商店,医院和宾馆等场所。
设计一种利用MCS-51系列单片机及相关元器件的家用风扇控制器。
该控制器涵盖了三个主要的功能模块:风速设置,类型设置,停止设置。
而且不同功能模块可以实现自由灵活的转换。
该控制器自由灵活,功能丰富,实现了自动控制,具有深远的意义。
2 设计目标利用MCS-51系列单片机及相关元器件设计并制作一个家用风扇控制器。
3 设计要求3.1 控制面板要求按钮三个,分别为风速、类型和停止;三个LED指示灯用于指示风速强、中、弱;另外三个LED指示灯用于指示类型为睡眠、自然和正常。
3.2 电扇处于停转状态时所有指示灯不亮,只有按下“风速”键时,才会响应,进入起始工作状态;电扇在任何状态,只要按停止键,则进入停转状态。
3.3 处于工作状态时(1) 初始状态为:风速-“弱”,类型-“正常”;(2) 按“风速”键,其状态由“弱”→“中”→“强”→“弱”……往复循环改变,每按一下按键改变一次;(3) 按“类型”键,其状态由“正常”→“睡眠”→“自然”→“正常”……往复循环改变;3.4 风速风速的弱、中、强对应于电扇的转动由慢到快。
3.5 风速类型的不同选择分别为:(1) 正常电扇连续运转;(2) 自然电扇模拟自然风,即转4s,停8s;(3) 睡眠电扇慢转,产生轻柔的微风,运转 8s,停转8s;3.6 按照风速与类型的设置输出相应的控制信号4 总体设计本设计主要是用步进电机的控制来模拟家用风扇控制器,其原理结构如图l。
其控制核心是89C51单片机,该控制器涵盖有三个主要功能模块:风速设置、类型设置、停止设置,而且不同功能模块中可以实现灵活自由的转换。
智能风扇远程控制说明书一、产品概述智能风扇远程控制系统是一款创新的家居设备控制解决方案,旨在为用户提供更加便捷、舒适和个性化的风扇使用体验。
通过智能手机应用程序或其他远程控制设备,您可以随时随地轻松控制风扇的各种功能,如风速调节、摇头控制、定时开关等,让您在炎炎夏日或寒冷冬天都能享受到恰到好处的风。
二、产品组成1、智能风扇主体风扇叶片:采用优质材料制造,提供强劲而柔和的风力。
电机:高效节能电机,运行安静,寿命长。
外壳:时尚美观的设计,适应各种家居风格。
2、遥控器(可选)用于在较近距离内直接控制风扇的基本功能。
3、智能控制模块内置在风扇内部,实现与远程控制设备的通信和指令执行。
4、手机应用程序(App)可在智能手机上下载安装,提供丰富的控制选项和个性化设置。
三、安装与连接1、风扇安装将风扇的底座放置在平稳的地面或桌面上。
按照说明书的指示,将风扇叶片和电机部分组装好。
确保风扇安装牢固,不会晃动。
2、智能控制模块连接智能控制模块通常已预先安装在风扇内部,无需用户额外操作。
3、手机应用程序下载与安装打开您的手机应用商店(如苹果 App Store 或安卓应用市场)。
在搜索栏中输入“智能风扇远程控制”应用程序名称。
点击下载并安装应用程序。
4、连接风扇与手机应用程序打开手机的 WiFi 或蓝牙功能(具体取决于风扇的连接方式)。
打开智能风扇远程控制应用程序。
按照应用程序中的提示,将风扇与您的手机进行配对和连接。
四、远程控制操作1、打开/关闭风扇在手机应用程序中,点击“电源”按钮,即可打开或关闭风扇。
2、风速调节应用程序中通常提供多个风速档位可供选择,如低速、中速、高速等。
您可以通过滑动风速调节滑块或点击相应的风速按钮来调整风扇的风速。
3、摇头控制点击“摇头”按钮,可开启或关闭风扇的摇头功能。
部分应用程序还支持设置摇头的角度范围。
4、定时开关您可以在应用程序中设置风扇的定时开启和关闭时间。
例如,您可以设置风扇在晚上睡觉时自动关闭,或者在您起床前提前开启。
电扇调速器原理一、电扇调速器的概述电扇调速器是一种可以控制电扇转速的装置,可以通过调节电流或电压来改变电机的转速,从而实现风量大小的调节。
常见的电扇调速器有旋钮式、遥控式、触摸式等多种形式。
二、电扇调速器的工作原理1. 旋钮式电扇调速器旋钮式电扇调速器是最为常见的一种,其工作原理主要是通过改变阻值来控制电流大小,从而影响电机转速。
具体来说,旋钮会改变一个可变阻值器(又称为“电位器”)的阻值,从而改变通过该可变阻值器的电流大小,进而影响电机转速。
2. 遥控式电扇调速器遥控式电扇调速器则是通过无线遥控信号来实现对风量大小的控制。
遥控信号经过接收机接收后再传递给主板芯片,由主板芯片来进行风量大小的计算和控制。
主板芯片会根据接收到的信号来输出相应的PWM波形信号,这个PWM波形信号会通过三极管驱动输出端口,并将PWM波形信号转化为电流输出到电机上,从而实现对电机转速的控制。
3. 触摸式电扇调速器触摸式电扇调速器则是通过触摸板上的传感器来实现对风量大小的控制。
当手指接触到传感器时,会产生微弱的电流信号,这个信号会被放大后输入到主板芯片中。
主板芯片会根据接收到的信号来输出相应的PWM波形信号,从而实现对电机转速的控制。
三、电扇调速器的组成部分1. 可变阻值器可变阻值器是旋钮式电扇调速器中最为重要的部分之一,它通过改变阻值来控制通过它的电流大小,从而影响电机转速。
可变阻值器一般由一个旋钮和一个固定阻值组成,旋钮可以改变与固定阻值并联连接的可变阻值,从而改变整个并联电路的总阻值。
2. 接收机遥控式电扇调速器需要使用接收机来接收无线遥控信号,并将信号传递给主板芯片进行处理和计算。
接收机通常由天线、解码芯片、滤波器等部分组成。
3. 主板芯片主板芯片是电扇调速器中最为重要的部分之一,它负责接收和处理各种控制信号,并控制电机转速。
主板芯片通常由微控制器、驱动芯片、PWM发生器等部分组成。
4. 三极管三极管是遥控式电扇调速器中用于驱动输出端口的重要元件之一,它可以将PWM波形信号转化为电流输出到电机上,从而实现对电机转速的控制。
风扇调速器的原理风扇调速器是一种用于控制风扇运行速度的设备,通过调节电流或电压的大小来实现风扇速度的调节。
风扇调速器的原理主要包括以下几个方面:1. 电流控制原理:风扇调速器中常用的电流控制原理是采用可调电阻或可控硅等元件来改变电路中的电流大小,从而实现调节风扇转速的目的。
通过改变电路的串联或并联电阻的值可以改变电路的总电阻大小,从而改变电路中的电流大小。
当电流减小时,风扇转速也会随之减小;反之,当电流增加时,风扇转速也会随之增加。
2. 电压控制原理:风扇调速器中另一种常用的原理是通过改变电路中的电压值来实现风扇转速的调节。
通常采用调压器、变压器或者CPU风扇专用的电压调节电路来实现。
当电压减小时,风扇转速也会随之减小;反之,当电压增加时,风扇转速也会随之增加。
3. PWM调速原理:PWM(Pulse Width Modulation,脉宽调制)是一种常用的风扇调速原理。
通过控制一个方波的脉冲宽度和频率来调节风扇转速。
脉冲宽度越宽代表占空比越高,风扇转速也越快;脉冲宽度越窄则代表占空比越低,风扇转速也越慢。
通过改变方波的脉冲宽度和频率可以实现对风扇的精确调速。
4. 温度控制原理:风扇调速器中还有一种常见的原理是基于温度的控制原理。
利用温度传感器监测环境温度,并通过控制电路内嵌的温度传感器来控制风扇转速。
当环境温度升高时,温度传感器会检测到变化并向风扇调速器发送信号,风扇调速器会据此调整风扇的转速,以达到降温的目的。
综上所述,风扇调速器的原理可以通过电流控制、电压控制、PWM调速以及温度控制等方式来实现对风扇转速的调节。
各种原理各具特点,适用于不同场合的调速需求。
风扇调速器的应用广泛,常见于电脑散热设计、工业自动化、空调等领域,通过实时监测环境的需求,调节风扇的转速,以达到节能、降温或其他特定目的。
新余学院毕业设计课题: 家用风扇控制器设计姓名:夏喜学号:1101030139同组姓名:孟杭专业班级:11机制专1指导教师:李耐根设计时间:2013-9-22目录一、设计目标 (2)二、设计要求 (2)三、总体设计 (2)四、硬件设计 (2)五、软件设计 (3)六、程序清单 (9)七、调试结果 (17)八、心得体会 (17)九、参考文献 (18)模拟家用风扇控制器的设计一、设计目标设计并制作一个模拟家用风扇控制器。
二、设计要求1、控制器面板为:按钮三个,分别为风速、类型和停止,LED指示灯六个,指示风速强、中、弱,类型为睡眠、自然和正常。
2、电扇处于停转状态时:所有指示灯不亮,只有按下“风速”键时,才会响应,进入起始工作状态;电扇在任何状态,只要按停止键,则进入停转状态。
3、处于工作状态时有:(1) 初始状态为:风速-“弱”,类型-“正常”;(2) 按“风速”键,其状态由“弱”→“中”→“强”→“弱”……往复循环改变,每按一下按键改变一次;(3) 按“类型”键,其状态由“正常”→“睡眠”→“自然”→“正常”……往复循环改变;4、风速:风速的弱、中、强对应于电扇的转动由慢到快。
5、风速类型的不同选择分别为:(1) 正常电扇连续运转;(2) 自然电扇模拟自然风,即转4s,停8s;(3) 睡眠电扇慢转,产生轻柔的微风,运转 8s,停转8s;6、按照风速与类型的设置输出相应的控制信号。
三、总体设计1.8253定时/计数器通道0定时控制步进速度,通道2和3定时电机的转停时间,8255的PA0控制步进电机的转停。
2.8255 的C口输出控制脉冲,经74452电路驱动电路。
B口输出控制LED 显示风扇当前的状态。
四、硬件设计由于本设计主要是用步进电机的控制来模拟家用风扇控制器,所以电路是在步进电机控制系统的电路作了一些修改。
除利用了PC机本身资源外(如中断资源),还利用了平台上的8253计数/定时器、8255并行接口单元,LED指示灯电路等,再加上电机的驱动电路,便构成以风扇电机控制电路。
硬件原理图如图1:图1:硬件原理图五、软件设计本设计通过软件编程使8253通道0输出定时信号申请中断,CPU发出命令由8255的下C口输出脉宽信号来控制步进电机的走步。
8253的定时时间决定了电机转动的快慢。
电机的转动和停止则是通过8255的PA0端子输出高低电平来继续或暂停8253通道0的计数从而控制中断申请来实现的。
用8253的通道1和2一起来定时控制电机转动和停止时间的长短。
1.总体设计思路控制系统分四个功能模块,分别是风速设置、类型设置、默认状态运行、退出系统,在前四个功能块中都设置了ESC键来取消或暂停执行当前操作。
程序中同时提供三个操作界面,一个主菜单和两个子菜单界面,进行可视控制。
(1) 风速设置风速即为电机转速设置,风速分为强、中、弱三种,对应不同的电机转速。
根据赋给计数器的计数初值,我们可以计算出步进电机各相脉宽信号的频率和电机转速,也可以反过来根据对电机转速要求,计算并调整计算初值。
这里采用的是8253的0号计数器和方波产生方式,输入时钟为f=46875hz,设计数初值为n,要求转速为0.25转/秒,对四相步进电机而言即为5步/秒,则有:f / n = 5n=f/5=46875/5=9375反过来,当计数器初值确定时,决定了电机的转速,如计数初值为625时,有电机转速为1步每秒(本设计中的慢风速);当计数初值为125时,电机转速为375步每秒(本设计中的快快速)。
具体设置初值及风速见表1。
风速步速转速计数初值慢75 3.75 625中125 6.25 375快375 18.75 125表1:风速设置初值(2)风的类型设置风的类型有:正常、自然、睡眠三种。
风的类型的不同选择,用FLAG0来记录状态:a)正常电扇连续运转。
FLAG0=2b)自然电扇模拟自然风,即转4s,停8s。
FLAG0=0c)睡眠电扇慢转,产生轻柔的微风,运转 8s,停转8s。
FLAG0=1电机的运转是通过让8255的A0口输出高电平到8253的GATE0使其0号计数器继续工作,并开放中断进入循环等待中断状态。
A0口为低电平使8253的0号计数器暂停计数,则无法产生中断信号,电机停止转动。
电扇的运转和停转的时间是由8253的通道1和通道2两个计数器一起来定时的。
通道1的输入时钟为f=46875hz,设计数初值为46875,则会产生1s的定时。
通道1的OUT1作为通道2的输入脉冲,输入的计数初值为N,则定时的时间为N秒。
我们需要的是定时4s和8s,定时中断到修改8255的A0口的输出的电平和下次计数的初值就可以实现风的不同类型。
风的类型为正常时,不用启用计数器2产生中断,让计数器0一直运行。
睡眠时,通道2的计数初值一直为8,不用修改。
如果是自然就得修改了。
(3)中断子程序1在由8253定时器通道0产生的中断子程序1中,将值为11001100B的NUM 内存单元循环左移或右移一位,通过8255的下C口输出低四位,控制步进电机的相序变化,从而使电机连续转动。
(4)中断子程序28253定时器通道2产生的中断子程序2中,修改输入到8255的A0口的电平值,控制电机的转停,令NUM1=0,每次求反,输出到8255的A 口。
根据当前选择的风的类型FLAG0以及当前所处的状态,修改通道2的计数初值。
(5)菜单界面设置利用DOS 下的BIOS 功能调用,设计出彩色的形象而又易于操作的界面. 使用类型10H 中断,可以实现对屏幕的完整的控制。
常用的彩色文本功能的参数设置见表2。
表2:彩色文本功能的参数设置2. 对步进电机的控制1、用8255并行接口控制A 、B 、C 的通断。
8255A 的CS 端可接地址200~207H 。
实验室中,用LED 指示灯通断模拟步进电机绕组的通电情况。
8255A 工作于方式0。
8255A 内部结构图如图2。
端口A 地址(00): 200H 端口A 地址(01): 201H 端口A 地址(10): 202H控制端口地址(11): 203H图2:8255A 的内部结构8255与步进电机连接示意图如图3所示。
8255控制字如图4所示:(1)、控制方法:速度选择方式,可通过键盘、转换开关控制。
A 口工作于输入方式,接受速度选择信号,B 口工作于输出方式,控制A 、B 、C 的通断。
用LED 指示灯模拟步进电机的工作,输入为“0”时,LED 指示灯点亮,;为“1”时熄灭。
(2)、设置8255A 的方式控制字 MOV DX ,203HMOV AL ,90H ;A 口为输入,B 口为输出 MOV DX ,AL ;送控制字3.步进电机的速度控制图3:8255与步进电机连接图4:8255控制字调节步进电机绕组通电时间,即可调整速度(频率)。
(1).1ms(1KHZ)的软件延迟程序:设系统的CPU 的频率为8MHZ ,则时钟节拍为:0.125微秒。
执行PUSHF 、POPF 、LOOP 指令需23个节拍。
延迟1秒要循环的次数:DELAY PROC NEAR PUSH CXSTAR20T : MOV CX ,347 ;送循环次数LP1: PUSHF ;PUSHF 、POPF 、LOOP 需23个节拍。
POPF LOOP LP1 POP CX RETDELAY ENDP(2)、采用8253A 定时器控制定时时间 4.程序流程图(1)主程序流程图如图5图5: 主程序流程图347125.0231=⨯==smsX μ一次循环时间延迟时间(2)中断服务子程序一的框图如图6图6:中断服务子程序二(3)中断服务子程序二框图如图7图7:中断服务子程序二六、程序清单DSEG SEGMENTCLOCK0 EQU 290HCLOCK1 EQU 291HCLOCK2 EQU 292HCLOCKC EQU 293HPA55 EQU 280HPB55 EQU 281HPC55 EQU 282HP55C EQU 283HINTNUM DB 0DHMAMES DB 0DH,0AHDB"*************WELCOME TO FUN CONTROL SYSTEM*************",0DH,0AH,'$' MAMU DB "1.SET UP SPEED",0DH,0AHDB "2.ROTATING WITH FIXED STEP",0DH,0AHDB "3.CONTINUAL ROTATING",0DH,0AHDB "4.EXIT",0DH,0AHDB "*******************PLEASE INPUT CHOICE:$"MENU1 DB 0DH,0AH,0DH,0AHDB "F6.ROTATING SPEED IS 3.75R/S",0DH,0AHDB "F7.ROTATING SPEED IS 6.25R/S",0DH,0AHDB "F8.ROTATING SPEED IS 18.75R/S",0DH,0AHDB "INTER ESC TO EXIT",0DH,0AHDB "*******************PLEASE INPUT CHOICE:$"MENU2 DB 0DH,0AH,0DH,0AHDB "1.CLOCKWISE",0DH,0AHDB "2.ANTI_CLOCKWISE",0DH,0AHDB "INTER ESC TO EXIT",0DH,0AHDB "*******************PLEASE INPUT CHOICE:$"MENU3 DB 0DH,0AH,0DH,0AHDB "PLEASE INPUT THE NUMBER OF STEP:$"MENU4 DB 0DH,0AH,0DH,0AHDB "CONTINUAL ROTATING!",0DH,0AHDB "INTER ESC TO EXIT",0DH,0AH,'$'EROMS DB 0DH,0AHDB "YOUR CHOISE IS INVALID! PLEASE CHOOSE AGAIN",'$'F0 DB 0DH,0AHDB "ROTATING SPEED IS:$"F6 DB "3.75R/S",0DH,0AH,'$'F7 DB "6.25R/S",0DH,0AH,'$'F8 DB "18.75R/S",0DH,0AH,'$'SPEDM DW F6,F7,F8CLCMS DB 0DH,0AHDB "DIRECTION IS CLOCKWISE",0DH,0AH,'$'ANTMS DB 0DH,0AHDB "DIRECTION IS ANTI_CLOCKWISE",0DH,0AH,'$'QUITMS DB "ENTER ESC TO EXIT",0DH,0AH,'$' INTSEG DW ?INTOFF DW ?MCHOC DW STSED,STDIR,ROTFX,CTROT SPEDN DW 625,375,125SPEED DW 46875FLAG1 DB 0FLAG0 DB ?BUFFER DB 4DB ?DB 4 DUP(?)CW10 DW 10INTIMR DB ?TURN DB 11001100BDSEG ENDSSTACK SEGMENT PARA STACK 'STACK'DB 100 DUP(?)STACK ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEG,SS:STACK MAIN: MOV AX,DSEGMOV DS,AXMOV AH,35HMOV AL,0DHINT 21HMOV INTSEG,ESMOV INTOFF,BXPUSH DSMOV AX,CSMOV DS,AXMOV DX,OFFSET INTPROCMOV AH,25HMOV AL,0DHINT 21HPOP DSIN AL,21HMOV INTIMR,ALAND AL,11011111BOUT 21H,ALMOV DX,CLOCKCMOV AL,00110110BOUT DX,ALMOV DX,P55CMOV AL,10000000BOUT DX,ALSTIOMANU: MOV DX,OFFSET MAMESMOV DX,OFFSET MAMUINT 21HMOV AH,01HINT 21HCMP AL,'1'JB ERRORCMP AL,'5'JA ERRORJE EXITAND AL,0FHDEC ALMOV AH,00HSHL AX,1MOV BX,OFFSET MCHOCADD BX,AXCALL [BX]JMP OMANU ERROR: MOV DX,OFFSET EROMS MOV AH,09HINT 21HJMP OMANUEXIT: MOV AL,INTIMROUT 21H,ALPUSH DSMOV DX,INTOFFMOV AX,INTSEGMOV DS,AXMOV AH,25HMOV AL,0DHINT 21HPOP DSMOV AH,4CHINT 21HSTSED PROC NEARPUSH AXPUSH DXPUSH BXOMENU1: MOV DX,OFFSET MENU1 MOV AH,09HINT 21HMOV AH,00HINT 16HCMP AL,1BHJZ EXIT1CMP AH,59JA ERROR1SUB AH,59MOV BH,0MOV BL,AHSHL BL,1MOV AX,SPEDN[BX]MOV SPEED,AXMOV DX,OFFSET F0MOV AH,09HINT 21HMOV DX,SPEDM[BX]INT 21HJMP EXIT1ERROR1: MOV DL,0AHMOV AH,02HINT 21HMOV DL,0DHINT 21HMOV DX,OFFSET EROMSMOV AH,09HINT 21HJMP OMENU1EXIT1: POP BXPOP DXPOP AXRETSTSED ENDPSTDIR PROC NEARPUSH DXPUSH AXOMENU2: MOV DX,OFFSET MENU2 MOV AH,09HINT 21HMOV AH,01HINT 21HCMP AL,1BHJE EXIT2CMP AL,'1'JE CLFLGCMP AL,'2'JE ANTFLGMOV DX,OFFSET EROMSMOV AH,09HINT 21HJMP OMENU2MOV DX,OFFSET CLCMSMOV AH,09HINT 21HJMP EXIT2 ANTFLG: MOV FLAG1,1MOV DX,OFFSET ANTMSMOV AH,02HINT 21HJMP EXIT2EXIT2: POP AXPOP DXRETSTDIR ENDPROTFX PROC NEARPUSH DXPUSH CXPUSH BXPUSH AXPUSH SIOMENU3: MOV DX,OFFSET MENU3 MOV AH,09HINT 21HMOV DX,OFFSET BUFFERMOV AH,0AHINT 21HMOV CL,BUFFER[1]CMP CL,3JA ERROR3LEA SI,BUFFERADD SI,2MOV CH,00HMOV AX,00HNEXT: MUL CW10MOV BL,[SI]AND BX,000FHADD AX,BXINC SILOOP NEXTMOV CX,AXMOV FLAG0,0MOV DX,CLOCK0MOV AX,SPEEDOUT DX,ALMOV AL,AHOUT DX,ALMOV AL,0FFHOUT DX,ALSTIAGAIN1: CMP CX,00HJE EXIT3MOV AH,06HMOV DL,0FFHINT 21HCMP AL,1BHJE EXIT3CMP FLAG0,0JE AGAIN1DEC CXMOV FLAG0,0JMP AGAIN1 ERROR3: MOV DX,OFFSET EROMS MOV AH,09HINT 21HJMP OMENU3EXIT3: CLIMOV DX,PA55MOV AL,00HOUT DX,ALPOP SIPOP AXPOP BXPOP CXPOP DXRETROTFX ENDPCTROT PROC NEARPUSH DXPUSH AXMOV DX,OFFSET MENU4MOV AH,09HINT 21HMOV DX,CLOCK0MOV AX,SPEEDOUT DX,ALMOV AL,AHOUT DX,ALMOV DX,PA55MOV AL,0FFHOUT DX,ALSTIAGAIN2: MOV AH,06HINT 21HCMP AL,1BHJNE AGAIN2CLIMOV DX,PA55MOV AL,00HOUT DX,ALPOP AXPOP DXRETCTROT ENDPINTPROC PROCPUSH AXPUSH BXPUSH CXPUSH DXPUSH DSMOV AX,DSEGMOV DS,AXSTIMOV DX,PC55MOV AL,TURNOUT DX,ALCMP FLAG1,0JE TNCLCROL AL,1JMP EXITITNCLC: ROR AL,1EXITI: MOV TURN,ALMOV FLAG0,1CLIMOV AL,20HOUT 20H,ALPOP DSPOP DXPOP CXPOP BXPOP AXIRETINTPROC ENDPCSEG ENDSEND MAIN个人负责部分(菜单设计)详细设计如下:DSEG SEGMENTCLOCK0 EQU 290HCLOCK1 EQU 291HCLOCK2 EQU 292HCLOCKC EQU 293HPA55 EQU 280HPB55 EQU 281HPC55 EQU 282HP55C EQU 283HINTNUM DB 0DHMAMES DB 0DH,0AHDB"*************WELCOME TO FUN CONTROL SYSTEM*************",0DH,0AH,'$' MAMU DB "1.SET UP SPEED",0DH,0AHDB "2.ROTATING WITH FIXED STEP",0DH,0AHDB "3.CONTINUAL ROTATING",0DH,0AHDB "4.EXIT",0DH,0AHDB "*******************PLEASE INPUT CHOICE:$"MENU1 DB 0DH,0AH,0DH,0AHDB "F6.ROTATING SPEED IS 3.75R/S",0DH,0AHDB "F7.ROTATING SPEED IS 6.25R/S",0DH,0AHDB "F8.ROTATING SPEED IS 18.75R/S",0DH,0AHDB "INTER ESC TO EXIT",0DH,0AHDB "*******************PLEASE INPUT CHOICE:$"MENU2 DB 0DH,0AH,0DH,0AHDB "1.CLOCKWISE",0DH,0AHDB "2.ANTI_CLOCKWISE",0DH,0AHDB "INTER ESC TO EXIT",0DH,0AHDB "*******************PLEASE INPUT CHOICE:$"MENU3 DB 0DH,0AH,0DH,0AHDB "PLEASE INPUT THE NUMBER OF STEP:$"MENU4 DB 0DH,0AH,0DH,0AHDB "CONTINUAL ROTATING!",0DH,0AHDB "INTER ESC TO EXIT",0DH,0AH,'$'EROMS DB 0DH,0AHDB "YOUR CHOISE IS INVALID! PLEASE CHOOSE AGAIN",'$' F0 DB 0DH,0AHDB "ROTATING SPEED IS:$"F6 DB "3.75R/S",0DH,0AH,'$'F7 DB "6.25R/S",0DH,0AH,'$'F8 DB "18.75R/S",0DH,0AH,'$'SPEDM DW F6,F7,F8CLCMS DB 0DH,0AHDB "DIRECTION IS CLOCKWISE",0DH,0AH,'$'ANTMS DB 0DH,0AHDB "DIRECTION IS ANTI_CLOCKWISE",0DH,0AH,'$'QUITMS DB "ENTER ESC TO EXIT",0DH,0AH,'$'INTSEG DW ?INTOFF DW ?MCHOC DW STSED,STDIR,ROTFX,CTROTSPEDN DW 625,375,125SPEED DW 46875FLAG1 DB 0FLAG0 DB ?BUFFER DB 4DB ?DB 4 DUP(?)CW10 DW 10INTIMR DB ?TURN DB 11001100BDSEG ENDSSTACK SEGMENT PARA STACK 'STACK'DB 100 DUP(?)STACK ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEG,SS:STACK七、调试结果1、当程序运行时,进入DOS状态下控制器面板的菜单选项:按钮为三个,分别为“风速”、“类型”和“停止”,LED指示灯共六个,分别指示风速“强”、“中”、“弱”,类型分别为“睡眠”、“自然”和“正常”。