1. 单片机汇编语言流水灯程序延时0.5秒 一共四个灯循环
4只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。
;用最直接的方式实现流水灯
ORG 0000H
START:MOV P1,#01111111B ;最下面的LED点亮
LCALL DELAY ;延时60秒
LCALL DELAY ;延时60秒
MOV P1,#10111111B ;最下面第二个的LED点亮
LCALL DELAY ;延时60秒
LCALL DELAY ;延时60秒
MOV P1,#11011111B ;最下面第三个的LED点亮 (以下省略)
LCALL DELAY
LCALL DELAY ;延时60秒
MOV P1,#11101111B
LCALL DELAY
LCALL DELAY ;延时60秒
MOV P1,#11110111B
LCALL DELAY
LCALL DELAY ;延时60秒
MOV P1,#11111011B
LCALL DELAY ;延时60秒
LCALL DELAY ;延时60秒
LCALL DELAY ;延时60秒
LCALL DELAY ;延时60秒
LCALL DELAY ;完成第一次循环点亮,延时约0.25秒
AJMP START ;反复循环
;延时子程序,12M晶振延时约250毫秒
DELAY: ;大约值:2us*256*256*2=260ms,也可以认为为250ms
PUSH PSW ;现场保护指令(有时可以不加)
MOV R4,#240
L3: MOV R2 ,#00H
L1: MOV R3 ,#00H
L2: DJNZ R3 ,L2 ;最内层循环:(256次)2个周期指令(R3减一,如果比1大,则转向L2)
DJNZ R2 ,L1 ; 中层循环:256次
DJNZ R4 ,L3 ;外层循环:240次
POP PSW
RET
END
2. 单片机汇编语言程序,我想写一个循环点亮的LED,然后用外部中断0接到一个按键上,怎么写我需要详细的程序
循环点亮LED灯,也就是流水灯效果的控制,可以用定时器来控制,这样做相对代码量较少而时间比较精确,外部中断0接以按键,可以控制动态效果的启停。程序如下:
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP EXT0 ;外部中断0,控制流水灯启停
ORG 000BH
LJMP T0ISR ;定时0控制流水灯循环点亮
ORG 0030H
MAIN:
MOV TMOD,#01H ;设置定时器0工作模式
MOV TH0,#HIGH(65536-60000) ;60毫秒定时
MOV TL0,#LOW(65536-60000)
SETB ET0
SETB EA
MOV A,#0FEH ;LED等初始化
MOV P0,A
SJMP $
EXT0:
CPL TR0
RETI
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-60000)
MOV TL0,#LOW(65536-60000)
SETB ET0
RL A
MOV P0,A ;循环点亮LED灯
RETI
END
3. 各位单片机达人帮个忙 用汇编语言做一个 发光二极管循环点亮的程序 要求 使八只发光二极管做循环点亮一次
发光二极管循环点亮
八只发光二极管左循环点亮一次、然后右循环点亮一次。
循环。
仿真试验成功。
4. 单片机用汇编写两个数码管显示0到99循环的程序
1、新建项目,做好准备。
5. 51单片机汇编语言如何用定时器中断实现数码管从0-F每秒进1且循环进行。
ORG0000H
JMPBEGIN
ORG000BH
LJMPT0ISR
ORG0030H
TABLE:;共阴极数码管显示代码表
DB3FH,06H,5BH,4FH,66H;01234
DB6DH,7DH,07H,7FH,6fh;56789
;---------------------------------------
BEGIN:
MOVTMOD,#01H
MOVTH0,#HIGH(65536-50000)
MOVTL0,#LOW(65536-50000)
SETBTR0
SETBET0
SETBEA
MOVR2,#20
CLRA
LOOP:
MOVDPTR,#TABLE
PUSHACC
MOVCA,@A+DPTR
MOVP0,A
POPACC
SJMPLOOP
T0ISR:
CLRTR0
MOVTH0,#HIGH(65536-50000)
MOVTL0,#LOW(65536-50000)
SETBTR0
DJNZR2,T0E
INCA
ANLA,#0FH
T0E:
RETI
END
6. 单片机汇编语言程序的三种基本结构
汇编语言程序有顺序程序、分支程序、循环程序三种。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。
分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。
(6)单片机汇编语言循环扩展阅读:
注意事项:
汇编指令不区分大小写,目的操作数是存结果的,原操作数是被操作的。
二进制数后跟b,十六进制数后跟h,十进制数不需特殊标记。
汇编源程序中,数据不能以字母开头,需要在前面加上0,如0a000h。
7. 用汇编语言编写51单片机程序让LED灯亮0.5秒,灭2秒无限循环
ORG 0000H
MOV SP,#60H
E: CLR P1.0 ; P1.0 LED亮
ACALL DEL_1S ; 0.5 秒
SETB P1.0 ; P1.0 LED灭
ACALL DEL_2S ;2秒
SJMP E ; 循环
DEL_1S: MOV R2,#10 ; 0.5秒
JMP DEL_2S+2
DEL_2S: MOV R2,#40 ; 2秒
SETB TR1
LOOP: JNB TF1,$
MOV TL1,#0B0H
MOV TH1,#3CH
CLR TF1
DJNZ R2,LOOP
CLR TR1
RET
END
8. 怎么用汇编语言实现for循环
汇编语言实现for循环十分容易,比如51汇编,用DJNZ指令就可以了,举例如下:
C语言:
for(i=0;i<10;i++)a=a+i;
汇编语言:
i equ 30h
m equ 31h
......
mov i,#0
mov m,#0
mov r2,#10
loop:
mov a,i
add a,m
mov m,a
djnz r2,loop
9. 单片机led左移然后右移循环亮灭的汇编语言
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#0FEH
MOV R2,#8
LOOP1:
MOV P0,A
LCALL DELAY
RL A
DJNZ R2,LOOP1
MOV R2,#8
LOOP2:
MOV P0,A
LCALL DELAY
RR A
DJNZ R2,LOOP2
SJMP MAIN
DELAY:
MOV R2,#200
DLY:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DLY
RET
END