收藏 分销(赏)

开关控制报警器.doc

上传人:丰**** 文档编号:4801262 上传时间:2024-10-13 格式:DOC 页数:8 大小:56.01KB 下载积分:6 金币
下载 相关 举报
开关控制报警器.doc_第1页
第1页 / 共8页
开关控制报警器.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
开关控制报警器 设计题目:开关控制报警器 设计要求: 1) 根据功能图写出源代码。 2) 调试代码并实现功能。 3) 用开关K1控制报警器,程序控制P1.0输出两种不同的频率 的声音,模拟出很逼真的报警效果。 设计目的: 1) 学会使用控制报警器。 2) 掌握开关控制报警器的编程方法,灵活运用。 3) 熟悉认识单片机课程,对单片机进一步有了深刻了解。 4) 锻炼自己自学与探索的方式提高解决单片机问题能力。 设计过程: 1.原理介绍:程序使P1.0端口输出不同频率的信号,产生方波的程序模拟出很逼真的报警效果,有参数t形成不同的频率,利用了Alarm函数的双重for循环,内循环中的不同频率使SPK=~SPK有了可变的延时间隔,而外循环的延时间隔决定了声音的长短,即报警声音的持续时间,本题是由P1.7端口的开关直接控制的,当开关断开时,报警声停止。 2.系统程序原理图: 开关控制报警器程序框图 3.程序流程图报警器响起 While(1)? 开始 开关K1==1? ? 硬件初始化 : Yes Yes No No 结束 返回 报警器响起 显示子程序入口 SPK=~SPK的时间相等? No 不报警 Yes 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++) { 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语句的间隔相等,系统会发出单调的声音,不会模拟出报警的效果。 还有就是在Alarm函数的双重for循环中,内层的for循环使用了参数t,不同的t值使SPK=~SPK具有可变的延时间隔,因此形成了可变频率,从而模拟出报警声音的效果。本题中的Alarm(90)和Alarm(120)使SOUNDER循环发出两种不同频率的声音,模拟出很逼真的报警效果。 6.程序调试: a) 软件调试:在KEIL中新建project文件,建立.uv2文件,再新建.C文件编写并完成程序,并进行编译生成HEX文件。过程中也出现了很多问题。刚开始调试时出现好多错误,只能对程序重新编写及调试,经过反复调试终于生成HEX文件了。 b) 硬件调试:在proteus软件仿真时。因为原理图是老师给过的,只要把生成的HEX导入调试运行就可以了。直到达到自己想要的结果。 设计总结: 两周的单片机课程设计终于完成了,其中包含着快乐,也有心酸,我的课程题目是开关控制报警器,大家都觉得这个题目是比较简单的,其实并不是这样。做了之后发现老师给的电路图简单。但我认为他真正的困难是C语言设计程序,我刚看到题目时真是一头雾水,不知道从何下手,老师把程序框图给了我们,让我们根据程序框图及硬件电路写出程序代码。而这对于我来讲真的很困难,在平时只是学一些单片机的理论知识,真正应用到实践中还是比较少的,不过,通过查阅资料,终于写好了程序。在这之前可是遇到了好多困难啊,经过老师的,同学的帮助,终于都修改正确,并运行成功了。 在完成单片机课程设计后,我发现自己还有好多的不足,所学的知识根本就是皮毛,更多的只是需要自己去探索,以以至于这次的设计还有些功能不能主动的完成。但通过这次的实验,提高和巩固了我的单片机知识。特别是软件方面,让我们认识到要把理论和实践结合在一起,理论应用到实践中是多么的重要。 参考文献: 《单片机C语言程序设计实训100例——基于8051+proteus仿真》 彭伟 编著 电子工业出版社 《MCS-51系列单片机应用系统设计》 何立民 编著 北京航空航天大学出版社 《A/D D/A转换接口技术及数据采集系统设计》 王秀玲 编著 北京清华大学出版社 《MCS-51/96系列单片机原理及应用》 孙涵芳 编著 北京航空航天大学出版社 《单片机的C语言应用程序设计》 马忠梅 编著 北京航空航天大学出版社 《单片微型计算机原理、应用与实验》 张友德 编著 上海复旦大学出版社 《MCS-51/96系列单片微型计算机原理及其应用》 薛钧义 编著 西安交通大学出版社
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服