帮忙用汇编语言写个程序,控制两个LED交替闪烁。

要求:用单片机控制两个灯闪烁,一个灯快闪两下,接着另一个闪一下,然后就这样重复

/程序:ex1_1.c
//功能:控制一个信号灯闪烁程序
#include <reg51.h> //包含头文件REG51.H,定义了MCS-51单片机的特殊功能寄存器
sbit P1_0=P1^0; //定义位名称
void delay(unsigned char i); //延时函数声明
void main() //主函数
{
while(1) {
P1_0=0; //点亮信号灯
delay(10); //调用延时函数,实际变量为10
P1_0=1; //熄灭信号灯
delay(10); //调用延时函数,实际变量为10
}
}
//函数名:delay
//函数功能:实现软件延时
//形式参数:unsigned char i;
// i控制空循环的外循环次数,共循环i*255次
//返回值:无
void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数
{
unsigned char j,k; //定义无符号字符型变量j和k
for(k=0;k<i;k++) //双重for循环语句实现软件延时
for(j=0;j<255;j++);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-11
假设p1.0,p1.1控制两个LED灯,低亮高灭。
ORG 0000H
LJMP START
ORG 0030H
START:
CLR EA
MOV SP,#60H
SETB P1.0
SETB P1.1
LOOP:
LCALL DELAY30
CLR P1.0
LCALL DELAY30
SETB P1.0
LCALL DELAY30
CLR P1.0
LCALL DELAY30
SETB P1.0
LCALL DELAY30
CLR P1.1
LCALL DELAY30
LCALL DELAY30
SETB P1.1
SJMP LOOP
DELAY30: ;延时30毫秒
MOV R0,#60
DELAY1:
MOV R1,#250
DJNZ R1,$
DJNZ R0,DELAY1
RET
END本回答被提问者采纳
第2个回答  2011-12-12
KUAI EQU P1.0
MAN EQU P1.1
ORG 0
MAIN:
CLR KUAI
CLR MAN
DISPLAY:
SETB KUAI
ACALL DELAY_KUAI
CLR KUAI
SETB KUAI
ACALL DELAY_KUAI
CLR KUAI
SETB MAN
ACALL DELAY_MAN
AJMP DISPLAY
DELAY_KUAI:
MOV R0, #0
DJNZ R0, $
RET
DELAY_MAN:
ACALL DELAY_KUAI
ACALL DELAY_KUAI
RET
END

参考资料:END

第3个回答  2019-05-13
#include "reg51.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit ledD1=P2^0;
sbit ledD2=P2^1;
void delay(u16 i)
{
while(i--);
}
void main()
{
while(1)
{
ledD1=0;
delay(40000);
ledD1=1;
delay(40000);
ledD2=0;
delay(40000);
ledD2=1;
}
}

51单片机汇编语言程序,一个按键控制两个发光二极管的同时闪烁,交替闪烁...
;P1.0 P1.1接2LED,P2.0接一按键。上电2LED不亮,按第1 次键2LED同时以1S周期闪烁,按第2 次 2LED轮流1S闪烁...同此循环。;11 04 17 ORG 00H AJMP MAIN ORG 0BH AJMP T0INT ORG 30H MAIN:MOV TMOD,#01H ;MOV TH0,#3CH MOV TL0,#0B0H SETB EA SETB ET0 MOV R0,#10 K...

单片机两个led不同频率闪烁 使用中断,汇编语言
假设p1.0,p1.1控制两个LED灯,高灭低亮 org 0000h ljmp start org 0030h start clr ea mov sp,#60h setb p1.0 setb p1.1 loop:lcall delay30 clrp1.0 lcall delay30 setb p1.0 lcall delay30 setb p1.1 sjmp loop delay30:延时30毫秒 mov r0,#60 delay1:mov r1,#250 ...

汇编语言或C语言编写一个控制灯闪烁的程序
我写的这个程序应该可以,按一下灯亮,再按一下灯灭 include "REG52.H"sbit LED1_01 = P1^1; \/\/LED灯 sbit KEY0_01 = P1^2; \/\/按键 void Delay_1ms(unsigned int Time){ unsigned int x, y;for(x = Time; x > 0; x--)for(y = 120; y > 0; y--);} int ma...

如何用汇编语言控制led灯闪烁?
用AT89C2051单片机(可以换成任意的51单片机)仿真,控制一个LED灯闪烁,LED灯接在P1.7脚上。程序如下 LED1 BIT P1.7 MAIN:CPL LED1 ACALL DELAY SJMP MAIN DELAY:MOV R7,#0;延时子程序 MOV R6,#0 LOP:DJNZ R6,DJNZ R7,LOP RET END 仿真图如下 ...

单片机led左移然后右移循环亮灭的汇编语言
单片机led左移然后右移循环亮灭的汇编语言 电路与程序如下:本程序,经过硬件检验,完全符合题目要求。

怎么用51单片机一个IO口控制两个LED分别亮
5、点亮LED灯。P1=0x7e;二进制11111110。6、添加延迟效果即可。注意事项:Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程\/仿真\/调试\/写入\/加密等所有过程...

...LED灯跟数码管不再跳跃,而保持现状???求汇编语言的!!!
通过以下汇编语言程序实现单按键控制LED灯和数码管稳定状态功能。程序适用于P1口的LED灯,按下时保持现状,松开后继续原工作。若数码管位或段控制口与LED使用同一组,此程序即可实现一键控制功能。如使用不同组别,则可利用汇编的强大无条件跳转功能,按键操作后跳转至主函数,再由主函数跳回,完成控制。程...

关于AT89C51单片机LED控制程序,汇编语言的
本文主要介绍AT89C51单片机中LED控制程序的实现方法,利用汇编语言编程,通过按钮输入控制LED的亮灭状态。程序逻辑结构清晰,通过判断不同按钮的按下状态,对应控制LED输出的高低电平。代码流程设计合理,实现按钮控制LED的循环操作。程序开始于标号`ORG 0000H`,设置程序入口地址为地址0000H,然后跳转至标号`...

汇编语言 编写 程序 LED 灯显示
汇编语言 编写 程序 LED 灯显示 用8255连接pc机LED闪烁显示控制设计要求及方法:(1)在C口高4位设置4个按键:Set、、、Enter,Set选择两个计数器、增加时间、减小时间、Enter确定。(2)设置的时间分别存入两个缓冲单... 用8255 连接pc机 LED闪烁显示控制设计要求及方法:(1) 在C口高4位设置4个按键:Set、 、 、...

利用汇编语言,设计一个控制程序,能够实现从led0至led7循环点亮,逆时针...
MOV TH0,#HIGH(65536-50000) MOV TL0,#LOW(65536-50000) SETB TR0 DJNZ R2,T0E MOV R2,#40 JB 00H,T001 RL A MOV P0,A SJMP T002T001: RR A MOV P0,AT002: DJNZ R3,T0E MOV R3,#6 CPL 00HT0E: RETI ...

相似回答