导航:首页 > 操作系统 > 单片机数码跑马灯

单片机数码跑马灯

发布时间:2022-08-08 18:55:54

单片机跑马灯代码

//假设晶振12MHZ,P1控制8个LED低电平亮
#include "reg51.h"
unsigned int YSJS=0;
signed char LED=0XFF;
void main(void)
{
TMOD |= 0X10; //定时器1工作于方式1,16位定时器
TH1 = 0XFE; //定时器1定时时间=500uS
TL1 = 0X0C;
ET1 = 1; //使能定时器1中断
TR1 =1;
EA =1; //开总中断

while(1)
{
}
}

void TIMER1(void) interrupt 3 //定时器1中断函数使用默认寄存器组
{
TH1 = 0XFE; //定时器1定时时间=500us
TL1 = 0X0C;

YSJS++;
if(YSJS==1000) //500uS*1000=500000us=0.5s,可调整
{
P1 = LED;
LED=LED<<1
if(LED==0X00)LED=0XFF;
YSJS = 0
}
}

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

}

}

}

(2)单片机数码跑马灯扩展阅读:

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

Ⅲ 单片机汇编语言跑马灯

1)将你想要的LED显示样式进行编组,这里P1端口中,输出低电平LED亮,高电平LED不亮;
2)然后按你排的顺序输出编组数据,加上延时显示;
3)通过定时器中断(0.5S)来设置准备显示的编组号;

Ⅳ 单片机 数码管跑马灯实验

#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
delay(uint a)
while(a--)
void main()
P0=0xfe;
uchar i;
for(i=0;i<8;i++)
{
P0=0xfe<<1;
P0=P0|0x01;
delay(400);
}

时间你改下,流水灯基本上都这样的,很多时候要自己思考,如果真的想学好的话

Ⅳ 单片机实现跑马灯

硬件做好了吗

我做单片机设计的

Ⅵ 单片机 跑马灯 代码详解

ORG
0000H
;开机上电主程序入口
AJMP
START
;系统一进来就转到主程序
ORG
0030H
;主程序地址
START:
MOV
A,
#0FFH
;主程序开始,A中初始化成全1
CLR
C
;c清零
MOV
R2,
#08H
;R2左转循环计数器
LOOP:
RLC
A
<<C+A+C<<带进位循环左移,A中的内容在8此循环中从0位到7位依次变0
MOV
P2,
A
;送到P2,使P2从0位到7位依次点亮LED
CALL
DELAY
;单片机运行很快,为了能看到灯的变化,必须延迟,把速度降下来
DJNZ
R2,
LOOP
;R2每次减1后判断是否=0,8次后=0程序才会下行,否则会跳回LOOP
MOV
R2,#07H
;R2右转循环计数器
LOOP1:
RRC
A
>>C+A+C>>带进位循环右移,A中的内容在8此循环中从7位到0位依次变0
MOV
P2,
A
;送到P2,使P2从7位到0位依次点亮LED
CALL
DELAY
;和上个循环一样,延时
DJNZ
R2,
LOOP1
;R2每次减1后判断是否=0,7次后=0程序才会下行,否则会跳回LOOP1
JMP
START
;跳回程序起始位置重复下一个循环
DELAY:
MOV
R3,
#20;延时子程序,这个应该不用解释了吧
D1:
MOV
R4,
#200
D2:
MOV
R5,
#248
DJNZ
R5,
$
DJNZ
R4,
D2
RET
END

Ⅶ 单片机跑马灯程序 汇编语言编写,很简单

