汇编语言 跑马灯程序设计

汇编语言 跑马灯程序设计,第1张

循环点亮你只要用位移指令就行啦!假如是p1口,你只要先给他赋予一个初值00000001,假如是高电平点亮,那这是就只有一盏灯亮,循环左移就行啦!每次循环一次,都调用一下延时这就可以按自己要求设置延时的时间啦!其实思路都挺简单的!不过你要是对单片机一点都不了解,那只好叫别人写好给你算了!你直接复制下就行!

使用8255A扩展并行 l/O 口,可以实现16个发光二极管的跑马灯程序,具体 *** 作如下:

设置8255A芯片的I/O口为输出模式。

2 定义一个变量,用于存储当前亮灯的位置。

3 在程序中通过循环控制每个发光二极管的亮灭,从而实现跑马灯效果。

4 在循环中,每次将该变量加1,并将该变量对16求余,以确保亮灯位置始终在0~15之间。

下面是代码示例:

```

#include <reg52h>

#define LED P0

sbit CS = P1^0;

void main()

{

unsigned char i;

while(1)

{

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

{

LED = ~(0x01<<i);

delay(500);

}

}

}

```

其中delay函数为延时函数,可自行定义或使用已有的库函数。

org 0000h

jmp start

org 0030h

start:

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

call t10s

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

call t10s

mov p0,#11111011b

call t10s

mov p0,#11110111b

call t10s

mov p0,#11101111b

call t10s

mov p0,#11011111b

call t10s

jmp start        ;此处跳到开始 即 循环

;延时子程序10秒=250usX2X200X100

t10s:mov r5,#100

lpr5:mov r6,#200

lpr6:mov r7,#250

djnz r7,$

djnz r6,lpr6

djnz r5,lpr5

ret

end

把灯的正极接电源正极 即vcc 负极分别接p00-p05

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

程序已经过调试 可用

仿真如下:

以上就是关于汇编语言 跑马灯程序设计全部的内容,包括:汇编语言 跑马灯程序设计、使用8255A扩展并行 l/O 口,实现16个发光二级管的跑马灯程序、51单片机 跑马灯程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9410275.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存