导航:首页 > 操作系统 > 单片机跑马灯和流水灯C语言

单片机跑马灯和流水灯C语言

发布时间:2022-08-03 18:29:39

㈠ 利用8031单片机,设计跑马灯和流水灯。急急急。

;以下程序,仿真调试成功.
ORG 0000H ;程序开始地址.
SJMP MAIN ;跳转到MAIN.
ORG 0030H ;程序入口.
MAIN:
MOV 30H, #7FH
MOV 31H, #55H
LOOP1:
MOV A, 30H
LOOP11:
RL A
MOV P1, A
LCALL DELAY
JNB P3.2, LOOP2
SJMP LOOP11

LOOP2:
MOV A, 31H
LOOP22:
CPL A
MOV P1, A
LCALL DELAY
JB P3.2, LOOP1
SJMP LOOP22

DELAY:
MOV R7, #250
DL1:MOV R6, #100
DL2:MOV R5, #10
DL3:DJNZ R5, DL3
DJNZ R6, DL2
DJNZ R7, DL1
RET

END

㈡ 单片机跑马灯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--); //延时一下
}
}
//只是示例,凑和一下

㈢ 很简的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的取值为这个函数的延时ms数,如delay(200);大约延时200ms.
{ //delay(500);大约延时500ms.
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main() //主函数
{
uchar a,i,j;
while(1) //大循环
{
a=0xfe; //赋初值
for(j=0;j<3;j++) for(i=0;i<8;i++) //左移三次
{
P1=a; //点亮小灯
beep=0; //开启蜂鸣器
delay(50); //延时50毫秒
beep=1; //关闭蜂鸣器
delay(50); //再延时50毫秒
a=_crol_(a,1); //将a变量循环左移一位
}
a=0x7f;
for(j=0;j<3;j++) for(i=0;i<8;i++) //右移三次
{
P1=a; //点亮小灯
beep=0; //开启蜂鸣器
delay(50); //延时50毫秒
beep=1; //关闭蜂鸣器
delay(50); //再延时50毫秒
a=_cror_(a,1); //将a变量循环右移一位
}
}
}
2、51单片机是对所有兼容Intel
8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash
rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。

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

}

}

}

(4)单片机跑马灯和流水灯C语言扩展阅读:

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

㈤ 单片机跑马灯c语言程序:数码管倒计时10秒流水灯开始工作的仿真图

#include <reg51.h>
void delay(unsigned int i); char LED;

char TAB[16]={0xC0,0xF9,0xA4,0xB0,0x99,//共阳极0~4数码管显示数据
0x92,0x82,0xF8,0x80,0x98,//共阳极4~9数码管显示数据
0xA0,0x83,0xa7,0xa1,0x84,0x8e};
main()
{
unsigned char i;

while (1)
{ LED = 0xfe;

for (i = 0 ;i < 8 ; i++)
{
P0 = LED;
delay(500);
LED = LED << 1; LED = LED | 0x01; if (LED == 0x7f) break; }

for (i = 0 ;i < 8 ; i++)
{

P0 = LED;
delay(500);
LED = LED >> 1; LED = LED | 0x80;
}

}

}
while(1)
{
a[0]=*s%10; //给显示数组赋值
a[1]=*s/10;
a[2]=10;
a[3]=*m%10;
a[4]=*m/10;
a[5]=10;

/*******延时函数*************/
void delay(unsigned int i)
{
unsigned char j;
for(i; i > 0; i--)
for(j = 255; j > 0; j--);

}

㈥ 单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)

单片机流水灯C语言程序的源代码如下:

#include //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;

}

temp=0x80;

for(i=0;i<8;i++) //8个流水灯反向逐个闪动

{

P1=~temp;

delay(100); //调用延时函数

temp>>=1;

}

temp=0xFE;

for(i=0;i<8;i++) //8个流水灯依次全部点亮

{

P1=temp;

delay(100); //调用延时函数

temp<<=1;

}

temp=0x7F;

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

}

(6)单片机跑马灯和流水灯C语言扩展阅读

51单片机流水灯的源代码如下

#include<reg51.h>

#include<intrins.h>

voiddelay(inta)

{

inti;

while(a--)for(i=0;i<110;i++);

}

main()

{

inti;

while(1)

{

P0=0xfe;

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

{

P0=_crol_(P0,1);

delay(500);

}

}

}

㈦ 单片机流水灯的程序怎么打(C语言)顺便解释解释。

你的事C语言 回答的是汇编 如下 //led显示程序,简单地显示led的程序
//展示了如何控制端口的方法
//现象 : led 8个灯从左到右,然后从右到左显示;#include <8051.h>void delay(unsigned char times);void main()
{
int k,m;
P0 = 0; //关闭数码显示
P2 = 0; //
P3_7 = 0; //关闭蜂鸣器

while(1) //设置一个无限制循环
{ m = 254;
P1 = m; //从第一个灯开始显示
for(k=0;k<8;k++)
{delay(255);<br> m <<=1;<br> P1 = m; //表示,P1每次向左一位<br> }
m = 128;
for(k=0;k<8;k++) //第二次重复
{delay(255);<br> m >>= 1;<br> P1 = m; //表示,P1每次向右一位<br> }
}
}

㈧ 用c语言编写单片机流水灯程序,(8个发光二极管从左至右循环点亮)

#include<reg51.h>

voiddelay(void)

{

unsignedinti,j;

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

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

;

}

voidmain(void)

{

while(1)

{

P3=0xfe;//第一个灯亮

delay();//延时

P3=0xfd;//第二个灯亮

delay();

P3=0xfb;//第三个灯亮

delay();

P3=0xf7;//第四个灯亮

delay();

P3=0xef;//第五个灯亮

delay();

P3=0xdf;//第六个灯亮

delay();

P3=0xbf;//第七个灯亮

delay();

P3=0x7f;//第八个灯亮

delay();

}

}

(8)单片机跑马灯和流水灯C语言扩展阅读

单片机C语言16种方式流水灯

voidmain()

{

while(1)

{

P1=0xfe;//点亮第一个发光管

Delay(5000);

P1=0xfd;//点亮第二个发光管

Delay(5000);

P1=0xfb;

Delay(5000);

P1=0xf7;

Delay(5000);

P1=0xef;

Delay(5000);

P1=0xdf;

Delay(5000);

P1=0xbf;

Delay(5000);

P1=0x7f;//点亮第八个发光管

}

}

㈨ 问有关用C语言单片机做的流水灯的问题

这个核心的东西是单片机控制的原理,代码比较简单。
我想你不明白的是管脚是如何被控制的:
单片机的通用端口可以通过控制输出高、低电平,想输出高电压那就给控制此管脚的寄存器赋值1,低电压那么就给值0。
这里P1寄存器控制着8个管脚,每个管脚控制着一个灯。同样P0也控制着8个灯。这里P1即表示寄存器。
硬件电路上,灯的两个脚接的都是高电平,那么没有电流通过,不亮。当有一个脚电平变低,那么有了电压降,灯亮了。
P1=0xFE,2进制是1111 1110,表示p1.0=0,即第一个管脚是0值,低电平,而其他的管脚都是高。那么第一个灯亮了。
通过延时,让第一个灯亮了一会。
P2=0xFD,即1111 1101,关了第一个灯,然后让第二灯亮了。
其他同理。

从数组的值,可以看出灯亮灭的顺序:
1111 1110
1111 1101
1111 1011
1111 0111
1110 1111
1101 1111
1011 1111
0111 1111
....

此数组值是先让灯亮一个,从头到尾灯挨个亮,接着再从头跑一遍。
然后反方向跑一遍,再1遍。
最后全亮,全灭,全亮,全灭
再从头循环..........

你如果设计8个,那么就用P0或者p1中的一个即可。
即删除程序中的:
P0=table[i];//P0灯亮
或者
P1=table[i];//P0灯亮

流程如下:
开始
进入主循环
判断是否到一次跑马灯结束
是结束就将i值为0,即从头开始又一轮的跑马灯。
否就继续本轮的跑马灯
先让给P1赋值让P1上指定的灯亮。
然后延时让这个灯亮一会。
接着给P0赋值让P0上指定的灯亮。
继续主循环

阅读全文

与单片机跑马灯和流水灯C语言相关的资料

热点内容
程序员送女友的相册 浏览:251
压缩文件怎么设置打开加密 浏览:764
tracert命令结果详解 浏览:356
唯赛思通用什么APP 浏览:371
古玩哪个app好卖 浏览:146
u盘内容全部显示为压缩包 浏览:517
编译固件时使用00优化 浏览:356
速借白条app怎么样 浏览:756
用纸张做的解压东西教程 浏览:12
求圆的周长最快算法 浏览:190
安卓热点怎么减少流量 浏览:270
北京代交社保用什么app 浏览:855
第一眼解压视频 浏览:726
文件夹err是什么 浏览:97
qt4编程pdf 浏览:572
局域网服务器下如何连续看照片 浏览:254
经过加密的数字摘要 浏览:646
加密锁9000变打印机 浏览:694
程序员的职业发展前途 浏览:639
安卓是世界上多少个程序员开发 浏览:45