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

单片机 请问流水灯程序一个按键单次按下控制改变 P0.0到P0.7不断循环左(右)移方向

发布网友 发布时间:2022-05-18 01:33

我来回答

3个回答

热心网友 时间:2023-10-03 06:21

我说一个可行的吧,但是不一定是最好的。
定义一个位变量 bit fangxiang=1 ; //1表示一个方向,0表示另一个方向。
用定时器自动控制灯移动。
主循环里面这样写

while(1)
{
检测P10按键;
如果有按键;
fangxiang=!方向;

}

定时器函数里这样写
{
if(方向==1)
{
右移;
}
else
{
左移;
}
}

这样主循环只检测按键,检测到之后改变方向值,定时器检测方向值,不同的方向值调用不同的移动函数。追问sbit KEY=P1^0
while(1)
{
if (KEY==1)
for(i=0;i<7;i++)
{
P2=_crol_(P2,1); //P2 的值向左循环移动
DelayMS(150);
}
if(KEY==0)
for(i=0;i<7;i++)
{
P2=_cror_(P2,1); //P2 的值向右循环移动
DelayMS(150);
}
}

请问怎么跳出里面的循环啊,我弄这个要一直按住才有用。

追答13735442 我q ,qq说吧,这里说不明白

热心网友 时间:2023-10-03 06:21

/*******************************************************************************************************/
#include <reg51.h>

sbit KK=P3^2;//按键
char AA[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//流水灯编码
int i;
char fe;
void YS(int hs);//延时函数
/*******************************************************************************************************/
void main()
{
fe=0;//初始化方向标识符
while(1)
{
P2=AA[i];//流水灯状态输出
YS(20); //延时,点亮时间设定
if(fe==0){i++; if(i>7){i=0;}}//根据 fe 的值,执行对应的方向
else{i--;if(i<0){i=7;} }

if(KK==0)//按键检测
{
YS(5);//延时去抖
if(KK==0){ fe=~fe; while(!KK); }//如果仍然被按下,方向标识符取反
}
}
}
/*******************************************************************************************************/
void YS( int hs)//延时函数
{
int hk;

for(;hs>0;hs--)
{ for(hk=500;hk>0;hk--); }// 10
}
/*******************************************************************************************************/

这个简单些,并通过实物测试通过

并附有注释,方便学习追问很好,但是请问能不能只用cror和crol函数循环移位,不用中断呢,要求是这么做的。

追答这个没使用任何函数,也没用任何中断

简单实用

如果非要使用cror和crol函数,那就根据这原理,改一下即可

/*******************************************************************************************************/
#include
#include

sbit KK=P3^2;//按键
int i;
char fe,ff;
void YS(int hs);//延时函数
/*******************************************************************************************************/
void main()
{
fe=0;//初始化方向标识符
ff=0xfe;
while(1)
{
P2=ff;//流水灯状态输出
YS(20); //延时,点亮时间设定
if(fe==0){ ff=_cror_(ff,1); }//根据 fe 的值,执行对应的方向
else{ ff=_crol_(ff,1); }

if(KK==0)//按键检测
{
YS(5);//延时去抖
if(KK==0){ fe=~fe; while(!KK); }//如果仍然被按下,方向标识符取反
}
}
}
/*******************************************************************************************************/
void YS( int hs)//延时函数
{
int hk;

for(;hs>0;hs--)
{ for(hk=500;hk>0;hk--); }// 10
}
/*******************************************************************************************************/

热心网友 时间:2023-10-03 06:22

#include <regx52.h>
#include <intrins.h>
char flag,i;
void delay_ms(char t)
{
char i;
while(t--)
{
for(i=0;i<120;i++);
}
}
void main(void)
{
P0=0xfe;
while(1)
{
if(flag)
_crol_(P0,1);
else
_cror_(P0,1);
if(P1_0==0)
{
delay_ms(10);
if(P1_0==0)
{
if(flag==0)
flag=1;
else
flag=0;
}
i++;
if(i>7)
i=0;
}
}
}追问仿真跑不起来啊,灯不亮。

追答#include
#include
char flag,i;
void delay_ms(char t)
{
char i;
while(t--)
{
for(i=0;i7)
i=0;
}
}
}

单片机 请问流水灯程序一个按键单次按下控制改变 P0.0到P0.7不断循环...

