白炽灯可控硅调光程序
https://bbs.csdn.net/topics/392511602
?
#include?"STC15WXXX.h"
sbit?lamp_pwm=P3^6;//可控硅位
sbit?key0=P3^4;//降低亮度按鍵位
sbit?key1=P3^5;//增加亮度按鍵位
unsigned?int?inc;
void?delay1ms(unsigned?int?t)
{
unsigned?int?i;
while(t--)for(i=0;i<580;i++);
}
void?INT0s()interrupt?0//INT0外部中斷,過零檢測觸發(fā)
{
TR0=0;
????if(!key0)//降低亮度
????????{??????????????
inc+=100;
????????????if(inc>=9900)inc=9900;
????????}
????????if(!key1)//增加亮度
????????{
????????????inc-=100;
?????????????if(inc<=1000)inc=1000;
????????}
????????TH0=(65536-inc)/256;
????????TL0=(65536-inc)%256;
????????TR0=1;
}
void?timer0()interrupt?1
{
????????unsigned?char?i;
TR0=0;
//給觸發(fā)脈沖
????????lamp_pwm=0;
????????for(i=0;i<20;i++);?//延時20us
????????lamp_pwm=1;//燈滅
}
void?main()
{
????P0M0?=?0x00;
????P0M1?=?0x00;
????P1M0?=?0x00;
????P1M1?=?0x00;
????P2M0?=?0x00;
????P2M1?=?0x00;
????P3M0?=?0x00;
????P3M1?=?0x00;
????P4M0?=?0x00;
????P4M1?=?0x00;
????P5M0?=?0x00;
????P5M1?=?0x00;
????P6M0?=?0x00;
????P6M1?=?0x00;
????P7M0?=?0x00;
????P7M1?=?0x00;
P0=P1=P2=P3=P4=0xff;?
?
inc=9900;
AUXR?&=?0x7F; //定時器時鐘12T模式
TMOD?&=?0xF0; //設(shè)置定時器模式
TMOD?|=?0x01; //設(shè)置定時器模式
TH0=(65536-inc)/256;
????????TL0=(65536-inc)%256;
ET0=1;
IT0=1;//INT0下降沿觸發(fā)
????????EX0=1;//外部中斷允許???????
????????EA=1;//開總中斷???????
????????while(1)
????????{
????????}
}
總結(jié)
以上是生活随笔為你收集整理的白炽灯可控硅调光程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于单片机的调光控制器设计
- 下一篇: 开发IOT WiFi设备时,需要测试的几