请问金沙滩51单片机中,先是左移到头,然后再右移到头的花样流水灯程序该怎么写?

请问金沙滩51单片机中,先是左移到头,然后再右移到头的花样流水灯程序该怎么写?用C语言。本人太笨了,没想出来。
下面是单向左移流水灯程序:
#include <reg52.h>

sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;

void main()
{
unsigned int i = 0; //定义循环变量i,用于软件延时
unsigned char cnt = 0; //定义计数变量cnt,用于移位控制

ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 1;
ADDR0 = 0;
while (1) //主循环,程序无限循环执行该循环体语句
{
P0 = ~(0x01 << cnt); //P0等于1左移cnt位,控制8个LED
for (i=0; i<20000; i++); //软件延时
cnt++; //移位计数变量自加1
if (cnt >= 8) //移位计数超过7后,再重新从0开始
{
cnt = 0;
}
}
}

/*单片机,用定时中断实现每隔0.2秒让接在P1口的8个小灯从左往右循环点亮。*/ #include #include #define uchar unsigned char uchar a,b; uchar b=1; uchar a=0xfe; void main() { EA=1;IT1=1;ET0=1; TH0=-5000/256; TL0=-5000%256; TMOD=0x01;...(火星人)2086追问

您好,您说的语句我还没有学到,我的意思是就用我说的上面的语句来写这个程序,要求小灯左右来回点亮。不知该怎么写?

温馨提示:内容为网友见解,仅供参考
无其他回答

请问金沙滩51单片机中,先是左移到头,然后再右移到头的花样流水灯程序该...
\/*单片机,用定时中断实现每隔0.2秒让接在P1口的8个小灯从左往右循环点亮。*\/ #include #include #define uchar unsigned char uchar a,b; uchar b=1; uchar a=0xfe; void main() { EA=1;IT1=1;ET0=1; TH0=-5000\/256; TL0=-5000%256; TMOD=0x01;...(火星人)2086 ...

求51单片机C语言定时中断流水灯(先左移后右移,一直循环),不要延迟的...
include<reg52.h> define uchar unsigned char uchar m=0,i=0;void main(){ TMOD|=0x01; \/\/定时器0工作方式为1 TH0=(65536-50000)\/256; \/\/装初值 TL0=(65536-50000)%256;EA=1; \/\/开总中断 ET0=1; \/\/开定时器中断 TR0=1; \/\/开启定时器 while(1); \/\/等待中断 }...

关于单片机流水灯左移右移的问题?
51单片机的左移右移,首先在开始要调用"intrins.h"的文件包,这个文件包含_cror_(右移),_crol_(左移);然后通过for语句来控制;for(m=20;m>0;m--)for(n=20;n>0;n--)for(k=250;k>0;k--);理解这三句,第一句是指:m=20;m>0然后m--是真就执行:for(n=20;n>0;n--)for(k=...

51单片机中如何用汇编语言编写流水灯
流水灯就是51单片机控制led灯依次点亮的控制方式。具体程序如下:ORG 0000H;复位启动AJMP START;ORG 001BH;T1中断AJMP T1INT;;定义变量===YSJSEQU 30H;延时计数器LEDEQU 31H;LED控制缓冲器 ;主程序===START:MOV LED,#0FEH;初始化数据MOV YSJS,#0;MOV TMOD,#10H;定时器1工作于方式1,16位定时...

51单片机的c语言 左移右移怎么用?想用来控制流水灯,请帮忙写个完整的c...
P1= ~ j; \/\/ 对变量j 中的值按位取反后,从P1口输出 delay02s( ); \/\/ 延时0.2s j= j<<1; \/\/ 左移1位 } j=0x80; \/\/ 设置右移初始值j为0x80 for (i=0;i<8;i++){ P1= ~ j;delay02s( );j= j>>1; \/\/ 右移1位 } } } ...

很简的51单片机C语言流水灯程序
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...

51单片机流水灯程序
程序如下: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 = ...

51单片机如何用C程序中的_crol_和_cror_实现流水灯来回显示
define uint unsigned int \/\/延时 void DelayMS(uint x){ uchar i;while(x--){ for(i=0;i<120;i++);} } \/\/主程序 void main(){ uchar i;P2=0x01;while(1){ for(i=0;i<7;i++){ P2=_crol_(P2,1); \/\/P2 的值向左循环移动 DelayMS(150);} for(i=0;i<7;i++){ P2...

51单片机做两边向中间的流水灯,我用的是两个数分别左移右移后相与实现...
\/\/ 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...

51单片机c语言编写一个流水灯程序,要求如下(不能用数组,8个led指示灯...
\/\/流水灯#include "reg52.h"#define LED_PORT P3void delay(unsigned char time){ unsigned char i,j,k; for(i=0;i<time;i++) { for(j=0;j<200;j++) { for(k=0;k<200;k++); } }}void main(){ unsigned char i,halfbyteh=0x80,halfbytel=0x01; while(1) { ...

相似回答