课程设计总结报告
课程名称 电子技术课程设计
设计题目 基89C52室火气安全监测装置
专 业 电子信息工程
班 级
姓 名
学 号
指导教师
报告成绩
信息工程学院
二〇三年X月X日
目 录
前 言 3
第章 项目务 3
11 设计务 3
12 设计求 3
第二章 方案设计硬件选择 4
21 单片机89C52 4
22 温度传感器模块 DS18B20 4
23 烟雾报警器电路MQ2 5
24 信号调理放整形模块 LM358芯片 6
25 显示模块LED 6
26 报警电路 6
27 键分析 6
28 复位电路 6
第三章 流程图设计 7
31 电路系统模块 7
32 程序流程图 8
33 温度报警子程序 9
34 烟雾报警子程序图 9
35 18B20写程序流程图 10
36 18B20读8数流程图 11
37 温度值转换流程图 12
38 18B20读取温度流程图 13
第四章 电路实验调试 14
41 焊接 14
42 软件设计 14
43 调试处理出现问题 19
第五章 设计总结 19
附录 21
前 言
着现代信息技术飞速发展传统工业改造逐步实现够独立工作温度检测显示系统应诸领域传统温度检测热敏电阻温度敏感元件热敏电阻成低需外加信号处理电路性相较差测温准确度低检测系统定误差传统温度计相次设计基DS18B20数字温度计具读数方便测温范围广测温精确数字显示适范围宽等特点
第章 项目务
11 设计务
温度传感器烟雾传感器环境温度烟雾浓度情况检测出采单片机进行温度显示烟雾显示设置温度报警烟雾报警求进行硬件软件系统设计
求:位温度显示设置报警温度烟雾报警
12 设计求
(1) 检测火灾事报警
(2) 检测烟雾毒气体泄漏事报警
(3) 实时显示室温度值通键盘设置温度报警限值
第二章 方案设计硬件选择
21单片机89C52
AT89C52种带4K字节闪烁编程擦读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)低电压高性CMOS8位微处理器俗称单片机
22温度传感器模块 DS18B20
221 数字温度传感器DS18B20 具独特单总线接口方式需根总线实现控制模块DS18B20间半双工通信DS18B20集传感元件转换电路体芯片 外DS18B20支持线总线接口测量温度范围55°C~+125°C10~+85°C范围 现场温度直接线总线数字方式传输提高系统抗干扰性
222 工作原理
DS18B20温度传感器部存储器包括高速暂存RAM非易失性擦EERAM高速暂存RAM结构8字节存储器结构图1示 第3第4字节THTL拷贝易失次电复位时刷新第5字节配置寄存器容确定温度值数字转换分辨率DS18B20工作时寄存器中分辨率温度转换相应精度数值该字节位定义热图二示低5位直1TM测试模式位设置DS18B20工作模式测试模式DS18B20出厂时该位设置0户改动R1R0决定温度转换精度位数设置分辨率定义方法见表1
图
图二
223 供电方式
采电源供电方式时DS18B201脚接2脚作信号线3脚接电
23 烟雾报警器电路MQ2
MQ2烟雾传感器针状脚中4信号取出2提供加热电流烟雾扩散时烟雾传感器感应烟雾时 继电器NO风扇开始工作马达转动风扇产生吸力烟雾吸入装活性炭负离子滤外壳中排清新干净气体
24 信号调理放整形模块 LM358芯片
LM358 部包括两独立高增益部频率补偿双运算放器P150时报警
25 显示模块LED
采LED数码显示
26 报警电路
蜂鸣器作报警提示音加发光二极声光结合充分突出紧急提示信号特点
27键分析
四键功分:第键结束选择表示显示进行显示时温度第二键减键设定温度进行减第三键加键第四键进入键表示进入设置温度模式
28 复位电路
原理:VCC电时C3充电10K电阻出现电压单片机复位毫秒C充满10k电阻电流降0电压0单片机复位工作期间S4C放电10K电阻出现电压单片机复位S松手C充电毫秒单片机进入工作状态
第三章 流程图设计
31电路系统模块
32程序流程图
33温度报警子程序
34烟雾报警子程序图
3518B20写程序流程图
3618B20读8数流程图
37温度值转换流程图
38 18B20读取温度流程图
第四章 电路实验调试
41 焊接
42 软件设计
#include
#include 18b20h
#include
#define uint unsigned int宏定义
#define uchar unsigned char宏定义
#define date P1 数码段选
uint tempalarm_temp定义温度设定温度
bit key_lockchang_flag
bit zerotemp_flag 负温度标志位
uchar code LED[] {0xC00xF90xA4
0xB00x990x920x820xF80x800x90} 三位阳极数码0~9断码
数码位定义
sbit ge P1^2位
sbit shi P1^1十位
sbit bai P1^0百位
sbit bell P2^7蜂鸣器定义
sbit MQ P1^5MQ2定义
sbit DQ P1^418B20定义
键定义
sbit key0 P2^0
sbit key1 P2^1
sbit key2 P2^2
sbit key3 P2^3
void delay_ms(uint xms)
{延时子程序
uint ij
for(ixmsi>0i)ixms延时约xms
for(j110j>0j)
}
void delay_us(uint z)
{微妙级延时
while(z)
_nop_()
}
void display(uint x)
{数码显示子程序
取温度值x
uint temp1
temp1 x
temp1 temp11000温度值超三位效数
动态显示
显示位
ge 0开显示
date LED[temp110]temp1位显示出
delay_ms(2)延时2ms
ge 1关显示
显示十位
shi 0开显示
date LED[temp110010]&0x7f temp1十位显示出显示数点dp位
delay_ms(2)延时2ms
shi 1关显示
显示百位
bai 0开显示
date LED[temp1100]temp1百位显示出
delay_ms(2)延时2ms
bai 1 关显示
}
void alarm(void)
{报警子程序
if((temp>alarm_temp)|(MQ 0))果温度设定值MQ20
{
bell 0蜂鸣器响
}
else
bell 1蜂鸣器响
}
*****************18B20程序******************
void fuwei(void)
{18B20复位
DQ 0
delay_us(50) 600us
DQ 1
delay_us(5) 70us
}
uchar read_18B20(void)
{18B20读取8位数
uchar idat 低位开始接收
for(i 0i<8i++)
{
dat>>1 数右移位
DQ 0
_nop_() 延时1us
DQ 1 释放总线
_nop_() 延时2us读取然读取值会紊乱关键
_nop_()
if(DQ)
dat|0x80 果接收1高位置1
delay_us(2) 延时40us
}
return dat
}
void write_18B20(uchar dat)
{18B20写8位数
uchar i
for(i 0i<8i++)
{
DQ 0
_nop_()延时10us
DQ (bit)(dat&0x01) 低位开始发送
dat>>1 右移位
delay_us(1) 延时40us
DQ 1 释放总线
}
}
void changetemp(void)
{温度值转换
uint Temp_LTemp_H
Temp_L read_18B20()读取低八位
Temp_H read_18B20()读取高八位温度负数时 temp(7~4)1反0
if(((bit)(Temp_H&0x80)))
{
zerotemp_flag 1 温度负数标志位
负温度计算
Temp_H & 0x0f
temp (Temp_H<<8|Temp_L)*0625
}
temp (Temp_H<<8|Temp_L)*0625 保存位数
}
void read_temp(void)
{18B20读取温度
fuwei() 复位
delay_us(10) 延时
write_18B20(0xcc)跳读取序列号
write_18B20(0x44)开始转换温度
fuwei() 复位
delay_us(10) 延时
write_18B20(0xcc)跳读取序列号
write_18B20(0xbe)读暂存指令
changetemp() 读取转换温度
fuwei() 复位
}
int main(void)
{程序
alarm_temp 220设定温度初始值
read_temp()18b20测温
delay_ms(500)延迟500ms
while(1)
{
read_temp()18b20测温
display(temp)显示测温度
alarm()报警
if(key0)果key00进入温度修改状态
{
delay_ms(2)延迟2ms消抖
if(key0)果key00确定键显示温度
chang_flag 1
}
while(chang_flag)
{
if(key1&key2)
key_lock 1果key1&key21效
if(key1)
{
delay_ms(2)延迟2ms消抖
if(key1)
{
if(key_lock)
{
alarm_temp+10 alarm_temp+10alarm_temp(温度加1)
if(alarm_temp>990)果数码前两位99清零
alarm_temp 0
key_lock 0
}
}
}
if(key2)
{
delay_ms(2)延迟2ms消抖
if(key2)
{
if(key_lock)
{
alarm_temp10 alarm_temp+10alarm_temp(温度减1)
if(alarm_temp>1000)果三位数码0减变990
alarm_temp 990
key_lock 0
}
}
}
if(key3)
{
delay_ms(2)延迟2ms消抖
if(key3)
{
if(key_lock)
{
chang_flag 0
key_lock 0
}
}
}
display(alarm_temp)显示设定温度
}
}
}
43调试处理出现问题
1温度显示正确发现DS18B20电路少接电阻
2程序法电发现复位程序出现虚焊
第五章 设计总结
二周电子课程设计中次实验仅加强硬件力加强软件设计力中效巩固学期学专业知识加强电子实物制作动手力
次实验设计中首先做画硬件图脑海里形成总构思包括程序流程图键处理流程图更新前时间流程图更新显缓存流程图等较难开始毫思路老师精心指导终成功画出
焊接较简单般午完成重焊接中容易出现虚焊问题必须认真
程序设计调试程序话应该说学期学东西运运已总遗忘编程时候会遇少问题通参考程序成功
次设计认识足课理知识结合实践断练断总结提炼反复思考实践中验教训更课知识化知识
希学中更加努力学门专业
(附录) 电路图
(附录二)课程设计元器件清单表
器件名称
型号
数量
单片机
STC89C52
1
温度传感器
DS18B20
1
运算放器
LM358
1
烟雾传感器
MQ2
1
底座
DIP40DIP8
数码
阳三连体
三极
8550
3
晶振
12MHZ
电容
33PF
4
22UF
2
电阻
10K
10
1K
10
47K
10
470
10
电位器
103102
3
键
20*30 CM
5
蜂鸣器
1
发光二极
1
排针
万板
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档