本文目录
- 怎么用汇编编写单片机第一个灯亮与灭
- 用汇编语言写一个单片机系统,一开关控制一个LED的亮灭,是用汇编,C语言看不懂,解答的感激不尽
- 单片机汇编语言程序,我想写一个循环点亮的LED,然后用外部中断0接到一个按键上,怎么写我需要详细的程序
- 如何用汇编语言控制led灯闪烁
- 5分悬赏-汇编语言 LED逐个点亮
- 用汇编语言编写开关控制LED灯
- 汇编语言 编写 程序 LED 灯显示
- 单片机间隔点亮一led灯的汇编语言程序
- 如何用汇编语言编写一道程序,使得1个LED在按键的控制下,按一次按键LED向左循环亮,再按一次,又向右循环亮
- 汇编语言 单片机 一个开关控制一盏LED的亮灭
怎么用汇编编写单片机第一个灯亮与灭
这要看你怎么接的,
给你参考
ORG 0000HLJMP MAIN
MAIN:MOV P0,#0FEH ; 初始点亮LED1MOV R7,#0FEH ; 保存P0MAIN_LP:LCALL DELAY ; 延时MOV A,R7 ;RL A ; 循环移位MOV R7,A ; 保存到R7MOV P0,A ; 点亮下一个LEDJMP MAIN_LP ; 不停循环
;===========================================================DELAY: ; 延时子程序MOV R0,#0FFHMOV R1,#0FFHDLY_LP:NOPNOPDJNZ R0,DLY_LPMOV R0,#0FFHDJNZ R1,DLY_LPRETEND
用汇编语言写一个单片机系统,一开关控制一个LED的亮灭,是用汇编,C语言看不懂,解答的感激不尽
KEY EQU P1.0LED EQU P0.0 ORG 0HLOOP: JB KEY, $ DJNZ R6, $ DJNZ R7, $ - 2 JB KEY, LOOP CPL LED JMP LOOPEND
单片机汇编语言程序,我想写一个循环点亮的LED,然后用外部中断0接到一个按键上,怎么写我需要详细的程序
循环点亮LED灯,也就是流水灯效果的控制,可以用定时器来控制,这样做相对代码量较少而时间比较精确,外部中断0接以按键,可以控制动态效果的启停。程序如下:ORG 0000HLJMP MAINORG 0003HLJMP EXT0 ;外部中断0,控制流水灯启停ORG 000BHLJMP T0ISR ;定时0控制流水灯循环点亮ORG 0030HMAIN: 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 RETIT0ISR: CLR TR0 MOV TH0,#HIGH(65536-60000) MOV TL0,#LOW(65536-60000) SETB ET0 RL A MOV P0,A ;循环点亮LED灯 RETI END
如何用汇编语言控制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
仿真图如下
5分悬赏-汇编语言 LED逐个点亮
没有R8,延时1秒是可以准确算出来的:当晶振已知的情况,假设为12MHz,那么1个机器周期为1us,而DJNZ指令需2个Tm(机器周期),所以如用DJNZ来延时,则需要执行其次数为500000次.又因为DJNZ是个8位操作指令,所以可把500000分解为250*200*10就好.而且循环点亮完全可以用移位指令来实现.程序如下:ORG 02HSTART: MOV A,#0FEH ; 这里是假设低电平灯亮,如果高电平灯亮可以定义为01HS0: MOV P1,A CALL DELAY RL A SJMP S0 DELAY: MOV R5, #10Time1s_1: MOV R6, #200; Time1s_2: MOV R7, #250; djnz R7, $ DJNZ R6, Time1s_2 djnz R5, Time1s_1 RETEND
用汇编语言编写开关控制LED灯
8个开关分别接P1.0-P1.7控制输出是P0.0-P0.7LED灯还有开关延时6S和按住一个按钮锁住其它按钮例如:按下P0.0松开按钮然后延时5s灯亮并且在5s之内锁住P0.1-P0.7的输入--P0.0,是接的按键? 前面不是说接到LED的吗?--延时5s?前面不是说6s吗?
汇编语言 编写 程序 LED 灯显示
开关控制指示灯显示MY8255_A EQU 0A860H;8255A口地址MY8255_B EQU 0A861H;8255B口地址MY8255_C EQU 0A862H;8255C口地址MY8255_MODE EQU 0A863H;8255控制口地址CODE SEGMENT ASSUME CS:CODE START: MOV DX,MY8255_MODE MOV AL,82H OUT DX,AL ;将控制字82H写入8255控制口,A口方式0输出,B口方式0输入, C口未用到。A1: MOV DX,MY8255_B IN AL,DX ;读8255 B口内容 MOV DX,MY8255_A OUT DX,AL ; 将前面读到的B口内容送到A口,即A口内容=B口内容 CALL BREAK ;调用子程序BREAK JMP A1 ;跳转到A1BREAK PROC NEAR ;BREAK子程序 MOV AH,1 INT 16H JZ RETURN ;读按键字符,ZF=1,则返回;ZF=0,则AL=字符 MOV AX,4C00H INT 21H ;返回DOS RETURN:RET BREAK ENDP CODE ENDS END START ;流水灯显示MY8255_A EQU 0b860H;8255A口地址MY8255_B EQU 0b861H;8255B口地址MY8255_C EQU 0b862H;8255C口地址MY8255_MODE EQU 0b863H;8255控制口地址DATA SEGMENTLA DB ?;留出1个字节LB DB ?;留出1个字节DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV DX,MY8255_MODE MOV AL,80H OUT DX,AL ;控制字80H送入8255控制口,A口、B口都是方式0输出,C口未用到。 MOV DX,MY8255_A MOV AL,7FH OUT DX,AL ;将7FH送入A口 MOV LA,AL ;将7FH送入LA存储单元 MOV DX,MY8255_B MOV AL,0FEH OUT DX,AL ;将FEH送入B口 MOV LB,AL ;将FEH送入LB存储单元 CALL DALLYA1: MOV AL,LA ROR AL,1 ;LA内容循环右移1次 MOV LA,AL MOV DX,MY8255_A OUT DX,AL ;将循环右移后的LA内容送A口,其目的是让A口连接的LED灯依次向右循环点亮 MOV AL,LB ROL AL,1 ;LB内容循环左移1次 MOV LB,AL MOV DX,MY8255_B OUT DX,AL ;将循环左移后的LB内容送B口,其目的是让B口连接的LED灯依次向左循环点亮 CALL DALLY ;延时,让一个LED灯发光稳定之后再点亮另一个 CALL BREAK ;调用BREAK子程序,看是否有键按下 JMP A1 ;跳转到A1DALLY: MOV CX,3FFH ;延时子程序D1: MOV AX,0FFFFHD2: DEC AX JNZ D2 LOOP D1 RETBREAK PROC NEAR ;是否有键按下 MOV AH,06H MOV DL,0FFH INT 21H JE RETURN ;若无,则转RETURN MOV AX,4C00H INT 21H ;返回DOSRETURN:RET BREAK ENDPCODE ENDS END START
单片机间隔点亮一led灯的汇编语言程序
main:mov P1,#0aahacall delaymov P1,#55Hacall delaysjmp maindelay:mov r7,#0ffh de:mov r6,#0ffh djnz r6,$ djnz r7,de ret end 这就是你想要的效果,不妨试试哦!
如何用汇编语言编写一道程序,使得1个LED在按键的控制下,按一次按键LED向左循环亮,再按一次,又向右循环亮
KEY BIT P1.0;按键与P1.0相连接;LED与P2相连接,低电平有效KZW BIT 20H.0;标志控制位,1——向左循,0——右循环ORG 00HLJMP MAINORG 30HMAIN: MOV P2,#0FFH JB P1.0,$ ACALL DELAY10MS;延时10ms JNB P1.0,$ MOV P2,#0FEH SETB KZWLOOP: JB P1.0,KS ACALL DELAY10MS;延时10ms JNB P1.0,$ CPL KZWKS: JNB KZW,R_ML_M:;左循环 MOV A,P2 RL A MOV P2,A ACALL DELAY LJMP LOOPR_M:;右循环 MOV A,P2 RR A MOV P2,A ACALL DELAYLJMP LOOPDELAY10MS:(略) RETDELAY:(略) RET END
汇编语言 单片机 一个开关控制一盏LED的亮灭
ORG 0000H;复位启动AJMP START;;主控程序========================START: SETB P1.7 ;P17 = 1LOOP: JB P3.2,LOOP ;没有按键 LCALL DELAY ;延时消抖 JB P3.2,LOOP ;确认按键 CPL P1.7 ;取反 JB P3.2,LOOP ;检测按键 LCALL DELAY ;延时 LJMP LOOP ;死循环 ;DELAY: MOV R7,#0 ;延时子程序 MOV R6,#0 MOV R5,#128 ;LOOP1: DJNZ R7,KJYS ;延时约20毫秒 DJNZ R6,KJYS DJNZ R5,KJYS RET ;延时间到返回 END ;结束延时子程序数据可能因不同系统时钟需要调整。