定义一个位变量 bit fangxiang=1 ; //1表示一个方向,0表示另一个方向。用定时器自动控制灯移动。主循环里面这样写 while(1){ 检测P10按键;如果有按键;fangxiang=!方向;} 定时器函数里这样写 { if(方向==1){ 右移;} else { 左移;} } 这样主循环只检测按键,检测到之后改变方向值...

单片机汇编程序:有八个小灯,要求依次点亮,时间间隔1s

RLC A ;左移流水灯(带进位的左移),即亮点向P0口的高位移动 DJNZ R2,LOOP MOV R2,#8 ;右移次数 LOOP1: RRC A ;右移流水灯 MOV P0,A LCALL DELAY DJNZ R2,LOOP1 LJMP START DELAY: MOV R5,#10 ;延时子程序,改变R5,R6,R7 的值,可以改变延时的时间,从而改变流水灯移动速度 D1: ...

求汇编语言程序:8个开关p0.0——p0.7分别控制8个灯p1.0——p1.7,

JB P0.0,LOOP1 ;第一个键没按转下一个 JNB P0.0,$ ;第一键按下则等抬起 CPL P1.0 ;第一个灯如果开始灭则点亮,开始亮则灭 LOOP1: ;以下与此类似,不做注释。JB P0.1,LOOP2 JNB P0.1,CPL P1.1 LOOP2:JB P0.2,LOOP3 JNB P0.2,CPL P1.2 LOOP3:JB P0....

51单片机可以自己做agv小车控制系统吗

AGV自动导引车除了循迹模式以外,还具有一个手动控制模式,这个模式就是用遥控按键或者手机app来控制导引车的前进后退左转右转和停止。 AGV自动导引车的系统,其基本电路组成是单片机及其最小系统,其最小系统包括复位电路和时钟脉冲晶振电路,其核心芯片单片机的型号为AT89C51的40个插件引脚的单片机,循迹功能的实现是由两个循...

单片机控制32盏灯循环显示

因此,本流水灯实际上就是一个带有8个发光二极管的单片机最小应用系统,即为由单片机8051、发光二极管和必要的软件组成的单个单片机系统。此系统利用单片机的P1.0-P1.7作为8段显示LED的段控码输入,当位控线输入高电平时对应的LED点亮。再利用单片机内部的定时器对每一个输出口的电平做时间控制,实现每...

本人新手求大神有关51单片机的问题

2 写两个子程序一个左移的,一个右移的,第一个子程序把P0.0-P0.7依次置0(中间要加延时),第二个程序把第一个的顺序反过来就行了,并且两个子程序都是无限循环的 3 把按键K1接入单片机的外部中断引脚,每次按下K1的时候产生外部中断 4 写外部中断服务程序,在程序中加一个标志位,第一次按K1的...

单片机汇编的一个问题

因为它是外部电路吗,INS只是影响你读入的值(MOV A,P0)如果你要完成这个简单的流水灯的话,建议你修改程序,比方说用一个数据存储单元来做变量,初始化为0x01,每循环一次对这个变量进行左移1位运算然后再赋值给P0,并且左移运算比你用乘2运算要方便的多,生成的代码也少。

怎么写一个开关开关开,就显示八个流水灯闪烁,开关关八个流水灯全灭的...

