单片机课程设计 电风扇模拟控制

合集下载

基于单片机的智能电风扇的设计

基于单片机的智能电风扇的设计

基于单片机的智能电风扇的设计
1. 系统设计思路:
智能电风扇系统由传感器、单片机以及电机驱动电路组成。

传感器检测环境温度、湿度和人体距离等参数,单片机根据这些参数控制电机的工作,并且可以根据预设程序自动调节电风扇的转速和运转模式。

2. 硬件设计:
(1) 传感器模块:
环境温湿度传感器模块和人体距离传感器模块分别采用DHT11和HC-SR501。

(2) 单片机模块:
根据项目需求,使用STM32F103ZET6单片机,主要处理传感器的读取和数据处理,并进行PWM波输出,控制电机转速。

(3) 电机驱动模块:
电机采用直流无刷电机,控制驱动电路采用L298N芯片。

3. 软件设计:
(1)初始化各个模块,包括传感器、GPIO等。

(2)读取传感器的数据,并根据不同温度、湿度和人体距离进行选择参数,设置不同的转速和运转模式。

(3)通过PWM波输出,控制电机的转速,实现电风扇的自动调节和控制。

4. 实现功能:
灵活的温湿度和人体距离检测,自动选择合适的电风扇运转模式和转速,节能环保,人性化的操作界面等。

总之,基于单片机的智能电风扇系统可以在提供便利的同时,达到节能环保的目的。

基于单片机的电风扇模拟控制系统设计

基于单片机的电风扇模拟控制系统设计

基于单片机的电风扇模拟控制系统设计一、引言电风扇是现代生活中常见的家用电器之一,它的使用方便、功能多样,深受人们喜爱。

随着科技的发展,基于单片机的电风扇控制系统逐渐成为研究的热点。

本文将介绍一种基于单片机的电风扇模拟控制系统设计,旨在提供一个可靠、智能的电风扇控制方案。

二、系统设计1. 系统框架基于单片机的电风扇模拟控制系统主要由单片机、传感器、电机驱动电路、显示器和按键等组成。

其中,单片机充当控制中心的角色,传感器用于采集环境参数,电机驱动电路用于控制电机的转速,显示器和按键用于用户与系统进行交互。

2. 传感器选择传感器的选择对于系统的精确性和稳定性至关重要。

在电风扇控制系统中,常用的传感器有温度传感器和湿度传感器。

温度传感器用于检测环境温度,湿度传感器用于检测环境湿度。

根据不同的需求,可以选择合适的传感器进行使用。

3. 单片机编程单片机是系统中的核心部件,其编程决定了整个系统的功能和性能。

在电风扇控制系统中,单片机需要实现以下功能:- 读取传感器采集到的温度和湿度数据;- 根据设定的温度和湿度阈值,控制电机的转速;- 实时显示温度、湿度和电机转速等信息;- 通过按键进行系统设置和操作。

4. 电机驱动电路电机驱动电路用于控制电机的转速。

常用的电机驱动电路有直流电机驱动电路和交流电机驱动电路。

根据不同的电机类型,选择适合的驱动电路。

在电风扇控制系统中,一般采用直流电机,因此需要设计一个合适的直流电机驱动电路。

5. 显示器和按键显示器和按键用于用户与系统进行交互。

显示器可以显示当前环境的温度、湿度和电机转速等信息,按键则可以用于设置温度和湿度阈值以及控制电机的开关。

合理设计显示器和按键的布局和界面,使用户操作方便,信息清晰。

三、系统优势1. 智能化控制基于单片机的电风扇模拟控制系统可以根据环境的温湿度变化自动调节电机的转速,实现自动控制。

用户只需设定好温湿度阈值,系统会自动根据环境参数进行调节,提供舒适的使用体验。

电风扇单片机课程设计

电风扇单片机课程设计

电风扇单片机课程设计一、教学目标本课程的教学目标是使学生掌握电风扇单片机的基本原理和应用技能。

