首页 > 软件 > 单片机流水灯实验(通过按键使其上下循环)

单片机流水灯实验(通过按键使其上下循环)

软件 2023-10-11

怎么用单片机按键控制循环跑马灯????

我刚好写过一个这样的程序,参考一下吧,希望对你有帮助 /*硬件电路连接:流水灯接在P0口, 阳极接高电平, 阴极接P0口,4个按键分别接P3.4,P3.5, P3.6,P3.7 ,按下时是低电平 */ #include sbit key1=P3^4; sbit key2=P3^5; sbit key3=P3^6; sbit key4=P3^7; int a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//左流水灯数组 int b[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//右流水灯

在做单片机按键控制流水灯,我想达到按一下自己循环,再按一下就停止的那种,怎么删改程序啊?

#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char
sbit K1 = P3^2; //独立按键
void Delayms(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=100;j>0;j--);
}
void main()
{
uchar x;
uint i;

uchar temp;

uint s=1;//新增一个值来记录按键值,初始化为1

while(1) //大的死循环一直扫描按键变化
{

if(K1==0)

{

Delayms(10);//按键去抖动

if(K1==0)s=0;//按键按下此时是键值s=0

}


while(s==0)//当按键第一次按下时进入循环点亮灯的循环

{
temp=0x01;
for(i=0;i<8;i++)
{
P0=~temp;
Delayms(100);
temp<<=1;

//if(K1==0) break; //增强反应速度,有按键按下立马跳出

}

if(K1==0) //当再次按下使键值s=1,将不符合点亮的死{ //循环,进入判断按键的死循环

Delayms(10);

if(K1==0) s=1;

}

}
}
}


单片机流水灯实验

RL 是循环左移, A(n+1) <- A(n), A(0) <- A(7) RR 是循环右移, A(n) <- A(n+1), A(7) <- A(0) 看来是LZ没有完全理解汇编指令,呵呵,这个程序的整个过程,如果是低电平亮的话,让整个过程中,始终只有1个灯亮起,其他都灭

单片机C语言编程——关于按键改变循环流水灯流向(切换运行状态)

void smg1() { wela=1; P0=0xfe; //这中间如果没延时,则后面的状态会没等你看清楚就被后面的状态覆盖了 wela=0; dula=1; P0=0x77; //这中间如果没延时,则后面的状态会没等你看清楚就被后面的状态覆盖了 dula=0; } smg2也是相同的道理; void key() { if(s2==0) delay(10); if(s2==0) { a=~a; //如果a定义为int型,当它为1时,对它取反并不是0,除非定义为位数据. while(!s2); } }

如何用单片机实现流水灯,从一依次亮到八,再从八依次亮回一,一直循环?

用GPIO寄存器比如PA、PB、PC这类的整段寄存器。配合循环、移位和延时(软硬都可以)操作,就能很优雅地实现。

单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。


标签:单片机 信息技术 流水灯 循环 按键

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18