《调光台灯程序.docx》由会员分享,可在线阅读,更多相关《调光台灯程序.docx(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、调光台灯程序 #include sbit LED = P1 0; sbit ONOFF = P2 0; sbit ADD = P2 1; sbit DEC = P2 2; unsigned int Brightne; bit MARK; /库文件定义(定义单片机为8952系列) /台灯限制端口(LED) /开关键 /变亮键 /变暗键 /亮度值,值域0255(全局变量) /状态标记位(目前是开灯还是关灯状态) /* 延时程序:时间为1mS /*/ void Delay1mS(unsigned int a) /延时程序(ms) unsigned char i; while( -a != 0) fo
2、r(i = 0; i /* 延时程序:驱动程序专用 /*/ void delay (unsigned char d) / 延时功能函数-由d确定延时长度 unsigned char i; while( -d != 0) for(i = 0; i /* 灯泡驱动程序:依据亮度值驱动灯泡 /*/ void drive (void) unsigned char a; /* 开灯推断: /*/ void open (void) / a = Brightne; LED = 0; delay (a); a = a; LED = 1; delay (a); a = a; / a值取反 使a回到原值接着循环
3、/ / a限制延时长度 /取得亮度值数据 /点亮灯泡 / 延时长度随a而变更 / a值取反 确定灯灭时的占空比 if(ONOFF = 0) /假如ONOFF为0则证明开关键按下 /等待20毫秒躲过按键不稳定的状态 /再看开关键是否被按下 /将标记位变成开灯状态 /等待按键放开 Delay1mS(20); if(ONOFF = 0) MARK = 1; while(ONOFF = 0); /* 关灯推断: /*/ void close (void) / /* 变亮推断: /*/ void add (void) / if(ADD = 0) /假如ADD为0则证明变亮键按下 Brightne+; i
4、f(Brightne 254) /亮度值加1 /假如亮度值大于最大值时 /则保持最大值状态 if(ONOFF = 0) Delay1mS(20); if(ONOFF = 0) MARK = 0; /将标记位变成关灯状态 while(ONOFF = 0); Brightne = 254; /* 变暗推断: /*/ void dec (void) if(DEC = 0) Brightne-; if(Brightne / /* 初始化: /*/ void init (void) LED ONOFF ADD DEC Brightne MARK = 1; / /灯泡和按键初始状态设置 = 1; = 1;
5、 = 1; = 130; = 0; /初始化亮度值 /状态切换标记位 /* 主循环体: /*/ void main (void) / 主函数 实现程序流程 init(); /调用初始化程序 while (1) if(MARK = 0) open(); if(MARK = 1) drive(); close(); add(); dec(); /状态标记为关灯状态时 /等待开关键按下(开灯) /状态标记为开灯状态时 /驱动灯泡 /推断开关键按下(关灯) /推断变亮键按下 /推断变暗键按下 调光台灯程序 调光台灯 调光台灯电路 调光台灯的电路 防近视调光台灯 亮度稳定的调光台灯 调光台灯限制电路 红外自动调光台灯设计 可调光触摸苹果台灯 智能调光LED台灯完成稿 本文来源:网络收集与整理,如有侵权,请联系作者删除,谢谢!第8页 共8页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页
限制150内