开关控制报警器(最新整理)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LS2
C1
22pF
X1
C2
12M
22pF
R1
10k
C3
10uF
SOUNDER
开关
U1
19 XTAL1 18 XTAL2
9 RST
29 30 31
PSEN ALE EA
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
AT89C51
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
马忠梅 编著 北京航空航天大学出版社
《单片微型计算机原理、应用与实验》
张友德 编著 上海复旦大学出版社
《MCS-51/96 系列单片微型计算机原理及其应用》
薛钧义 编著 西安交通大学出版社
不报警
返回
4.程序源代码: //------------------------------------------------------------
// 名称:开关控制报警器 //-------------------------------------------------------------//说明:用 K1 开关控制报警器,程序控制 P1.0 输出两 种不同频率的声音,模拟很逼真的报警效果。 //---------------------------------------------------------------#include <reg52.h> #define uchar unsigned char #define uint unsigned int sbit SPK = P1^0; sbit K1 = P1^7;//发声函数// void Alarm(uchar t) { uchar i,j; for(i=0;i<200;i++) {
在完成单片机课程设计后,我发现自己还有好多 的不足,所学的知识根本就是皮毛,更多的只是需要 自己去探索,以以至于这次的设计还有些功能不能主 动的完成。但通过这次的实验,提高和巩固了我的单 片机知识。特别是软件方面,让我们认识到要把理论 和实践结合在一起,理论应用到实践中是多么的重 要。
参考文献:
《 单 片 机 C 语 言 程 序 设 计 实 训 100 例 ——基 于
39 38 37 36 35 34 33 32
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15
21 22 23 24 25 26 27 28
P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1
6.程序调试:ห้องสมุดไป่ตู้
a) 软件调试:在 KEIL 中新建 project 文件,建立.uv2 文件,再新建.C 文件编写并完成程序,并进行编译 生成 HEX 文件。过程中也出现了很多问题。刚开 始调试时出现好多错误,只能对程序重新编写及调 试,经过反复调试终于生成 HEX 文件了。
b) 硬件调试:在 proteus 软件仿真时。因为原理图是 老师给过的,只要把生成的 HEX 导入调试运行就 可以了。直到达到自己想要的结果。
出报警的效果。 还有就是在 Alarm 函数的双重 for 循环中,内层的 for
循环使用了参数 t,不同的 t 值使 SPK=~SPK 具有可变 的延时间隔,因此形成了可变频率,从而模拟出报警 声音的效果。本题中的 Alarm(90)和 Alarm(120) 使 SOUNDER 循环发出两种不同频率的声音,模拟出 很逼真的报警效果。
SPK = ~SPK; for(j=0;j<t;j++);//由参数 t 形成不同的频率//
} } void main() {
while(1) {
if(K1==1) {
Alarm(90); Alarm(120); } } }
5.程序说明:
程序由主函数和 Alarm 函数两部分组成。 此题关键在于 Alarm 函数的设计,函数中 SPK=~SPK 语句向 P1.0 引脚持续输出 1010101010 这样的序列, 形成的脉冲使 SOUNDER 发出警报。如果 SPK=~SPK 语句的间隔相等,系统会发出单调的声音,不会模拟
了深刻了解。 4) 锻炼自己自学与探索的方式提高解决单
片机问题能力。
设计过程: 1.原理介绍:程序使 P1.0 端口输出不同频率的信号,
产生方波的程序模拟出很逼真的报警效果,有参数 t 形成
不同的频率,利用了 Alarm 函数的双重 for 循环,内循环 中的不同频率使 SPK=~SPK 有了可变的延时间隔,而外 循环的延时间隔决定了声音的长短,即报警声音的持续 时间,本题是由 P1.7 端口的开关直接控制的,当开关断 开时,报警声停止。 2.系统程序原理图:
8051+proteus 仿真》
彭伟 编著
电子工业出版社
《MCS-51 系列单片机应用系统设计》
何立民 编著
北京航空航天大学出版社
《A/D D/A 转换接口技术及数据采集系统设计》
王秀玲 编著 北京清华大学出版社
《MCS-51/96 系列单片机原理及应用》
孙涵芳 编著 北京航空航天大学出版社
《单片机的 C 语言应用程序设计》
P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD
10 11 12 13 14 15 16 17
开关控制报警器程序框图 3.程序流程图:
开始 硬件初始化


K1==1?
Yes
No
While(1)?
No
结束
Yes
报警器响起
显示子程序入口
No
SPK=~SPK 的时
间相等?

Yes
报警器响起
设计总结:
两周的单片机课程设计终于完成了,其中包含着 快乐,也有心酸,我的课程题目是开关控制报警器,
大家都觉得这个题目是比较简单的,其实并不是这 样。做了之后发现老师给的电路图简单。但我认为他 真正的困难是 C 语言设计程序,我刚看到题目时真是 一头雾水,不知道从何下手,老师把程序框图给了我 们,让我们根据程序框图及硬件电路写出程序代码。 而这对于我来讲真的很困难,在平时只是学一些单片 机的理论知识,真正应用到实践中还是比较少的,不 过,通过查阅资料,终于写好了程序。在这之前可是 遇到了好多困难啊,经过老师的,同学的帮助,终于 都修改正确,并运行成功了。
开关控制报警器 设计题目:开关控制报警器 设计要求:
1) 根据功能图写出源代码。 2) 调试代码并实现功能。 3) 用开关 K1 控制报警器,程序控制 P1.0
输出两种不同的频率 的声音,模拟出 很逼真的报警效果。
设计目的:
1) 学会使用控制报警器。 2) 掌握开关控制报警器的编程方法,灵活运
用。 3) 熟悉认识单片机课程,对单片机进一步有
相关文档
最新文档