程序1:
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVSP,#5FH
LOOP:
MOVA,P2
MOVB,A
MOVP0,A
MOVP1,#0FFH
LOOP1:
LCALLDELAY
MOVC,P1.7
MOVA,P0
RLCA
MOVP0,A
MOVA,P1
RLCA
MOVP1,A
MOVA,P2
CJNEA,B,LOOP
SJMPLOOP1
DELAY:
MOVR2,#60
DELAY1:
MOVR3,#250
DJNZR3,$
DJNZR2,DELAY1
RET
END
程序2:
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVSP,#5FH
JNBP2.0,LOOP1;
JNBP2.1,LOOP2;
SJMPMAIN
LOOP1:
MOVP0,#0FEH
MOVP1,#0FFH
LOOP11:
MOVC,P1.7
MOVA,P0
RLCA
MOVP0,A
MOVA,P1
RLCA
MOVP1,A
JNBP2.1,LOOP2
SJMPLOOP11
LOOP2:
MOVP0,#0FCH
MOVP1,#0FFH
LOOP21:
MOVC,P1.7
MOVA,P0
RLCA
MOVP0,A
MOVA,P1
RLCA
MOVP1,A
JNBP2.0,LOOP1
SJMPLOOP21
DELAY:
MOVR2,#60
DELAY1:
MOVR3,#250
DJNZR3,$
DJNZR2,DELAY1
RET
END

Ⅷ 单片机跑马灯汇编程序详细解释

ORG
0000H
SJMP
START
ORG
0030H
START:
MOV
A,
#0FEH
;
先让第一个发光二极管点亮
LOOP:
MOV
P1,
A
;
从P1口输出到发光二极管
MOV
R1,
#100
;
延时0.5秒
DEL1:
MOV
R2,
#200
DEL2:
MOV
R3,
#7
DEL3:
DJNZ
R3,
DEL3
DJNZ
R2,
DEL2
DJNZ
R1,
DEL1
RL
A
;
左移一位,点亮下一个发光二极管
LJMP
LOOP
END
这个是我写的跑马灯程序,没有左右振荡,自己参考参考加上去吧

Ⅸ 51单片机 跑马灯程序

org0000h

jmpstart

org0030h

start:

movp0,#11111110b;此时第一个灯亮

callt10s

movp0,#11111101b;此时第二个灯亮

callt10s

movp0,#11111011b

callt10s

movp0,#11110111b

callt10s

movp0,#11101111b

callt10s

movp0,#11011111b

callt10s

jmpstart;此处跳到开始即循环

;延时子程序10秒=250usX2X200X100

t10s:movr5,#100

lpr5:movr6,#200

lpr6:movr7,#250

djnzr7,$

djnzr6,lpr6

djnzr5,lpr5

ret

end

把灯的正极接电源正极即vcc负极分别接p0.0-p0.5

此时给p0送0灯就亮1灯就不亮

程序已经过调试可用

仿真如下:

Ⅹ 关于51单片机的跑马灯设置问题

自己看程序修改一下:

#include<reg51.h>
#include <intrins.h>

/*****************************************************************************
* 延时子程序 *
* *
******************************************************************************/
void delayms(unsigned char ms)
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}

/*****************************************************************************
* 主程序 *
* *
******************************************************************************/
main()
{
unsigned char LED;
LED = 0xfe;
P2 = LED;
while(1)
{
delayms(250);
LED = _crol_(LED,1); //循环右移1位,点亮下一个LED 此函数位库函数
P2 = LED;
}
}

阅读全文

与单片机数码跑马灯相关的资料

热点内容
没学历的怎么学编程 浏览:893
华为的隐藏相册无法加密 浏览:774
联通套餐app怎么设置 浏览:748
关于删除链表的算法描述 浏览:889
标准盘和压缩盘的区别 浏览:42
银行存款验证码JAVA编程 浏览:106
word转pdf软件免费版 浏览:137
公主连结安卓台服怎么下载 浏览:540
注册江苏银行app怎么注册 浏览:796
中兴怎么下载app视频 浏览:673
服务器审计是什么 浏览:514
华为删除的app怎么彻底卸载 浏览:570
编程时调试快捷键 浏览:4
安卓手机玩亚服怎么下载 浏览:337
思域压缩机多少钱 浏览:691
程序员代码合适吗 浏览:282
复利计算法律保护 浏览:741
代号f2服务器连接失败怎么搞 浏览:960
旋律云我的世界服务器靠谱吗 浏览:67
pdf降低大小 浏览:235