首页 理论教育 门铃声|单片机原理与接口技术:设计与实训

门铃声|单片机原理与接口技术:设计与实训

时间:2023-11-16 理论教育 版权反馈
【摘要】:1 硬件设计使用单片机的定时/计数器T0来产生高频音和低频音信号,发出的高频音持续0.35s,发出的低频音持续0.5s,当按下按键KEY时,启动定时器,单片机发出“叮咚”声,从P1.0口输出到放大电路,经过放大后送入扬声器。表8-1 元器件清单(门铃声)2 程序设计设置定时器定时0.7s,FLAG=0时装入高频音计数值,FLAG=1时装入低频音计数值,FLAG清0则关闭定时器。顺利运行程序后,可听见“叮咚”门铃声。

门铃声|单片机原理与接口技术:设计与实训

单片机接口扩展使用的用途广泛,如果可以在接口上直接放置发声元件,直接通过单片机输入编制的程序,即可以完成门铃声、报警、播放器等功能。

1 硬件设计

使用单片机的定时/计数器T0来产生高频音和低频音信号,发出的高频音持续0.35s,发出的低频音持续0.5s,当按下按键KEY时,启动定时器,单片机发出“叮咚”声,从P1.0口输出到放大电路,经过放大后送入扬声器。按照表8-1所示的元器件清单添加元器件,编辑完成后按照如图8-1所示的原理图连接硬件电路。

表8-1 元器件清单(门铃声)

978-7-111-54295-7-Chapter08-1.jpg

2 程序设计

设置定时器定时0.7s,FLAG=0时装入高频音计数值,FLAG=1时装入低频音计数值,FLAG清0则关闭定时器。程序清单如下。

KEY BIT P1.7;变量KEY指向P1.7口,按钮状态

978-7-111-54295-7-Chapter08-2.jpg

图8-1 门铃声原理图

LCNT EQU 30H;低频计数器

HCNT EQU 31H;高频计数器

FLAG EQU 33H;计数标志

ORG 0000H

SJMP START

ORG 0BH;定时中断入口

LJMP INT_T0

START:MOV LCNT,#00H;LCNT=00H

MOV HCNT,#00H;HCNT=00H

CLR FLAG;清0计数标志

MOV TMOD,#01H;T0作定时器,方式1

MOV TH0,#(65536-700)/256;定时0.7ms,装入计数初始值FD44H

MOV TL0,#(65536-700)MOD 256

KEYCHK:JB KEY,$;判断按钮是否按下

LCALL DELAY

JNB KEY,$

MOV IE,#82H;开中断

SETB TR0;启动Timer

SJMP KEYCHK;循环判断按钮

INT_T0: ;T0中断服务子程序

INC LCNT;LCNT增加1

MOV A,LCNT;计数值载入累加器A中

CJNE A,#100,I1;判断是否等于100(www.xing528.com)

MOV LCNT,#00H;LCNT清0

INC HCNT;HCNT增加1

MOV A,HCNT;计数值载入累加器A中

CJNE A,#05H,I1;判断是否输出500个方波

MOV HCNT,#00H;HCNT清0

INC FLAG;计数标志加1

I1:CPL P1.0;P1.0口相反,电平跳变

MOV A,FLAG;A=FLAG

CJNE A,#00H,I2;判断A是否等于0

LJMP K1;如果FLAG=0发高频音

I2:MOV A,FLAG;A=FLAG

CJNE A,#01H,I3;判断A是否等于1

LJMP K2;FLAG=1时,发低频音

I3:MOV A,FLAG;A=FLAG

CJNE A,#02H,I1;判断A是否等于2

MOV FLAG,#00H;FLAG清0

CLR TR0;关定时器

LJMP RETUNE

K1:MOV TH0,#(65536-700)/256;定时器初始值,发出高频音

MOV TL0,#(65536-700)MOD 256

LJMP RETUNE

K2:MOV TH0,#(65536-1000)/256;定时器初始值,发出低频音

MOV TL0,#(65536-1000)MOD 256

RETUNE:RETI;中断服务子程序结束

DELAY:MOV R5,#20

D1:MOV R6,#250

DJNZ R6,$

DJNZ R5,D1

RET

END

在Keil μVision3中新建项目,选择AT89C51,在汇编源文件中编写程序导入项目,编译汇编源文件,调试程序。在Proteus ISIS中,选中AT89C51属性对话框,设置单片机晶振频率为12MHz,选择Keil生成的.HEX文件,进行联合调试。顺利运行程序后,可听见“叮咚”门铃声。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