目录

1.现象
2.代码
3.LED模块原理图
4.线性键盘原理图

1.现象

程序下载完成后: 首先,由最右边的 LED1 点亮。当按下线性按键 S1 后,LED1 熄灭,LED2 点亮。其次,每按下一次 S1,当前的 LED 熄灭,相邻的左边第一个 LED 灯 点亮(视觉效果:每按一次按键,LED向左位移一位)。最后,当LED点亮至第八个(LED8)后,再按一次按键 S1,LED8 熄灭,LED1 重新点亮,即完成一次循环。这便是手动流水灯的程序效果,代码如下:

2.代码

main.c

#include "stc15f2k60s2.h"
#include "tim.h"
#include "intrins.h"unsigned char keyval;bit flag10ms;sbit k1=P3^2;//定义按键k1//定时器0
void timer0() interrupt 1
{static unsigned char i;i++;if(i>=2){flag10ms = 1;i = 0;}
}//中断0
void intr0(void) interrupt 0
{flag10ms = 0;//按键消抖if(k1 == 0){unsigned char i;switch(i)//判断按键键值{case 0:keyval=0;break;case 1:keyval=1;break;case 2:keyval=2;break;case 3:keyval=3;break;case 4:keyval=4;break;case 5:keyval=5;break;case 6:keyval=6;break;case 7:keyval=7;break;}i++;if(i==8)i=0;}
}//主函数
void main(void)
{Timer0Init();//定时器0EX0 = 1;//边沿触发方式(下降沿)IT0 = 1;EX1 = 1;//边沿触发方式(下降沿)IT1 = 1;EA =1;//开启总中断while(1){P0=~(0x01<<keyval);//按一下流水灯移动一位,方向为LED1~LED8}
}

3.LED模块原理图

原理图下载地址

4.线性键盘原理图

注意: 此处 S1、S2 分别连接 INT0(外部中断0)、INT1(外部中断1)

—————————END————————— 回顾

★STC15单片机 定时器控制LED流水灯流速

★STC15单片机 点亮一个LED

————————————————————

STC15单片机 线性按键控制LED流水灯位移相关推荐

  1. 51单片机 按键控制LED流水灯模式

    本章博客实现按键控制LED流水灯模式的功能 1.将之前文件中Delay.c.h复制过来,进行添加 2.模块化编程 3.main.c #include <REGX52.H> #include ...

  2. 按键控制LED流水灯

    有了按键控制LED状态以及控制LED显示二进制操作流水灯就很容易,定义一个变量,当每次检测到按键按下并且松手时,使该数值加一,利用按位左移实现流水灯 #include <REGX52.H> ...

  3. 用51单片机实现按键控制LED灯亮灭

    用51单片机实现按键控制LED灯亮灭 #include<reg51.h>//头文件 sbit LED=P2^0;//位定义LED灯 sbit k1=P3^1;//位定义按键 void de ...

  4. 从两边往中间流水灯c语言程序,单片机控制LED流水灯从中间向两边.doc

    WORD格式.分享 精品.资料 单片机控制LED流水灯从中间向两边,从两边向中间 这个就是把 先奇数亮再偶数亮,循环三次:一个灯上下循环三次:两个分别从两边往中间流动三次:再从中间往两边流动三次:不过 ...

  5. 单片机c语言编程实现中间向两边,再从两边向中间亮的程序流程图,单片机控制LED流水灯从中间向两边.doc...

    单片机控制LED流水灯从中间向两边,从两边向中间 这个就是把 先奇数亮再偶数亮,循环三次:一个灯上下循环三次:两个分别从两边往中间流动三次:再从中间往两边流动三次:不过这个程序实现的 应该是这样的 先 ...

  6. 从两边往中间流水灯c语言程序,单片机控制LED流水灯从中间向两边

    单片机控制LED流水灯从中间向两边,从两边向中间 这个就是把先奇数亮再偶数亮,循环三次:一个灯上下循环三次:两个分别从两边往中间流动三次:再从中间往两边流动三次:不过这个程序实现的应该是这样的先奇数亮 ...

  7. 4、Proteus仿真STM32串口通信,发送数据控制LED流水灯的启动和停止

    一.实验说明 本次实验建立在第三个实验基础上,稍加修改,通过串口调试助手发送数据到Proteus来实现对流水灯的启动和停止,所以实验采用2个通信串口,实验原理非常简单,只要熟悉第三次实验的过程,就非常 ...

  8. 单片机按键控制数码管c语言程序,基于单片机的按键控制LED数码管共阴极动态显示电路设计报告(毕业论文).doc...

    基于单片机的按键控制LED数码管共阴极动态显示电路设计报告(毕业论文) 物理与电子工程学院2014级课程设计 PAGE IV 物理与电子工程学院 <单片机原理与接口技术> 课程设计报告书 ...

  9. FPGA 双按键控制LED呼吸灯实现

    FPGA &&双按键控制&&LED呼吸灯实现 文章目录 FPGA &&双按键控制&&LED呼吸灯实现 1.按键脉冲设计 1.1按键脉冲信 ...

最新文章

  1. tensorflow op tf.global_variables_initializer
  2. windows server 2003上安装mysql的问题
  3. 按home键退出的activity可以不进入stop模式码_用了几年的iPhone,竟然不知道苹果手机还有“游戏模式”?...
  4. ssh-copy-id配置rsync免密访问并rsync同步
  5. Spring注解和XML配置文件孰优孰劣
  6. Java 字节数组的长度length
  7. Oracle PL/SQL中异常高级特性
  8. python第一行左对齐_关于Python的第一行语句
  9. oracle sql中打印,在Oracle SQL Developer SQL工作表窗口中打印文本
  10. html中pre的作用是,HTML pre 标签与code标签的作用与用法
  11. VS2013添加反编译工具-ILDasm
  12. “智慧城市”建设为何需要“顶层设计”
  13. Nessus下载离线升级包all-2.0 .tar.gz方法
  14. windows文件夹图标只显示一半,另一半被白框遮挡解决办法
  15. python学习-day9内置函数(高阶)
  16. 家乡的春节html,家乡的春节日记
  17. Angular4 - 组件
  18. 推荐mac os 下更改键盘映射软件KeyRemap4MacBook
  19. linux抓bpdu包,用Python发送手工构建的BPDU(生成树协议包)
  20. 以下是根据在下的一些朋友芳名作诗,请朋友指点,继续增加中

热门文章

  1. 最全的apple pay苹果支付步奏
  2. REW声学测试(五):测试所需设备
  3. 【WIN10】如何关闭右下角输入法的“拼”字
  4. 利用Java语言编写一个猜数字游戏(有次数限制)
  5. 犯错误很正常,可怕的是同样的错误重复在犯!
  6. 浅谈什么是web应用防火墙(WAF)
  7. 出现数据库不给访问的情况
  8. 【vue2】05_动态组件 插槽 自定义指令
  9. windows无法找到发送到桌面快捷方式
  10. Android APP性能分析工具大全