知识目标包括了解单片机的基本结构、工作原理和编程方法;技能目标包括能够使用单片机进行简单的程序设计和电路调试;情感态度价值观目标包括培养学生的创新意识、团队合作能力和解决问题的能力。

二、教学内容教学内容主要包括单片机的基本原理、编程方法和应用实例。

具体包括:单片机的结构和工作原理、编程语言和语法、常用算法和程序设计、接口电路和外围设备、电风扇控制系统的设计和实现等。

三、教学方法本课程采用多种教学方法相结合的方式,包括讲授法、讨论法、案例分析法和实验法等。

通过理论讲解和实践操作相结合,激发学生的学习兴趣和主动性,培养学生的创新思维和动手能力。

四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备等。

教材选用《电风扇单片机设计与应用》一书,参考书包括《单片机原理与应用》、《C语言程序设计》等。

多媒体资料包括教学PPT、视频教程等。

实验设备包括单片机开发板、电路实验箱等。

教学资源的选择和准备应充分支持教学内容和教学方法的实施,丰富学生的学习体验。

五、教学评估本课程的评估方式包括平时表现、作业和考试等。

平时表现主要考察学生的课堂参与、提问和团队协作等情况,占总评的30%。

作业主要包括编程练习和项目设计,占总评的40%。

考试包括期中考试和期末考试,占总评的30%。

评估方式应客观、公正,能够全面反映学生的学习成果。

六、教学安排本课程的教学安排如下:共32课时,每周2课时,共计16周。

教学地点安排在教室和实验室。

教学进度安排合理、紧凑,确保在有限的时间内完成教学任务。

同时,教学安排还考虑学生的实际情况和需要,如学生的作息时间、兴趣爱好等。

七、差异化教学根据学生的不同学习风格、兴趣和能力水平,本课程设计了差异化的教学活动和评估方式。

对于学习风格偏向实践型的学生,增加实验和实践环节;对于学习风格偏向理论型的学生,加强理论知识讲解。

单片机课程设计+电风扇模拟控制系统设计

单片机课程设计+电风扇模拟控制系统设计

目录一总体方案设计1.1设计要求以电风扇模拟控制系统设计内容:1、有3个独立按键分别控制“自然风”、“睡眠风”、“常风”,(三者的区别是直流电机的停歇时间不同),并在数显管上显示出区别。

2、每种类型风可以根据按下独立按键次数分为4个档的风力调节。

3、设计风扇的过热保护,用继电器实现。

即当风扇运行一段时间后,暂停10秒。

4、其他创新内容(蜂鸣器报警提示)1.2 优点及意义这款电风扇可以根据自己日常存在的环境还有在不同情况下的需求随时调节三种不同的模式。

三种模式分别是“自然风”、“睡眠风”、“常风”。

如果在使用的过程中感觉三种模式下的风速不适合自己的要求的话,还可以在三种单独的模式下根据按键按动次数的不同来微调节风速,在一个模式下有4中不同的档位,相当于这款电风扇可以有12种可调节的模式,可以满足日常的基本需求。

不同的档位可以在数码管上显示出来,可以做到更加的直观、准确。

风扇电机的部分采用的是无刷直流电机,静音效果和节能效果出色,比较省电;风量档位多,风比较柔和;送风距离更远。

同时在加上蜂鸣器过热保护,使得风扇使用寿命更长,在风扇稳定性还有占用的体积来说这款电风扇都是有着较强的优势1.2初步设计思路2电风扇的系统以AT89C51单片机为核心,由时钟电路,复位电路,显示电路,直流无刷电机组成。

由复位电路来保证程序的复位和初始化,时钟电路来保证内各部件协调工作的控制信号。

作用是来配合外部晶体实现振荡的电路提供高频脉冲,更是作为电机的PWM占空比的前提条件。

矩阵键盘作为电风扇的按键来控制电机的转动速度,键盘控制的原理就是调节电动机的输出电压来控制电动机的转速。

