焊接资讯

您现在的位置是:首页 > led灯 > 正文

led灯

用定时器实现单个led灯闪烁汇编语言(利用定时器控制led灯闪烁)

工品易达2022-10-30led灯19

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

仿真图如下

求计时器控制4个LED灯滚动闪烁的汇编语言程序

      ORG   0000H      ; 闪烁 流水灯

        AJMP   MIN0

        ORG   0050H

MIN0:   MOV   R0,#00H

        MOV   DPTR,#TAB

DD1:    MOV   A, R0

        MOV   R2, #10   ; 闪烁次数

        MOVC  A,@A+DPTR

DD2:    MOV   P1, A

        ACALL DELAY1

        MOV   P1, #0FFH

        ACALL DELAY1

        DJNZ  R2, DD2

        INC   R0

        CJNE  R0, #08H, DD1

        JMP   MIN0

DELAY1: MOV R5,#2       ; 延时时间可以改

    D1: MOV R6,#100     

    D2: MOV R7,#250

    D3: DJNZ R7,D3

        DJNZ R6,D2

        DJNZ R5,D1

        RET                   

TAB:  DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH, 7FH 

      END

汇编语言或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灯闪烁汇编语言和利用定时器控制led灯闪烁的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。微信号:ymsc_2016

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~