电子技术综合设计温度测量显示系统设计.docx
- 文档编号:3073245
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:10
- 大小:237.64KB
电子技术综合设计温度测量显示系统设计.docx
《电子技术综合设计温度测量显示系统设计.docx》由会员分享,可在线阅读,更多相关《电子技术综合设计温度测量显示系统设计.docx(10页珍藏版)》请在冰豆网上搜索。
电子技术综合设计温度测量显示系统设计
二○一四~二○一五学年第二学期
信息科学与工程学院
电子技术综合设计
(一)
课程设计报告
班级:
姓名:
学号:
指导教师:
二○一五年六月十八日
一、设计任务
温度测量显示系统设计
在Proteus软件下,利用AT89C51系列单片机、A/D芯片ADC0831、OP07高精度单片运算放大器、TCK温度传感器、LED等设计一个温度测量显示报警系统,外接至少4个LED数码管,将当前测量温度值显示在LED上。
根据系统的设计要求,温度传感器TCK输出信号经信号差动放大到0—5V,放大器的输出送ADC80C51进行A/D转换,A/D转换结果送单片机进行处理,最后将所测的温度在LED数码管上显示。
仿真时可在TCK温度传感器上手动修改输入当前环境温度值。
2、设计要求
1)测量范围为0℃~+120℃,精度为1℃。
2)利用温度传感器测量某一点环境温度。
3)利用A/D转换将温度信号转换成电压信号,在LED数码管上显示。
4)设置一个开关,当开关断开时LED显示个人学号的后4位数字,当开关闭合时工作在测温报警显示状态,LED显示温度值。
5)设置2个指示LED灯,当温度低于80°时,绿灯亮,当温度高于80°时,红灯亮报警。
6)扩展功能:
语音报警。
7)所有单片机程序代码都用C语言编写。
8)用Proteus软件进行仿真。
报告要求:
1).在报告中应对系统的设计思想、设计方法用文字详细说明,有总体电路框图和Proteus连接图的截图。
2).有程序者在报告中应有完整的程序清单(必需加注释)。
3).有程序者在报告中应有完整的程序流程框图。
4).谈谈自己通过这次设计实践的收获和体会。
课程考核方式
考查
要求:
提交课程设计报告,设计报告内容包括设计任务,设计要求,软硬件设计,程序结果描述。
1)每人独立完成题目的基本功能。
包括设计报告、电路图和程序清单(带注释),运行结果及有关运行说明。
2)程序检查。
分优、良、中、及格、不及格,如为不及格,需下一学年进行重修;
3)课程设计报告,正规书写打印,否则不计成绩;
4)验收时每位同学现场演示仿真结果,指导老师随时针对电路设计、程序调试、代码功能等各个方面进行提问。
5)设计报告若雷同或超过50%雷同,则以作弊论,作弊者本课程均计零分。
本课程无补考,只能下一学年进行重修。
3、各部分电路设计
1)温度测量电路设计
度测量电路要实现的目标是:
将0~120度通过传感器测量,运算放大器放大的0~5V的电压信号。
温度传感器选用Pa-t传感器,放大器采用OP07E放大器,温度信号输入采用差动放大形式,放大器输出为:
即放大倍数为100倍。
在Proteus中实测放大器输出数据为:
温度
0
10
20
30
40
50
60
70
80
90
100
110
120
电压
0.00
0.43
0.83
1.24
1.66
2.07
2.49
2.91
3.33
3.75
4.17
4.58
5.00
从测试数据来看,本设计符合0~120
对应输出0~5V电压要求。
温度测量电路
2)A/D转换器的设计
A/D转换的目标是将模拟量转化成数字量,选用ADC0831串行A/D转换芯片做为温度测试系统的A/D转换芯片,设计电路如图所示:
3)LED显示电路设计
LED显示电路
4)报警电路设计
当温度低于80度时,绿灯亮;当温度高于80度时,红灯亮。
报警电路
5)系统整体硬件电路设计
4、Proteus仿真调试及结果
1)温度显示结果
2)
学号显示
五、电路设计代码
#include
#include
#defineucharunsignedchar//宏定义用来随后定义变量的时候简单定义
#defineuintunsignedint//宏定义用来随后定义变量的时候简单定义
sbitCS=P3^7;//adc0831片选信号控制端
sbitCLK=P3^6;//adc0831时钟信号输入端
sbitDO=P3^5;//数据输出口
sbitled_red=P3^4;//报警灯信号控制
sbitled_green=P3^0;//绿灯信号控制端
sbitswi=P3^2;//读状态
ucharcodetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x39};//0-9数字编码
ucharcodedu[]={0xfe,0xfd,0xfb,0xf7};//段选控制
ucharpeng[]={4,0,5,2};//学号
uchardate;
voiddelay()//延时
{
intx,y;
for(x=1;x>0;x--)
for(y=180;y>0;y--);
}
voidxianshi()//数码管显示函数
{uchari;
for(i=0;i<4;i++)
{
P1=du[i];
P2=tab[peng[i]];//显示学号和温度,中间转换数组
delay();
}
}
uintRead_ADC0831()//AD转换函数,及时序实现
{uchari,temp;
DO=1;
_nop_();
_nop_();
CS=0;
_nop_();
_nop_();
CLK=0;
_nop_();
_nop_();
CLK=1;
_nop_();
_nop_();
CLK=0;
_nop_();
_nop_();
CLK=1;
_nop_();
_nop_();
CLK=0;
_nop_();
_nop_();
for(i=0;i<8;i++)
{
CLK=1;
_nop_();
_nop_();
temp<<=1;
if(DO)
{
temp++;
}
CLK=0;
_nop_();
_nop_();
}
CS=1;
_nop_();
_nop_();
return(temp);//返回温度测量值
}
voidmain()
{
while
(1)
{swi=1;
if(swi==0)
{
date=Read_ADC0831();//读状态0831
date=(date)*1.0/255*500/4.16;//装换后数据
if(date>25)
date=date+1;
if(date>80)//温度大于80则红灯亮
{led_red=0;
led_green=1;}
else//低于80则绿灯亮
{led_green=0;
led_red=1;}
peng[3]=10;//最高位
peng[0]=date%1000/100;//低位
peng[1]=date%1000%100/10;
peng[2]=date%1000%100%10;
xianshi();
}
else//显示学号
{peng[0]=4;
peng[1]=0;
peng[2]=5;
peng[3]=2;
xianshi();}
}
}
6、设计实践收获和体会
在本次题目的设计过程当中确实遇到了很多的问题,往往是自己能力所不能的解决的,所以有些东西还需借助网上帮助,proteus第一次使用,学习用了较长时间。
通过这次设计的成功使我的自信心大增,同时学习了更多设计知识。
在设计中用了ADC0831采集电压,通过温度传感器采集温度,并将温度信号变成电压信号,用放大器将微弱电压放大,放大到ADC0831可以检测的范围0~5V,分别对应温度0~120度。
用4个数码管来显示温度和我的学号,显示采用数码管扫描的动态显示。
通过操作段选和位选来实现。
通过按键来切换显示温度和学号。
欢迎您的下载,
资料仅供参考!
致力为企业和个人提供合同协议,策划案计划书,学习资料等等
打造全网一站式需求
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子技术 综合 设计 温度 测量 显示 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)