单片机循环左移流水灯
答: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; //恢复暂停...
答: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...
答:RL A;累加器A的值循环左移1位MOV LED,A;MOV YSJS,#0;QT1:POP ACC;恢复现场POP PSW;RETI;返回主程序END;汇编程序结束 扩展资料: 实现流水灯的三个方法: 第一种,总线方法实现流水灯。这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,加...
答://可以通过左移函数_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;...
答:单片机的流水灯程序,因为程序就这么写的,决定了流水灯左移7次,再右移7次,结束两个循环后,才能执行下面的while(!key),按键才有效,而在循环过程中,不执行while(!key),所以按键无效。下图画红框内的两个循环。要想按键随时有效,应该把两个移位函数_cror_,_crol_ 放在主程中,检测key也放在...
答:可以实现,首先随便连接一个I/O口,P1/P2/P0均可,然后赋予一初值,然后使用本征函数_cror_(循环变量,循环次数)循环右移,或者循环左移实现。左移只需改掉本征函数,同时亮灭可以先给全1,然后给全0,中间加延时,自然得到需要的功能。include <reg51.h>//包含头文件 include <INTRINS.H>//...
答:1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:
答:程序如下:include <reg52.h> sbit led1 = P2^0;sbit led2 = P2^1;sbit led3 = P2^2;sbit led4 = P2^3;sbit led5 = P2^4;sbit led6 = P2^5;sbit led7 = P2^6;sbit led8 = P2^7;void main(){ int i,j;//点亮第一个灯 led1 = 1;led2 = 0;led3 = 0;led4 = ...
答:mov p_out,a ;点亮一个灯 mov r1,#250 ;mov r0,#250 ;Call delay_time;调用时间延迟子程序,上面两句是设置延迟时间 mov p_out,#0ffh;熄灭灯 RL a ;循环左移一位准备点亮下一个灯 JMP main_1 ;跳到main_1循环 ;//***时间延迟函数 ;//描 述:用指令实现延时一段时...
答:_crol_循环左移 初始:11111110 一次:11111101 二次:11111011 三次:11110111 ...七次:01111111 八次:11111110 不过要是我的话,我会这样写:void main(){ uchar i = 0; while(1) { P1 = ~(1 << i++); delays(200); i %= 8; } }因为_crol_这个函数在其他...
网友评论:
束音18979553655:
单片机用调用循环左移函数实现流水灯 -
48131廉金
: 你指的不可以是什么效果 理论上可以的,要看你其他代码了
束音18979553655:
单片机c51流水灯一亮一闪依次左移编程 -
48131廉金
: 下面是采用定时器定时1S(时钟晶振是11.0592MHz)的流水灯程序.采用左移函数_crol_(),此函数包含在intrinsic.h的头文件内.有不懂得再问,需要汇编的话,留言,再写给你. #include<reg52.h> #include<intrins.h> unsigned int a,temp; ...
束音18979553655:
单片机编程流水灯呢,循环左移,还有补齐那一块看不懂啊,为毛啊? -
48131廉金
: 补齐那句就是将a的值移到最初状态,第一次是回到:0xfe,第二次是回到0xfc.......
束音18979553655:
单片机LED灯 循环左移,始终一个led点亮,然后全亮再全灭 并循环执行流水动作 -
48131廉金
: #include "reg51.h" #include"intrins" #define uchar unsigned char #define uint unsigned int void delay (uint z) { uint i,j; for(i=0;i
束音18979553655:
单片机 流水灯,每个LED点亮两次,依次向左循环 -
48131廉金
: #include#include #define uchar unsigned char uchar led=0xfe; void delay(uchar a) { uchar i; while(a--)for(i=0;i<120;i++); } main() { while(1) { P1=led; delay(200); P1=0xff; delay(200); P1=led; delay(200); P1=0xff; led=_crol_(led,1); } }
束音18979553655:
51单片机我写的流水灯程序,效果是灯亮依次向左传递无限循环,想知道这段代码哪错了. -
48131廉金
: 每次都是第二个灯亮,不流动?是因为你的temp没有保存移位后的值.这样改改: for(i=1;i<8;i++){temp<<=1;P0=temp;delay()}
束音18979553655:
单片机汇编语言用外部中断0控制流水灯的移位方向,一开始灯向左移动第一次中断向后,第二次恢复向左,循环 -
48131廉金
: 用外部中断引脚做按键检测脚, 假设上升沿产生中断 ,开机时初始化标志变量等于0, 当第一次按下时 置标志(随便设置一个变量)为1,第二次按下时,置标志为0, 第三次按下时标志又为1 ,第四次按下时标志为0.......以此类推.在while(1) 里 检测变量等于0,灯左移,等于1灯右移
束音18979553655:
keil软件用单片机控制8个LED流水灯来回点亮(C语言程序) -
48131廉金
: #include "reg51.h"main(){unsigned int i,j;while(1){P1=0xfe; //点亮第一个LEDfor(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfd; //点亮第二个LEDfor(i=200;i>0;i--)for(j=500;j>0;j--);P1=0xfb; //点亮第三个LEDfor(i=200;i>0;i--)for(j=500;j>...
束音18979553655:
单片机中流水灯如何控制 -
48131廉金
: 单片机中流水灯控制:硬件连接很简单,只要将8个LED指示灯接在P1口上 另一端通过220欧姆的电阻接+5V电源上,就可以了.主要靠软件控制,简单的可以使用左移或右移指令,将低电平0 逐渐移入寄存器中,即控制LED指示灯逐渐一个一个地点亮或一个一个地熄灭.复杂点: 可以进行花式流水控制.例如: 可以由两边逐渐向内点亮 然后再由内逐渐向外一个一个熄灭. 还可以由由内逐渐向两边内点亮 然后再由两边渐向内逐一个一个熄灭.在程序的实现上 可以把各种花式流水的P1口亮灭状态字 事先定义成数组 然后每隔一定的时间 取出送P1口显示. 呵呵 俺只提供给你一个号的算法 程序就自己动手自立更生.
束音18979553655:
单片机流水灯怎么依次循环,然后在奇偶循环 -
48131廉金
: 定义一个数组,每次将这个数组的值送到单片机的I/O口就可以了,然后反复循环!