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

作者&投稿:邓云 (若有异议请与网页底部的电邮联系)
~

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

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

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

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

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

void main(void)

{

uint i;

uchar temp;

uint Flag1=0;  按键标志位bai

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语言编程




C语言编写的流水灯程序
include<reg52.h> include <intrins.h> void main(){ unsigned int x,y;P1=0xfe;while(1){ P1=_crol_(P1,1);for(x=500;x>0;x--)for(y=113;y>0;y--);} } P1接二极管(低电平有效)每隔x毫秒流动一下(可改变x的值)震荡周期为11.0592MHz 把上面的P1=0xfe;改为P1=0x01;!

C语言中流是什么意思?
据我的理解,流主要是指一种逻辑上的概念,它提供或存储数据。产生数据的叫输入流,消耗数据的叫输出流。至于怎么产生,又怎么消耗,这是一种物理上的实现,根据每种设备有所不同,但C语言中对它们一视同仁,以一个“流”字来概括它们的特征。作为流的使用者来说,不需要关心太多的细节。流的实现保...

用c语言编写单片机流水灯程序,(8个发光二极管从左至右循环点亮)_百度...
include"reg52.h"\/\/此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16;\/\/对数据类型进行声明定义 typedef unsigned char u8;为每个LED灯命名 sbit leda=P0;sbit led1=P0^0;sbit led2=P0^1;sbit led3=P0^2;sbit led4=P0^3;sbit led5=P0^4;sbit led6=P0^5;sbit led7...

怎样编写一个顺序执行的程?
在Windows系统下编写一个简单的程序需要使用软件环境,例如在Visual C++(VC)的环境下使用C语言编写程序。首先,打开VC,并新建一个工程。接着,新建一个C语言文本文件,这是程序的主要载体。在文本文件中输入程序代码。程序的具体内容取决于你想要实现的功能,但基本的结构通常包括输入输出、变量定义、函数...

如何用芯片MSP430和IAR软件的C语言编一个流水灯程序
void main(){ WDTCTL = 0x5A80;uint ch[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};uint i,j;P2DIR = 0xff;P2OUT = 0xff; \/\/低电平点亮 while(1){ for(i=0;i<8;i++){ P2OUT = ch[i];delay(50000);} for(j=6;j>0;j--){ P2OUT = ch[j];delay(50000...

基于Keil、STM32,用C++编写流水灯程序
通常来说,在单片机上编程,要么汇编,要么C语言,而用C++进行开发的很少,那么究竟能不能用C++开发单片机呢?答案是肯定可以的,下面讲讲基于Keil、STM32,用C++编写流水灯程序的一些内容。1、为什么很少用C++开发单片机 不知道大家对面向过程和面向对象的理解有多少?C语言面向过程的语言,C++是面向对象...

用C语言编写一个可以让电脑死机的程序。(内存耗尽之类的)
include <malloc.h> include <stdlib.h> int main(void){ while(1){ malloc(1000000); } return ();} 使电脑自动关机,代码如下:include<stdio.h> include<dos.h> include<stdlib.h> void main(){ char shut[8];char b[81];printf("Hello, Welcome to the TC automatic shutdown ...

求一个用C语言编写出单片机甲通过串口向PC机乙发送数据0~9的程序(晶...
\/\/ 设计题目 : 基于51单片机的串口通信 \/\/ 功能 :\/\/ 说明 : 晶振用12M,\/\/\/ include <reg51.h> \/\/ 12M 晶振 define uchar unsigned char define uint unsigned int \/\/\/ \/\/ Name : 串口发送函数 \/\/ In :\/\/ Out :\/\/ Function :\/\/ Explain :\/\/\/...

怎样用2个按键让51弹片机P1 P2口输出高电平和低电平,用C语言怎样编?
P1,P2口都有8条线哦,假定按键1在 P10口 按键2在 P11口 两个输出口分别为 P20 P21 我写个主循环的一部分。while(1){ if(P10==0) P20=0;else P20=1;if(P11==0) P21=0;else P21=1;}

单片机C语言如何实现8个LED流水灯来回流动?
1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:

牡丹江市13782521261: 单片机c语言编个流水灯,用按键怎么实现它暂停 -
寇项牛黄: 实现流水灯的方式有很多种(中断,定时器,延时等等),看你用哪种方式,最简单的是延时做流水灯,那么在死循环里面增加按键检测,判断出有按键按下来时,再进入死循环,程序不往下走就可以暂停,再按跌出死循环;

牡丹江市13782521261: C语言用按键控制流水灯,要求:按键按下一次流水灯开始,按键再按下一次,流水灯停,并熄灭.谢谢! -
寇项牛黄: #include "reg52.h"#define uint unsigned int#define uchar unsigned charsbit 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; //新增一个值来记录按键值 ,初始化...

牡丹江市13782521261: C语言中单按键控制流水灯亮灭 -
寇项牛黄: enum{按着,松开, }; std::vectorlight, 把你的灯仿佛light 然后判断当前的状况,每次触发按着的时候就让 light当前的状态变成关灯,light的下一个灯变成开起

牡丹江市13782521261: 求教大婶们~51单片机单个按键控制流水灯C程序 -
寇项牛黄: 很简单啊,只提供一个简单思路, 所以只提供简单的程序,自己理解 char flag=0;viod main() { while(1) { if(key==0 ) //假设0 按下按键 { flag=~flag; } if(flag==0) { leds(); //流水灯函数 } } }

牡丹江市13782521261: 单片机独立按键控制流水灯的C语言程序怎么写? -
寇项牛黄: 参考:http://hi.baidu.com/do_sermon/item/ba6c010d009b7b324ac4a399

牡丹江市13782521261: 51单片机双键控制八位流水灯C程序 -
寇项牛黄: #include<reg51.h>#define uchar unsigned char uchar num,flag=0; sbit K1=P1^0; sbit K2=P1^1; void t0isr() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; num++; if(num>=20){num=0;flag=1;} } main() { uchar LED; TMOD=0x...

牡丹江市13782521261: 51单片机用c语言设计外部中断流水灯,开发板GTX TX - 1C的按键怎么设置? -
寇项牛黄: 1、去抖using和数字 2、加按键去抖动(延时) 3、中断返回不用return

牡丹江市13782521261: 单片机C语言编程 -
寇项牛黄: /*该程序流水灯有两种模式,顺序左移和顺序右移,独立开关控制*/#include#include#define uchar unsigned char#define uint unsigned int uchar tmp,flag; sbit key1=P3^4; sbit key2=P3^5; void delay(uint z); void led(); void keyscan(); void main() { ...

牡丹江市13782521261: 单片机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); } }

牡丹江市13782521261: 单片机怎么用一个按钮控制多种花样流水灯,只要一按就马上执行下一种花样. -
寇项牛黄: 你用中断就可马上执行.还有你如是用的扫描程序编的好也可马上执行的.这你自己 再想想吧.只要查到有键按下,就把那花样寄存器中加一,再用间转指令立即跳到不同的花样号的入口处.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网