
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:clr p21
SETB P20
mov P0 , #01h
MOV A ,P0
LOOP:RL A
LCALL DELAY
MOV P0,A
LCALL DELAY
SJMP LOOP
DELAY:MOV R6,#255
D1: MOV R7,#255
DJNZ R7,$
DJNZ R6,D1
RET
单片机流水灯程序代码(汇编语言):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灯亮起来,他需要连接一个高电平和一个低电平,当它遇到低电平时它会亮起来而遇到高电平它就会熄灭。由于他只能单方向流过电流,所以也就会一亮一暗。
要努力啊学弟
就不给你源码了,这是个例题以前看的书 真好 翻到,
好好看看 ,修改一下或不修改就能使用,看看 程序的一步一步注释 。汇编还是很有意思的你进去了 就不愿意使用C 语言 。
你需要的是4个按键,这里用到了 12 个按键,去掉几个即可
注意LED 是置 1 亮 还是 置 0亮。
整体思路: 主函数里不断判断4个按键 用中断或不用也行就让51不断扫描
假如有一个按键 置 0 或置1 ,这个自己选择
汇编就是跳转到一个 标记处
添加流水灯 效果
灭几秒或亮几秒 这个应该可以搞定
运行完毕返回住函数
4个按键都是这样的 步骤
努力
先定义4个按键,
sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
再定义一个变量计数,分别计1,2,3,4,对应4个按键。
在主循环程序中判断4个按键是否按下,每一个开关按下,变量赋值对应的数。
再根据变量值,执行对应的第1,2,3,4种花样就行了。
ORG000H\x0d\LJMPMAIN\x0d\ORG000BH;定时器0中断入口\x0d\LJMPLOOP1\x0d\ORG0100H\x0d\MAIN:\x0d\MOVTMOD,#01H;设置定时器工作模式\x0d\MOVTL0,#0EFH;设置定时器初值\x0d\MOVTH0,#0D8H\x0d\SETBEA;打开总中断\x0d\SETBET0;打开定时器0中断\x0d\SETBTR0;启动定时器0\x0d\MOVP0,#0FFH\x0d\MOVR0,#200;延时参数\x0d\LOOP:\x0d\CJNER0,#0,LOOP;延时\x0d\MOVA,#0EFH\x0d\NEXT:\x0d\MOVP0,A;送值\x0d\MOVR0,#50;延时参数\x0d\EXIT:\x0d\CJNER0,#00H,EXIT;延时一会儿\x0d\RLA;A循环左移根据程序分许,该程序完成流水灯功能\x0d\LJMPNEXT\x0d\\x0d\LOOP1:;定时器0中断函数\x0d\MOVTL0,#0EFH;定时器初值\x0d\MOVTH0,#0D8H;定时器初值\x0d\DECR0;\x0d\RETI;中断返回\x0d\END\x0d\有疑问可以追问。
以上就是关于单片机汇编语言流水灯程序延时0.5秒一共四个灯循环全部的内容,包括:单片机汇编语言流水灯程序延时0.5秒一共四个灯循环、流水灯单片机程序代码、求助大神,用汇编语言写流水灯控制程序和开关控制程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)