Login
网站首页 > 文章中心 > 其它

跑马灯代码_8个灯的led跑马灯要控制灯同时从中间向两边跑的代码是什么

作者:小编 更新时间:2023-07-15 12:27:47 浏览量:293人看过

才看到。

注释,还需要吗?

ORG 0000H

LJMP MAIN ;转主程序

ORG 001BH

LJMP IT0P ;转T1中断服务程序

ORG 1000H ;主程序入口

MAIN:

跑马灯代码_8个灯的led跑马灯要控制灯同时从中间向两边跑的代码是什么-图1

LTB2: MOV DPTR,#TAB2 ;把数据指针移到TAB2位址

CLR P1.3 ;猜测是led总开关

MOV R1,#00H ;清空R1

MOV A,#00H ;清空A

跑马灯代码_8个灯的led跑马灯要控制灯同时从中间向两边跑的代码是什么-图2

DEL1: MOV SP,#60H ;设置堆栈指针

MOV B,#0AH ;设置中断执行次数

MOV TMOD,#10H ;选择T1,定时模式,工作方式1

MOV TL1,#0B0H ;设置低字节计数初值

MOV TH1,#3CH ;设置高字节计数初值

SETB TR1 ;启动T1开始计时

SETB ET1 ;T1中断允许

SETB EA ;开全局中断

跑马灯代码_8个灯的led跑马灯要控制灯同时从中间向两边跑的代码是什么-图3

HERE1: SJMP HERE1 ;等待

IT0P: MOV TL0,#0B0H

MOV TH0,#3CH

DJNZ B,LOOP ;非零跳转,在本程序中就是结束

MOV B,#0AH ;上一句等于零,执行这一句,设置执行次数

MOVC A,@A◆DPTR ;取出偏移后的数据到寄存器A中

MOV P0,A ;输出

INC R1 ;偏移量自加1

CJNE R1,#10H,LOOP2 ;判断是否全部取出,不相等跳转

MOV R1,#00H ;上一句相等就清空R1

LOOP2: MOV A,R1 ;把偏移量赋值给A

LOOP: RETI ;中断结束,返回

TAB2: DB 7FH,3FH,1FH,0FH,07H,03H,01H,00H

DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH

END ;观赏

12MHz晶振 定时器50ms一次中断 led500ms亮或灭1个

多看书,多看数据手册对你有好处!

汇编代码球权是跑马灯,主要适用于正月十五的一种展示

AJMP START

ORG 0030H

START:MOV A,#0FEH

MOV P1,A

LOOP: RL A ;这里是RL。不是R1

CALL DELAY

CJNE A,#07FH,LOOP ;判断是否左移到最后一个灯

LOOP1: RR A

CJNE A,#0FEH,LOOP1;判断是否右移到最后一个灯

JMP START

DELAY:

MOV R5,#02H

D1: MOV R6,#255D ;这里还需要有冒号

D2: MOV R3,#数值(数值为你自己根据亮灯持续时间来定) ;设置内层循环参数

D3:DJNZ R7,D3

DJNZ R6,D2

DJNZ R5,D1

RET

END

以上就是土嘎嘎小编大虾米为大家整理的跑马灯代码_8个灯的led跑马灯要控制灯同时从中间向两边跑的代码是什么相关主题介绍,如果您觉得小编更新的文章对您有所帮助,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章