问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

单片机c语言编了个流水灯,用按键怎么实现它暂停。

发布网友 发布时间:2022-04-27 05:51

我来回答

4个回答

热心网友 时间:2022-06-27 04:48

实现流水灯的方式有很多种(中断,定时器,延时等等),看用哪种方式,最简单的是延时做流水灯,那么在死循环里面增加按键检测,判断出有按键按下来时,再进入死循环,程序不往下走就可以暂停,再按跌出死循环。

#include //51系列单片机定义文件

#define uchar unsigned char //定义无符号字符

#define uint unsigned int //定义无符号整数

void delay(uint); //声明延时函数

void main(void)

{

uint i;

uchar temp;

uint Flag1=0;  按键标志位

uint Flag2=0;

while(1)

{

Flag1 = keyscan();

if(Flag1==1)(Flag2=~Flag2); //如果一旦检测到一次按键扫描就把标志位2 打开;再次就关闭;

if(Flag2==1)// 如果标志位打开就开始流水灯

{

 temp=0x01;

 for(i=0;i<8;i++) //8个流水灯逐个闪动

 {

P1=~temp;

delay(100); //调用延时函数

temp<<=1;

 }

}

扩展资料:

单片机编程就是硬件是单片机,基于单片机进行的程序开发,在有周围外设支持的情况下,用软件来控制的部分通过单片机编程来实现。单片机能识别的语言是硬件语言即汇编,因此编程就是围绕汇编来实现,有直接用汇编程序来编写的,但是较难调试的编写,特别是一上规模就更不易实现,因此常用高级语言来写然后通过编译器转化成汇编。

参考资料来源:百度百科-单片机C语言编程

热心网友 时间:2022-06-27 04:48

//流水灯 4 个按键 4种 亮法,自己修改 成自己要的 亮法,供参考
#include <REG51.h> //51头文件
#define DY_PORT P1 //设置LED连接的I/O组
#define DY_SPEED 100 //设置每一个明亮级的停留时间(值域:0~65535)
sbit k1=P3^0;
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
void delay (unsigned int a) // 1ms延时程序
{
unsigned int i;
while( --a != 0)
{
for(i = 0; i < 600; i++);
}
}
void main(void)
{
unsigned int i;
unsigned int temp;
while(1)
{
if(~k1)
{
temp=0x01;
for(i=0;i<8;i++) //8个流水灯逐个闪动
{
DY_PORT=~temp;
delay(DY_SPEED); //调用延时函数
temp<<=1;
}
}
if(~k2)
{
temp=0x80;
for(i=0;i<8;i++) //8个流水灯反向逐个闪动
{
DY_PORT=~temp;
delay(DY_SPEED); //调用延时函数
temp>>=1;
}
}
if(~k3)
{
temp=0xFE;
for(i=0;i<8;i++) //8个流水灯依次全部点亮
{
DY_PORT=temp;
delay(DY_SPEED); //调用延时函数
temp<<=1;
}
}
if(~k4)
{
temp=0x7F;
for(i=0;i<8;i++) //8个流水灯依次反向全部点亮
{
DY_PORT=temp;
delay(DY_SPEED); //调用延时函数
temp>>=1;
}
}
}
}

热心网友 时间:2022-06-27 04:49

利用外部中断可以,在中断函数里面写入你要执行的让流水灯停止的程序,设置一个全局变量FLAG=0;每次进入中断就取反,通过判断FLAG的值来决定是暂停还是继续

热心网友 时间:2022-06-27 04:49

可以用定时器设置流水灯的时间间隔,按键控制定时器开关
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
求大学生谈恋爱的各种弊端 大学生恋爱的利大于弊吗? 大学生谈恋爱的弊处 dnf现在站街16000的物攻 增加100物攻能张多少 家里养的蚕宝宝是要蜕皮了吗 富贵包硬和软的区别 【已完成】为什么腋窝突然有异味? 女生为什么有狐臭症状? 为什么会狐臭 万视宝这个牌子是做什么的?有人了解嘛? c51单片机独立按键控制,流水灯程序 单片机按键控制流水灯状态切换 C语言 按键控制流水灯程序 51用按键控制流水灯 蒸汽挂烫机和蒸汽熨斗哪个好? 51单片机按键控制流水灯速度 用C语言编写按键控制流水灯的程序 微信和支付宝支付,信用卡有积分吗 招行信用卡在网络上消费有积分吗? 招行信用卡、招行国航知音联名信用卡在微信支付有信用卡积分吗 招行支付宝和微信有积分么 招行在支付宝和微信上刷 有积分么 招商银行微信支付有积分吗 招商京东小白卡,微信支付淘宝购物有积分吗。 招行微信支付现在有积分吗 招行微信积分在哪领 微信收款到银行卡有积分吗? 招行信用卡微信支付有积分吗 微信支付用信用卡有积分么? 招商银行信用卡微信支付有积分么 51单片机利用独立按键控制流水灯 怎样用按键C51语言控制流水灯亮灭呢? 单片机C语言,一个按键控制三个流水灯 stm32开发板怎么用按键控制流水灯 C51单片机按键切换流水灯 51单片机摁键控制流水灯? 按键控制流水灯汇编程序 51单片机 c语言 如何用4个按键控制4个流水灯 c51单片机独立按键控制三种流水灯 一个独立按键控制八只流水灯 中国为什么不出兵伊拉克? 佳琪,佳绮,佳琦,小女孩属马的哪个qi好 中国与伊拉克关系是否友好? qi字音读音哪个字好 搜伊拉克于中国有没有交界? 女孩取名永娸怎么样? 为什么有人说,中国是伊拉克战争最大受益国 飞常准有PC版吗? (qi)应该用哪个字.. 是最为名字用的 为什么美国要打伊拉克,但又为什么要先摆平叙利亚,还有,这些都跟中国有关吗?为什么总扯到中国,求详细解答