电压超限报警器
安徽工业大学工商学院课程设计说明书课程设计名称: 测控系统原理与设计课程设计题目: 电压超限报警系统设计学 院 名 称: 工商学院专业: 测控技术与仪器 班级: 1041 班姓名(学号) 葛敬兵柏华乐邵志远赵振安都勇评分: 教师:2013 年 12 月 16 日测控系统原理与设计 课程设计任务书20 13 - 20 14 学年 第 1 学期题目 电压超限报警系统设计内容及要求当检测电压超过设定上下限值并且达到十次以上时, 发出蜂鸣器报警声, 相应的指示灯亮。当电压处于上下限之间时,蜂鸣器停止报警,报警灯灭。进度安排1. 布置任务、查阅资料、选择方案,领仪器设备2. 领元器件、焊接、制作3.调试、答疑4. 验收5. 写报告学生姓名:葛敬兵 、柏华乐、邵志远、赵振安、都勇指导时间 : 第 13~ 15 周 指导地点:教二 4 楼任务下达 2013 年 12 月 1 日 任务完成 2013 年 12 月 16 日考核方式 1. 评阅 □ 2. 答辩 □ 3. 实际操作□ 4. 其它□指导教师摘要本次课程设计的目的:设计电压( 0V— 5V)超限报警系统电路,由一个蜂鸣器通过是否正常鸣叫告诉使用者电压是否超限,并通过 LED 显示观察。首先通过电位器调节 0 到 5V 之间的电压,其次通过选择开关来选择两个模拟电压通道,输入到 ADC0809 获得数字量,在单片机上显示,判断当电压超过设定上下限值时产生报警功能。关键字:电压超限 报警目录第一章 绪论 . 1第二章 设计内容及要求 . 22.1 设计内容 . 22.2 设计要求 . 22.3 实验设计目的 . 2第三章 实验电路与工作原理 . 33.1 流程图 . 33.2 设计原理及其工作电路 . 53.3 硬件电路详解 . 6第四章 实验小结与心得体会 . 7参考文献 . 8附录一 芯片介绍 . 10附录二 焊电路板技术 . 12附录三 源代码 . 141 绪论电压是日常生活,工业,医学,环境保护,化工,石油等领域最常用到的物理量。 而且随着现代工业的发展, 人们需要对工业生产中有关电压系统进行控制。 会导致人生安全, 所以需要用到电压报警控制器, 如在工厂生产工作时电压不应过高以及过低, 当电压超上下限值时, 需要对工作人员给予警示, 所以需要用到电压报警控制器。 而且很多领域的电压可能较高或较低, 有时人无法靠近或现场无, 然而需人力来监控会导致人生安全, 所以需要用到电压报警控制器。 所以,对电压超限报警控制的研究就要更加要精确。随着现代化,科技的腾飞,信息技术的高密度的集中,电压的控制也成为时代关注的一部分, 制作一个高技术的电压报警系也是尤为重要的。 交流电压超限报警器广泛运用, 不仅保护人生安全, 而且也更好的保护器件的使用, 使器件使用寿命更长。现在我们初步了解电压的相关性能, 运用最简单的模拟电路对电压的控制,为以后对电压控制的深入研究打下了坚实的基础。2 第二章 设计内容及要求2.1 设计内容设计一个电压超限报警系统。2.2 设计要求1.可设定上下限电压报警值。 (上限 4V,下限 1V)2. 两个模拟通道输入,超限次数为十次。2.当检测电压超过设定上下限值时,发出蜂鸣器报警声,要求报警声嘀嘀不停发出响声, LED一直亮。2.3 实验设计目的1. 通过该实验提高自身的实验素养,实验操作、设计、分析能力,学会将理论运用到实践当中,学会实验调试过程的分析和处理。2. 设计并完成一个可以达到相应设计要求的交流电压超限报警器。3. 学会电压采样。3 第三章 实验电路与工作原理3.1 流程图定义有时也称作输入 -输出图。该图直观地描述一个工作过程的具体步骤。流程图对准确了解事情是如何进行的,以及决定应如何改进过程极有帮助。1 理论流程图4 实际流程图5 3.2 设计原理与硬件电路图6 3.3 硬件电路详解第一部分 分压电路 :通过 VCC( +5V)的电压流过电阻分压第二部分 复位电路:以开关通断的形式达到清零的效果具体到电路解释:当电路出现异常故障时,电路无法继续工作。通过按 reset键,来达到初始化作用第三部分 报警电路: 通过 LED 来传信号, 使得第五部分电路的蜂鸣器一直响,并使得数码管显示第四部分 主干电路: 有 ADC0809 转换电路和 80C52 单片机单路组成核心的电路驱动整个电路结构,使得整个电路和谐统一,完美工作第五部分 蜂鸣器电路:当信号发生冲过某一个上限或下限时,及时报警,蜂鸣器响。具体到电路解释:当电路中电压超过 4V 或者小于 1V 时,蜂鸣器会报警。第六部分 数码管显示:数码管以最简单明了的形式,显示信号的收发。具体到电路解释:当 count 计数为 0 时,数码管 1 显示。当 count 计数为 1 时,数码管 2 显示。当 count 计数为 2 时,数码管 3 显示。7 第四章 实验小结与心得体会本次电路设计是比较系统地集电路设计、资料的查找、方案确定,分析问题、解决问题、焊接技术于一身。通过本次实验我们提高了自身的实验素养,实验操作,设计,分析能力,学会将理论运用到实践当中,学会实验调试过程的分析和处理。 我们可以自己动手完成一个简单的可以达到相应设计要求的交流电压超限报警器。 掌握了电桥设计的方案以及反馈放大电路的计算与实际运用, 掌握了与非门电路的运用与设计。这次课程设计虽然结束了,但也有些地方不尽人意,比如说,调试的是否出现了波形调不出来, 或者调出的好像是正弦波等问题, 在滤波效果上并不是十分的理想, 未能达到理想的滤波效果。 还有电路的焊接也存在着一些缺陷。 同时在本次的课程设计过程中也收获了许多, 它不仅培养了独立思考、 动手操作的能力,团队协作能力;更重要的是我们学会了如何去分析问题、解决问题,将理论付诸于实践。 在今后的学习中我们会更加注意将理论与实践相结合, 因为再好的理论,都必须由实践去证明,理论才是实践检验真理的唯一标准。8 附录一 芯片介绍ADC0809 芯片的介绍8 位 A/D 转换器 ADC0809 的工作原理1、 ADC0809 的内部组成⑴ 8 路模拟开关及地址锁存与译码电路——选择 8 个模拟输入通道信号之一完成 A/D 转换;⑵ 8 位 A/D 转换器(逐次逼近型)——完成所选通道的模信号的 A/D 转换;⑶三态输出锁存缓冲—锁存 A/D 转换后的数字结果;⑷控制逻辑与时序—控制芯片的工作并提供转换所需的时序。9 80C51 引脚图10 实物电路图11 12 附录二 焊电路板技术焊接是电子产品组装过程中的重要环节之一。 如果没有相应的焊接工艺质量保证, 则任何一个设计精良的电子装置都难以达到设计指标, 众为兴公司通过多年对焊接行业了解,总结出一套完美的焊接过程。因此,在焊接时,必须做到以下几点:1.焊接表面必须保持清洁即使是可焊性好的焊件, 由于长期存储和污染等原因, 焊件的表面可能产生有害的氧化膜、 油污等。 所以, 在实施焊接前必须清洁表面, 否则难以保证质量。2.焊接时温度、时间要适当,加热均匀焊接时, 将焊料和被焊金属加热到焊接温度, 使熔化的焊料在被焊金属表面浸湿扩散并形成金属化合物。 因此, 要保证焊点牢固, 一定要有适当的焊接温度。在足够高的温度下, 焊料才能充分浸湿, 并充分扩散形成合金层。 过高的温度是不利于焊接的。 焊接时间对焊锡、 焊接元件的浸湿性、 结合层形成都有很大的影响。准确掌握焊接时间是优质焊接的关键。3.焊点要有足够的机械强度为了保证被焊件在受到振动或冲击时不至于脱落、 松动, 因此, 要求焊点要有足够的机械强度。 为使焊点有足够的机械强度, 一般可采用把被焊元器件的引线端子打弯后再焊接的方法, 但不能用过多的焊料堆积, 这样容易造成虚焊和焊点与焊点之间的短路。4.焊接必须可靠,保证导电性能为使焊点有良好的导电性能, 必须防止虚焊。 虚焊是指焊料与被焊物表面没有形成合金结构, 只是简单地依附在被焊金属的表面。 在焊接时, 如果只有一部分形成合金, 而其余部分没有形成合金, 则这种焊点在短期内也能通过电流, 用仪表测量也很难发现问题。 但随着时间的推移, 没有形成合金的表面就要被氧化,此时便会出现时通时断的现象,这势必造成产品的质量问题。总之,质量好的焊点应该是:焊点光亮、平滑;焊料层均匀薄润,且与焊盘大小比例合适,结合处的轮廓隐约可见;焊料充足,成裙形散开;无裂纹、针孔、无焊剂残留物。13 焊接五步法如附录三 1 图:附录三 1 图焊接工具如附录三 2 图:附录三 2 图附录二 源代码#include #include #define uchar unsigned char sbit ST=P3^0; sbit EOC=P3^5; sbit OE=P3^2; sbit ADDCS=P1^7; 14 sbit fmq=P1^5; sbit bjd=P1^6; sbit xuanze=P3^3; sbit clk=P3^7; unsigned int data dis_buf[3]; unsigned char code dis_code[10]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3 0x99,0x92,0x82,0xf8,0x80,0x90};// 4, 5, 6, 7, 8, 9 unsigned char k=0,l=0; unsigned int AD_DATA[4]; //保存 IN0 和 IN1 经 AD 转换后的数据int count=0;int count1=0,count2; /********* 系统初始化 ***********/ void init() { EA = 1; // 开总中断TMOD = 0x02; // 设定定时器 T0 工作方式 1 TH0=246; //10uS TL0=246; TR0=1; // 启动定时器 T0 ET0=1; ST=0; OE=0; } /***********AD 转换函数 **********/ void AD() { ST=0; ADDCS=0; // 选择通道 IN0 ST=1; // 启动 AD 转换ST=0; while(0==EOC); OE=1; AD_DATA[0]=P2; OE=0; ST=0; ADDCS=1; // 选择通道 IN1 ST=1; // 启动 AD 转换ST=0; while(0==EOC); OE=1; 15 AD_DATA[1]=P2; OE=0; } /***************** 数据处理 **************/ /***********T0 中断服务程序 ************/ void t0(void) interrupt 1 using 0// { clk=~clk; count1++; // if(count2==250){ P2=~P2;count2=0;} } void display() { if(xuanze==0)AD_DATA[2]=AD_DATA[0]*2; else if(xuanze==1) AD_DATA[2]=AD_DATA[1]*2; dis_buf[0] = dis_code[AD_DATA[2]%10 ]; dis_buf[1] = dis_code[ AD_DATA[2]/10%10]; dis_buf[2] = dis_code[ AD_DATA[2]/100]; if(count1>=100) {count++; count2++; count1=0;} //计时 2ms 的次数if(count>=3) count=0; switch(count) {case 0:P1=0xf7,P0=dis_buf[0];break;//dis_buf[0] case 1:P1=0xfb,P0=dis_buf[1];break;//dis_buf[1] case 2:P1=0xfd,P0=dis_buf[2];break;//dis_buf[2] default:break; } } void Alam() { if(xuanze==0)AD_DATA[3]=AD_DATA[0]; if(xuanze==1) AD_DATA[3]=AD_DATA[1]; 16 if(AD_DATA[3]>=205)++k; if(AD_DATA[3]51) bjd=1; k=10; } if(l>=10) { fmq=0; bjd=1; l=10; } } /***************** 主函数 **************/ void main() { init(); while(1) { AD(); display(); Alam(); } }