本文主要是介绍51单片机 Proteus仿真 电风扇模拟控制系统 自然风 睡眠风 常风,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
课程设计题三十五:风扇模拟控制系统设计
设计内容:1、3个独立按键分别控制“自然风”、“睡眠风”、“常风”,(三者的区别是直流电机的停歇时间不同),并在数显管上显示出区别
2、每种类型风可以根据按下独立按键次数分为4个档的风力调节。
3、设计风扇的过热保护,用继电器实现。即当风扇运行一段时间后,暂停10秒。
4、其他创新内容(如报警提示)
按键1
1234档位
按键2 5678档位
按键3 9 10 11 12档位
所有代码仿真打开下载:
http://dt4.8tupian.net/2/28880a68b9990.pg3
这是一个基于8051单片机的嵌入式系统程序,用于控制风扇的档位和定时关闭功能。以下是程序的主要部分的解释:
-
头文件和宏定义:
#include "reg51.h"
: 引入51单片机的寄存器定义。#include <intrins.h>, <string.h>, <stdio.h>, <stdlib.h>
: 引入一些标准库和一些用于字符串、输入输出和内存管理的头文件。- 定义了一些宏,如
uchar
,uint
,u8
,u16
,用于简化数据类型的定义。
-
全局变量和IO定义:
sbit ENA = P3 ^ 4;
: 定义 ENA 为 P3.4 引脚,用于控制风扇。u8 ENA_PWM_data = 7;
: 用于控制风扇的 PWM 数据。uchar code LEDData[]
: 数码管段选表。sbit key_01, key_02, key_03;
: 定义三个按键的输入引脚。sbit RELAY = P3 ^ 6;
,sbit BEEP = P3 ^ 7;
: 定义继电器和蜂鸣器的控制引脚。
-
函数和延时:
void delay_ms_key(unsigned char t)
: 实现毫秒级延时函数。unsigned char KeySscan(void)
: 按键检测函数,返回按下的按键编号。void init_timer1(void)
: 定时器1的初始化设置。void timer1_server(void) interrupt 3
: 定时器1中断服务程序,用于控制 PWM。
-
主函数
main()
:- 初始化风扇、蜂鸣器和定时器。
- 通过按键控制风扇档位,设置 ENA_PWM_data 和数码管显示的值。
-
定时器1中断服务程序
timer1_server()
:- 控制 PWM 的工作。
- 当
pwm_count
达到ENA_PWM_data
时,关闭 ENA。
-
定时器0中断服务程序
T1_time()
:- 实现定时功能,控制风扇在一定时间内打开或关闭。
- 当
ifg
为1时,计时关闭风扇,否则计时打开风扇。 - 控制 LED 数码管显示,用于显示风扇的运行时间。
总体来说,这个程序通过按键控制风扇的档位,定时关闭风扇,并通过 LED 数码管显示风扇的运行时间。
这篇关于51单片机 Proteus仿真 电风扇模拟控制系统 自然风 睡眠风 常风的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!