【普中】基于51单片机模拟风扇控制数码管显示设计

【普中开发板】

基于51单片机模拟风扇控制数码管显示设计

本设计包含proteus仿真+程序+设计报告+讲解视频

一、开发环境

仿真图:proteus8.17(有低版本)

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:P29

二、主要功能

1、用数码管显示电风扇的不同工作状态:不同档风力(1、2、3档等不同风类(弱风、中级风、强风等);

2、设置风力键用于切换设置风力:风力档位分为停止,1档,2档,3档;

3、设置风类键用于切换设置风类:1弱风、2中级风、3强风;

4、设计"定时"键,用于运行时间的定时设置;

5、可以有其他扩展功能。

(目前仅完全适配普中51-实验板234,其他普中开发板型号可能需要接线)

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

以下为本设计资料展示图:

三、实物图

显示风类是弱风

普中实验板上的指示灯说明

四、仿真设计

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后数码管逐个点亮后显示初始状态显示-1-,表示弱风风类。默认风类0,不启动风扇。

按【风力键】循环切换:停止→1档(LED1亮)→2档(LED2亮)→3档(LED3亮)

按【风类键】显示循环切换:-1-(弱风)→ -2-(中级风)→ -3-(强风)

按【温度键】显示"TEP XXC"2秒后自动恢复

按【定时键】定时显示循环:0000→0060→0300→0600→0000

五、程序代码

使用keil4或者keil5编译,代码有注释,可以结合视频理解代码含义。

复制代码
// 主函数
void main(void) {
    // 初始化LED指示灯 (高电平熄灭)
    LED_LV1 = 1;
    LED_LV2 = 1;
    LED_LV3 = 1;
    
    // 开机全亮1秒
    power_on_display();
    
    // 定时器0初始化 (1ms定时)
    TMOD = 0x01;          // 定时器0方式1
    TH0 = (65536 - 1000) / 256; // 1ms@11.0592MHz
    TL0 = (65536 - 1000) % 256;
    EA = 1;               // 开总中断
    ET0 = 1;              // 开定时器0中断
    TR0 = 1;              // 启动定时器0
    
    // 更新LED指示灯
    update_leds();
    
    while(1) {
        key_scan();
        
        // 数码管显示
        display();
        
        // 每100ms读取一次温度(减少读取频率提高稳定性)
        temp_read_count++;
        if(temp_read_count >= 100) {
            read_temperature();
            temp_read_count = 0;
        }
    }
}

// 定时器0中断服务函数 (1ms)
void timer0_isr() interrupt 1 {
    TH0 = (65536 - 1000) / 256;
    TL0 = (65536 - 1000) % 256;
    
    // 风扇控制
    fan_control();
    
    // 时间计数
    ms_count++;
    interval_count++;
    
    // 秒计时
    if(ms_count >= 1000) {
        ms_count = 0;
        
        // 定时器倒计时
        if(timer_count > 0) {
            timer_count--;
            if(timer_count == 0) {
                // 定时结束,设置档位为0档
                wind_power = 0;
                update_leds(); // 更新LED指示灯
            }
        }
        完整代码见文章下载链接
        // 间歇控制周期
        if(interval_count >= 2000) interval_count = 0;
        
        // 温度显示计时
        if(display_temp) {
            temp_display_time++;
            if(temp_display_time >= 2) { // 2秒后恢复
                display_temp = 0;
                temp_display_time = 0;
            }
        }
    }
}

主程序流程框图

六、设计报告

7622字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

随着微电子技术、传感器技术和自动控制技术的飞速发展,传统的基于机械旋钮和定时器的电风扇控制系统已无法充分满足当代人们对智能化、舒适化和节能化的更高层次需求。这种传统控制方式存在操作不便、功能单一、能效低下等局限性,难以适应现代家居对智能化生活的追求。现代生活理念强调家居电器的智能化集成控制,旨在通过技术创新提升用户体验、实现能源高效利用并增强设备安全性能,从而打造更加智慧、便捷、环保的生活环境。

在此背景下,本课题立足于智能家居控制系统的发展趋势,设计并实现一款基于STC89C52单片机的智能风扇控制系统。该系统通过集成高精度数字温度传感器、多功能按键输入、数码管及LED状态显示等功能模块,构建了一个集环境感知、智能决策和人性化交互于一体的完整控制方案。系统能够实时监测环境温度变化,通过智能算法自动调节风扇运行状态,同时提供清晰直观的工作状态显示,实现对风扇工作状态的智能化监测与精准控制。

七、设计资料内容清单&&下载链接

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法--必读!!!!

1、程序

2、proteus仿真

3、功能要求

4、软硬件流程图

5、开题报告

6、设计报告

7、烧录工具

8、讲解视频

9、实物图

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

资料下载链接:

见文章开头

资料下载链接:

P系列单片机设计下载链接

P29 模拟风扇控制设计

链接: https://pan.baidu.com/s/1bB8De6Txe7XhACTYJML-8Q?pwd=ay9a

提取码: ay9a

相关推荐
国科安芯13 小时前
商业航天级抗辐照MCU与电源芯片在硅微条探测器系统中的应用分析
单片机·嵌入式硬件·架构·安全威胁分析·安全性测试
TEC_INO13 小时前
Stm32_1
stm32·单片机·嵌入式硬件
Molesidy1 天前
【Embedded Development】【bootloader】基于MCU的bootloader详细介绍以及基于MCU串口的IAP实战详细教程
单片机·嵌入式硬件·bootloader
长安第一美人1 天前
php出现zend_mm_heap corrupted 或者Segment fault
开发语言·嵌入式硬件·php·zmq·工业应用开发
沐欣工作室_lvyiyi1 天前
基于单片机的两轮自平衡循迹小车(论文+源码)
单片机·嵌入式硬件·小车·两轮自平衡
清风6666661 天前
基于单片机的8路抢答器设计与实现
数据库·单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
点灯小铭1 天前
基于单片机的智能污水有害气体电子鼻检测系统
数据库·单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
SystickInt1 天前
32 DMA实现ROM与RAM通信
stm32·单片机·嵌入式硬件
俊昭喜喜里1 天前
STM32开发板电源设计( DCDC 电路和 LDO 电路 )
stm32·单片机·嵌入式硬件