您好,欢迎来到微智科技网。
搜索
您的当前位置:首页单片机综设实验:按键亮灯报警-

单片机综设实验:按键亮灯报警-

来源:微智科技网


功能:按键亮灯报警:按不同键会亮不同的灯,报不同的警。具体:不按键时会亮两盏灯。按下键SW17会亮四盏灯,蜂鸣器叫一声;按下键SW16会亮8盏灯,蜂鸣器一直响。

ORG 0000H ;程序地址0000H

AJMP ORG AJMP ORG AJMP ORG MAIN: MOV MOV MOV MAIN;跳转到MAIN程序

000BH ;T0中断入口地址

IT0P;跳转到IT0P程序,时钟T0溢出中断子程序

001BH;T1中断入口地址

IT1P;跳转到IT1P程序,时钟T1溢出中断子程序

0100H;主程序地址

MOV SP,#60H;设置堆栈指针

A,#0E7H;点亮中间两盏灯

P0,A

TMOD,#22H;开启TR0和TR1

MOV TL0,#00H;设置T0初值

MOV TH0,#00H

MOV TL1,#00H;设置T1初值

MOV TH1,#00H

SETB ET0;开启时钟T0溢出中断

SETB EA;允许中断

SETB TR0;开启T0定时

SETB ET1;开启T1溢出中断

HERE: SJMP HERE;原地循环,模拟一段主程序,等待中断

IT0P: MOV A,#0F0H;让P3.0到P3.3为低电平,P3.4和P3.7为高电平

MOV P3,A

JB P3.7,RETURN;P3.7由高电平变为低电平,才会往下走

MOV A,#0FH;让P3.0到P3.3为高电平,P3.4和P3.7为低电平

MOV P3,A

JB P3.0,RETURN;P3.0由高电平变为低电平,才会往下走。

MOV A,#0C3H;只有P3.7和P3.0 皆从高电平变为低电平,说明SW17键按下。

MOV P0,A;点亮中间四盏灯。

CLR P1.4;蜂鸣器响

D:MOV R7,#10 ;1μs ;延时1.31843s

D1:MOV R6,#0;μs

D2: MOV R5,#0;1μs

D3:DJNZ R5,D3;2μs*256=512μs

DJNZ R6,D2;256*(1+2*256+2)μs=131.84μs

DJNZ R7,D1;(1+13184+2)*10μs=1.31843s

CLR TR0;关掉T0

SETB P1.4;关掉蜂鸣器

SETB TR1;开启T1

RETI;中断返回

IT1P: MOV A,#0F0H;让P3.0到P3.3为低电平,P3.4和P3.7为高电平

MOV P3,A

JB P3.7,RETURN;P3.7由高电平变为低电平,才会往下走

MOV A,#0FH;让P3.0到P3.3为高电平,P3.4和P3.7为低电平

MOV P3,A

JB P3.1,RETURN;P3.1由高电平变为低电平,才会往下走。

CLR P1.4;蜂鸣器响

MOV A,#00H;只有P3.7和P3.0 皆从高电平变为低电平,说明SW17键按下

MOV P0,A;点亮8盏灯

CLR TR1;关掉T1

SETB TR0;开启T0

RETURN: RETI;中断返回

END;结束

P3.7 P3.6 P3.5 P3.4

P3.0 C P3.1 D P3.2 E P3.3 F 8 4 0

9 5 1

A 6 2

B 7 3

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务