您的位置 首页 开关

51单片机汇编:多路延时开关

要求:51单片机,8个按键、8个发光二极管。;一个键按下则对应灯亮,3秒后灭,每个键控制一个灯。;题目要求的电路,非常简单,用P1连接

要求:51单片机,8个按键、8个发光二极管。

;一个键按下则对应灯亮,3秒后灭,每个键操控一个灯。

;标题要求的电路,十分简略,用 P1 衔接按键、P2 衔接 LED 即可。

;用守时器,守时 7.5 ms,中止 400 遍,即为 3 秒钟。

;针对每个灯,都要有一个计时单元,用来操控亮灯 3 秒钟的时刻。

;用汇编言语编写程序如下:

KEY EQU 30H

K_L EQU 31H

K_T EQU 32H

ORG 0000H

AJMP START

ORG 000BH ;T0中止进口地址

JMP T0_INT

START:

MOV TH0, #40 ;守时7.5ms@11.0592MHz

SETB TR0

SETB ET0

SETB EA

SJMP $ ;主程序完毕

;——————————–

T0_INT:

MOV TH0, #40 ;守时7.5ms@11.0592MHz

MOV A, P1

CPL A ;有按键,为1

MOV KEY, A

XRL A, K_L

MOV K_T, A

MOV K_L, KEY

MOV A, KEY

CPL A ;没按则为1

ANL A, K_T ;开释则为1

;———————————–

MOV R0, #40H

MOV R2, #127

T0_L1:

JNB ACC.7, $ + 9

MOV @R0, #200

XCH A, R2

ANL P2, A ;翻开LED

XCH A, R2

RL A

XCH A, R2

RR A ;右移R2

XCH A, R2

INC R0

CJNE R0, #48H, T0_L1

;———————————–

CPL F0

JNB F0, T0_END

MOV R0, #40H

MOV R2, #128

MOV A, R2

T0_L2:

DEC @R0

CJNE @R0, #255, $ + 6

INC @R0

ORL P2, A ;封闭LED

RR A ;右移R2

MOV R2, A

INC R0

CJNE R0, #48H, T0_L2

T0_END:

RETI

;———————————–

END

;———————————–

本程序,使用了守时中止方法,对按键进行检测;并含有延时消抖、等候开释的环节。

在按键按下、再开释后,立刻,就能使 LED 发光,通过 3 秒钟之后,主动平息。

各个按键的动作互不影响,各个 LED 的亮灭,互不搅扰,都是独立的进行操控。

仿真运转的截图如下:

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/kaiguan/318107.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部