4个独立式按键控制LED移位

发布者:静默思考最新更新时间:2021-12-29 来源: eefocus关键字:LED移位  51单片机 手机看文章 扫描二维码
随时随地手机看文章

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

程序源代码:


/*

4个独立式按键控制LED移动

*/

#include

typedef unsigned char uint8;

typedef unsigned int uint16;


void delay(uint16 x)

{

uint16 i,j;

for(i = x; i > 0; i --)

for(j = 114; j > 0; j --);

}


uint8 i = 0,j = 0;


void Move_LED()

{

if ((P1 & 0x01) == 0x00) i = (i - 1) & 0x07;

else if((P1 & 0x02) == 0x00) i = (i + 1) & 0x07;

else if((P1 & 0x04) == 0x00) j = (j - 1) & 0x07;

else if((P1 & 0x08) == 0x00) j = (j + 1) & 0x07;


P0 = ~(1 << i);

P3 = ~(1 << j); 

1

2

}


void main()

{

uint8 Key = 0x00;

P0 = 0xFF; P3 = 0xFF;

while(1)

{

if(P1 != Key)

{

Key = P1;

Move_LED();

delay(10);

}

}

}


关键字:LED移位  51单片机 引用地址:4个独立式按键控制LED移位

上一篇:带分频整形的单片机频率计(1Hz—20MHz)
下一篇:8051单片机驱动TM1620任意字符循环显示程序

推荐阅读最新更新时间:2024-11-08 19:18

51单片机for循环结束之后还在运行
当我们设计并编写嵌入式系统时,使用51单片机编写程序时,常常会用到循环结构来重复执行一段代码。然而,有时我们可能会遇到51单片机在循环结束之后还在运行的问题,这可能会导致系统的功能异常或性能下降。因此,在这篇文章中,我将详尽、详实、细致地讨论51单片机在循环结束之后还在运行的原因,并提供解决这个问题的措施。 首先,让我们回顾一下51单片机的基本运行原理。51单片机是一个8位微控制器,它具有高度集成的特点,包括CPU、RAM、ROM、串行通信接口、定时器等核心硬件模块。这些硬件模块通过总线连接在一起,并通过共享总线进行通信和数据传输。 在循环结构中,我们使用指令来控制循环的开始和结束条件。当循环开始时,程序逐行执行指令,直到
[单片机]
基于51单片机LED呼吸灯设计(定时器)
定时器实现led呼吸灯 实验原理: 灯在高速闪烁时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失。每次循环时,前半部分先让亮的时间逐渐增加,暗的时间逐渐减小;后半部分先让亮的时间逐渐减小,暗的时间逐渐增加,如此循环即可 #include reg52.h //此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; #define LED P2 //总线法点灯 void delay(u16 i) //延时函数 { while(i--); }
[单片机]
51单片机学习二 led流水灯与按键控制
单片机芯片型号 STC89C516 需求 需要的知识 1.关于延时函数 void Delay100ms() //晶振频率12mhz的100s延时函数 { unsigned char i, j; i = 195; j = 138; do { while (--j); } while (--i); } 可以延时上个语句对应时间,使用辅助程序可以生成 2.关于c51语言位运算中的移位 符号 为 “ ”, “ ” a m,a和m必须是整型表达式,要求m =0,将整型数a按二进制位向左移动m位,高位移出后,将低位补0。 a m,a和m必须是整型表达式,要求m =0。,将
[单片机]
<font color='red'>51单片机</font>学习二 <font color='red'>led</font>流水灯与<font color='red'>按键</font><font color='red'>控制</font>
基于51单片机的步进电机驱动器
 步进电机在控制系统中具有广泛的应用。它可以把脉冲信号转换成角位移,并且可用作电磁制动轮、电磁差分器、或角位移发生器等。   有时从一些旧设备上拆下的步进电机(这种电机一般没有损坏)要改作它用,一般需自己设计驱动器。本文介绍的就是为从一日本产旧式打印机上拆下的步进电机而设计的驱动器。本文先介绍该步进电机的工作原理,然后介绍了其驱动器的软、硬件设计。   1. 步进电机的工作原理   该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图1是该四相反应式步进电机工作原理示意图。   图1 四相步进电机步进示意图      开始时,开关SB接
[单片机]
基于<font color='red'>51单片机</font>的步进电机驱动器
51单片机接收数组知识
简介:最近在做一个项目,其中有一模块是需要通过串口使单片机与电脑进行通信,在单片机中我是用C语言进行编程,在应用程序中是用.net编程。其中有一个要求是电脑一次发送十个数据,单片机里定义一个数组,接收这10个数据。 可是在进行检验的过程中却发现接收的数据会移位,比如我从电脑中发送的数据是a,b,c,d,e,f,i,j,k,l.那么理论上我在单片机中定义的数组array 应该也是array ={a,b,c,d,e,f,i,j,k,l.可实际上却不是这样子的,正真接收的数据是array ={l,a,b,c,d,e,f,i,j,k,};也就是移了一位,第十位跑到了第一位,第一位到了第二位。之后的就不会再移位,出现这样的原因是因为单片
[单片机]
以89C51单片机控制核心的开关电源优化设计
引言   开关电源是利用现代电力电子技术控制功率开关管(MOSFET,IGBT)开通和关断的时间比率来稳定输出电压的一种新型稳压电源。从上世纪90年代以来开关电源相继进入各种电子、电器设备领域,计算机、程控交换机、通讯、电子检测设备电源、控制设备电源等都已广泛地使用了开关电源。利用单片机控制的开关电源,可使开关电源具备更加完善的功能,智能化进一步提高,便于实时监控。其功能主要包括对运行中的开关电源进行检测、自动显示电源状态;可以通过按键进行编程控制;可以进行故障自诊断,对电源功率部分实现自动监测;可以对电源进行过压、过流保护;可以对电池充放电进行实时控制。   开关电源的系统结构   通信用-48V开关电源结构图如图1所示:
[应用]
51单片机累计定时中断次数实现独立按键
一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ---- @Project: Independent-KEY ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200506 ---- @ModifiedTime: 20200506 ----
[单片机]
<font color='red'>51单片机</font>累计定时中断次数实现独立<font color='red'>按键</font>
C51单片机的定时器计数器怎么用?
方法有很多的,给你一个,你可以调试一下,你可以通过不同的晶振去计算定时器初值,如果你懂定时器这部分很好调通的 #include sbit p1_0=P1^0; int i; //全局变量 void timing(void) //晶振为3.6864M { TMOD|=0x01; //定时器T0,工作方式1 TH0=0xC3; TL0=0xC7; //这两个寄存器存的是计数器的计数开始的值,这两个值累加至溢出后正好是50ms ET0=1; //使T0中断可以溢出 EA=1; //开启总中断 TF0=0; //溢出位清零 TR0=1; //开启T0 } /********定时中断
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved