《电子技术综合设计温度测量显示系统设计说明》由会员分享,可在线阅读,更多相关《电子技术综合设计温度测量显示系统设计说明(19页珍藏版)》请在金锄头文库上搜索。
1、. . . .二一四二一五学年第 二 学期信息科学与工程学院电子技术综合设计(一)课程设计报告班 级: 姓 名: 学 号: 指导教师: 二一五年六月十八日一、设计任务温度测量显示系统设计在Proteus软件下,利用AT89C51系列单片机、A/D芯片ADC0831、OP07高精度单片运算放大器、TCK温度传感器、LED等设计一个温度测量显示报警系统,外接至少4个LED数码管,将当前测量温度值显示在LED上。根据系统的设计要求,温度传感器TCK输出信号经信号差动放大到05V,放大器的输出送ADC80C51进行A/D转换,A/D转换结果送单片机进行处理,最后将所测的温度在LED数码管上显示。仿真时
2、可在TCK温度传感器上手动修改输入当前环境温度值。2、 设计要求1) 测量范围为0120,精度为1。2) 利用温度传感器测量某一点环境温度。3) 利用A/D转换将温度信号转换成电压信号,在LED数码管上显示。4) 设置一个开关,当开关断开时LED显示个人学号的后4位数字,当开关闭合时工作在测温报警显示状态,LED显示温度值。5) 设置2个指示LED灯,当温度低于80时,绿灯亮,当温度高于80时,红灯亮报警。6) 扩展功能:语音报警。7) 所有单片机程序代码都用C语言编写。8) 用Proteus软件进行仿真。 报告要求: 1). 在报告中应对系统的设计思想、设计方法用文字详细说明,有总体电路框图
3、和 Proteus连接图的截图。 2). 有程序者在报告中应有完整的程序清单 (必需加注释)。 3). 有程序者在报告中应有完整的程序流程框图。 4). 谈谈自己通过这次设计实践的收获和体会。 课程考核方式 考查 要求:提交课程设计报告,设计报告内容包括设计任务,设计要求,软硬件设计,程序结果描述。 1)每人独立完成题目的基本功能。包括设计报告、电路图和程序清单(带注释),运行结果及有关运行说明。 2)程序检查。分优、良、中、及格、不及格,如为不及格,需下一学年进行重修; 3) 课程设计报告,正规书写打印,否则不计成绩; 4) 验收时每位同学现场演示仿真结果,指导老师随时针对电路设计、程序调试
4、、代码功能等各个方面进行提问。 5) 设计报告若雷同或超过50%雷同,则以作弊论,作弊者本课程均计零分。本课程无补考,只能下一学年进行重修。3、 各部分电路设计 1)温度测量电路设计度测量电路要实现的目标是:将0120度通过传感器测量,运算放大器放大的05V的电压信号。温度传感器选用Pa-t传感器,放大器采用OP07E放大器,温度信号输入采用差动放大形式,放大器输出为:即放大倍数为100倍。在Proteus中实测放大器输出数据为:温度0102030405060708090100110120电压0.000.430.831.241.662.072.492.913.333.754.174.585.0
5、0从测试数据来看,本设计符合0120对应输出05V电压要求。 温度测量电路2) A/D转换器的设计A/D转换的目标是将模拟量转化成数字量,选用ADC0831串行A/D转换芯片做为温度测试系统的A/D转换芯片,设计电路如图所示:3) LED显示电路设计 LED显示电路4) 报警电路设计当温度低于80度时,绿灯亮;当温度高于80度时,红灯亮。 报警电路5) 系统整体硬件电路设计4、 Proteus仿真调试及结果1) 温度显示结果2)学号显示五、电路设计代码#include /52单片机头文件 #include /特殊移位操作函数的头文件 #define uchar unsigned char /宏
6、定义用来随后定义变量的时候简单定义 #define uint unsigned int /宏定义用来随后定义变量的时候简单定义 sbit CS=P37; /adc0831片选信号控制端 sbit CLK=P36; /adc0831时钟信号输入端 sbit DO=P35;/数据输出口 sbit led_red=P34;/报警灯信号控制 sbit led_green=P30;/绿灯信号控制端 sbit swi=P32;/读状态 uchar code tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x39;/0-9数字编码 uchar c
7、ode du=0xfe,0xfd,0xfb,0xf7;/段选控制 uchar peng=4,0,5,2;/学号 uchar date; void delay()/延时 int x,y; for(x=1;x0;x-) for(y=180;y0;y-); void xianshi()/数码管显示函数 uchar i; for(i=0;i4;i+) P1=dui; P2=tabpengi; /显示学号和温度,中间转换数组 delay(); uint Read_ADC0831()/AD转换函数,及时序实现 uchar i,temp; DO=1;_nop_(); _nop_(); CS=0; _nop_
8、();_nop_(); CLK=0; _nop_(); _nop_(); CLK=1; _nop_(); _nop_(); CLK=0; _nop_();_nop_(); CLK=1; _nop_(); _nop_(); CLK=0; _nop_(); _nop_(); for(i=0;i8;i+) CLK=1; _nop_(); _nop_(); temp25)date=date+1;if (date80)/温度大于80则红灯亮 led_red=0; led_green=1;else/低于80则绿灯亮led_green=0;led_red=1; peng3=10; /最高位 peng0=da
9、te%1000/100;/低位 peng1=date%1000%100/10; peng2=date%1000%100%10; xianshi(); else/显示学号 peng0=4; peng1=0; peng2=5; peng3=2; xianshi(); 6、 设计实践收获和体会 在本次题目的设计过程当中确实遇到了很多的问题,往往是自己能力所不能的解决的,所以有些东西还需借助网上帮助,proteus第一次使用,学习用了较长时间。 通过这次设计的成功使我的自信心大增,同时学习了更多设计知识。在设计中用了ADC0831采集电压,通过温度传感器采集温度,并将温度信号变成电压信号,用放大器将微弱电压放大,放大到ADC0831可以检测的范围05V,分别对应温度0120度。用4个数码管来显示温度和我的学号,显示采用数码管扫描的动态显示。通过操作段选和位选来实现。通过按键来切换显示温度和学号。 专业.专注 .