A. 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();
}
}
}
(1)跑马灯单片机扩展阅读:
Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程/仿真/调试/写入/加密等所有过程一气呵成,中间不须任何编译或汇编。
B. 单片机中的流水灯,花样灯,跑马灯
等 到 你单片机学到一定程度就理解了,这些灯只是按照自己的意思来亮,至于名称都无所谓
C. 单片机实现跑马灯
硬件做好了吗
我做单片机设计的
D. 单片机,跑马灯
void delay(unsigned char i)
{
unsigned char m;
for(i;i>0;i--)
{
for(m=120;m>0;m--);
}
}
和
void delay()
{
unsigned int i,m;
for(i=110;i>0;i--)
{
for(m=120;m>0;m--);
}
}
延时时间长短不一样
E. 单片机跑马灯
看看我写的,P0到P7接8个LED.
org ooooh
ajmp main
main:mov r7,#8
main:mov r0,#8 ;一个循环需要移动8位
mov p1,#01111111b ;初始为P0.7灯点亮
loop: clr p2.3
acall ds1ms ;延时,以便人眼可以观察到
setb p2.3
acall ds1ms
mov a,p1 ;读P0口当前显示的数据送到A
rr a ;将A中的数据循环右移1位
mov p1,a ;再将A中右移过的数据送到P0
djnz r0,loop
djnz r7,main ;移动不够8位,跳到LOOP处循环,
ljmp rel ;流动1遍跳转到MAIN处循环流。
;---显示延时----------
ds1ms: mov r1,#1
ds1lo: mov r2,#200
ds2lo: mov r3,#200
djnz r3,$
djnz r2,ds2lo
djnz r1,ds1lo
ret ;延时返回
rel:end
C语言的:
//8个发光二极管循环点亮
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit beep=P2^3;
uchar i,j,m,n,k;
void delay(uchar k)
{for(m=k;m>0;m--)
for(n=125;n>0;n--);
}
void main(void)
{i=0xfe;
while(1)
{//beep=0;
delay(100);
//beep=1;
delay(100);
j=_crol_(i,1);
i=j;
P1=j;
}
}
F. 单片机跑马灯程序
org 0000h
ajmp start
org 0030h
start:
mov a,#0ffh ;
clr c ;
mov r2,#08h ;循环八次。
loop: rlc a ;带进位左移。
mov p1,a ;输出到P1口。
call delay ;延时一段时间
djnz r2,loop ;反复循环
mov r2,#07h ;再往回循环。
loop1: rrc a ;带进位右移
mov p1,a ;输出到P1口。
call delay ;延时一段时间
djnz r2,loop1 ;反复循环
jmp start ;重新开始
delay: mov r3,#20 ;延时子程序
d1: mov r4,#20
d2: mov r5,#248
djnz r5,$
djnz r4,d2
djnz r3,d1
ret
end
G. 简单单片机跑马灯
unsigned char i;
void main(void)
{
P1 = 0x01;//先让第一个灯亮
Delay(500);
for(i=0;i<8;i++)
{
P1 = P1 << 1;//数据左移1位 P1口数据以此为: 0x01 0x02 0x04 0x08 0x10 0x20 0x40 x080
Delay(500);
P1 = 0;//全部都熄灭
Delay(500);
P1 = 0xff;//全部都亮
Delay(500);
P1 = 0;//全部都熄灭
Delay(500);
P1 = 0xff;//全部都亮
Delay(500);
}
}
void Delay(void)
{
unsigned char j;
for(j=0;j<255;j++)//里面的255 自己调整就行了
{
}
}
H. 51单片机跑马灯
定义一个8比特常量数组,每一比特对应一个灯,每个数组成员对应于一次输出,数组成员就调整到对应的输出方式,想要怎么玩就怎么定义,隔一段时间取一个常量输出到对应的8个灯
I. 单片机跑马灯!
这只是个宏定义,
#define DataPort P0
#define LedPort P3 //自己定义,根据你连的引脚
注意上边两句,现在#define LedPort P3 //自己定义,根据你连的引脚
是P3,就是LedPort相当于P3,当改成#define LedPort P1时,LedPort相当于 P1,
请参考C语言宏定义部分知识