NEXT8: SETB P0.7 ;位-置1 接口0第7位,NEX8: SJMP START ;短转移到 START,END ;END 第二种:先说硬件连接 将8个灯接到P1口的8根线法 灯的排列为 1 2 3 4 5 6 7 8 分别对应 p1_0 p1_1 p1_2 P1_3 p1_7 p1_6 p1_5 P1_4 闪亮程序 unsigned char m;for(n=0;n&lt;4;n...

51单片机如何控制超声波传感器 求C语言程序(一定要能用)100追加

51单片机如何控制超声波传感器 求C语言程序(一定要能用)100追加 50 型号是DYP-ME007VCC(DC5V)、Trig(发射端)、Echo(接收端)、Out(空)、GND(地)(1)采用IO触发测距,给8--15us的高电平信号即可;(2)模块自动发送8个40khz的方波,自动检测是否有信... 型号是DYP-ME007 VCC(DC5V)、Trig(发射端)、Echo(...

求STC89c52单片机用倒计时控制继电器开、合的C语言程序,晶振12.000_百...

EA=1;ET0=1;TR0=1;wei=1;P0=0x3f;wei=0;duan=1;P0=table[0];duan=0;P1=0x55;//点亮流水灯 while(1){ display();time_pro();if(k1==0) keyscan();//继电器开合控制加在此处:时间可以根据自己的需求任意定义 //例如:if(shi==17&amp;&amp;fen==21&amp;&amp;miao==52){ jidianqi=0;//0就...

单片机按键控制流水灯依次亮程序 51单片机按键控制流水灯程序 51单片机8个流水灯编程按键控制 单片机按键控制流水灯循环 单片机按键控制流水灯方向 单片机汇编语言按键控制流水灯程序 c51单片机按键控制流水灯 单片机控制流水灯程序 51单片机按键控制流水灯快慢
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...了富人家的少爷,少爷跟丫鬟私通有了孩子,她被送去了美国_百度... ...Pn=7.5KW,Un=110V,In=79.84A,转速Nn=1500r/min,电枢 ...= 13KW,Un=220V,In = 68.7A,nN=1500r/min,deleta 最大为30%,求串... ?题目 高手来做下哈 ,急,急,急,一台他励直流电动机,Pn=10KW,Un=220V... 为什么要延长研究生的学制呢? 已知P(A)=0.4,P(AB)=P(AC)=0.2,P(ABC)=0.1,求P((B+C)A) 已知A、B独立,P(A)=0.4,P(B)=0.3,求P(AB) 怎么算啊? 奥运会冠军有谁 1, P(A)=0.4 P(AB)=0.2 P(A|B)+P(A非|B非)=1 求P(A并B) 2, 证明若P... 奥运冠军刘焕华个人资料 51单片机8路流水灯! 用三个按键控制三个程序!每个按键对应一个程序!按键一个键死循环一个程序! 51单片机,按键控制流水灯程序,懂的进! 51单片机C语言对键控双向流水灯编程。用两个按键,中端来做。 单片机十六位LED流水灯控制用C语言怎么编程 单片机 怎么把led , 流水灯 , 按键 在一起实现? js/jquery 中循环li下的img 改变它的的src值 如何更换 怎么更换码 换怎么换 怎样更换码 如何换个 怎么换? 微信一个手机号注册了两个怎么切换账号啊? 手机自带前置摄像头拍的太近怎么办 苹果5前置摄像头为什么*的时候好大啊?感觉距离太近,能不能调整或者怎么设置啊? 为什么手机自带的前置摄像头,把人头拍的很大,尤其*的时候,感觉被拉的太近了。 iphone6plue手机前置摄像头拍照片大的很距离太近可以调小吗 摄像头焦距太近怎麼调 前置摄像头拍出来照片距离特别近是怎么回事 稻子什么时候成熟? jquery判断当鼠标经过li标签,li下img元素修改class,知道的朋友解答下,谢谢 关于家庭豆腐作坊卫生许可证问题 我 发现有做豆腐的黑作坊,如何举报,向哪些部门举报? 做豆腐没有证件做一两天不是黑作坊吗,会处罚吗? 农村自己磨点豆腐卖要小作坊证吗? 居民区的黑心豆腐作坊怎样举报 我承包村里的闲置土地建豆腐作坊违法吗? 珠海豆腐小作坊是否不准做了? 在菜市场做豆腐算不算黑作坊? 我是农村豆腐小作访现:在政府让作豆腐吗? 请问如何用jquery让多个li标签里面的img的data-original值与src值对换 请问如何让多个li标签里面的img的data-original值与src值对换 jq中点击左边li改变右边图片src怎么实现? 保险服务说明书是电子保单吗 jquery取到 &lt;div id=&quot;left&quot;&gt;&lt;ul&gt;&lt;img&gt;&lt;li&gt;&lt;&#47;li&gt;&lt;li&gt;&lt;img&gt;&lt;li&gt;&lt;&#47;ul&gt;&lt;&#47;div&gt;的每个img 动态改变img的src 什么软件可以检测出手机电池容量啊? 什么软件可以测试手机的电池容量。 什么牌子的护手霜好点 网页制作,页面设计,我在网页 body里面设置了背景图片,如何用js让背景图片每隔几秒就换一次 苏小安妮黑金置换活鱼子膏使用都是泥的原因?