导航:首页 > 操作系统 > 单片机灯闪烁程序汇编

单片机灯闪烁程序汇编

发布时间:2022-06-21 17:47:00

单片机汇编语言控制灯闪烁三次后自动熄灭

自己改下管脚
ORG 0000H ;程序从此地址开始运行
LJMP MAIN ;跳转到MAIN程序处

ORG 030H ;MAIN从030H处开始
MAIN:
MOV R4,#03H;
FOR:
MOV P0,#00H;P0为低电平LED灯亮
ACALL DELAY ;调用延时子程序
MOV P0,#0FFH
ACALL DELAY
DJNZ R4,FOR

DELAY:
MOV R5,#04H ;将立即数传给寄存器R5
F3:
MOV R6,#0FFH
F2:
MOV R7,#0FFH
F1:
DJNZ R7,F1 ;若为0程序向下执行,若不为0程序跳转到
DJNZ R6,F2
DJNZ R5,F3
RET

END

㈡ 用C语言编写一个单片机控制LED灯闪烁变化的编程 急用!!!!!!!!!

C语言实现LED灯闪烁控制配套51单片机开发板。

#include //包含单片机寄存器的头文件

/****************************************
函数功能:延时一段时间

*****************************************/

void delay(void) //两个void意思分别为无需返回值,没有参数传递。

{

unsigned int i; //定义无符号整数,最大取值范围65535。

for(i=0;i<20000;i++) //做20000次空循环。

; //什么也不做,等待一个机器周期。

}

/*******************************************************

函数功能:主函数 (C语言规定必须有也只能有1个主函数)。

********************************************************/
void main(void)

{

while(1) //无限循环。

{

P0=0xfe; //P1=1111 1110B, P0.0输出低电平。

delay(); //延时一段时间。

P0=0xff; //P1=1111 1111B, P0.0输出高电平。

delay(); //延时一段时间。

}

}

单片机驱动LED灯的源程序:

#include<reg52.h> //头文件。

#define uint unsigned int

#define uchar unsigned char

sbit LED1=P1^7; //位定义。

void delay_ms(uint);//mS级带参数延时函数。

void main()

{

while(1)

{

LED1=0;

delay_ms(1000);

LED1=1;

delay_ms(1000);

}

}

void delay_ms(uint z) //延时子程序

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

(2)单片机灯闪烁程序汇编扩展阅读:

单片机应用分类:

通用型:

这是按单片机(Microcontrollers)适用范围来区分的。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。

总线型:

这是按单片机(Microcontrollers)是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接。

另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。

控制型:

这是按照单片机(Microcontrollers)大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型。

通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。

参考资料来源:网络-单片机



