标题:
基于STC15单片机的SI7021 IDC机房放火控制系统源码
[打印本页]
作者:
翟正涛
时间:
2018-4-3 11:53
标题:
基于STC15单片机的SI7021 IDC机房放火控制系统源码
粘贴一段STC15W4K32S4的PWM程序,希望大家喜欢,里面用了SI7021温湿度传感器,提供全部源码
0.jpg
(41.83 KB, 下载次数: 40)
下载附件
2018-4-4 04:21 上传
单片机源程序如下:
#include <STC15F2K60S2.H>
#include <STC15_PWM.H>
#define EAXSFE() P_SW2 |= 0x80; //CPU访问外部扩展
#define EAXRAM() P_SW2 &= 0x7F; //CPU访问内部RAM
unsigned int PWM_Duty = 600;
int PWM_Right_Duty = 100,PWM_Left_Duty = 100;
unsigned int PWM_Freq = 2200;
void PWM_init()
{
PWMCFG = 0; //PWM配置寄存器 全部初始低电平
EAXSFE();
PWMCKS = 0x00;//不分频,分频数=低四位加一
PWM2CR = 0x08;
PWM3CR = 0x00;
P2M0 |= (1<<7);
P2M0 |= (1<<1);
PWM2T1H = PWM3T1H = 0;
PWM2T1L = PWM3T1L = 0;
PWM_Flash_Freq(PWM_Freq);
PWM_Flash_Duty(PWM_Duty);
EAXRAM();
/////////////////////////////////////
PWMCR = 0x83; //PWM选择控制寄存器
//PWMCR 启用PWMn对应为置“1” ,
//ENPWM/ECBI/EN7/EN6/EN5/EN4/EN3/EN2/
// 1 0 0 0 0 0 1 1
//////////////////////////////////////
}
void PWM2_Flash_Duty(uint Duty)
{
PWM_Right_Duty = Judgment_value(Duty);
EAXSFE();
PWM2T2H = PWM_Duty / 256;
PWM2T2L = PWM_Duty % 256;
EAXRAM();
}
void PWM3_Flash_Duty(uint Duty)
{
PWM_Left_Duty = Judgment_value(Duty);
EAXSFE();
PWM3T2H = PWM_Duty / 256;
PWM3T2L = PWM_Duty % 256;
EAXRAM();
}
void PWM_Flash_Duty(uint Duty)
{
PWM_Duty = Judgment_value(Duty);
EAXSFE();
PWM2T2H = PWM3T2H = PWM_Duty / 256;
PWM2T2L = PWM3T2L = PWM_Duty % 256;
EAXRAM();
}
void PWM_Flash_Freq(uint Freq)
{
Freq = Judgment_value(Freq);
EAXSFE();
PWMCH = Freq / 256;
PWMCL = Freq % 256;
EAXRAM();
}
uint Judgment_value(uint value)
{
if(value>(PWM_Freq-20))
value=PWM_Freq-20;
if(value<11)
value=20;
return value;
}
复制代码
所有资料51hei提供下载:
防火控制.rar
(747.29 KB, 下载次数: 31)
2018-4-3 11:52 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
omer
时间:
2019-3-25 13:45
感谢开源分享,借鉴一下。
作者:
qiang41194
时间:
2019-12-15 13:22
感谢楼主分享
作者:
xujg74
时间:
2025-4-30 12:12
弱弱的问一句机房里为啥要放火?
作者:
powerdruy
时间:
2025-4-30 14:47
xujg74 发表于 2025-4-30 12:12
弱弱的问一句机房里为啥要放火?
大概是笔误,防火吧
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1