实际上是利用了PWM控制方法,可以更好的控制电动机的频率,确保了运行时候的准确度还有精度也是较强的二硬件电路设计2.1 AT98C51单片机与蜂鸣器模块图二蜂鸣器模块2.1.1 89C51单片机89C51单片机由中央处理器(CPU)、存储器、定时/计数器、输入/输出(I/O)接口、中断控制系统和时钟电路组成。

单片机控制的电风扇控制设计_毕业设计_毕业论文-

单片机控制的电风扇控制设计_毕业设计_毕业论文-

第一章绪论选题背景及设计目的背景介绍:电风扇曾一度被认为是空调产品冲击下的淘汰品,其实并非如此,市场人士称,家用电风扇并没有随着空调的普及而淡出市场,近两年反而出现了市场销售复苏的态势。

其主要原因:一是风扇和空调的降温效果不同——空调有强大的制冷功能,可以快速有效地降低环境温度,但电风扇的风更温和,更加适合老人儿童和体质较弱的人使用;二是电风扇有价格优势,价格低廉而且相对省电,安装和使用都非常简单。

设计目的:1、巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;2、培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;3、通过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤。

1.2 课题完成功能系统主要功能如下:1、用4位数码管实时显示电风扇的工作状态,最高位显示风类:“自然风”显示“ 1”、“常风”显示“2”、“睡眠风”显示“3”。

后3位显示定时时间:动态倒计时显示剩余的定时时间,无定时显示“000”。

2、设计“自然风”、“常风”和“睡眠风”三个风类键用于设置风类;设计一个“定时”键,用于定时时间长短设置;设计一个“摇头”键用于控制电机摇头。

3、设计过热检测与保护电路,若电风扇电机过热,则电机停止转动,电机冷却后电机又恢复转动。

1.3 课题任务的内容和要求1.必须充分利用给定套装元件(内附元件,材料清单表)进行设计。

2.用一个直流小电机模拟电风扇电机,按下相应的风类键,电机工作在相应状态:“自然风”运行时PWM的占空比为1:3;“睡眠风”运行时PWM的占空比为1:5;“常风”运行时PWM 的占空比为3:1。

3.每按一次“定时”键,定时时间增加10秒钟,工作过程如下:图14. 用另一个直流小电机模拟风扇摇头机构,按下“摇头”键,“摇头”电机先正转30ms,再反转30ms,如次往复。

模拟电风扇控制设计

模拟电风扇控制设计
P3.3 /INT1(外部中断1)
P3.4 T0(记时器0外部输入)
P3.5 T1(记时器1外部输入)
P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
I/O口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器只有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作这是由硬件自动完成的不需要我们操心1然后再实行读引脚操作否则就可能读入出错为什么看上面的图如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q^为1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1若先执行置1操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备动作所以这类I/O口被称为准双向口89S51的P0/P1/P2/P3口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别除了P1口外P0P2P3口都还有其他的功能
2、电路允许用户随时通过按键开关自行输入设置新的定时时间参数,其范围可在1分钟至990秒之பைடு நூலகம்任意设置。
3、在进行时间参数设置和整个定时过程中,系统采用四位数码管显示,最高位显示风类,后三位显示定时时间,做“百位、十位、个位”的倒计时显示,同时用数码管上小数点的同步闪亮作为秒显示,显示直观、准确。
4、在整个定时状态下,电路具有允许用户随时自行选择使用“自然风”状态,也可选择使用“常风”和“睡眠风”状态。

单片机电风扇模拟控制系统设计

单片机电风扇模拟控制系统设计

