51单片机之通过按键点灯程序

单片机芯片采用ATmel公司89c52芯片。

1.流水灯电路图

2.四位按键

3.C语言代码(简单的按键控制灯的明暗)

#include <reg52.h>

sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
sbit led6=P1^5;
sbit led7=P1^6;
sbit led8=P1^7;

sbit k1=P3^4;
sbit k2=P3^5;
sbit k3=P3^6;
sbit k4=P3^7;

void main()
{				   
  P1=0xff;

  while(1)
  {
   led1=k1;
   led2=k1;
   /* if(k1==0)
   {
    led1=0;
	led2=0;
   }
   else
   {
    led1=1;
	le12=1;
   }*/
   led3=k2;
   led4=k2;
   led5=k3;
   led6=k3;
   led7=k4;
   led8=k4;
  }
}

只有当按键按住超过一定时间,才亮灯,并且每次按键都反转指示灯的状态 

#include <reg52.h>

sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
sbit led6=P1^5;
sbit led7=P1^6;
sbit led8=P1^7;

sbit k1=P3^4;
sbit k2=P3^5;
sbit k3=P3^6;
sbit k4=P3^7;

void delay(unsigned int xms)
{
 unsigned int i,j;
 for(i=xms;i>0;i--)
   for(j=112;j>0;j--);
}

void main()
{				   
  P1=0xff;
 while(1)
 {
 if(k1==0)
 delay(5000);	//只有当按键按住时间到达5s,才点亮指示灯
 if(k1==0)
 {
  while(k1==0);
  led1=~led1;
 }
 
 }
}

 

 简单的单片机程序,首先要了解电路的各个引脚的输出,其次对应库函数编写C语言代码。

 

  • 10
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第00课,前言,30章C51学习教程介绍.pdf 第01课,控制一个LED 灯的亮和灭.pdf 第02课,用指令方式延时闪烁LED 灯.pdf 第03课,跑马灯试验.pdf 第04课,读IO,用按钮控制点灯.pdf 第05课,标记的用法,用一个按键控制1个LED灯的亮灭.pdf 第06课,用定时器中断闪灯,定时器中断的学习.pdf 第07课,精确定时1秒钟闪灯.pdf 第08课,定时器中断跑马灯.pdf 第09课,自动变速的跑马灯试验.pdf 第10课,4个按键4级变速的跑马灯试验.pdf 第11课,一个按键控制的10级变速跑马灯试验.pdf 第12课,可编程自动控制跑马灯.pdf 第13课,用外中断方式读按键控制灯的亮灭.pdf 第14课,模拟PWM输出控制灯的10个亮度级别.pdf 第15课,写一个字节到24c02中.pdf 第16课,读一个24c02字节,读出上一课写入的字节来验证.pdf 第17课,写入按键次数到24c02,并读出来显示在4个LED上.pdf 第18课,嘀声报警信号输出试验.pdf 第19课,嘀嘀嘀间断声光报警信号试验.pdf 第20课,变频声救护车报警信号输出试验.pdf 第21课,按键音试验.pdf 第22课,音阶声音输出试验.pdf 第23课,按键控制音阶声音输出(电子琴).pdf 第24课,单个按键控制多个音阶声音输出.pdf 第25课,乐谱方式输入的音乐播放.pdf 第26课,亮灯倒计时10秒,开始播放音乐.pdf 第27课,三个按键选择三首不同的音乐播放.pdf 第28课,一个按键选择播放六首音乐.pdf 第29课,本课试验写老鼠爱大米的乐谱到24c02中.pdf 第30课,从24c02中读出音乐来并播放音乐.pdf

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值