标题: 单片机控制可控硅调光 [打印本页]
作者: W1320212208 时间: 2018-4-29 13:47
标题: 单片机控制可控硅调光
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P1^0; //开
sbit key2=P1^1; //关
sbit key3=P1^2; //减
sbit key4=P1^3; //增
sbit out=P2^0;
uint up=1;
//-------------------------------------------------------------------
//** 延时子程序 **
//-------------------------------------------------------------------
void Delayms(uint n) //延时n*0.5毫秒
{
uint i,j;
for(j=n;j>0;j--)
for(i=60;i>0;i--);
}
void Delay500us(void) //脉冲宽度延时500us
{
uint j;
for(j=60;j>0;j--);
}
//-------------------------------------------------------------------
//** 外部中断0服务程序 **
//-------------------------------------------------------------------
void intersvr0(void) interrupt 0 using1
{
Delayms(up); //延时up*0.5毫秒后再给触发脉冲
out=0;
Delay500us(); //给触发脉冲500us的宽度
out=1;
}
//-------------------------------------------------------------------
//** 主程序 **
//-------------------------------------------------------------------
void main(void)
{
IT0=1; //外部中断0初始化
EX0=1;
while(1)
{
/****************************/
if(key1==0) //开关打开
{
Delayms(20);//按键消抖
if(key1==0)
{
up=0;
EA=1;
out=0;
}
}
while(key1==0);
/****************************/
if(key2==0) //开关关断
{
Delayms(20); //按键消抖
if(key2==0)
{
EA=0;
out=1;
}
}
while(key2==0);
/****************************/
if(key3==0) //减光
{
Delayms(20);//按键消抖
if(key3==0)
{
up++;
if(up>19) up=19;
}
}
while(key3==0);
/****************************/
if(key4==0) //增光
{
Delayms(20);//按键消抖
if(key4==0)
{
up--;
if(up<1||up>20) up=1;
}
}
while(key4==0);
}
}
作者: admin 时间: 2018-4-29 15:23
过零检测接哪里呢?
作者: husb2018 时间: 2018-6-12 08:12
INTO P32
作者: HEIZI555 时间: 2018-6-23 17:15
楼主,这个程序调光效果怎么呀?
| 欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |