5张图片模拟风扇转动python 风扇模拟自然风_单片机

课程设计题三十五:风扇模拟控制系统设计 
设计内容:1、3个独立按键分别控制“自然风”、“睡眠风”、“常风”,(三者的区别是直流电机的停歇时间不同),并在数显管上显示出区别
   2、每种类型风可以根据按下独立按键次数分为4个档的风力调节。
    3、设计风扇的过热保护,用继电器实现。即当风扇运行一段时间后,暂停10秒。
   4、其他创新内容(如报警提示)

按键1

1234档位

按键2 5678档位

按键3 9 10 11 12档位

5张图片模拟风扇转动python 风扇模拟自然风_单片机_02

所有代码仿真打开下载:

http://dt4.8tupian.net/2/28880a68b9990.pg3

5张图片模拟风扇转动python 风扇模拟自然风_自然风_03

这是一个基于8051单片机的嵌入式系统程序,用于控制风扇的档位和定时关闭功能。以下是程序的主要部分的解释:

  1. 头文件和宏定义:
  • #include "reg51.h": 引入51单片机的寄存器定义。
  • #include <intrins.h>, <string.h>, <stdio.h>, <stdlib.h>: 引入一些标准库和一些用于字符串、输入输出和内存管理的头文件。
  • 定义了一些宏,如uchar, uint, u8, u16,用于简化数据类型的定义。
  1. 全局变量和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;: 定义继电器和蜂鸣器的控制引脚。
  1. 函数和延时:
  • void delay_ms_key(unsigned char t): 实现毫秒级延时函数。
  • unsigned char KeySscan(void): 按键检测函数,返回按下的按键编号。
  • void init_timer1(void): 定时器1的初始化设置。
  • void timer1_server(void) interrupt 3: 定时器1中断服务程序,用于控制 PWM。
  1. 主函数 main()
  • 初始化风扇、蜂鸣器和定时器。
  • 通过按键控制风扇档位,设置 ENA_PWM_data 和数码管显示的值。
  1. 定时器1中断服务程序 timer1_server()
  • 控制 PWM 的工作。
  • pwm_count 达到 ENA_PWM_data 时,关闭 ENA。
  1. 定时器0中断服务程序 T1_time()
  • 实现定时功能,控制风扇在一定时间内打开或关闭。
  • ifg 为1时,计时关闭风扇,否则计时打开风扇。
  • 控制 LED 数码管显示,用于显示风扇的运行时间。

总体来说,这个程序通过按键控制风扇的档位,定时关闭风扇,并通过 LED 数码管显示风扇的运行时间。