c51单片机中如何用汇编语言编写流水灯

ss... ss 展开
 我来答
NJGQZF
推荐于2017-09-08 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3165
采纳率:0%
帮助的人:1236万
展开全部
51单片机用汇编语言编写流水灯程序,就是控制多个LED ,使其在特定时间间隔内,只有一个LED 发光,其他熄灭,用这种方式顺序移动点亮LED的位置,就形成了流水灯的效果。以下是程序:
;假设晶振12MHZ,P1控制8个LED低电平亮
;启动入口========================
ORG 0000H ;复位启动
AJMP START ;
ORG 001BH ;T1中断
AJMP T1INT ;
;定义变量========================
YSJS EQU 30H;延时计数器
LED EQU 31H;LED控制缓冲器
;主程序==========================
START: MOV LED,#0FEH ;初始化数据
MOV YSJS,#0 ;
;
MOV TMOD,#10H ;定时器1工作于方式1,16位定时器
MOV TL1,#0B0H ;设置定时初值
MOV TH1,#3CH ;定时时间=50mS
SETB ET1 ;使能定时器1中断
SETB TR1 ;启动定时器1
SETB EA ;开总中断
MOV P1,LED ;初始化流水灯
;
LOOP: JMP LOOP ;循环等待中断
;
;
T1INT: PUSH PSW ;定时器1中断程序
PUSH ACC ;保护现场
;
MOV TH1,#3CH ;定时时间=50mS
MOV TL1,#0B0H ;
INC YSJS ;
PUSH ACC ;保护ACC
MOV A,YSJI ;
CJNE A,#2,QT1 ;50mS*2=100mS
MOV P1,LED ;
MOV A,LED ;
RL A ;累加器A的值循环左移1位
MOV LED,A ;
MOV YSJS,#0 ;
;
QT1: POP ACC ;恢复现场
POP PSW ;
RETI ;返回主程序
END ;汇编程序结束
冷安顺树琪
2020-03-06 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:29%
帮助的人:648万
展开全部
51单片机用汇编语言编写流水灯程序,就是控制多个led
,使其在特定时间间隔内,只有一个led
发光,其他熄灭,用这种方式顺序移动点亮led的位置,就形成了流水灯的效果。以下是程序:
;假设晶振12mhz,p1控制8个led低电平亮
;启动入口========================
org
0000h
;复位启动
ajmp
start
;
org
001bh
;t1中断
ajmp
t1int
;
;定义变量========================
ysjs
equ
30h;延时计数器
led
equ
31h;led控制缓冲器
;主程序==========================
start:
mov
led,#0feh
;初始化数据
mov
ysjs,#0
;
;
mov
tmod,#10h
;定时器1工作于方式1,16位定时器
mov
tl1,#0b0h
;设置定时初值
mov
th1,#3ch
;定时时间=50ms
setb
et1
;使能定时器1中断
setb
tr1
;启动定时器1
setb
ea
;开总中断
mov
p1,led
;初始化流水灯
;
loop:
jmp
loop
;循环等待中断
;
;
t1int:
push
psw
;定时器1中断程序
push
acc
;保护现场
;
mov
th1,#3ch
;定时时间=50ms
mov
tl1,#0b0h
;
inc
ysjs
;
push
acc
;保护acc
mov
a,ysji
;
cjne
a,#2,qt1
;50ms*2=100ms
mov
p1,led
;
mov
a,led
;
rl
a
;累加器a的值循环左移1位
mov
led,a
;
mov
ysjs,#0
;
;
qt1:
pop
acc
;恢复现场
pop
psw
;
reti
;返回主程序
end
;汇编程序结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
锦绣江山千万年
2012-04-10 · TA获得超过4159个赞
知道大有可为答主
回答量:1424
采纳率:40%
帮助的人:1477万
展开全部
Loop:
mov a, #01h
mov r2, #8
Output:
mov P1, a
rl a
call Delay
djnz r2, Output
ljmp Loop

Delay:
mov r6, #0
mov r7, #0
DelayLoop:
djnz r6, DelayLoop
djnz r7, DelayLoop
ret

end
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ifphunfpgr
2012-04-10 · 超过13用户采纳过TA的回答
知道答主
回答量:157
采纳率:0%
帮助的人:77.3万
展开全部
端口的寄存器,赋予一个初值。每位对应一路灯。然后做移位命令。左移右移都可以,不就可以流水了。 写好花样,查表 ;亮灯控制程序; ;**; ORG ,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
量子002
2012-04-10 · TA获得超过4212个赞
知道大有可为答主
回答量:4082
采纳率:66%
帮助的人:913万
展开全部
单片机不分是不是c51,只要是51单片机都支持汇编需要和c语言两种方式设计程序,实现流水灯功能。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式