打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
单片机单按键控制LED发光的程序

单片机单按键控制LED发光的程序 
  

51单片机单按键控制LED发光的程序,就是用一个与P3_0引脚连接的按键控制P2_0相连LED的亮和灭两种状态。按一次按键灯亮,再按一次按键灯灭。再按一次又亮,再按一次灯又灭,本程序出自单片机网:http://www.51hei.com,经过测试已经可以成功运行。
#include "AT89X51.H"
void main(void) // 主程序
{
bit mark;        //定义位变量
unsigned int n;  //定义循环变量
while(1)         //无限循环
{
if (P3_0==0)    //如果按键按下
{
for(n=0;n<1000;n++); //延时一段时间,等待按键完全按下
mark=~mark;         //翻转标记
while(!P3_0)        //等待按键弹起
for(n=0;n<1000;n++); //等待按键完全弹起
}
P2_0=mark;  //点亮或是关灭LED灯
}}
while(1)  //无限循环
{  
if(ldelay==1 ) //若是时间溢出标记为1,处理如下语句
{
ldelay=0;     //清除时间溢出标记
P2=ledp[ledi]; //读出一个表格值送到P2口
ledi++;        //指向下一个表格值
if(ledi==4)    
{
ledi=0;    //到了最后一个灯就换到第一个
sp--;       //速度级别减1
if (sp==3) //如果速度级别减到3
sp=23;     // 恢复速度最慢的级别23
}}}}
timer0() interrupt 1   //定时器0中断服务程序
{
static unsigned int kk;   //定义静态局部变量
kk++;    //每次中断服务,kk加1
if(kk==(100*sp))     //最少次数为100*sp=300,时间为300次*0.25ms
//最多次数为2300次,时间为2300次*0.25ms
//如果kk=(100*sp),执行如下语句
{
kk=0;
ldelay=1;         //当kk值与100*sp值相等,将ldelay标记置1,则处理灯亮与显示速度
} } 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
51单片机T2定时器的应用 - 我的文章 - likene
Keil C51学习 2 点亮LED灯
秒表的设计
MSP430在单电池供电的LED照明中的应用电路
单片机IO输入模式实现的'按键程序',按键点亮LED灯
如何设计一个单片机可控的循环流水灯?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服