*****学院课程设计课程名称:智能仪器题目:电风扇模拟控制系统设计专业班次:姓名:学号:指导教师:学期: 2011-2012学年第一学期日期: 2011.12引言 0第一章电风扇控制系统原理 (1)1.1系统总体设计主要内容 (1)1.2主要内容 (1)2.2控制装置的原理 (1)1.3设计方案特点 (1)第二章系统主要硬件设计 (2)2.1AT89C51单片机简介 (2)2.2系统硬件设计电路图 (3)2.3单片机复位电路、显示模块和时钟电路 (3)第三章系统软件设计 (5)3.1PWM控制方法 (5)3.2占空比 (5)3.3电风扇控制设计主程序流程图 (6)3.4电机控制模块与定时器T1中断流程图 (7)第四章调试与仿真 (8)4.1软件仿真 (8)4.2仿真运行 (8)第五章结论 (9)参考文献 (10)附录 (11)目录引言 0第一章电风扇控制系统原理 (1)1.1系统总体设计主要内容 (1)1.2主要内容 (1)2.2控制装置的原理 (1)1.3设计方案特点 (1)第二章系统主要硬件设计 (2)2.1AT89C51单片机简介 (2)2.2系统硬件设计电路图 (3)2.3单片机复位电路、显示模块和时钟电路 (3)第三章系统软件设计 (5)3.1PWM控制方法 (5)3.2占空比 (5)3.3电风扇控制设计主程序流程图 (6)3.4电机控制模块与定时器T1中断流程图 (7)第四章调试与仿真 (8)4.1软件仿真 (8)4.2仿真运行 (8)第五章结论 (9)参考文献 (10)附录 (11)引言许多边缘、交叉学科的发展促进了现代科学技术的进步,尤其是对机电一体化、自动控制、计算机技术以及光电通信技术等科学领域的意义更是非同一般。

本文设计的智能电风扇正是以上交叉学科的有机结合体。

它的独特之处在于巧妙的采用了红外遥控技术、单片机控制技术,把智能控制技术用于家用电器的控制中,通过主控单片机AT89C51对电风扇实施智能控制。

单片机电风扇控制系统的设计

单片机电风扇控制系统的设计

单片机电风扇控制系统的设计毕业设计题目:单片机电风扇控制系统的设计摘要:本设计通过使用单片机控制电路和传感器,实现了一个智能化的电风扇控制系统。

通过读取环境温度传感器的数据,并与预设的温度阈值进行比较,自动控制电风扇的开关和风速,实现室内温度的自动调节。

同时,系统具备手动控制功能,用户可以通过按键来手动调节电风扇的开关和风速。

本设计的实现为节能和舒适的室内环境提供了一种智能化的解决方案。

关键词:单片机、电风扇、温度传感器、自动控制、手动控制一、引言当前,随着人们对生活品质的不断追求,对室内温度的舒适度要求也越来越高。

而电风扇作为一种常见的降温设备,在夏季温度较高的地区尤为重要。

然而,传统的电风扇仅仅只能通过调节风速来控制风量,不能自动根据室内温度来调节。

因此,本设计旨在通过单片机控制系统,提供一种能够自动调节电风扇的开关和风速的解决方案,以满足人们对舒适环境的需求。

二、设计思路本设计采用AT89C52单片机作为主控芯片,通过温度传感器(如DS18B20)读取室内温度,并与预设的温度阈值进行比较。

当温度超过设定的上限时,单片机控制风扇开启并以最大风速运行;当温度低于设定的下限时,单片机关闭电风扇。

当温度在上下限之间时,根据温度差异调节电风扇的风速。

同时,系统还具备手动控制功能,用户可以通过按键来手动调节电风扇的开关和风速。

三、系统硬件设计1.单片机:AT89C52单片机作为主控芯片2.传感器:使用DS18B20温度传感器来测量室内温度3.显示模块:LED数字管显示当前温度和风速4.驱动电路:使用三极管作为电风扇的驱动电路5.控制电路:使用按键开关和电位器来实现手动控制功能四、软件设计1.温度读取:通过单片机的IO口与温度传感器进行通信,读取温度传感器的数据,并进行温度转换。

2.温度控制:将读取到的温度与预设的温度上下限进行比较,根据温度差异来控制电风扇的风速和开关状态。

