感悟网 导航

C语言设计跑马灯程序 用C语言编写简单跑马灯程序(4个灯的)

作者&投稿:紫凡 (若有异议请与网页底部的电邮联系)
51单片机设计跑马灯的程序用(c语言)编写~

|P1口接8个发光二极管共阳
#include
unsigned char i;
unsigned char temp;
unsigned char a,b;
void delay(void)
{
unsigned char m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void main(void)
{
while(1)
{
temp=0xfe;
P1=temp;
delay();
for(i=1;i<8;i++)
{
a=temp<<i;
b=temp>>(8-i);
P1=a|b;
delay();
}
for(i=1;i<8;i++)
{
a=temp>>i;
b=temp<<(8-i);
P1=a|b;
delay();
}
}
}

扩展资料:
Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程/仿真/调试/写入/加密等所有过程一气呵成,中间不须任何编译或汇编。
参考资料来源:百度百科-51单片机

如下程序:
if(ledi==8)
{
ledi=0; //到了最后一个灯就换到第一个

//每跑一圈灯就根据预定设置的表格来决定下一圈的跑马速度

speed=speedcode[i];

i++;if(i==2)i=0; ?你的速度设置不仅仅就2个呀(10个预定义的速度)

}
有两种解决办法:
一个就是将预定的速度加2倍
speedcode[30]={3,3,3,1,1,1,5,5,5,12,12,12,、、、、、、}
二是增加一全局变量uchar z=0;在i++前加上如下,前后不改:
、、、、、if(++z==3){z=0;i++;}、、、、、、、、、、、

#include<reg51.h> //51系列单片机定义文件
#define uchar unsigned char //定义无符号字符
#define uint unsigned int //定义无符号整数
void delay(uint); //声明延时函数
void main(void)
{
uint i;
uchar temp;
while(1)
{
temp=0x01;
for(i=0;i<8;i++) //8个流水灯逐个闪动
{
P1=~temp;
delay(100); //调用延时函数
temp<<=1;
}
}

void delay(uint t) //定义延时函数
{
register uint bt;
for(;t;t--)
for(bt=0;bt<255;bt++);
}
跑马灯程序最基本的,c语言还未入门啊!!!

你费那劲做啥,设计一个俄罗期大轮盘,一直转不就得了

《单片机,跑马灯,交替闪烁,C语言代码》
答:include<reg51.h> void delay(unsigned int a){ unsigned int i,j;for(i=0;i<a;i++)for(j=0;j<120;j++);} main(){ unsigned char i,led;led=0xfe;while(1){ P0=led;delay(500);P0=0xff;delay(500);led=(led<<1)|0x01;if(led==0xff)led=0xfe;} } ...

《用C语言编写程序,8个灯的跑马灯,灯在P1口。用左移来编写》
答:include<stdio.h>int main(){ int a = 0b11111111; while(a) { printf("%d\n",a&1); a=a>>1; } return 0;}

《C语言新手问题 帮忙解释下 下面的跑马灯程序 没标注的都帮忙解释下_百...》
答:void main(void) //进入主函数 { unsigned char i, ucTemp; //声明无符号字符类型变量 i和ucTemp InitSys(); //调用一个初始化函数,具体实现过程你没给 ucTemp = 0xFE; // 1111 1110 //ucTemp赋初值 11111110 while(1) ...

《求STC89C52的单片机跑马灯C语言程序》
答:int runlinght(){int i,j;j=1;for(i=0;i<8;i++){P[i]=(j<

《单片机跑马灯C语言程序,只要实现跑马灯功能,要简单点》
答:include<stdio.h> include<reg51.h> void main(){ int a;unsigned char tmp=0;while(1){ if(tmp==0) tmp=0x80;else tmp = (tmp>>1);P1 = tmp; //P1.0到P1.7控制8个灯 for(a=50000;a;a--); //延时一下 } } //只是示例,凑和一下 ...

《C语言设计跑马灯程序》
答:while(1){ temp=0x01;for(i=0;i<8;i++) //8个流水灯逐个闪动 { P1=~temp;delay(100); //调用延时函数 temp<<=1;} } void delay(uint t) //定义延时函数 { register uint bt;for(;t;t--)for(bt=0;bt<255;bt++);} 跑马灯程序最基本的,c语言还未入门啊!!!

《单片机跑马灯C语言程序问题 急...》
答:1、LED是高电平亮还是低电平亮,取决于你的电路设置,如果LED负极接地(或者串电阻再接地),则高电平时亮。2、P1=P1<<1;你的理解是对的。3、P1=P1>>1;就是右移,比如现在是0x80,接P1的第7位对应灯亮,下次右移就变成0x40,接P1的第6位对应灯亮.4、两个for循环,第一个是从P1的第0位...

《LED灯跑马问题》
答:我给你一个程序,单片机为STC51,晶振为12MHz。跑马灯采用查表法,定时用查询式定时器,时间为500ms;I/O口用25只引脚,P0,P1,P2都用8个,P3用P3.0,程序用C语言。为了取得一个较好的观赏效果,对你的要求作了少许修改,你可以用PROTEUS仿真观看效果。程序已仿真调试通过。include<at89x51.h> ...

《求51单片机8个LED灯实现跑马灯左移的c语言程序??求每部的详细说明,好的...》
答:如果电路是P1口控制LED,高电平灯亮:include "reg52.h"define uchar unsigned char void delay(void ){ uchar i,y;for(i=100;i>0;i--){ y=200;while(y--);} } void main(void){ uchar i;uchar var=0x01;P1=0X00;while(1){ for(i=0;i<7;i++){ P1= var;delay();var <<...

《C语言:开机时所有跑马灯全灭,然后跑马灯先循环左移1圈后循环右移一圈...》
答:/* 大概这个样子,不知道你的板子怎么连的!最好发个图片,延时不准,自己改一下*/ include<reg52.h> include<intrins.h> define uchar unsigned char define uint unsigned int //延时 void DelayMS(uint x){ uchar i;while(x--){ for(i=0;i<120;i++);} } //主程序 void main(){ ...

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网