电子系统综合设计报告姓名:学号:专业:日期:2011-4-13南京理工大学紫金学院电光系摘要本次课程设计目的是设计一个简易温度控制仪,可以在四联数码管上显示测得的温度。
主要分四部份电路:OP07放大电路,AD转换电路,单片机部分电路,数码管显示电路。
设计文氏电桥电路,得到温度与电压的关系,通过控制电阻值改变温度。
利用单片机将现在温度与预设温度进行比较,将比较结果在LED数码管上显示,同时实现现在温度与预设温度之间的切换。
关键词放大电路转换电路控制电路显示目录1 引言 (3)1.1 系统设计 (3)1.1.1 设计思路 (3)1.1.2 总体方案设计 (3)2 单元模块设计 (4)2.1 各单元模块功能介绍及电路设计 (4)2.1.1 温度传感器电路的设计 (4)2.1.2 信号调理电路的设计 (4)2.1.3 A/D采集电路的设计 (4)2.1.4 单片机电路 (4)2.1.5 键盘及显示电路的设计 (4)2.1.6 输出控制电路的设计 (5)2.2元器件的选择 (5)2.3特殊器件的介绍 (5)2.3.1 OP07A (5)2.3.2 ADC0809 (6)2.3.3 ULN2003 (7)2.3.4 四联数码管(共阴) (7)2.4各单元模块的联接 (8)3.1开发工具及设计平台 (9)3.1.1 Proteus特点 (9)3.1.2 Keil特点 (9)3.1.3 部分按键 (10)4 系统测试 (14)5 小结和体会 (16)6 参考文献 (17)1 引言电子系统设计要求注重可行性、性能、可靠性、成本、功耗、使用方便和易维护性等。
总体方案的设计与选择:由技术指标将系统功能分解为:若干子系统,形成若干单元功能模块。
单元电路的设计与选择:尽量采用熟悉的电路,注重开发利用新电路、新器件。
要求电路简单,工作可靠,经济实用。
1.1 系统设计1.1.1 设计思路本次实验基于P89L51RD2FN的温控仪设计采用Pt100温度传感器。
1.1.2 总体方案设计设计要求1.采用Pt100温度传感器,测温范围 -20℃ --100℃;2.系统可设定温度值;3.设定温度值与测量温度值可实时显示;4.控温精度:±0.5℃。
2 单元模块设计2.1 各单元模块功能介绍及电路设计2.1.1 温度传感器电路的设计实现温度T和电阻R的对应关系。
电桥中R1=R2=R3=200Ω=R,R4为温度传感器,温度变化,导致电桥的一个桥臂上的电阻也就是R4的阻值变化。
2.1.2 信号调理电路的设计实现将温度T 和电阻R的对应关系转化为温度T 和电压V的对应关系。
利用电桥的原理,R4的阻值变化使电桥两点的电位差改变,此两点作为运算放大器的两个输入。
2.1.3 A/D采集电路的设计实现启动、等待、采集数据。
信号调理电路的输出接0809的IN0。
0809的ALE的START连接,单片机的P2.7和WR 或非后接0809的START,P2.7和RD或非后接0809的OE。
START脉冲来,A/D转换开始,以EOC作为转换完成的标志使用的是等待方式,所以EOC未连接。
2.1.4单片机电路最小系统。
2.1.5 键盘及显示电路的设计实现键盘数据输入和温度显示。
利用四联数码管显示三位的温度值和一个‘C’代表显示的是温度。
两个键盘按键调整预设温度的高低。
2.1.6 输出控制电路的设计I/O驱动、继电器、指示灯、负载。
测得的温度值高于预设温度,红灯亮,低于则绿灯亮:接两个发光二极管。
2.2元器件的选择1. P89L51RD2FN2. AD08093. OP07A4. MAX2325. 驱动器ULN20036. 四联数码管MT0546AR7. 继电器HRS2H-S-DC5V-N8. 发光二极管(红、绿色)9. 三极管 9012(PNP)、 9013(NPN)11. 面包板、连接线、插头座12. 周立功单片机实验箱13. 电阻200Ω×3用于电桥,10kΩ×2,20 kΩ×2用于减法器2.3特殊器件的介绍2.3.1 OP07AOP07引脚图OP07A的特点:超低偏移:150μV最大。
低输入偏置电流: 1.8nA 。
低失调电压漂移:0.5μV/℃。
超稳定,时间:2μV/month最大高电源电压范围:±3V至±22V2.3.2 ADC08091.主要特性1)8路8位A/D 转换器,即分辨率8 位。
2)具有转换起停控制端。
3)转换时间为100μs。
4)单个+5V 电源供。
5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85 摄氏度。
7)低功耗,约15mW。
2.内部结构ADC0809 是CMOS 单片型逐次逼近式A/D 转换器,内部结构如图13.22 所示,它由8 路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A 转换器、逐次逼近,寄存器、三态输出锁存器等其它一些电路组成。
因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。
输入输出与TTL 兼容。
IN0~IN7:8 路模拟电压输入端,用与输入被转换的模拟电压。
D0~D7:A/D 转换后的数据输出端,与单片机的P0 口相接。
A、B、C:模拟通道地址选择端,A 为低位,C 为高位。
3.A/D转换完成数据的输送A/D 转换后得到的是数字量的模拟量,这些数据应传诵给单片机进行处理。
数据串的关键是如何确定A/D 转换完成。
因为只有确定数据转换完成后,才进行传送。
为此可采用以下三种方式:定时传送方式对于一种A时子程序。
A/D 转换启动后,就调动这个子程序,延迟时间一到,转换肯定已经完成了。
接着,就可以进行数据传送A/D 转换来说,转换时间作为一项技术指标是已知的和固定的。
查询方式A/D 转换芯片表明有转换完成的状态信号,例如ADC0809 的E 端,因此可以通过查询方式用软件测试EOC的状态,即可知道转换是否完成,若完成,则接着进行数据传送。
中断方式中断方式ADC0809与8031的中断方式接口电路只需将0809的EOC端经过一非门连接到8031的INTl 端即可。
采用中断方式可大大节省CPU的时间,当转换结束时,EOC发出一个脉冲向单片机提出中断请求,单片机响应中断请求,由外部中断1 的中断服务程序读A/D 结果,并启动0809的下一次转换,外部中断1 采用边沿触发方式。
2.3.3 ULN2003ULN200A电路具有以下特点:1电流增益高(大于1000);2带负载能力强(输出电流大于500mA);3温度范围宽(-40~85℃);4工作电压高(大于50V)。
2.3.4 四联数码管(共阴)四联数码管引脚图2.4各单元模块的联接共6个模块。
模块1:信号调理电路:电桥+减法器模块2:A/D转换器ADC0809模块3:单片机89C51或P89L51RD2FNP0: AD数据采集;P1:数码管段选信号(a,b,c,d,e,f,g);P2.7: A/D的OE;P3.4 ~ P3.5 :指示灯1,指示灯2 ;P2.0~ P2.3 :数码管位选信号(1,2,3,4);INT0: 键+;INT1: 键-。
模块4:键盘输入:连接单片机的两个外部中断。
模块5:共阴四联数码管:位选P2.0~ P2.3,段选P1。
模块6:控制输出:接两个指示灯。
3 软件设计3.1开发工具及设计平台3.1.1 Proteus特点1.Proteus软件提供数千种元器件和多达30多个元件库。
2.在Proteus软件中,理论上同一种仪器可以在一个电路中随意的调用。
3.除了现实存在的仪器外,Proteus还可以以图形的方式实时地显示线路上变化的信号。
4.虚拟仪器仪表具有理想的参数指标,可减少仪器对测量结果的影响。
5.Proteus提供了比较丰富的测试信号用于电路的测试。
这些测试信号包括模拟信号和数字信号。
3.1.2 Keil特点1.全功能的源代码编辑器;2.器件库用来配置开发工具设置;3.项目管理器用来创建和维护用户的项目;4.集成的MAKE工具可以汇编、编译和连接用户嵌入式应用;5.所有开发工具的设置都是对话框形式的;6.真正的源代码级的对CPU和外围器件的调试器;7.高级GDI(AGDI)接口用来在目标硬件上进行软件调试以及和Monitor-51进行通信。
3.1.3 部分按键设定温度与实际温度间的切换数据的显示3.1.4 C代码编写#include<reg51.h>#include"absacc.h"bit flag;//采样标志unsigned char countor;//定时器定时的循环标志unsigned char g,s,b,i;unsigned char Q=3,p=0;//设置预设温度unsigned char m,n;sbit P34=P3^4;sbit P35=P3^5;sbit P30=P3^0;//为蜂鸣器提供一定频率的方波void DisplaySecond(unsigned char s,b);//数码管显示函数的声明void delay(void);//延时函数的声明float a,result=0,result1=0,T;/*数码管动态显示*/unsigned char Tab[]={0x3F, //"0"0x06, //"1"0x5B, //"2"0x4F, //"3"0x66, //"4"0x6D, //"5"0x7D, //"6"0x07, //"7"0x7F, //"8"0x6F, //"9"0x39, //"C"};/*定时器T0定时*/void t0_ser() interrupt 1 using 1{ TL0=0xF0;TH0=0xD8;P30=!P30;//蜂鸣器产生的方波countor++;if(countor==10) //循环10次达到定时0.1秒{countor=0;flag=1;} //定时时间到,置采样标志为1,进行采样}/*采样函数*/void samp(){unsigned int c;XBYTE[0x7FF8]=0;//进行一个写操作,启动A/D转换delay();a=XBYTE[0x7FF8];//将A/D转换的结果保存为变量aresult=a*5/256;//将A/D 转换结果换算成十进制数if(result>0.524&&result<1.940){T=10.3*result+9.35;}else if(result>1.940&&result<3.720){T=16.99*result-4.68; }else if(result>3.720&&result<4.302){ T=37.60*result-80.86;}//把电压转换为温度c=T;g=c/100;//显示温度的百位s=c/10;//显示温度的十位b=c%10;//温度的个位m=Q*10+p;//预设温度n=s*10+b;//实际温度if(n>m){P35=1;P34=0;}else{ P35=0;P34=1;}//当实际温度大于预设温度时,红灯亮,反之绿灯亮}/*外部中断0,预设温度加一*/void int0_ser() interrupt 0 using 0{delay();if(INT0==0){ p++;if(p==10){Q++;p=0;}}for(i=0;i<50;i++)DisplaySecond(Q,p);}/*外部中断1,预设温度减一*/void int1_ser() interrupt 2 using 2{delay();if(INT1==0){ p--;if(p==0){Q--;p=9;}}for(i=0;i<50;i++)DisplaySecond(Q,p);}void main(){ TMOD=0x01;//定时器工作方式TL0=0xF0;TH0=0xD8;//定时器初值ET0=1;//定时器中断开放EA=1;//总允许TR0=1;//启动定时器T0EX1=1;//外部中断1开放EX0=1;//外部中断0开放PX0=1;//外部中断0优先级置高PX1=1;//外部中断1优先级置高IT0=1;//外部中断0为边沿触发方式IT1=1;//外部中断1为边沿触发方式while(1){ if(flag){flag=0; samp();}//采样标准为1时,调用采样函数进行采样 DisplaySecond(s,b);}}//延时函数void delay(void){unsigned int j;for(j=0;j<100;j++);}//数码管动态显示函数void DisplaySecond(unsigned char s,b){P2=0xf1;//数码管1亮P1=Tab1[g];//显示温度的百位delay();P2=0xf0;P2=0xf2;//数码管2亮P1=Tab1[s];//显示温度的十位delay();P2=0xf0;P2=0xf4;//数码管3亮P1=Tab1[b];//显示温度的十位delay();P2=0xf0;P2=0xf8;//数码管4亮P1=0x39;//显示Cdelay();P2=0xf0;}4 系统测试4.1温度与电阻的关系:4.2温度与电压的关系:4.3温度分段与电压的拟合曲线:(11℃到24℃)4.4温度分段与电压的拟合曲线:(25℃到35℃)4.6温度分段与电压的拟合曲线:(49℃到64℃)5 小结和体会+这次的电子系统综合设计在理论上不仅用到了单片机的知识,还用到了模电的知识。