本帖最后由 马新豪 于 2023-2-2 16:37 编辑
C51单片机 独立按键控制LED移位 (如有错误,望指正。)
这节内容需要用到C51数据运算中的按位左移(<<)和按位右移(>>),位操作符是学习按键时所要仔细了解的内容之一,51单片机中所用到的各种位操作符的详解可以参照CSDN上的这篇文章。 这里用right和left键来控制LED移位 代码如下: - #include <STC12C5AXX.h>
- void Delay20ms() //@32MHz
- {
- unsigned char i, j, k;
- i = 3;
- j = 111;
- k = 138;
- do
- {
- do
- {
- while (--k);
- } while (--j);
- } while (--i);
- }
- unsigned char LEDNum=0;
- void main()
- {
- while(1)
- {
- if(P24==0)
- {
- Delay20ms();
- while(P24==0);
- Delay20ms();
-
- LEDNum++;
- if(LEDNum>=8)
- LEDNum=0;
- P0=~(0x01<<LEDNum);
- }
-
- if(P26==0)
- {
- Delay20ms();
- while(P26==0);
- Delay20ms();
-
- if(LEDNum==0)
- LEDNum=7;
- else
- {
- LEDNum--;
- P0=~(0x01<<LEDNum);
- }
- }
- }
- }
复制代码
|