波特律动
课程中心/51单片机教程/【07】按键切换小灯位置

【07】按键切换小灯位置

【07】按键切换小灯位置

编写按键跳转控制代码,配合移位逻辑,编译下载程序到学习板,实现按键切换点亮不同位置 LED。



本课资源下载
3 个资源
P06按键切换小灯位置

本节课的标准源代码工程/可供参考

V1.0压缩包11 KB
下载
XL-1608SURC-06

LED红色(0603)

PDF 文档1.5 MB
预览下载
流水灯原理图

交互式原理图❇️

原理图

课程笔记


本节目标概括

创建工程 > 编写代码 > 现象展示

通过学习板上的按键KEY41、KEY42控制LED的前进和后退

编译并下载程序到学习板,即可看到程序效果:

  • 按一下 KEY41,L0左移一位
  • 按一下 KEY42,L0右移一位

1.创建项目

根据第一节第二节内容创建工程模板和main函数

2.编写代码

C语言
1#include <STC89C5xRC.H>
2
3int main(){
4 unsigned char a = 0x01; // 如果是char 则>>时就会出问题,因为>>时会补符号位
5 while(1){
6 if(P24 == 0){
7 Delay20ms();
8 if(P24 == 0){
9 while(P24 == 0);
10 a = a<<1;
11 if(a == 0) a = 0x01;
12 }
13 }
14 if(P25 == 0){
15 Delay20ms();
16 if(P25 == 0){
17 while(P25 == 0);
18 a = a>>1;
19 if(a == 0) a = 0x80;
20 }
21 }
22 P0 = ~a;
23 }
24}

代码含义解释:

  • 当if(P24 == 0)K41按下后,经过消抖 a<<1左移一位;
  • 当a从0x80左移为00时,重新回到a = 0x01最右端;
  • 右移则同理。

3.现象展示