登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] C51单片机 独立按键控制LED移位

[复制链接]
发表于 2023-2-2 16:23:06 | 显示全部楼层 |阅读模式
学习笔记
学习科目: C51单片机
学习安排: o
开始时间: 2023-01-14
结束时间:
本帖最后由 马新豪 于 2023-2-2 16:37 编辑

C51单片机 独立按键控制LED移位
(如有错误,望指正。)

  这节内容需要用到C51数据运算中的按位左移(<<)按位右移(>>),位操作符是学习按键时所要仔细了解的内容之一,51单片机中所用到的各种位操作符的详解可以参照CSDN上的这篇文章。
   这里用right和left键来控制LED移位 代码如下:
  1. #include <STC12C5AXX.h>

  2. void Delay20ms()                //@32MHz
  3. {
  4.         unsigned char i, j, k;

  5.         i = 3;
  6.         j = 111;
  7.         k = 138;
  8.         do
  9.         {
  10.                 do
  11.                 {
  12.                         while (--k);
  13.                 } while (--j);
  14.         } while (--i);
  15. }
  16. unsigned char LEDNum=0;
  17. void main()
  18. {        
  19.         while(1)
  20.         {
  21.                 if(P24==0)
  22.                  {
  23.                          Delay20ms();
  24.                          while(P24==0);
  25.                          Delay20ms();
  26.                         
  27.                           LEDNum++;
  28.                          if(LEDNum>=8)
  29.                                         LEDNum=0;
  30.                           P0=~(0x01<<LEDNum);
  31.                  }
  32.                  
  33.                  if(P26==0)
  34.                  {
  35.                          Delay20ms();
  36.                          while(P26==0);
  37.                          Delay20ms();
  38.                         
  39.                          if(LEDNum==0)
  40.                                  LEDNum=7;
  41.                          else
  42.                          {
  43.                                 LEDNum--;
  44.                           P0=~(0x01<<LEDNum);
  45.                    }
  46.                  }
  47.                 }
  48.         }
复制代码

好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表