19. “叮咚”门铃

1. 实验任务

当按下开关SP1,AT89S51单片机产生“叮咚”声从P1.0端口输出到LM386,经过放大之后送入喇叭。

2. 电路原理图

图4.19.1

3. 系统板上硬件连线

(1. 把“单片机系统”区域中的P1.0端口用导线连接到“音频放大模块”区域中的SPK IN端口上;

(2. 在“音频放大模块”区域中的SPK OUT端口上接上一个8欧或者是16欧的喇叭;

(3. 把“单片机系统”区域中的P3.7/RD端口用导线连接到“独立式键盘”区域中的SP1端口上;

4. 程序设计方法

(1. 我们用单片机实定时/计数器T0来产生700HZ和500HZ的频率,根据定时/计数器T0,我们取定时250us,因此,700HZ的频率要经过3次250us的定时,而500HZ的频率要经过4次250us的定时。

(2. 在设计过程,只有当按下SP1之后,才启动T0开始工作,当T0工作完毕,回到最初状态。

(3. “叮”和“咚”声音各占用0.5秒,因此定时/计数器T0要完成0.5秒的定时,对于以250us为基准定时2000次才可以。

5. 程序框图

主程序框图

T0中断服务程序框图

图4.19.2

6. 汇编源程序
T5HZ EQU 30H
T7HZ EQU 31H
T05SA EQU 32H
T05SB EQU 33H
FLAG BIT 00H
STOP BIT 01H
SP1 BIT P3.7
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START: MOV TMOD,#02H
MOV TH0,#06H
MOV TL0,#06H
SETB ET0
SETB EA
NSP: JB SP1,NSP
LCALL DELY10MS
JB SP1,NSP
SETB TR0
MOV T5HZ,#00H
MOV T7HZ,#00H
MOV T05SA,#00H
MOV T05SB,#00H
CLR FLAG
CLR STOP
JNB STOP,$
LJMP NSP
DELY10MS: MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
INT_T0: INC T05SA
MOV A,T05SA
CJNE A,#100,NEXT
MOV T05SA,#00H
INC T05SB
MOV A,T05SB
CJNE A,#20,NEXT
MOV T05SB,#00H
JB FLAG,STP
CPL FLAG
LJMP NEXT
STP: SETB STOP
CLR TR0
LJMP DONE
NEXT: JB FLAG,S5HZ
INC T7HZ
MOV A,T7HZ
CJNE A,#03H,DONE
MOV T7HZ,#00H
CPL P1.0
LJMP DONE
S5HZ: INC T5HZ
MOV A,T5HZ
CJNE A,#04H,DONE
MOV T5HZ,#00H
CPL P1.0
LJMP DONE
DONE: RETI
END

7. C语言源程序

#include <AT89X51.H>
unsigned char t5hz;
unsigned char t7hz;
unsigned int tcnt;bit stop;
bit flag;void main(void)
{unsigned char i,j;TMOD=0x02;TH0=0x06;TL0=0x06;ET0=1;EA=1;while(1){if(P3_7==0){for(i=10;i>0;i--)for(j=248;j>0;j--);if(P3_7==0){t5hz=0;t7hz=0;tcnt=0;flag=0;stop=0;TR0=1;while(stop==0);}}}
}void t0(void) interrupt 1 using 0
{tcnt++;if(tcnt==2000){tcnt=0;if(flag==0){flag=~flag;}else{stop=1;TR0=0;}}if(flag==0){t7hz++;if(t7hz==3){t7hz=0;P1_0=~P1_0;}}else{t5hz++;if(t5hz==4){t5hz=0;P1_0=~P1_0;}}
}

单片机实例19—— “叮咚”门铃(硬件电路图+汇编程序+C语言程序)相关推荐

  1. 单片机实例22——电子琴(硬件电路图+汇编程序+C语言程序)

    22. 电子琴 1. 实验任务 (1. 由4X4组成16个按钮矩阵,设计成16个音. (2. 可随意弹奏想要表达的音乐. 2. 电路原理图 图4.22.1 3. 系统板硬件连线 (1. 把" ...

  2. 单片机实例1——闪烁灯(硬件电路图+汇编程序+C语言程序)

    1. 闪烁灯 1. 实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒. 2. 电路原理图 图4.1.1 3. 系统板上硬件连线 ...

  3. 单片机实例3——多路开关状态指示(硬件电路图+汇编程序+C语言程序)

    3. 多路开关状态指示 1. 实验任务 如图4.3.1所示,AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,P1.4-P1.7接了四个开关K1-K4,编程将开关的状态反映到发光二极 ...

  4. 单片机实例6——报警产生器(硬件电路图+汇编程序+C语言程序)

    6. 报警产生器 1. 实验任务 用P1.0输出1KHz和500Hz的音频信号驱动扬声器,作报警信号,要求1KHz信号响100ms,500Hz信号响200ms,交替进行,P1.7接一开关进行控制,当开 ...

  5. 单片机实例2——模拟开关灯(硬件电路图+汇编程序+C语言程序)

    2. 模拟开关灯 1. 实验任务 如图4.2.1所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭. 2. 电 ...

  6. 单片机实例21——拉幕式数码显示技术(硬件电路图+汇编程序+C语言程序)

    21. 拉幕式数码显示技术 1. 实验任务 用AT89S51单片机的P0.0/AD0-P0.7/AD7端口接数码管的a-h端,8位数码管的S1-S8通过74LS138译码器的Y0-Y7来控制选通每个数 ...

  7. 单片机实例26——点阵式LED简单图形显示技术(硬件电路图+汇编程序+C语言程序)

    26. 点阵式LED简单图形显示技术 1. 实验任务 在8X8点阵式LED显示"★"."●"和心形图,通过按键来选择要显示的图形. 2. 电路原理图 图4.26 ...

  8. 单片机实例14——4×4矩阵式键盘识别技术(硬件电路图+汇编程序+C语言程序)

    14. 4×4矩阵式键盘识别技术 1. 实验任务 如图4.14.2所示,用AT89S51的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线:在数码管上显示每个按键 ...

  9. 单片机实例27——ADC0809A/D转换器基本应用技术(硬件电路图+汇编程序+C语言程序)

    27. ADC0809A/D转换器基本应用技术 1. 基本知识 ADC0809是带有8位A/D转换器.8路多路开关以及微处理机兼容的控制逻辑的CMOS组件.它是逐次逼近式A/D转换器,可以和单片机直接 ...

最新文章

  1. 4个不同小球放入4个不同盒子_初婚老公和二婚老公有什么不同?听听这4个再婚女人的真实想法...
  2. jsp里照片放在哪里_杭州这所新学校今天办了场热闹的“电影节”,校园里处处高科技,黑板一秒变电脑屏幕...
  3. Educational Codeforces Round 73 (Rated for Div. 2) F. Choose a Square 线段树 + 二维转一维
  4. 计算机名字需要加_PC吗,ecs计算机名字
  5. 简单易懂源码解析字符串拼接
  6. LIRe提供的图像检索算法的速度
  7. 区块链安全:基于区块链网络攻击的方式原理详解
  8. C/C++底层实现指定磁盘只读
  9. 学习BMFONT的感想
  10. 小米手机上的云便签怎么把数据导出电脑
  11. python + selenium + chrome 如何清理浏览器缓存
  12. iOS 获取手机通信录(仿微信 支付宝 手机话费 流量充值效果)
  13. 计算机课程培养关键能力,大学生计算机应加强自学能力培养
  14. php子孙树,递归 迭代 得到家谱树 子孙树
  15. xmanager调出图形安装oracle,Xmanager快速连接Linux图形界面教程
  16. 正则表达式(Regular Expression)——入门笔记(常用正则表达式符号、正则表达式在线调试工具)
  17. webstorm11 破解办法
  18. 【2019-08-14】慢慢来,才叫快
  19. 《JAVA编程思想》学习笔记:第16章(数组)
  20. 高考后能学习——阿里云-winserver服务器购买以及使用(包含【.Net】、【PHP】、【MySQL】、【Navicat】、【Java】、安装)

热门文章

  1. 华硕电脑pycharm安装pytorch全过程(windonws下CUDA10.2+CUDNN8.3+pytorch1.9)亲测可用
  2. 「前端架构」React和Vue -CTO的选择正确框架的指南
  3. ise生成msk文件的用处_修改cad图纸后怎么设置不生成bak文件及bak备份文件的用处...
  4. 长城 世恒DF716 openEuler 20.03 LTS SP3 FT2000 4核 升级linux-5.10.38 报错
  5. 如何做好企业的设备管理?管理者注意了!
  6. 【0513】 将字符串转换成时间格式
  7. [USACO4.4]追查坏牛奶
  8. oppo专用计算机,usb计算机连接方式,教您oppo手机怎么连接电脑
  9. Android开源项目链接
  10. 【新征程-ssm】3、mybatis的使用