电子系统综合设计报告
学号:专业:日期:姓名:
陈丹 100401202 电子信息工程 2013-4-2
南京理工大学紫金学院电光系
1 引言
2 系统设计
2.1总体方案设计
2.1.1总体设计流程
2.1.2温控仪原理图
2.1.3总体电路图
2.1.4温控仪设计文字说明 温度传感器输出为电阻值,经信号调理电路得到电压值,再经AD 转换电路实现数模转换。由单片机控制显示管输出。除此,可设置预置温度,通过单片机外部中断,用按键控制预置温度。当实际温度高于预置温度,红灯亮,蜂鸣器响;低于时,则绿灯亮。
2.2总体设计要求
(1)温度范围为:-20 ℃ ~ +100℃, 最小区分度为1℃,标定温度≤ 1℃; (2)温度采样时间:500ms~1min; (3)具有超温声、光报警功能; (4)实时温度显示(四位数码管);
(5)实时温度控制(风扇及加热负载)功能; (6)温度参数输入功能(温度+、温度-键)。
3 单元模块设计
3.1调理电路
3.1.1电路功能
利用桥式整流电路实现电阻值到电压值的转换,并用OP07放大电压。电阻与温度关系如下:
温度与电压的关系:
温度分段与电压的拟合曲线:(19℃到40℃)
温度分段与电压的拟合曲线:(40℃到55℃)
温度分段与电压的拟合曲线:(55℃到65℃)
温度分段与电压的拟合曲线:(65℃到71℃)
3.1.2调理电路
3.2 A/D转换电路
3.2.1 电路功能
单片机只能处理二进制信号,因此必须用A/D转换电路将纹理电路输出的模拟量转换成数字量,供单片机处理。
AD 0808有8个通道,如下是通道选择以及管脚图: 地址所存信号ALE 为上升沿有效,与80C51 的ALE 相反。
ENABLE(OE)为输出允许,高有效。 CLOCK 低于640KHz 。 EOC 为转换结束,高有效。 启动AD 变换是要给出通道地
图3 ADC0808管脚图
3.3P 89L 51RD 2
3.3.1功能
作为设计核心,协调各功能模块,是软件载体。 管脚图:
单片机I/O接口功能定义: P 0: AD 数据采集;
P 1:数码管段选信号(a,b,c,d,e,f,g ); P 2.7、RD : A/D数据输出容许信号OE ; P 2.7、WR :启动A/D;
P 3.4 ~ P 3.5:指示灯1,指示灯2 ; P 2.0~ P 2.3 :数码管位选信号(1,2,3,4); INT 0: 键+ INT 1: 键-
3.32单片机和ADC 0808的联系
3.4四段数码管
3.4.1数码管
显示实际温度和预置温度,采用动态显示
引脚说明:
1引脚 位选1 2引脚 A 3引脚 F 4引脚 位选2 5引脚 位选3 6引脚 B 7引脚 位选4 8引脚 G 9引脚 C 10引脚 CR 11引脚 D 12引脚 E 3.4.2ULN 2003APG 驱动负载 与数码管联接
显示电路
3.5电路功能
3.5.1按键
通过按键控制预置温度,并且能在数码管显示 3.5.2负载
当温度高于预设温度时,红灯亮,蜂鸣器也会报响警。当温度低于预设温度时,绿灯会亮。
4 软件设计
4.1 AD 转换
void samp()
{ unsigned int c;
XBYTE[0x7FF8]=0;//进行一个写操作,启动A/D转换 delay();
a=XBYTE[0x7FF8];//将A/D转换的结果保存为变量a result=a*5/256;//将A/D 转换结果换算成十进制数 if(result>1.65&&result2.50&&result3.820&&result
{ T=15.56*result-19.86;}//把电压转换为温度 c=T;
g=c/10;//显示温度的百位 s=c%10;//显示温度的十位
b=(int)(T*10)%10;//温度的个位 m=Q*10+p;//预设温度 n=g*10+s;//实际温度 if(n>m)
{P35=1;P34=0;} else{ P35=0;P34=1;}//当实际温度大于预设温度时,红灯亮,反之绿灯亮 }
Display.h 文件流程图
否
4.2按键预置温度
/*外部中断0,预设温度加一*/ void int0_ser() interrupt 0 using 0 {
delay(); if(INT0==0) { p++; if(p==10)
{Q++;p=0;} } for(i=0;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
DisplaySecond(Q,p); }
4.3数码管显示
void DisplaySecond(unsigned char s,b) { P2=0xfe;//数码管1亮
P1=Tab1[g];//显示温度的百位 delay(); P2=0xff;
P2=0xfD;//数码管2亮
P1=Tab1[s]&0x7f;//显示温度的十位 delay(); P2=0xff;
P2=0xfb;//数码管3亮
P1=Tab1[b];//显示温度的十位 delay(); P2=0xff;
P2=0xf7;//数码管4亮 P1=0xC6;//显示C
}
4.4主代码
void main()
{ TMOD=0x01;//定时器工作方式 TL0=0xF0;
TH0=0xD8;//定时器初值 ET0=1;//定时器中断开放 EA=1;//总允许
TR0=1;//启动定时器T0 EX1=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
//数码管动态显示函数
void DisplaySecond(unsigned char s,b) {
P2=0xfe;//数码管1亮
P1=Tab1[g];//显示温度的百位
P2=0xfD;//数码管2亮
P1=Tab1[s]&0x7f;//显示温度的十位 delay(); P2=0xff;
P2=0xfb;//数码管3亮
P1=Tab1[b];//显示温度的十位 delay(); P2=0xff;
P2=0xf7;//数码管4亮 P1=0xC6;//显示C delay(); P2=0xff;
}
4.5系统总代码
5 系统测试
5.1系统功能
通过传感器对温度的感知,测试得到电阻量,再由纹理电路转换成电压量,进过A/D转换变为单片机能够处理的二进制。在单片机处理中,将实际测得的温度与设置的预设温度都能在数码管上显示,通过按键可以改变预置温度。如果实际温度小于预设温度时,绿灯会亮;如果实际温度大于预设温度时,红灯会亮,蜂鸣器同时响起。
5.2理论与实际对比
通过实际温度计读数与数码管显示温度对比,存在1度左右的误差。
6 设计小结
通过两周的电子课程设计,在老师和同学们的帮组下我完成了数字温度计的设计这次实验,我很开心。
采用RS232接口,实现实时温度数据的发送功能;实现多通道温度数据采集和显示功
能;可以利用两片单片机之间的串行通信实现对被测对象的远程控制。
7 参考文献
[1] 胡晏如,狄苏燕。模拟电子技术基础。北京:高等教育出版社,2004.
[2] 闰玉德, 葛龙,俞虹。单片微型计算机原理与设计。北京:中国电力出版
社
[3] 朱蕴璞. 传感器原理与应用. 国防工业出版社.
电子系统综合设计报告
学号:专业:日期:姓名:
陈丹 100401202 电子信息工程 2013-4-2
南京理工大学紫金学院电光系
1 引言
2 系统设计
2.1总体方案设计
2.1.1总体设计流程
2.1.2温控仪原理图
2.1.3总体电路图
2.1.4温控仪设计文字说明 温度传感器输出为电阻值,经信号调理电路得到电压值,再经AD 转换电路实现数模转换。由单片机控制显示管输出。除此,可设置预置温度,通过单片机外部中断,用按键控制预置温度。当实际温度高于预置温度,红灯亮,蜂鸣器响;低于时,则绿灯亮。
2.2总体设计要求
(1)温度范围为:-20 ℃ ~ +100℃, 最小区分度为1℃,标定温度≤ 1℃; (2)温度采样时间:500ms~1min; (3)具有超温声、光报警功能; (4)实时温度显示(四位数码管);
(5)实时温度控制(风扇及加热负载)功能; (6)温度参数输入功能(温度+、温度-键)。
3 单元模块设计
3.1调理电路
3.1.1电路功能
利用桥式整流电路实现电阻值到电压值的转换,并用OP07放大电压。电阻与温度关系如下:
温度与电压的关系:
温度分段与电压的拟合曲线:(19℃到40℃)
温度分段与电压的拟合曲线:(40℃到55℃)
温度分段与电压的拟合曲线:(55℃到65℃)
温度分段与电压的拟合曲线:(65℃到71℃)
3.1.2调理电路
3.2 A/D转换电路
3.2.1 电路功能
单片机只能处理二进制信号,因此必须用A/D转换电路将纹理电路输出的模拟量转换成数字量,供单片机处理。
AD 0808有8个通道,如下是通道选择以及管脚图: 地址所存信号ALE 为上升沿有效,与80C51 的ALE 相反。
ENABLE(OE)为输出允许,高有效。 CLOCK 低于640KHz 。 EOC 为转换结束,高有效。 启动AD 变换是要给出通道地
图3 ADC0808管脚图
3.3P 89L 51RD 2
3.3.1功能
作为设计核心,协调各功能模块,是软件载体。 管脚图:
单片机I/O接口功能定义: P 0: AD 数据采集;
P 1:数码管段选信号(a,b,c,d,e,f,g ); P 2.7、RD : A/D数据输出容许信号OE ; P 2.7、WR :启动A/D;
P 3.4 ~ P 3.5:指示灯1,指示灯2 ; P 2.0~ P 2.3 :数码管位选信号(1,2,3,4); INT 0: 键+ INT 1: 键-
3.32单片机和ADC 0808的联系
3.4四段数码管
3.4.1数码管
显示实际温度和预置温度,采用动态显示
引脚说明:
1引脚 位选1 2引脚 A 3引脚 F 4引脚 位选2 5引脚 位选3 6引脚 B 7引脚 位选4 8引脚 G 9引脚 C 10引脚 CR 11引脚 D 12引脚 E 3.4.2ULN 2003APG 驱动负载 与数码管联接
显示电路
3.5电路功能
3.5.1按键
通过按键控制预置温度,并且能在数码管显示 3.5.2负载
当温度高于预设温度时,红灯亮,蜂鸣器也会报响警。当温度低于预设温度时,绿灯会亮。
4 软件设计
4.1 AD 转换
void samp()
{ unsigned int c;
XBYTE[0x7FF8]=0;//进行一个写操作,启动A/D转换 delay();
a=XBYTE[0x7FF8];//将A/D转换的结果保存为变量a result=a*5/256;//将A/D 转换结果换算成十进制数 if(result>1.65&&result2.50&&result3.820&&result
{ T=15.56*result-19.86;}//把电压转换为温度 c=T;
g=c/10;//显示温度的百位 s=c%10;//显示温度的十位
b=(int)(T*10)%10;//温度的个位 m=Q*10+p;//预设温度 n=g*10+s;//实际温度 if(n>m)
{P35=1;P34=0;} else{ P35=0;P34=1;}//当实际温度大于预设温度时,红灯亮,反之绿灯亮 }
Display.h 文件流程图
否
4.2按键预置温度
/*外部中断0,预设温度加一*/ void int0_ser() interrupt 0 using 0 {
delay(); if(INT0==0) { p++; if(p==10)
{Q++;p=0;} } for(i=0;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
DisplaySecond(Q,p); }
4.3数码管显示
void DisplaySecond(unsigned char s,b) { P2=0xfe;//数码管1亮
P1=Tab1[g];//显示温度的百位 delay(); P2=0xff;
P2=0xfD;//数码管2亮
P1=Tab1[s]&0x7f;//显示温度的十位 delay(); P2=0xff;
P2=0xfb;//数码管3亮
P1=Tab1[b];//显示温度的十位 delay(); P2=0xff;
P2=0xf7;//数码管4亮 P1=0xC6;//显示C
}
4.4主代码
void main()
{ TMOD=0x01;//定时器工作方式 TL0=0xF0;
TH0=0xD8;//定时器初值 ET0=1;//定时器中断开放 EA=1;//总允许
TR0=1;//启动定时器T0 EX1=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
//数码管动态显示函数
void DisplaySecond(unsigned char s,b) {
P2=0xfe;//数码管1亮
P1=Tab1[g];//显示温度的百位
P2=0xfD;//数码管2亮
P1=Tab1[s]&0x7f;//显示温度的十位 delay(); P2=0xff;
P2=0xfb;//数码管3亮
P1=Tab1[b];//显示温度的十位 delay(); P2=0xff;
P2=0xf7;//数码管4亮 P1=0xC6;//显示C delay(); P2=0xff;
}
4.5系统总代码
5 系统测试
5.1系统功能
通过传感器对温度的感知,测试得到电阻量,再由纹理电路转换成电压量,进过A/D转换变为单片机能够处理的二进制。在单片机处理中,将实际测得的温度与设置的预设温度都能在数码管上显示,通过按键可以改变预置温度。如果实际温度小于预设温度时,绿灯会亮;如果实际温度大于预设温度时,红灯会亮,蜂鸣器同时响起。
5.2理论与实际对比
通过实际温度计读数与数码管显示温度对比,存在1度左右的误差。
6 设计小结
通过两周的电子课程设计,在老师和同学们的帮组下我完成了数字温度计的设计这次实验,我很开心。
采用RS232接口,实现实时温度数据的发送功能;实现多通道温度数据采集和显示功
能;可以利用两片单片机之间的串行通信实现对被测对象的远程控制。
7 参考文献
[1] 胡晏如,狄苏燕。模拟电子技术基础。北京:高等教育出版社,2004.
[2] 闰玉德, 葛龙,俞虹。单片微型计算机原理与设计。北京:中国电力出版
社
[3] 朱蕴璞. 传感器原理与应用. 国防工业出版社.