流水灯单片机程序代码

流水灯单片机程序代码,第1张

单片机流水灯程序代码(汇编语言):ORG0000HAJMPMAINORG0030HMAIN:MOVP1,#11111110BACALLDELAY;跳转到子程序MOVP1,#11111101BACALLDELAYMOVP1,#11111011BACALLDELAYMOVP1,#11110111BACALLDELAYMOVP1,#11101111BACALLDELAYMOVP1,#11011111BACALLDELAYMOVP1,#10111111BACALLDELAYMOVP1,#01111111BACALLDELAYAJMPMAINDELAY:MOVR7,#10;延时1s子程序开始DEL1:MOVR6,#200DEL2:MOVR5,#250DJNZR5,$DJNZR6,DEL2DJNZR7,DEL1RETEND

1、流水灯是若干个灯泡依次点亮,视觉上感觉到灯光在流动就叫做流水灯。2、它是由无数个LED灯组成的,而LED就是发光二极管的简称,它有个特性:就是它只允许电流单一方向流过。如果让LED灯亮起来,他需要连接一个高电平和一个低电平,当它遇到低电平时它会亮起来而遇到高电平它就会熄灭。由于他只能单方向流过电流,所以也就会一亮一暗。

r7在赋了42H后就不能在延时程序里再用了。因为在延时程序里用的话,当从延时程序里跳出后,R7的值就不是42H了。

把这三句(DJNZ R7, LOOP; DELAY:MOV R7,#10H; DJNZ R7,DELAY0;)里的r7改成R4 试试。

双IO口流水灯(汇编)

org   0000h

ajmp  start

start:      mov   dptr,#table ;数据表地址送入dptr

mov   30h,#16     ;30单元作为循环计数器

lop:        mov   a,#0        ;acc清零

movc  a,@a+dptr   ;查数据表中的值并送入a

mov   p2,a        ;查表结果(dw的前字节)送入P2口

inc   dptr        ;数据指针加1

mov   a,#0        ;acc清零

movc  a,@a+dptr   ;查数据表中下个值送入a

mov   P0,a        ;查表结果(dw的后字节)送入P0口

inc   dptr        ;数据指针加1

lcall delay100ms  ;延时100ms

djnz  30h,lop     ;未到16次继续查表取值

ajmp  start       ;到了则重新循环

delay100ms: mov   r5,#195     ;1+(1+2255)195+2195=100036ms@12M

temp:       mov   r6,#255     ;1+2255

djnz  r6,$

djnz  r5,temp

ret

table:      dw 0xfffe, 0xfffd, 0xfffb, 0xfff7 ;状态表

dw 0xffef, 0xffdf, 0xffbf, 0xff7f

dw 0x7fff, 0xbfff, 0xdfff, 0xefff

dw 0xf7ff, 0xfbff, 0xfdff, 0xfeff

end

以上就是关于流水灯单片机程序代码全部的内容,包括:流水灯单片机程序代码、51单片机的流水灯程序—、8051单片机16个显示灯实现顺序点亮和循环点亮!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存