找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4469|回复: 1
打印 上一主题 下一主题
收起左侧

单片机+1602液晶温控风扇档位可调的设计思路 无代码

[复制链接]
跳转到指定楼层
楼主
ID:198608 发表于 2019-4-18 20:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
内容:本系统就是充分利用了8051芯片的I/O引脚。系统以采用MCS-51系列单片机89c51为中心器件来设计简易温控风扇系统,实现了能根据设置的上下限温度,来启动风扇的工作与停止,低于设置的下限温度,风扇不工作,在上限与下限之间风扇以50%的转速工作,温度高于上限,风扇全速工作。
实施方案:
1)        设计电路布局图
2)        准备好所需的材料
3)        按照电路图焊接好元件
4)        编写单片机程序
5)        对单片机进行调试
预期目标:在每个温度区间保证风扇按要求运行、
温控风扇.doc (1.01 MB, 下载次数: 47)
温控风扇控制设计参考.doc (4.33 MB, 下载次数: 38)
DS18B20中文手册.pdf (878.98 KB, 下载次数: 15)
PWM脉宽调制.pdf (508.65 KB, 下载次数: 16)
PWM脉宽调制原理.doc (28 KB, 下载次数: 15)
脉宽调制PWM.doc (43.5 KB, 下载次数: 21)
部分程序:


#include <reg52.h>
#include <intrins.h>
#include <absacc.h>
#include <math.h>
#include "0832.h"
  
#define uchar unsigned char
#define uint unsigned int

//定义LCD1602端口
sbit E=P2^6;                //1602使能引脚
sbit RS=P2^7;                //1602数据/命令选择引脚
sbit RW=P2^5;

sbit LED_RED=P2^2;
sbit LED_YELLOW=P2^1;
sbit LED_GREEN=P2^0;
sbit SET_KEY=P3^4;
sbit ADD_KEY=P3^5;
sbit SUB_KEY=P3^6;
sbit BUZZ=P3^7;
sbit jdq=P2^4;
int WARNING=250;
uint DA;
bit FlagStartRH=0;
bit flag_BJ=0;
bit set=0;
void L1602_string(uchar hang,uchar lie,uchar *p);

//定时器0初始化
void Timer0_Init()
{
        ET0 = 1;        //允许定时器0中断
        TMOD = 0x11;       //定时器工作方式选择
        TL0 = 0xb0;     
        TH0 = 0x3c;     //定时器赋予初值
        TR0 = 1;        //启动定时器
        TL1 = 0xb0;     
        TH1 = 0x3c;     //定时器赋予初值
        ET1=1;
        TR1=1;
}

//定时器0中断
void Timer0_ISR (void) interrupt 1 using 0
{
        uchar RHCounter;
        TL0 = 0xb0;
        TH0 = 0x3c;     //定时器赋予初值
        RHCounter++;
        //每2秒钟启动一次温湿度转换
    if (RHCounter >= 20)
    {
       FlagStartRH = 1;
           RHCounter = 0;
    }
}
//定时器1中断
void Timer1_ISR (void) interrupt 3
{
        uchar RHCounter1;
        TL1 = 0xb0;
        TH1 = 0x3c;     //定时器赋予初值
        RHCounter1++;
        if(RHCounter1>=10)
        {
                RHCounter1=0;
                if(flag_BJ==1)
                BUZZ=!BUZZ;
                else
                BUZZ=1;
        }
}


/********************************************************************
* 文件名  : 液晶1602显示.c
* 描述    :  该程序实现了对液晶1602的控制。
***********************************************************************/


/********************************************************************
* 名称 : delay()
* 功能 : 延时,延时时间大概为140US。
* 输入 : 无
* 输出 : 无
***********************************************************************/

void delay()
{
        int i,j;
        for(i=0; i<=10; i++)
        for(j=0; j<=2; j++);
}

void delay_ms(uint ms)
{
        uint i,j;
        for(i=0;i<ms;i++)
        for(j=0;j<110;j++);
}           

        

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:438432 发表于 2019-6-3 15:53 | 只看该作者
可以很强!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表