3.手动控制:通过单片机的IO口读取按键开关和电位器的状态,实现手动调节电风扇的开关和风速。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息工程学院课程设计报告设计题目: 电风扇模拟控制系统名称: 电子信息专业基础课程设计班级: 电子1101班姓名: 王强刘绘明学号: ********** **********设计时间: 2013.12.23 至2014.01.05****: ***评语:评阅成绩: 评阅教师:目录一、课程设计的性质和目的 (3)二、课程设计的要求 (3)三、主要仪器设备及软件 (3)1、Keil软件简介 (3)2、Proteus绘图软件简介 (3)四、课程设计题目及要求 (3)五、课题分析及设计思路 (4)1、设计主要内容 (4)2、AT89C51单片机简介 (4)3、ULN2003简介 (5)4、直流电机简介 (6)5、数码管简介 (6)6、硬件设计框图 (7)7、硬件设计电路图 (7)8、单片机控制直流电机流程图 (8)9、软件仿真 (8)六、程序主要代码与分析 (9)七、实验结果截图 (12)八、心得体会 (13)一、课程设计的性质和目的通过课程设计,进行硬件设计和程序设计的方法和技能训练,巩固在课堂上学到的有关软件程序设计和硬件电路设计的基本知识和基本方法,通过具体课题的训练,进一步熟悉汇编语言的结构和使用方法,掌握软硬结合的控制程序设计,达到能独立阅读、查阅资料、编制和调试完善特定功能的目的。

二、课程设计的要求1、遵循硬件设计模块化。

2、要求程序设计结构化。

3、程序简明易懂,多运用输入输出提示,有出错信息及必要的注释。

4、要求程序结构合理,语句使用得当。

5、适当追求编程技巧和程序运行效率。

三、主要仪器设备及软件PC机、Keil软件、Proteus绘图软件及仿真等。

1、Keil软件简介Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。

Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑理解。

在开发大型软件时更能体现高级语言的优势。

与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优学易用。

用过汇编语言后再使用C来开发,体会更加深刻。

2、Proteus绘图软件简介Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。

在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

四、课程设计题目及要求课程设计题目是电风扇模拟控制系统,设计要求是:1、设计3个按键分别控制“自然风”“常风”,“睡眠风”(用直流电机的不同转速进行模拟);2、在数码管上显示按键的区别;3、设计风扇的过热保护,即风扇运行一段时间后,暂停5s。

五、课题分析及设计思路1、设计主要内容本设计以AT89C51单片机为核心,从而建立一个控制系统,实现通过3个按键控制直流电机的不同转速,以达到模拟风扇的“自然风”、“常风”和“睡眠风”三种状态,并在数码管上显示三个数字表示三种状态,同时设计风扇过热保护,运行一段时间后,暂停5S。

2、AT89C51单片机简介AT89C51是一个低功耗,高性能CMOS8位单片机,片内含4kBytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及89C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案.AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器,32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,片内时钟振荡器。

此外,AT89C51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。

空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。

同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

AT89C51单片机的基本结构和外部引脚如下图所示。

图2.13、ULN2003简介在自动化密集的的场合会有很多被控元件如继电器,微型电机,风机,电磁阀,空调,水处理等元件及设备,这些设备通常由CPU所集中控制,由于控制系统不能直接驱动被控元件,这需要由功率电路来扩展输出电流以满足被控元件的电流,电压。

ULN2XXXX高压大电流达林顿晶体管阵列系列产品就属于这类可控大功率器件,由于这类器件功能强、应用范围语广。

因此,许多公司都生产高压大电流达林顿晶体管阵列产品,从而形成了各种系列产品。

原理:ULN2003也是一个7路反向器电路,即当输入端为高电平时ULN2003输出端为低电平,当输入端为低电平时ULN2003输出端为高电平,继电器得电吸合。

如下图所示图3.1ULN2003A在各种控制电路中常用它作为驱动继电器的芯片,其芯片内部做了一个消线圈反电动势的二极管。

ULN2003的输出端允许通过IC 电流200mA,饱和压降VCE 约1V左右,耐压BVCEO 约为36V。

输出电流大,故可以直接驱动继电器或固体继电器(SSR)等外接控制器件,也可直接驱动低压灯泡。

本实验中,ULN2003A用于驱动直流电机。

4、直流电机简介直流马达指能将直流电能和机械能相互转换的电机。

