单片机51点亮一个led灯的汇编程序代码(51单片机点亮一个led)
单片机点亮一盏led灯代码
用MCS51单片机汇编语言编写的点亮一只LED灯源程序LED1.ASM,代码如下:
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:MOV A,#FEH
MOV P1,A
AJMP $
END
51单片机中如何用汇编语言编写流水灯
流水灯就是51单片机控制led灯依次点亮的控制方式。具体程序如下:
ORG 0000H ;复位启动
AJMP START ;
ORG 001BH ;T1中断
AJMP T1INT ;
;定义变量========================
YSJS EQU 30H;延时计数器
LED EQU 31H;LED控制缓冲器
;主程序==========================
START: MOV LED,#0FEH ;初始化数据
MOV YSJS,#0 ;
MOV TMOD,#10H ;定时器1工作于方式1,16位定时器
MOV TL1,#0B0H ;设置定时初值
MOV TH1,#3CH ;定时时间=50mS
SETB ET1 ;使能定时器1中断
SETB TR1 ;启动定时器1
SETB EA ;开总中断
MOV P1,LED ;初始化流水灯
LOOP: JMP LOOP ;循环等待中断
T1INT: PUSH PSW ;定时器1中断程序
PUSH ACC ;保护现场
MOV TH1,#3CH ;定时时间=50mS
MOV TL1,#0B0H ;
INC YSJS ;
PUSH ACC ;保护ACC
MOV A,YSJI ;
CJNE A,#2,QT1 ;50mS*2=100mS
MOV P1,LED ;
MOV A,LED ;
RL A ;累加器A的值循环左移1位
MOV LED,A ;
MOV YSJS,#0 ;
QT1: POP ACC ;恢复现场
POP PSW ;
RETI ;返回主程序
END ;汇编程序结束
扩展资料:
实现流水灯的三个方法:
第一种,总线方法实现流水灯。这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,加上延时函数,即可控制每个LED灯的亮灭。
第二种,移位方法实现流水灯采用循环程序结构编程。首先在程序开始给P1.0口送一个低电平,其它位为高。然后延时一段时间再让低电平往高位移动,这样就实现“流水”的效果了。
第三种,库函数实现流水灯。利用左移函数进行。
51单片机点亮一个灯编程
具体看你的灯是高电平点亮还是低电平点亮,还有驱动的IO口是哪个。
例如:驱动IO是P1.0,高电平点亮。程序:P1 |= 0x01;
51单片机,点亮一盏灯的程序
#includereg52.h
sbit LED = P0^0;
void main()
{
LED=0;//此代码为低电平有效 P0^0 亮
}
51单片机汇编语言的led亮灯编程题求解,必采纳?
LED1 BIT P3.7 ; 程序没有改动,为了配合仿真图只改了端口。
KEY1 BIT P3.2
LJMP MAIN
ORG 0030H
MOV R1,#1 ; 亮灯个数
MAIN: MOV P1,#0FFH
CHECK: JB KEY1,CHECK
MOV P1,#11111111B
MOV R2,#8
LOOP: INC R1 ; 每次亮灯个数r1+1
MOV A,P1
CLR C
RRC A
MOV P1,A ; 亮灯
LCALL DL ; 跳到延迟程序 每次亮间延迟一会
DJNZ R2,LOOP ; 到r2(8次)循环结束
LJMP CHECK
ORG 0100H
DL: MOV R7,#100 ; 延迟程序
L1: MOV R6,#100
L2: MOV R5,#60
L3: NOP
NOP
DJNZ R5,L3
DJNZ R6,L2
DJNZ R7,L1
RET
END
单片机51点亮一个led灯的汇编程序代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于51单片机点亮一个led、单片机51点亮一个led灯的汇编程序代码的信息别忘了在本站进行查找喔。微信号:ymsc_2016
相关文章
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~