標題: 單片機控制可控硅調光 [打印本頁]
作者: 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.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |