单片机汇编语言程序,我想写一个循环点亮的LED,然后用外部中断0接到一个按键上,怎么写我需要详细的程序

单片机汇编语言程序,我想写一个循环点亮的LED,然后用外部中断0接到一个按键上,当按下按键的时候停在任意led上,然后再按下的时候继续执行,我需要一个详细的程序且带说明!!急啊 我写的这个不对帮我改一下:ORG 0000H LJMP MAIN ORG 0003H ORG EINT0 CLR P1.0 LCALL DELAY CLR P1.1 LCALL DELAY SETB P1.2 LCALL DELAY CLR P1.3 LCALL DELAY CLR P1.4 LCALL DELAY CLR P1.5 LCALL DELAY CLR P1.6 LCALL DELAY CLR P1.7 LCALL DELAY MOV SP ,#60H CLR IT0 SETB EX0 SETB EA MOV DPTR,#1000H EINT0: PUSH PSW PUSH ACC MOV A,P1 MOVX @DPTR,A INC DPTR POP ACC POP PSW RETI DELAY: MOV R7,#200DL1: MOV R6,#250 DL2: NOP NOP NOP DJNZ R6,DL2 DJNZ R7,DL1 RET END 请各位老师同学帮忙改一下 中断时候是不是要将保存到寄存器里呢?怎么送到寄存器里保存起来到时候再继续呢 帮忙解答一下很急啊

循环点亮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
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-15
你的程序太乱了,根本看不下去,给你说一下思路,你将中断设置为电平触发方式,当有中断的时候将当前A里边的IO口显示放到中断程序里边输出到LED显示上,当按键松开时候就继续走流水灯了,你这个应用不太符合我们常规的中断应用,我们中断是处理一件事情,你的中断需要多次响应中断。本回答被提问者采纳
第2个回答  2011-12-10
这个只要给P1口送入FE或者01看你外部电路的LED接法
然后只要用左移或者右移命令就可以循环
中断的时候把那个数据送个寄存器R
重新开始的时候只要调用寄存器的值就ok
具体实现自己去做吧
第3个回答  2011-12-10
我们用C语言的

单片机汇编语言程序,我想写一个循环点亮的LED,然后用外部中断0接到一个...
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...

用汇编语言编写开关控制LED灯
摁钮来说,因为是输入,在输入之前,先对接脚做输出高电平处理,然后做接收,否则可能会烧掉单片机接脚内部的fet 管 延时六秒不好控制,如果晶振频率你知道的话,多用nop指令,来缓冲循环段的长短不一问题

单片机外部中断0用按键输入,怎样消抖?
51单片机中断脚一般都有内部施密特缓冲器,不需要消抖。豆豆严重可以在中断脚上接一个104电容到地。 zhanghaodianzi | 发布于2011-11-23 举报| 评论 2 4 if(INT0==0){while(!INT0)程序} 程绍缘111 | 发布于2012-03-07 举报| 评论 0 1 if(KEY==0)\/\/消抖{delay(); if(KEY==0){语句;}...

单片机led左移然后右移循环亮灭的汇编语言
单片机led左移然后右移循环亮灭的汇编语言 电路与程序如下:本程序,经过硬件检验,完全符合题目要求。

INT0外部中断控制LED 单片机汇编语言
根据zhxiufan的代码,修改为下降沿触发中断。LED EQU P1.0 ORG 0000H LJMP MAIN ORG 0003H LJMP EXT0 ORG 0030H MAIN:SETB IT0;下降沿触发中断 SETB EX0 SETB EA SETB LED SJMP EXT0:CPL LED RETI 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 ma...

单片机c语言编了个流水灯,用按键怎么实现它暂停。
void main(void){ uint i;uchar temp;uint Flag1=0; 按键标志位bai uint Flag2=0;while(1){ Flag1 = keyscan();if(Flag1==1)(Flag2=~Flag2); \/\/如果一旦检测到一次按键扫描就把标志位2 打开;再次就关闭;if(Flag2==1)\/\/ 如果标志位打开就开始流水灯 { temp=0x01;for(i=0;i...

51单片机通过外部中断和开关控制LED闪亮
是不是按一下开关触发中断,使LED闪烁,再按一下,LED熄灭?LED EQU P1.0 ORG 0000H LJMP MAIN ORG 0003H LJMP EXT0 ORG 0030H MAIN:MOV TMOD,#01H MOV TH0,#HIGH(65536-41667)MOV TL0,#LOW(65536-41667)SETB ET0 SETB EA SETB EX0 SETB IT0 CLR A SJMP EXT0:CPL TR0 RETI T0...

用汇编语言写一个单片机系统,一开关控制一个LED的亮灭,是用汇编,C语 ...
KEY EQU P1.0 LED EQU P0.0 ORG 0H LOOP:JB KEY,DJNZ R6,DJNZ R7, $ - 2 JB KEY, LOOP CPL LED JMP LOOP END

51单片机中如何用汇编语言编写流水灯
流水灯就是51单片机控制led灯依次点亮的控制方式。具体程序如下:ORG 0000H;复位启动AJMP START;ORG 001BH;T1中断AJMP T1INT;;定义变量===YSJSEQU 30H;延时计数器LEDEQU 31H;LED控制缓冲器 ;主程序===START:MOV LED,#0FEH;初始化数据MOV YSJS,#0;MOV TMOD,#10H;定时器1工作于方式1,16位定时...

相似回答