首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
ARM
» 城市LED路灯控制电路和程序
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
城市LED路灯控制电路和程序
发短消息
加为好友
yuchengze
当前离线
UID
1062083
帖子
5837
精华
0
积分
2921
阅读权限
70
在线时间
222 小时
注册时间
2016-6-30
最后登录
2018-9-9
金牌会员
UID
1062083
性别
男
1
#
打印
字体大小:
t
T
yuchengze
发表于 2016-12-23 20:41
|
只看该作者
城市LED路灯控制电路和程序
LED路灯
,
开关电源
,
单片机
,
源程序
,
稳压
本帖最后由 yuchengze 于 2016-12-27 11:38 编辑
电路很简单,接在开关电源的稳压回路中就可控制城市的路灯了。这程序只控制关和开,全功率和半功率。24小时循环可不要人工干涉。
stm8单片机源程序:
#include"ADC.h"
#include "Eeprom.h" //包含用到的外设的头文件
extern u8 minlimit;
extern u8 maxlimit;
extern u16 right_valume;
extern u8 SaveDATA1H;
u8 Adj_Valume;
u8 DATA0H;
u8 ADJADDR;
extern u8 t1ms;
u8 Adc_Flag;
u8 HeCong;
u8 NoLight;
u8 NewLight;
u8 ADC_Valume;
u16 BufllAcc;
u8 BufllPoint;
u8 Adc_Bufll[8];
u8 ReadSample1(void)
{
right_valume = 0;
right_valume += ADC1->DB1RH;
right_valume += ADC1->DB2RH;
right_valume += ADC1->DB3RH;
right_valume += ADC1->DB4RH;
right_valume += ADC1->DB5RH;
right_valume += ADC1->DB6RH;
right_valume += ADC1->DB7RH;
right_valume += ADC1->DB8RH;
ADC_Valume = right_valume>>3; //求平均
return ADC_Valume;
}
u8 t =10;
void StartUP_ADC(void)
{
TIM1_SetCompare1(0); //改变PC1输出的PWM的占空比,0
t1ms = 0; //
while(t1ms <= t)
{
nop();
}
NoLight = ReadSample1(); //环境光
TIM1_SetCompare1(Adj_Valume); //改变PC1输出的PWM的占空比,80%
t1ms = 0;
while(t1ms <= t)
{
;
}
HeCong = ReadSample1(); //合成光
SaveDATA1H = NoLight - HeCong; //增量光,标准光点
}
/*******************************************************************************
* ==ADC初始化函数==
* ADC_DeInit(); --> 复位定时器4寄存器
*******************************************************************************/
void ADC_INIT(void)
{
CLK_PeripheralClockConfig(CLK_PERIPHERAL_ADC, ENABLE); //给ADC时钟
ADC1->CR1 = 0X03;//ADC = fMASTER /3 = f /4.使能ADC并开始转换
ADC1->TDRH = 0X00;//施密特触发器禁止
ADC1->TDRL = 0XF8;//施密特触发器禁止
ADC1->CSR = 0X03;//模拟通道 AIN4
ADC1->CR2 = 0X00;//单次转换模式,数据左对齐
ADC1->CR3 = 0X80;//数据缓存功能/禁止
ADC1->CR1 |= 0x01; //开始转换
}
u8 T1S_Count;
//ADC开始
void ADCStart(void)
{
T1S_Count++;
if(T1S_Count ==5)
{
T1S_Count = 0;
right_valume = 0;
right_valume += ADC1->DB1RH;
right_valume += ADC1->DB2RH;
right_valume += ADC1->DB3RH;
right_valume += ADC1->DB4RH;
right_valume += ADC1->DB5RH;
right_valume += ADC1->DB6RH;
right_valume += ADC1->DB7RH;
right_valume += ADC1->DB8RH;
NewLight = right_valume>>3; //求平均
DATA0H =NoLight - NewLight;
Adc_Flag = 1;
}
}
u8 w;
//ADC以查询方式工作
void AdjRight(void)
{
w = ~SaveDATA1H;
if(Adc_Flag == 1 ) //20MS抽一次
{
Adc_Flag = 0;
if(NewLight > w)
{
if(Adj_Valume <= maxlimit)
{
Adj_Valume++;
}
}
else if(NewLight < w)
{
if(Adj_Valume >= minlimit)
{
Adj_Valume--;
}
}
}
}
复制代码
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议