




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机课程设计 报警器学院:湖南工业大学 班级:电气1101 姓名:桂衡林 学号: 指导老师:何静单片机课程设计 简易安防声光报警器一 实验要求自制一个单片机最小系统,包括串口下载、复位电路,采用两路外部中断输入门禁和红外探测 两路信号(采用两个小按键模拟),中断信号输入后能将报警信息在四位一体数码管上显示,并输出声光报警信号。二 实验步骤 1)查找相关资料,用protus将本课程设计电路图画出来 2)理清思路,写好程序,并用keil软件将程序编译出来,生成hex文件.3)将hex文件加载到单片机中,模拟运行,(加载方法:双击51单片机,选择先前所生成的hex文件,然后运行),若没有达到实验要
2、求,则反复的修改程序,调试,知道出现实验结果.4)按照自己的仿真实验图,结合老师所给的最小系统图以及其中的引脚,将板子焊好5)把之前写好的程序(适当的注意单片机的输出口是否一一对应)烧到51单片机,然后进行测试,不断的调试,知道出现该有的实验现象和实验结果。三进入中断0绿灯灭,关闭显示判断中断0键是否按下数码管显示为0,红灯闪蜂鸣器出现报警声中断1是否出现结束是否是否程序流程图中断0程序流程图四 实验程序#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsign
3、ed intsbit LEDREDCON=P00;sbit LEDGREENCON=P01;sbit spe=P20;sbit Kint0=P32;sbit Kint1=P33;uchar FRQ=0x00;void delay(uint ms) uchar i;while(ms-) for(i=0;i<9;i+);void init() /初始化子函数 P1 = 0x00;TMOD = 0x11;TH0 = 0x00;TL0 = 0xff;IT0 = 1;IT1 = 1;IE = 0x8f;/EA=1;ET1=1;EX1=0;ET0=1;EX0=1;IP = 0x05;TR0 = 0;
4、TR1 = 0;void main()init();while(1) FRQ+; delay(1); void external_int0() interrupt 0 /中断0 LEDGREENCON=1; /绿灯灭P1=0x00; /关闭显示屏 if(LEDREDCON=1) LEDREDCON=0; else LEDREDCON=1; while(!Kint0); /中断0键按下的时候delay(15); P1=0x3f; /输出显示为0while(Kint1!=0) /中断1不出现的时候 delay(15); spe=spe; /扬声器发声 LEDREDCON=0; /红灯亮 delay
5、(10); LEDREDCON=1; /红灯灭 delay(10); void external_int1() interrupt 2LEDREDCON=1;P1=0x00; if(LEDGREENCON=1) LEDGREENCON=0;else LEDGREENCON=1;if(Kint1=0)while(!Kint1); /中断1键按下时delay(10);P1=0x06; / 数码管显示为1while(Kint0!=0)/当中断0键不按下的时候 LEDGREENCON=0; /绿灯亮 delay(15); LEDGREENCON=1; /绿灯灭 delay(15); spe=spe;
6、/电平取反 扬声器出现报警声 delay(10);五 仿真实验图六 实验中所遇到到得问题以及解决方法问题一 程序出现问题,导致当按下中断0键时,间隔出现显示数据和亮灯,并且红灯一直不闪问题中断程序如下void external_int0() interrupt 0 write_command(0x01);LEDGREENCON=1; count1+;if(count1=1)if(LEDREDCON=1)LEDREDCON=0;else LEDREDCON=1;if(Kint0=0)while(!Kint0);delay(5);LEDREDCON=0;write_data('0'
7、);spe=1;if(count1=2)count1=0; LEDREDCON=1;write_command(0x01); void timer0() interrupt 1 TH0=0xfe;TL0=FRQ;spe=spe;计数出现错误。将采用定时器直接废除,直接启用延时程序改出的程序如下void external_int0() interrupt 0 /中断0 LEDGREENCON=1; /绿灯灭P1=0x00; /关闭显示屏 if(LEDREDCON=1) LEDREDCON=0; else LEDREDCON=1; while(!Kint0); /中断0键按下的时候delay(15
8、); P1=0x3f; /输出显示为0while(Kint1!=0) /中断1不出现的时候 delay(15); spe=spe; /扬声器发声 LEDREDCON=0; /红灯亮 delay(10); LEDREDCON=1; /红灯灭 delay(10); 问题二 扬声器一直没有声音,出现声音之后也一直为噪声 扬声器没有声音,一个原因是因为输出口设错了,另外一个就是没有持续的变化高低电平,将spe=1改为spe=spe,另外声音不好听,改变延时来改变声音的音质。问题三 在焊完电路后,复位键无效,数码管无任何显示 检查复位电路之后,发现按键没有焊好,数码管没有接电源,所以无任何显示。问题四
9、在软件仿真中,发光二极管有明显的闪烁现象,但是在实体中无任何现象 修改程序,将延时延长,因为软件中的延时比硬件中的要快,硬件反应要慢一些,所以延时需要加长问题五 当中断0和1出现的时候显示出现错误 按照数码管显示推出显示0和1的设置确实为0x3f和0x06, 检查各个引脚之后,复位之后,发现其中一段数码管坏掉。改选另一位好的数码管 五,实验心得 在此次单片机课程设计中,从编程到用protus画电路图,到焊板子,遇到很多问题,同时体会遇到问题的无助和解决问题的快乐。 由于以前学单片机用的是汇编,对于单片机用c语言写代码,用的不是很多,通过这一次的课程设计对将c语言应用于单片机编程有一个理性的认识,对整体的结构有一个很好的了解,也加强了对c语言的应用能力。 在实验过程中,很多知识我们并不是很清楚,在碰到这种问题的情况下,最好一般先去百度,查资料,不要不经过大脑思考就去问同学,这样是很不明智的,先去百度,这样既可节省对方的时间,也可以提高自己的学习力。 另外一个很大的收获就是在学习使用软件方面,对keil和protus的使用,在刚开始使用protus的时候,选器件都要花很长的时间,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年现代农业发展与技术应用考试试题及答案
- 2025年教育法规考试试题及答案
- 2025年公营养师(四级)考试练习题及答案
- 2025年儿科护理试题(附答案)
- 2025年创业基础习题与答案
- 2025年安全知识培训试题及答案【各地真题】
- 2025年专利代理师必考题含答案
- 美洲大蠊研粉对脊髓半横断损伤大鼠神经元凋亡影响的研究
- ZT公司技术人员薪酬体系优化研究
- 2025年功能性母料项目发展计划
- 项目部领导带班记录
- 省委消防安全知识培训课件
- 2025年中国心力衰竭诊断和治疗指南
- 乐刻培训课件
- 2024年少先队大队委竞选笔试题(含答案)
- 现代教育技术课程总结
- 2025中国银河证券股份有限公司校园招聘笔试参考题库附带答案详解(10套)
- 瑞幸咖啡新零售品牌招商手册【餐饮】【咖啡连锁】【招商加盟】
- 活动设计:当我成为家长时-小学生亲子关系主题心理活动课
- 苏教版四年级数学上册《不含括号的三步混合运算》教案
- 低钾血症护理常规业务学习
评论
0/150
提交评论