微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 本人初学单片机,关于中断和延时求助!

本人初学单片机,关于中断和延时求助!

时间:10-02 整理:3721RD 点击:
初学51单片机,我现在要做一个走道灯,要用汇编语言,一个按钮开关控制一盏灯,第一次按下开关后灯亮,进入延时程序,到规定时间后灯自动灭。在灯亮延时的过程中我想灭灯,就是再按一次开关,灯就立刻灭掉(即中断程序),第三次按下开关后,灯亮,进入延时程序。以此类推。程序代码如下,但在protues仿真不理想,按钮无法精确控制灯的亮灭,望高人指点,如何改善,实现精确控制
LIGHT BIT P1.0
KEY   BIT P3.2
      ORG 0000H
      SJMP START
      ORG 0003H
      AJMP INTO
      ORG 0030H

START:CLR LIGHT
      JB  KEY,START
      SETB EA
      SETB EX0
      LCALL DELAY
      SETB  LIGHT
      LCALL DELAY
      AJMP $
DELAY:MOV R1,#50
LOOP4:MOV R2,#170
LOOP3:MOV R3,#100
LOOP2:MOV R4,#50
LOOP1:DJNZ R4,LOOP1
      DJNZ R3,LOOP2
      DJNZ R2,LOOP3
      DJNZ R1,LOOP4
INTO:CPL  P1.0
     RETI
     END

有没有高手啊,你们有什么看法都说一下吧,麻烦了

用了中断,不要判断按键是否按下

汇编 ,不懂呢.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top