答疑解难 跑马灯程序
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: JB P0.7,MAIN ;等待开始键按下
LCALL YS ;按键延时
JB P0.7,MAIN
MOV A,#7FH ;是开始键按下 则跑马灯开始运行
LL: MOV P1,A
LCALL YS ;显示延时
RR A ;循环右移一位
JB P0.6, LL ;没有按下停止键 则继续跑马
LCALL YS ;按键延时
JB P0.6,LL ;按下停止键 则停止跑马;否则继续跑马
MOV A,#0FFH
MOV P1,A
SJMP MAIN ;转到程序开始处,等待开始键的按下
YS: MOV R7,#150 ;延时子程序
YL: MOV R6,#200
YY: NOP
DJNZ R6,YY
DJNZ R7,YL
RET
END
硬件接口电路如下:
哈哈 还满意吗 就请给俺选择(满意选项)吧
如果是一个字节型的数据控制LED灯的话,且是1控制LED灯灭,0控制灯亮。
从灭到亮,先是0xFF,然后开始左移,最终移到0x00,就是全亮了。
从亮到灭,先是0x00,然后左移并且加1,重复此工作就是0xFF了
按照上面的思想,你自己应该可以搞定的。
|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;m0;m--)
for(n=20;n0;n--)
for(s=248;s0;s--);
}
void main(void)
{
while(1)
{
temp=0xfe;
P1=temp;
delay();
for(i=1;i8;i++)
{
a=tempi;
b=temp(8-i);
P1=a|b;
delay();
}
for(i=1;i8;i++)
{
a=tempi;
b=temp(8-i);
P1=a|b;
delay();
}
}
}
扩展资料:
Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程/仿真/调试/写入/加密等所有过程一气呵成,中间不须任何编译或汇编。
参考资料来源:百度百科-51单片机
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
点了S2按键。按下按键S1,跑马灯正向运行;按下按键S2,跑马灯反向运行,所以跑马灯反方向跑,可能是按了S2按键。常规的跑马灯,是指将多个发光二极管分别连接到单片机的某一并行端口处,通过编程控制这几个发光二极管依次点亮。
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
这个是我写的跑马灯程序,没有左右振荡,自己参考参考加上去吧
单片机潘跑马灯编程的介绍到此就结束了,感谢您耐心阅读,谢谢。
本文标签:单片机潘跑马灯编程