单片机流水灯循环左移右移
答:void main(){ TMOD|=0x01; //定时器0工作方式为1 TH0=(65536-50000)/256; //装初值 TL0=(65536-50000)%256;EA=1; //开总中断 ET0=1; //开定时器中断 TR0=1; //开启定时器 while(1); //等待中断 } void timer0() interrupt 1 { TH0=(65536-50000)/256;TL0=(...
答:1、51单片机C语言实现循环8个流水灯左移三次,后右移三次。例程:include<reg51.h> //51单片机头文件#include <intrins.h> //包含有左右循环移位子函数的库#define uint unsigned int //宏定义#define uchar unsigned char //宏定义sbit beep=P2^3;void delay(uint z) //延时函数,z...
答:T0 工作模式2 计时器中断,一次200us,1s流水灯左移或右移一次。k3触发外部中断0,级别高于计时器中断,故暂停。include <reg52.h>#include <intrins.h> #defineuint unsigned int#defineuchar unsigned charsbit k1=P1^0; //左循环按钮sbit k2=P1^1; //右循环按钮sbit k4=P1^2; //恢复暂停...
答:实现两个按键控制LED流水灯,按下P3.0,8个LED循环左移,按下P3.1,8个LED循环右移 调试时只能循环一次 10 ORG0000HLJMPMAINORG0030HMAIN:MOVP1,#00HMOVP3,#0FFHLOOP:MOVP1,#00HJNBP3.0,KEY1JNBP3.1,KEY2LJMPLOOPKEY1:ACALLDELAY10JNBP3.0,ZUOYIRETKEY2:ACALLDELAY10JNBP3.1,YOUYIRETZUOYI:M... ORG...
答:// j初始化为0x01,左移初始值 for(i=0;i<8;i++) // for循环语句,完成8个循环 { P1= ~ j; // 对变量j 中的值按位取反后,从P1口输出 delay02s( ); // 延时0.2s j= j<<1; // 左移1位 } j=0x80; // 设置右移初始值j为0x80 for (i=0;i>1; // 右移1...
答:可以实现,首先随便连接一个I/O口,P1/P2/P0均可,然后赋予一初值,然后使用本征函数_cror_(循环变量,循环次数)循环右移,或者循环左移实现。左移只需改掉本征函数,同时亮灭可以先给全1,然后给全0,中间加延时,自然得到需要的功能。include <reg51.h>//包含头文件 include <INTRINS.H>//...
答:单片机的流水灯程序,因为程序就这么写的,决定了流水灯左移7次,再右移7次,结束两个循环后,才能执行下面的while(!key),按键才有效,而在循环过程中,不执行while(!key),所以按键无效。下图画红框内的两个循环。要想按键随时有效,应该把两个移位函数_cror_,_crol_ 放在主程中,检测key也放在...
答:1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:
答:然后把下面的代码放到循环里:U8 temp0 = 1。U8 temp1 = 0x80。U8 i = 0。if(flag == 1)。{。for(i=0;i<8;i++)。{。P1=temp0<<i。}。}。else。{。for(i=0;i<8;i++)。{。P1=temp1>>i。}。}。}。对控制LED口的寄存器进行位操作,按k1左移,按K2就是右移了。51单片...
答://可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。//具体实现方法可以参考如下程序:include <reg51.h> include <intrins.h> define uint unsigned int define uchar unsigned char void delay(uint a);void main(){ P1=0xfe;while(1){ // 向左循环点亮LED for(i=0;...
网友评论:
侯录19473802893:
利用单片机、1个开关、8个LED发光二极管(水平排列)和定时器,实现开关控制循环左移和右移流水灯效果. -
16783步佩
: 算法: 1 采用定时器定时25毫秒 启动定时器工作2 每当定时时间到中断 在中断服务程序中软件计数器减1(初始值为20)3 当软件计数器减到0时,表示0.5秒时间到这时可以判断开关状态开关合上 可以让8个LED左移一位开关断开 可以让8个LED右移一位 呵呵 按上诉算法 编写程序 就可以实现你的要求(指导可以见的消息 右上角) 满意 就选满意回答
侯录19473802893:
51单片机8位流水灯8种变化程序 -
16783步佩
: 第一种:1个LED发光,循环右移. 第二种:2个LED发光,循环右移. 第三种:3个LED发光,循环右移. 第四种:4个LED发光,循环右移.再改成左移,就又有四种. 这就有八种了.一边移动,一边闪烁; 再改变一下速度;这能有多少种了?
侯录19473802893:
请问52单片机中流水灯实现左移,全亮,右移,两边向中间亮要怎么写程序啊,最好有 - crol - 的程序,谢谢啦 -
16783步佩
: 你好!你会左移右移的话那就简单啦,直接相当于一个循环左移与一个循环右移相或,具体代码没空写给你啦,自己思考一下吧仅代表个人观点,不喜勿喷,谢谢.
侯录19473802893:
求51单片机C语言定时中断流水灯(先左移后右移,一直循环),不要延迟的,只能定时中断 -
16783步佩
: 那就是用定时器啊,定时器计数器累加,到达一定时间就去对串口处理,就是对LED灯做处理
侯录19473802893:
单片机c51流水灯一亮一闪依次左移编程 -
16783步佩
: 下面是采用定时器定时1S(时钟晶振是11.0592MHz)的流水灯程序.采用左移函数_crol_(),此函数包含在intrinsic.h的头文件内.有不懂得再问,需要汇编的话,留言,再写给你. #include<reg52.h> #include<intrins.h> unsigned int a,temp; ...
侯录19473802893:
单片机中流水灯如何控制 -
16783步佩
: 让我来告诉你答案!单片机中流水灯控制: 硬件连接很简单,只要将8个LED指示灯接在P1口上另一端通过220欧姆的电阻接+5V电源上,就可以了. 主要靠软件控制,简单的可以使用左移或右移指令,将低电平0逐渐移入寄存器中,即控制LED指示灯逐渐一个一个地点亮或一个一个地熄灭. 复杂点:可以进行花式流水控制. 例如:可以由两边逐渐向内点亮然后再由内逐渐向外一个一个熄灭. 还可以由由内逐渐向两边内点亮然后再由两边渐向内逐一个一个熄灭. 在程序的实现上可以把各种花式流水的P1口亮灭状态字事先定义成数组然后每隔一定的时间 取出送P1口显示. 呵呵俺只提供给你一个号的算法程序就自己动手自立更生吧 满意就选满意回答
侯录19473802893:
51单片机流水灯右移?我只知道怎么样左移. -
16783步佩
: c语言的话,左移用<<,右移用>> 循环移位可以调用函数.
侯录19473802893:
求一个用c语言编译的流水灯程序,要求灯从中间向两边亮 -
16783步佩
: #include<reg52.h> #define uchar unsigned char void delay(z); uchar code t[]={0x18,0x24,0x42,0x81};//这是编码表 void main() {int i=0;while(1)//死循环{for(i=0;i<4;i++)P1=t[i];//取码,我用的P1口,你要用其他的端口你就把取出来的码送给你要用的端口delay(5);}} void delay(z) { int a,i; for(a=0;a<z;a++) for(i=0;i<110;i++); }
侯录19473802893:
单片机流水灯的程序怎么打(C语言)?顺便解释解释. -
16783步佩
: 你的事C语言 回答的是汇编 如下 //led显示程序,简单地显示led的程序 //展示了如何控制端口的方法 //现象 : led 8个灯从左到右,然后从右到左显示;#include <8051.h>void delay(unsigned char times);void main() {int k,m;P0 = 0; //关闭数码显...
侯录19473802893:
利用51单片机某个端口实现:首先让LED灯 每两位循环左移8次,循环右移8 -
16783步佩
: #include <reg52.h> #include <intrins.h> sbit LED7 = P1^7; sbit LED0 = P1^0; #define N 1000 //------------------------------------------------------- //延时Z个ms //------------------------------------------------------- void delay(unsigned int z) {unsigned int x,y;for(x = z; x >...