用定时器实现单个led灯闪烁汇编语言(利用定时器控制led灯闪烁)
如何用汇编语言控制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
相关文章
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~