㈢ 汇编语言或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 main(void)
{
LED1_01 = 1; //打开LED灯点亮
while(1)
{
if(KEY0_01 == 0) //检测按键是否按下
{
Delay_1ms(10); //延时去抖动
if(KEY0_01 == 0) //确定按键按下
{
LED1_01 = ~ LED1_01; //取反LED灯 [ 亮 . 灭 ] }
while(KEY0_01 == 0); //检测松手
}
}
}
你的图里有A/D转换器

AD转换函数ADC_DIS.C

#include <REGX51.H>

#include"def.h"

#include"lib.h"

sbit adc_cs=P1^0;

sbit adc_rd=P1^1;

sbit adc_wr=P1^2;

/***ADC0804启动转换函数***/

INT8U start_ad()

{

INT8U
temp;

adc_cs=0;

adc_wr=1;

delay(1);

adc_wr=0;

delay(1);

adc_wr=1;

delay(1); //启动AD

adc_rd=1;

delay(1);

adc_rd=0;

delay(1);

temp=P2;

delay(1);

adc_rd=1;

delay(1);
//读取数据

return
temp;

}
用这个程序。

㈣ 帮忙用汇编语言写个程序,控制两个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
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

㈤ 51单片机电子时钟设计怎么更改led灯闪烁频率用汇编语言

你这个程序错误太多了,用汇编时关键的几个程序段都未分清:主程序、定时器T0中断、定时器T1中断等,因MOV IE,#8AH语句说明用的是中断方式,显然漏了 ORG 0000H、ORG 000BH和ORG 001BH伪指令。要改时间可改CJNE R7,#160,JW中的160。

㈥ 单片机 汇编语言 LED程序... 问题求解...

给你参考,可按你的要求自行更改。

;10.12.29外部中断1按键按下,P1流水灯(跑马灯),P2鸳鸯戏水灯(交叉点亮)

ORG00H

AJMPMAIN

ORG03H

AJMPEX0INT

ORG0030H

MAIN:MOVSP,#60H

SETBEA

SETBEX0

SETBIT0

MOVR0,#8

JNBF0,$

MOVA,#0FEH

LED:MOVP1,A

MOVP2,#0AAH

ACALLDLY

MOVP2,#55H

ACALLDLY

RLA

DJNZR0,LED

MOVR0,#8

AJMPLED

EX0INT:SETBF0

RETI

DLY:MOVR7,#20

MOVR6,#20

MOVR5,#250

DJNZR5,$

DJNZR6,$-4

DJNZR7,$-8

RET

㈦ 谁有单片机中3个led灯闪烁控制的流程图与汇编语言,c语言程序

可以用外部中断计数,来实现流水灯的正转、暂停、以及反转和爆闪。。这是我前几天写的一个这样的程序,楼主可以结合protues 画图仿真,注意程序中所用到的IO端口就行了。

#include<reg52.h>
#include<intrins.h>
#defineucharunsignedchar
uchara,b;
voiddelay(ucharz)
{
uchari,j,k;
for(i=z;i>0;i--)
for(k=20;k>0;k--)
for(j=110;j>0;j--);
}
voidbegain()
{
EA=1;
EX0=1;
IT0=1;
}
voidmain()
{a=b=0;
P0=0xfe;
begain();
while(1)
{
if(a==1)
{
P0=_crol_(P0,1);
delay(50);
}
if(a==3)
{
P0=_cror_(P0,1);
delay(50);
}
if(a==4)
{
P0=0x00;
delay(50);
P0=0xff;
delay(50);
P0=0xfc;

}
if(a==5)
{
a=1;

}
}
}
voidint0()interrupt0
{
a++;
if(a==5)
{
a=1;

}
}

㈧ 如何用汇编语言控制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

仿真图如下

㈨ 单片机LED灯闪烁 ,先八个轮流闪烁,再隔一个闪烁,再两个两个地闪烁 然后循环,求汇编程序

TIMES EQU 30H
LED EQU 31H
FLAG BIT 00H
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV SP,#5FH
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
SETB ET0
SETB EA
CLR FLAG
LOOP:
MOV LED,#0FEH
MOV R2,#8
LOOP1:
MOV P0,LED
JNB FLAG,$
MOV A,LED
RL A
MOV LED,A
CLR FLAG
DJNZ R2,LOOP1
MOV LED,#0FEH
MOV R2,#8
LOOP2:
MOV P0,LED
JNB FLAG,$
MOV A,LED
RL A
RL A
MOV LED,A
CLR FLAG
DJNZ R2,LOOP2
MOV LED,#0FCH
MOV R2,#7
LOOP3:
MOV P0,LED
JNB FLAG,$
MOV A,LED
RL A
MOV LED,A
CLR FLAG
DJNZ R2,LOOP3
LJMP LOOP
T0ISR:
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
INC TIMES
MOV A,TIMES
CJNE A,#40,T0E
SETB FLAG
T0E:
RETI
END

㈩ 汇编51单片机三个LED交替闪烁

ORG 0000H
AJMP MAIN
ORG 000BH ;TO Time interrupt
lJMP T0INT
ORG 001BH ;T1 Count interrupt
LJMP T1CNT

ORG 030H
MAIN: MOV TMOD,#61H ;T1 count at MOD 2,T0 time int at MOD 1
MOV TL0,#0B0H ;66536-50000=3CB0H 50000us=50ms=0.05s
MOV TH0,#3CH
SETB ET0 ;T0 interrupt enable
SETB TR0 ;T0 work
;MOV TL1,#0FDH ;count num = 2
;MOV TH1,#0FDH ;auto load 0FDH
;SETB ET1
;SETB TR1
SETB EA ;Enable all interrupt
MOV A,#28H ;0.05s*40=2s
MOV P0,#0FEH
JMP $

ORG 060H
T0INT: CLR ET0 ;Disable T0 interrupt
CLR TF0 ;clr tf0
;CPL P1.7
DEC A ;A--
JNZ T0RET ;A!=0 jmp

;;;;;;;;;;;;;;;;;;更改这里改灯闪烁
MOV A,P1
RR A
MOV P1,A
;;;;;;;;;;;;;;;;;;

MOV A,#28H ;A==0;A=40,
T0RET: SETB ET0 ;Enable interrupt
RETI

ORG 080H

阅读全文

与单片机灯闪烁程序汇编相关的资料

热点内容
同花顺手机版App什么有的 浏览:989
在手机上怎么找app下载支付宝 浏览:912
手机压缩管家解压文件 浏览:70
androidwin8ui 浏览:650
易语言如何写服务器 浏览:802
小型云服务器租用价格多少钱一年 浏览:518
c程序不依靠编译器运行怎么办 浏览:998
哪个命令设置的是加密的密码 浏览:333
品胜云路由改打印服务器 浏览:440
150公斤空气压缩机 浏览:757
c压缩流 浏览:183
有没有什么免费的编程游戏 浏览:673
我租了一个云服务器怎么架设节点 浏览:470
水刀保存命令 浏览:44
androidgps导航 浏览:897
ubuntu命令行安装 浏览:391
算法黑箱理论 浏览:194
zerotier加密方法 浏览:258
程序员上课时间 浏览:581
在安卓怎么玩国际服光遇 浏览:123