电子技术综合设计一设计报告.docx
- 文档编号:10631494
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:19
- 大小:410.95KB
电子技术综合设计一设计报告.docx
《电子技术综合设计一设计报告.docx》由会员分享,可在线阅读,更多相关《电子技术综合设计一设计报告.docx(19页珍藏版)》请在冰豆网上搜索。
电子技术综合设计一设计报告
二○一六~二○一七学年第二学期
信息科学与工程学院
电子技术综合设计
(一)
课程设计报告
班级:
姓名:
学号:
指导教师:
二○一九年月二日
1、课程设计内容及要求:
温度测量显示系统设计
在Proteus软件下,利用AT89C51系列单片机、A/D芯片ADC0831、OP07高精度单片运算放大器、TCK温度传感器、LED等设计一个温度测量显示报警系统,外接至少4个LED数码管,将当前测量温度值显示在LED上。
根据系统的设计要求,温度传感器TCK输出信号经信号差动放大到0—5V,放大器的输出送ADC0831进行A/D转换,A/D转换结果送单片机进行处理,最后将所测的温度在LED数码管上显示。
仿真时可在TCK温度传感器上手动修改输入当前环境温度值。
设计要求:
1)测量范围为0℃~+120℃。
2)利用温度传感器测量某一点环境温度。
3)利用A/D转换将温度信号转换成电压信号,在LED数码管上显示。
4)设置一个开关,当开关断开时LED显示个人学号的后4位数字,当开关闭合时工作在测温报警显示状态,LED显示温度值。
5)设置2个指示LED灯,当温度低于80℃时,绿灯亮,当温度高于80℃时,红灯亮报警。
6)所有单片机程序代码都用C语言编写。
7)Proteus软件进行仿真。
报告要求:
(1).在报告中应对温度测量系统的设计思想、设计方法用文字详细说明,有总体电路框图和Proteus连接图的截图。
(2).在报告中应有完整的程序清单(必需加注释)。
(3).在报告中应有完整的程序流程框图。
(4).谈谈自己通过这次设计实践的收获和体会。
1设计任务与要求
1.1设计任务
本次设计实践任务是利用AT89C51系列单片机、A/D芯片ADC0831、OP07高精度单片运算放大器、TCK温度传感器、LED等设计一个温度测量显示报警系统。
1.2技术指标
1)测量范围:
测量范围为0℃~+120℃,精度为1℃。
2)测量范围:
能够利用温度传感器测量某一点环境温度。
3)显示要求:
利用A/D转换将温度信号转换成电压信号,在LED数码管上显示。
4)初始状态与工作状态要求:
设置一个开关,当开关断开时LED显示个人学号的后4位数字,当开关闭合时工作在测温报警显示状态,LED显示温度值。
5)阈值要求:
设置2个指示LED灯,当温度低于80℃,绿灯亮,当温度高于80℃时,红灯亮报警。
6)程序要求:
所有单片机程序代码都用C语言编写。
7)仿真要求:
Proteus软件进行仿真。
1.3题目评析
根据系统的设计要求,温度传感器TCK输出信号经信号差动放大到0—5V,放大器的输出送ADC0831进行A/D转换,A/D转换结果送单片机进行处理,最后将所测的温度在LED数码管上显示。
1.4设计的主要内容
本次设计是利用AT89C51系列单片机、A/D芯片ADC0831、OP07高精度单片运算放大器、TCK温度传感器、LED等设计一个温度测量显示报警系统,根据设计要求利用热电偶特性的温度传感器TCK,TCK的冷端t0恒定,热电偶产生的热电动势只随热端(测量端)温度的变化而变化,即一定的热电动势对应着一定的温度。
因此当温度改变时,TCK两端的热电动势就会改变,然后利用OP07高精度单片运算放大器将电压值放大之后,经过A/D转换后,将数据传输到单片机进行数据的处理,然后在显示电路上显示,这样就可以将被测温度显示出来。
设计需要用到A/D转换电路,由于温度变化一度电阻的变化很小,放大倍数是根据最大测量温度确定的即温度变化1℃时输出的电压变化量很小,这么小的电压不能改变ADC0808输出的一个数字信号,所以也需要对tck输出的电压进行放大。
图1系统总体设计框图
2系统总体方案及硬件设计
2.1单片机最小系统电路设计
本设计采用AT89C51单片机作为整个系统的核心,其引脚图如图所示:
图2AT89C51引脚图
由图可知单片机有40个引脚,大致可分为4类:
⒈电源:
VCC-芯片电源,接+5V;VSS-接地端;
⒉时钟:
XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。
⒊控制线:
控制线共有4根,
⑴ALE/PROG:
地址锁存允许/片内EPROM编程脉冲
①ALE功能:
用来锁存P0口送出的低8位地址
②PROG功能:
片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
⑵PSEN:
外ROM读选通信号。
⑶RST/VPD:
复位/备用电源。
①RST(Reset)功能:
复位信号输入端。
②VPD功能:
在Vcc掉电情况下,接备用电源。
⑷EA/Vpp:
内外ROM选择/片内EPROM编程电源。
①EA功能:
内外ROM选择端。
②Vpp功能:
片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
⒋I/O线
80C51共有4个8位并行I/O端口:
P0、P1、P2、P3
单片机系统电路总体设计如图所示:
图3单片机系统电路
图4时钟和复位电路图
2.2温度检测电路设计
热电偶特性的温度传感器TCK,TCK的冷端t0恒定,热电偶产生的热电动势只随热端(测量端)温度的变化而变化,即一定的热电动势对应着一定的温度。
因此将温度值变成电压值,并在其两端接一个毫伏电压表读取温度测量上限的电压值,便于计算放大器的放大倍数。
图5温度检测部分电路图
2.3放大电路设计
当调节温度值达到测量范围上限120℃时,对应的毫伏电压表示数显示为4.92mv,因此电压需要放大的放大倍数应为:
倍,考虑到实际情况下很难一步完成较高倍数的运放,故采用两级运放电路,
第一级放大倍数为46倍,第二级放大倍数设成20.9倍。
电路设计如图:
图6运放部分电路图
2.4A/D转换电路设计
ADC0831模数转换器(0-5V数码显示)
管脚定义:
1、CS:
片选2、正输入端3、Vref:
负输入端4、GND:
地5、参考电压输入端6、DO:
串行数据输出端7、CLK:
时钟输入脚8、VCC:
电源
ADC输入端数量1分辨率8bit
输入类型Voltage(电压)
接口类型Serial(串行输出)
电压参考5V
8位数字串行输出端口输出二进制00000000到11111111,即十进制0到255,所以分辨率为5V/255≈0.0196V。
例如输入的信号为+5V电压时,其输出为数字255。
图7模数转换部分电路图
2.5LED显示电路
采用89c51单片机作为主芯片,由于P0口内部没有上拉电阻,所以P0口作为输出要接上拉电阻。
图8LED显示部分电路图
2.6总体电路设计
图9系统总体电路图
2.7元器件清单
AT89C51单片机1个
A/D芯片ADC08311个
OP07高精度单片运算放大器2个
TCK温度传感器1个
LED数码管4个
LED红绿灯1个
电阻:
10K(9个)、2K(16个)、100(11个)、40K(1个)
电容:
30PF(2个)、10uF(1个)
三极管MPS80981个
3软件设计
3.1程序设计清单
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitCS=P2^7;sbitCLK=P2^6;sbitDO=P2^5;
sbitp00=P0^0;sbitp01=P0^1;sbitp02=P0^2;
sbitp03=P0^3;sbitkaiguan=P2^0;
sbitzhengchang=P2^1;sbitbaojing=P2^2;
Ucharcodetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,//共阴数码0-90xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,//共阴带小数0-9
0x40,0x3e,0x00};//"-"、"U"、数码管全灭
ucharcodedu[]={0xfe,0xfd,0xfb,0xf7};//动态扫描时控制各个数码管亮与灭
uinthuancun[]={0,0,0,0};//数据缓存
voiddelay();//延时函数
voiddisplay();//数码管显示函数
voidxuehao();
ucharRead_ADC0831();//读取ADC0831转换出的数据,通过串行通信输出
//**********************************************//
voidmain()
{uinti,date;
while
(1)
{
i++;
if(i==100)
{i=0;
date=Read_ADC0831()*100;
//乘以100是为了保留两位小数
date=date*1.2/5/51;//使数码管显示的数值与电压保持一致,120摄氏度对应5V
//当ADC转换5V电压时,对应255即date=255*100/51=500
huancun[0]=(date-0)*5/(5*100);//取数据百位
huancun[1]=(date-0)*5/5%100/10;//数据十位,
huancun[2]=(date-0)*5/5%10;//数据个位,
huancun[3]=0x63;}//温度符号“°”}
if(kaiguan==0)
{
display();
if((huancun[1]>=8)||(huancun[0]>=1))//设置报警温度值
{baojing=1;zhengchang=1;}
else
{baojing=0;zhengchang=0;
}
}
else
{baojing=0;zhengchang=1;
xuehao();}
}
}
//*********************************************//
voiddelay(intt)
{
uchari;
for(i=0;i<180;i++)
for(;t>0;t--);
}
//*********************************************//
voiddisplay()
{
p00=0;p01=1;p02=1;p03=1;
P1=tab[huancun[0]];
delay(100);
P1=0x00;p00=1;p01=0;p02=1;p03=1;
P1=tab[huancun[1]];
delay(100);
P1=0x00;p00=1;p01=1;p02=0;p03=1;
P1=tab[huancun[2]];
delay(100);
P1=0x00;p00=1;p01=1;p02=1;p03=0;
P1=0x63;
delay(100);
P1=0x00;
}
voidxuehao()//设置学号
{
p00=0;p01=1;p02=1;p03=1;
P1=tab[1];
delay(10);
p00=1;p01=1;p02=0;p03=1;
P1=tab[9];
delay(10);
p00=1;p01=1;p02=1;p03=0;
P1=tab[2];
delay(100);
P1=0x00;
}
//******************************************//
ucharRead_ADC0831()//根据时序图写出的模拟数据输出
{
uchari,temp;
DO=1;
_nop_();_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);
}
3.2程序流程框图
图10程序流程框图
4proteus软件仿真
4.1软件仿真步骤
打开软件,在软件中画出总体电路图,并进行相应的仿真操作,部分仿真图片如图所示:
图11系统非工作状态下仿真结果图
图12温度超过80℃状态下仿真结果图
图13温度低于80℃状态下仿真结果图
5总结
5.1收获与体会
通过本次的设计设计实践,我收获了许多,虽然实践时间很短,但是这个过程中所需要的能力却在飞快成长,主要收获包括以下方面:
此次实践,我对单片机有了一定的认识,虽然对于程序来说我有很多东西处于懵懂状态,但是对于这种可编程芯片,我产生了浓厚的学习兴趣,接下来的课余时间,希望自己可以好好利用,提升自己的实践能力。
对tck温度传感器有了一定的认识,同时最大的收获就是模电知识扩展,对于放大器的使用和计算方法更加熟练,对以后的电子设计有了一定程度上的提高。
对proteus仿真软件的使用更加熟悉,知道器件的选取和电路图的绘制,以及掌握了整个单片机如何烧程序进去进行仿真的一系列流程。
总之,我深深地感受到知识只有通过实践的检验才会更加熟练和才能理解得更加透彻,“纸上得来终觉浅,绝知此事要躬行”,如果所学的知识不用到实践中去,永远不能说你学会了它;同时也感觉到自己运用C语言编写单片机程序能力的匮乏,以后还需多多锻炼。
明白了对芯片的学习没必要一下子去记住很多芯片的功能,只要大概知道用途就行,当用到它时再仔细研究。
计划以后更加好的利用自己的课余时间,更多的实践,努力学习更多更全面的知识。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子技术 综合 设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)