帮忙用汇编语言写个程序,控制两个LED交替闪烁。
发布网友
发布时间:2022-05-20 20:18
我来回答
共4个回答
热心网友
时间:2023-11-22 11:18
/程序: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++);
}
热心网友
时间:2023-11-22 11:19
假设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
热心网友
时间:2023-11-22 11:19
KUAIEQUP1.0
MANEQUP1.1
ORG0
MAIN:
CLRKUAI
CLRMAN
DISPLAY:
SETBKUAI
ACALLDELAY_KUAI
CLRKUAI
SETBKUAI
ACALLDELAY_KUAI
CLRKUAI
SETBMAN
ACALLDELAY_MAN
AJMPDISPLAY
DELAY_KUAI:
MOVR0,#0
DJNZR0,$
RET
DELAY_MAN:
ACALLDELAY_KUAI
ACALLDELAY_KUAI
RET
END
参考资料:END
热心网友
时间:2023-11-22 11:20
#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;
}
}