当前位置:首页 » 编程语言 » c语言跑马灯程序

c语言跑马灯程序

发布时间: 2022-05-09 22:34:36

‘壹’ 用c语言编写简单跑马灯程序(4个灯的)

如下程序:
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++;}、、、、、、、、、、、

‘贰’ 51单片机 ,设计一个跑马灯程序,用软件延时,p0输出,怎么设计c语言,用p1口的开关控制灯循环的速率

51单片机是单片机接触最早的,下边这个程序希望能帮到你。(只有主函数,就不进行硬件什么定义以及头文件包含什么的了)

void delay(int times){//延时函数,times控制延时时间
int i, j;

for(i = 0; i < times; i++)

for(j = 0; j < 210; j++)

;

}
int main(void){
unsigned char data, i;
while(1){

data = P1;//把开关值读回来
for(i = 0; i < 8; i++){
P0 = ~(0x01 << i); //某位为高电平某位对应的灯亮
delay(data);//把读取的开关值用来控制延时

}
}
}

‘叁’ 89c51系列用c语言编写跑马灯程序

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int

sbit k1=P2^0;
sbit k2=P2^1;
sbit k3=P2^2;
sbit k4=P2^3;
sbit beep=P3^0;

uchar idex,,count;
uchar flag;

void display_lcd() //流水灯
{
switch(count) //四种不同的变化
{
case 1 :

P0=0x01<<idex;
if(idex>8)
idex=0;

break;

case 2 :

P0=0x80>>idex;
if(idex>8)
idex=0;

break;

case 3 :

P0=0x03<<idex;
if(idex>8)
idex=0;

break;

case 4 :

P0=0xaa<<idex;
if(idex>2)
idex=0;

break;
}
switch(flag)
{
case 0 : //开始
TR0=1;
break;

case 1 :
TR0=0; //暂停
break;
}

}

void scan_key() //按键
{
if(!k1)
=2;

if(!k2)
=4;

if(!k3)
{
count++;
while(!k3);
}
if(count>4)
count=0;

if(!k4)
{
flag++;
while(!k4);
}
if(flag>1)
flag=0;

}

void beep_b() //蜂鸣器
{
if(P2==0xff)
{
beep=1;
}
else
{
beep=0;
}
}

void Init() //定时器初始化
{
TMOD=0X01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
TR0=1;
EA=1;
ET0=1;
=1;
}

void main()
{
Init();
while(1)
{
display_lcd();
scan_key();
beep_b();
}
}

void timer0() interrupt 1
{
uint time;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
time++;
if(time>299*)
{
time=0;
idex++;
}

}

‘肆’ 请问以下有关单片机跑马灯的C语言程序各语句的含义(详细)

#include <reg51.h> //51头文件
#include <intrins.h> //包含移位函数_crol_
void Delay10ms(unsigned int c); //延时函数声明

void main(void)
{
unsigned char LED;

LED = 0x01; //一个unsigned char有8位,每一位代表了一个灯,初始点亮第一盏灯
while(1)
{
P0 = LED; //点亮一盏灯

Delay10ms(50); //延时500ms,让其量一会儿

LED = _crol_(LED,1); //向左移位函数,比如 0x01 --> 0x02 --> 0x04 -->0x08 ---> 0x10
}
}

void Delay10ms(unsigned int c) //延时函数
{
unsigned char a, b;

for (;c>0;c--) //三重循环延时,大约延时10ms
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
}
}

‘伍’ C语言设计跑马灯程序

#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语言还未入门啊!!!

‘陆’ 51单片机设计跑马灯的程序用(c语言)编写

|P1口接8个发光二极管共阳

#include <AT89X51.H>

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();

}

}

}

(6)c语言跑马灯程序扩展阅读:

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

‘柒’ 单片机,用c语言写跑马灯程序,

/*****************************************
*用P1口接LED
*****************************************/
#include<at89x52.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(500); //调用延时函数
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++) //8个流水灯反向逐个闪动
{
P1^=temp;
delay(500); //调用延时函数
temp>>=1;
}
temp=0xFE;
for(i=0;i<8;i++) //8个流水灯依次全部点亮
{
P1=temp;
delay(500); //调用延时函数
temp<<=1;
}
temp=0x7F;
for(i=0;i<8;i++) //8个流水灯依次反向全部点亮
{
P1=temp;
delay(500); //调用延时函数
temp>>=1;
}
}

}
void delay(uint t) //定义延时函数
{
register uint bt; //register为寄存器变量 即将无符号整形变量bt放在CPU的寄存器中而不是放在内存中 因为该

变量使用频率高 这样可以提高执行效率
for(;t;t--)
for(bt=0;bt<255;bt++);
}

‘捌’ c语言跑马灯跑马速度问题

如下程序:
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++;}、、、、、、、、、、、

‘玖’ 用c语言实现跑马灯循环亮灭

给个示例程序看看
/*-----------------------------------------------
名称:流水灯
公司:上海浩豚电子科技有限公司
编写:师访
日期:2009.5
修改:无
内容:循环点亮P1口对应的8个LED灯,造成循环流水点亮的效果
------------------------------------------------*/
#include<reg52.h>
//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
/*------------------------------------------------
延时子程序
------------------------------------------------*/
void
delay(unsigned
int
cnt)
{
while(--cnt);
}
/*------------------------------------------------
主函数
------------------------------------------------*/
main()
{
P1=0xfe;
//给初始化值
换算成二进制是1111
1110
while(1)
{
delay(30000);//延时程序
P1<<=1;
//左移一位
该语句等效于
P1=P1<<1
P1|=0x01;
//最后一位补1,该语句等效于
P1=P1|0x01
符号"|"表示"或"
if(P1==0x7f)
//检测是否移到最左端?"=="表示检测符号2端的值是否相等
{
delay(30000);
P1=0xfe;
//重新赋值
}
}
}

‘拾’ C语言写跑马灯程序

不知道你是那个口控制数码管高低电平的 延时的话你可以用中断做也可以用延迟函数做 大循环用while 小循环用for写

热点内容
茄子快传的文件夹 发布:2025-05-11 07:04:30 浏览:731
手机指纹密码如何更换 发布:2025-05-11 07:02:22 浏览:121
java存储数据库 发布:2025-05-11 07:01:33 浏览:175
办理ca的初始密码是多少 发布:2025-05-11 06:54:55 浏览:423
忘记服务器地址 发布:2025-05-11 06:54:51 浏览:241
传奇qf脚本 发布:2025-05-11 06:35:21 浏览:447
我的世界等价交换服务器地址 发布:2025-05-11 06:34:49 浏览:432
ftp传图失败 发布:2025-05-11 06:34:47 浏览:856
安卓如何设置抖音自动播放 发布:2025-05-11 06:32:21 浏览:671
c交互脚本 发布:2025-05-11 06:19:57 浏览:529