还剩23页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
课程设计总结报告课程名称电子技术课程设计设计题目基于的室内火、气89c52安全监测装置专业电子信息工程班级姓名学号_____________指导教师_________________才报告成绩_________________________信息与工程学院四个按键的功能分别为第一个按键是结束选择,按一下表示显示管进行显示当时温度;第二个键是减键,对设定的温度进行减一;第三个键是加键;第四个键是进入键,按一下表示进入设置温度模式
2.8复位电路GND-||-I原理VCC上电时,C3充电,在10K电阻上出现电压,使得单片机复位;几个毫秒后,c充满,10k电阻上电流降为3电压也为0,使得单片机复位工作期间,按下S4,C放电,在10K电阻上出现电压,使得单片机复位S松手,C又充电,几个毫秒后,单片机进入工作状态第三章流程图设计电路系统模块
3.1>数码管显示烟雾浓度MQ-2传憋器放大电胳单片机--------------裟鸣器闻一报警灯亮*18B20S度传感器按键图・电路套模块温度检测侬度检测浓度大于设定值主程序流程图
3.2溟度大于设定值^T^NO主程呼温度报警子程序
3.3读取温度埠重大于设定温度?〉(返回有i空状态)烟雾报警子程序图
3.4对写程序流程图
3.518B20图化对皋位数据程序18B208开始对读为数据流程图
3.618B208初始比*开始读数摇做MO/八位已I、、经读完1YES▼(返回)图对读取位数据程序18B208温度值转换流程图
3.7开始NO/\息度为负,>YES]________1________转换为正值i1——装换温度—1(返回I图9:温度值转换读取温度流程图
3.818B20图从读取温度Kh18B20第四章电路实验与调试软件设2计
4.2fk,,JoCe;rD.I#include reg
52.haooinclude T8b
20.h”#include intrins.h#define uintunsigned int//宏定义!#define ucharunsigned char//宏定义OH]9000#definedate P1〃数码管段选uint temp,alarm_temp;定义温度,设定温度bit keyjock,changjlag;bit zerotemp_flag;//负温度标志位uchar codeLED[]={0xC0,0xF9,0xA4,OxBO,0x99,0x92,0x82,0xF8,0x80,0x90;//三位共阳极数码管0-9的断码//数码管位定义“O04^■GCW9・19€3i000—cqsbit ge=P1A2;//个位sbit shi=PHI;//十位sbit bai=PMO;//百位sbit bell=P2A7;//蜂鸣器定义sbit MQ=P1A5;//MQ・2定义sbit DQ=P1A4;〃18B20定义〃按键定义二0一三年十二月十九日sbit keyO=P2A0;sbit keyl=F2人1;sbit key2=F2人2;sbit key3=F2人3;void delay_msuintxms{〃延时子程序uintij;fori=xms;iO;i-//i=xms即延时约xms;for j=11O;jO;j-;void delay_usuintz{//微妙级延时whilez--_nop_;void displayuintx{//数码管显示子程序〃取一温度值x uinttempi;tempi=x;tempi=tempi%1000;〃使温度值不超过三位有效数〃动态显示〃显示个位ge=0;//开显示date=LED[temp1%10];将tempi的个位显示出来delay_ms2;//延时2msge=1”关显示〃显示十位shi=0;〃开显示date=LED[temp1%100/10]0x7f;〃将tempi的十位显示出来,并显示小数点dp位delay_ms2;〃延时2msshi=1;〃关显不〃显示百位bai=0;〃开显示date=LED[temp1/100];〃将tempi的百位显示出来delay_ms2;〃延时2msbai=1;〃关显示void alarmvoid{〃报警子程序iftempalarm_temp|MQ==0//如果温度大于设定值或MQ2=0bell=0;〃蜂鸣器响elsebell=1;//蜂鸣器不响★★★★★★★★★★★★★★★★/★18B20木口void fuweivoid{//18B20复位DQ=0;delay_us50;600usDQ=1;delay_us5;//7Ous ucharread_18B20void{〃从18B20读取8位数据uchari,dat;fori=0;i8;i++//从最低位开始接收dat»=1;DQ=0;_nop_;DQ=1;_nop_;〃数据右移一位_nop_;ifDQdat|=0x80;〃延时1usdelay_us2;〃释放总线,很关键!!!〃延时2us后在读取,不然读取值会紊乱〃如果接收到的是1,则最高位置为1〃延时40usreturn dat;void write_18B20uchardat{〃对18B20写8位数据uchar i;fori=0;i8;i++DQ=0;//从最低位开始发送_nop_;II延时10US〃右移一位DQ=bitdat0x01;〃延时40USdat»=1;delay_us1;〃释放总线DQ=1;void changetempvoid{〃温度值转换uint Temp_L,Temp_H;Temp_L=read_18B20;读取低八位Temp_H=read18B20;〃读取高八位,当温度为负数时temp764为1,反之为0ifbitTemp_HOx80zerotemp_flag=1;//温度为负数标志位//负温度计算Temp_H=OxOf;temp=仃emp_H«8|Temp_L*
0.625;temp=仃emp_H«8|Temp_L*
0.625;//保存一位小数void read_tempvoid{〃从18B20读取温度fuwei;//复位delay_us10;//延时write18B200xcc;〃跳过读取序列号write_18B200x44;开始转换温度fuwei;//复位delay_us10;〃延时write_18B200xcc;〃跳过读取序歹U号write_18B200xbe;读暂存指令changetemp;〃读取转换温度fuwei;〃复位int mainvoid{//主程序alarm_temp=220;//设定温度初始值read_temp;//18b20测温delay_ms500;〃延迟500mswhile1{read_temp;〃18b20测温displaytemp;〃显示测到的温度alarm;〃报警if!keyO如果keyO=O,则进入温度修改状态delay_ms2;〃延迟2ms,消抖叫!key〃如果keyO=O,则确定键按下,显示温度changjlag=1;whilechang_flagifkey1key2keyjock=1;//如果keyl key2=1,则无效if!key1delay_ms2;〃延迟2ms,消抖if!key1ifkeyjockalarm_temp+=10;alarm_temp+10=alarm_temp温度力口1ifalarm_temp990〃如果数码管前两位大于99,则清零alarmjemp=0;keyjock=0;if!key2delay_ms2;〃延迟2ms,消抖if!key2ifkey_lockalarm_temp-=10;//alarm_temp+10=alarm_temp温度减1ifalarm_temp1000//如果三位数码管都是0,则减一后变为990alarmjemp=990;keyjock=0;if!key3delay_ms2;〃延迟2ms,消抖if!key3ifkeyjockchang_flag=0;keyjock=0;displayalarmjemp;显示设定温度调试与处理出现问题
4.
31.温度显示不正确,发现DS18B20电路少接一个电阻
2.程序无法上电,发现复位程序出现虚焊第五章设计总结在二周的电子课程设计中,这次的实验不仅加强了硬件的使用能力,还加强了软件设计能力在这之中有效的巩固了本学期所学的专业知识,加强了电子实物制作的动手能力在这次的实验设计中我们首先要做了就是画硬件图,在脑海里形成一个总的构思,包括主程序流程图,按键处理流程图,更新当前时间流程图,更新显缓存流程图等,这是比较难的,开始我们毫无思路,在老师的精心指导下最终成功的画出焊接是比较简单的,一般一个下午就可以完成,最重要的是焊接中很容易出现的虚焊问题必须认真对待最后是程序设计与调试,程序的话应该说是上学期学过的东西运用运用而已,但是总是有些被遗忘了,在编程的时候会遇到或多或少的问题,最后也是通过参考别人的程序才成功经过这次设计,我认识到自己还有很多的不足,只有将课本上的理论知识结合实践不断练习,不断总结提炼,反复思考实践中的经验教训,才能更好的,将课本知识化为自己的知识希望在以后的学习中能更加努力,学习好这门专业(附录一)主电路图wUMZ.a-电w*TXEPSI竺科)MAXMJJ5f]FJ2PuATTAF5♦OKUgbKTAL1KTAL1VH9UJ甲森(附录二)课程设计元器件清单表器件名称型号数量单片机STC89C521温度传感器DS18B201运算放大器LM3581烟雾传感器MQ21底座各一个DIP40,DIP8数码管共阳三连体三极管85503晶振12MHZ电容33PF422UF210K101K10电阻
4.7K1047010电位器103,1023按键20*30CM5蜂鸣器1发光二极管1排针万能板.
3.第一章项目任务
31.1设计任务
31.2设计要求4第二章方案设计与硬件选择
42.1单片机89c524*
2.2温度传感器模块DS18B
202.3烟雾报警器电路MQ
25.
2.4信号调理及放大整形模块,LM358芯片
2.5显示模块LED
2.6报警电路
2.7按键分析
2.8复位电路揽二,早流程图设计
3.1电路系统模块
3.2主程序流程图
3.3温度报警子程序
3.4烟雾报警子程序图
93.5对18B20写程序流程图
103.6对18B20读8为数据流程图
123.7温度值转换流程图.
13.专业专注
3.818B20读取温度流程图
1.4第四章电路实验与调试
1.
4.1焊接
164.2软件设计
1.
4.3调试与处理出现问题
1.9第五章设计总结
1.9附录
1.1使用温度传感器和烟雾传感器把环境温度和烟雾的浓度情况检测出来,再采用单片机进行温度的显示和烟雾显示,可设置温度报警和烟雾报警要求进行硬件、软件系统设计要求位温度的显示;设置报警温度;烟雾报警设计要求
1.2能检测火灾事故,并报警1⑵能检测烟雾,有毒气体泄漏事故,并报警方案设计与硬件选择第二章单片机
2.189C52VCC PO.OT2P10AHC.
1.AD I13EXP
1.1PO
2.P
1.2巩JP
1.4ADP2Q3AD364M0SL-P
1.3PO.4/At435疔3MSO P
0.5/AK346SCK.P
1.7P
0.6AM337RST PC732SRXD.P
3.0AD;EAVPP31TXD.PJ.1AliPRDG30INTDP32IESN29INTI.P33P
2.7A1528P
2.
6.A1427PZ.tf/n V
3.5P
2.5A1326P./XVR再序P
2.
4.A1225MW/RD PS7PI
3.AII24P
2.3ZXTAL2P
2.2AU23F
2.2/XTAL172P
2.f/GND P
2.0A821P2,0/vcc⑶能实时显示室内温度值,并通过键盘设置温度报警上下限值STC89C52管脚功能廛]AT89C52是一种带4K字节闪烁可编程可擦除只读存储器-FPEROM-FalshProgrammable andErasable ReadOnly Memory的低电压,高性能CMOS8位微处理器,俗称单片机温度传感器模块
2.2DS18B
202.
2.1数字温度传感器DS18B20,具有独特的单总线接口方式,需一根总线就能实现控制模块与DS18B20之间的半双工通信DS18B20是集传感元件和转换电路于一体的小芯片上另外,℃DS18B20也支持“一线总线”接口,测量温度范围为-55—1-125匕在-10~+85°C范围内现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性
2.
2.2工作原理DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可擦除的EERAMo高速暂存RAM的结构为8字节的存储器,结构如图1所示第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值该字节各位的定义热图二所示低5位一直为1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式在DS18B20出厂时该位被设置为0,用户不要改动,R1和R0决定温度转换得精度位数,即用来设置分辨率,定义方法见表10图-图R1k密度,LSB一字节*温度MSB/“1用户字节字节*TH.2工用户字字TL“3节节,配置寄存2*器厂字节•“4EPROM字节*.556^字节.6字节.保留,“7字节-.8CRJPlTkH用户亭节2采用电源供电方式此时DS18B20的1脚接地,2脚作为信号线,3脚接电JLHTL用户字节A供.电方式
2.
2.
32.3烟雾报警器电路MQ2AW©9,5MQ2烟雾传感器,有只针状管脚,其中4个用于信号取出,2个用于提供加热电流当烟雾扩散时,烟雾传感器感应到烟雾时,继电器打到NO,风扇开始工作,马达转动,风扇产生吸力将烟雾吸入到装有活性炭和负离子的过滤外壳中清新干净的气体
2.4信号调理及放大整形模块,LM358芯片LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器当P
1.5为0时报警
2.5显示模块LED采用LED数码管显示
2.6报警电路用蜂鸣器作报警提示音,加发光二极管,声光结合充分突出了紧急提示信号的特点
2.7按键分析。