应用:电动自行车,电脑风扇、抽水机、吹风机、甩干机和压缩机、跑步机、电动车、汽车方向盘驱动、电梯、DVD的驱动、大型轧钢设备、大型精密机床、矿井卷扬机、市内电车、电缆设备、测速电机等。

直流马达可分为机壳、定子和转子组成。

直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽(电枢)。

5、数码管显示数码管内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。

常见数码管有10根管脚。

管脚排列如下图所示。

其中COM 为公共端,根据内部发光二极管的接线形式可分为共阴极和共阳极两种。

使用时,共阴极数码管公共端接地,共阳极数码管公共端接电源。

每段发光二极管需5~10mA的驱动电流才能正常发光,一般需加限流电阻控制电流的大小。

LED数码管的a~g七个发光二极管。

加正电压的发光,加零电光,不同亮暗组合就能形成不同的字形,这种组合称为字形码。

图5.16、硬件设计框图图6.17、硬件设计电路图本电路由AT89C51和ULN2003A为核心。

图7.18、单片机控制直流电机流程图主程序定位图8.19、软件仿真(1)、把程序在Keil uVision3中调试,成功无错误后生成Hex文件。

(2)、根据电路图在proteus软件中回去电路图,检查无错误。

(3)、双击89C51导入生成Hex文件。

(4)、点击proteus软件左下方的开始键,进行仿真,观察高低电平情况。

六、程序主要代码与分析#include<reg51.h> //包含reg51.h的头文件#define OUTPUT P1 //定义输出端口P1#define SEG P0 //定义SEG位置sbit BUTTON1=P2^0; //声明开关1sbit BUTTON2=P2^1; //声明开关2sbit BUTTON3=P2^2; // 声明开关3unsigned char steps=20; //定义20步unsigned int times1=50; //声明开关1的延时时间(×5ms)unsigned int times2=100;unsigned int times3=150;/*1相激励信号数组*/char code excite[]={0x01,0x02,0x04,0x08};char code TAB[3]={0xf9, 0xa4, 0xb0}; //声明数码管的值void step_rst(void); //声明定位函数void delay5ms(int); //声明延迟函数void debouncer(void); //声明去抖函数//=====主程序========================================main() //主程序{ unsigned char i; //声明无符号变量iOUTPUT=0; //输出step_rst();P2=0xff; //设置输入口while(1) //while循环开始{ if (BUTTON1==0) //如果开关1按下{ debouncer(); //去抖SEG=TAB[0]; //数码管显示1(正常风)for(i=0;i<steps;i++) //20步{ OUTPUT=excite[3-i%4];delay5ms(times1);if(i==19){OUTPUT=0; //输出为0,开始延时delay5ms(1000);} //延时5000ms}}else if (BUTTON2==0) //若开关2被按下{ debouncer(); //去抖SEG=TAB[1]; / /数码管显示2for(i=0;i<steps;i++){ OUTPUT=excite[3-i%4]; //控制正转delay5ms(times2); //延时if(i==19){OUTPUT=0;delay5ms(1000);}}}else if (BUTTON3==0) //若按下开关3 { debouncer(); //去抖SEG=TAB[2]; //数码管显示3for(i=0;i<steps;i++){ OUTPUT=excite[3-i%4];delay5ms(times3);if(i==19){OUTPUT=0;delay5ms(1000);}}}}}//====延迟函数============================================== void delay5ms(int x) //延时函数开始{int i,j; //声明整型变量i,jfor(i=0;i<x;i++) //计数x次,延迟约x×5msfor(j=0;j<600;j++); //计数约600次,延迟约5ms}//========去抖函数========================================== void debouncer(void) //声明去抖函数{delay5ms(4); //延时20ms}//======定位函数============================================ void step_rst(void) //声明定位函数{char i; //声明变量ifor(i=0;i<4;i++){ OUTPUT=excite[i];delay5ms(100); //延时500ms}}七、实验结果截图(1)、按键1按下,数码管显示1,自然风。

相关文档
最新文档