单片机控制白炽灯光渐变的C程序.doc
《单片机控制白炽灯光渐变的C程序.doc》由会员分享,可在线阅读,更多相关《单片机控制白炽灯光渐变的C程序.doc(4页珍藏版)》请在三一文库上搜索。
1、单片机控制白炽灯光渐变的C程序#include #define uint unsigned int#define uchar unsigned char#define ON 0#define OFF 1void main()TMOD = 0x11;EA=1;TCON=0x05;for(;)DispInfo( );Display( );keyscan( );void keyscan() if(S1_num=0)if (S2=0)mDelay(10);if (S2=0)if (K_Less30s59) LampGradual();void LampGradual()Gradual=Lamp1;K_
2、Less30s=0; /按开关灯键间隔小于30秒标记及时长记录EX0=1; /开外部中断0ET0=1;TR0=1;ET1=1; /定时器1中断允许IT0=1; /INT0为下降沿触发(以前忘了这个,渐变时却不亮,呵呵)On_Init=7000; /渐开定时触发初始化为10ms,并递减Off_Init=4000;/渐关定时触发初始化为0ms,并递增/*void timer0() interrupt 1/实时时钟中断程序TH0=(65536-50000)/256;TL0=(65536-50000)%256;Time50ms+; if(Time50ms=20) /实时时钟走时累计Time50ms=0
3、;Sec+;if(K_Less30s60) /| OnTime=1 | OffTime=1 /*按键后或定时时间到后开关灯*K_Less30s+;if(K_Less30s=30)/30秒后*K_Less30s=60;/封闭渐开渐关操作,Lamp1=Gradual;EX0=0;/30秒后关中断ET1=0;/30秒后关定时器1ET0=0;TR0=0;void INT0_AC0() interrupt 0/外部中断0,AC过0时,50Hz交流电每秒过零100次,每次间隔10msET1=1; /定时器1中断允许TR1=0; /定时器1开始计时if(Gradual=OFF)/渐开-On_Init;/On_Init-=2; /每10msa=(65536-On_Init)/256;/定时初值b=(65536-On_Init)%256;if(Gradual=ON)/渐关+Off_Init;/Off_Init+=2;a=(65536-Off_Init)/256;b=(65536-Off_Init)%256; /TH1=a;TL1=b;TR1=1; /开始计时void timer1() interrupt 3/定时器1中断程序(灯渐变移相控制)uchar i;Lamp1=ON;/灯1的触发脉冲for(i=0;i2;i+);/延时 X sLamp1=OFF;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 控制 白炽 灯光 渐变 程序
链接地址:https://www.31doc.com/p-8847800.html