模拟电路课程设计报告
题目: 温度控制器的设计
班 级:
姓 名:
学 号:
指导教师:
撰写日期:
目 录
第一章 课程设计要求及电路说明......................... 3
1.1课程设计要求与技术指标........................ 3
1.2课程设计电路说明............................................................. 4
第二章 课程设计及结果分析............................. 6
2.1课程设计思想.................................. 6
2.2课程设计问题及解决办法........................ 6
2.3调试结果分析..................................................................... 7
第三章 课程设计方案特点及体会........................ 8
3.1 课程设计方案特点.............................. 8
3.2 课程设计心得体会............................................................ 9
参考文献............................................................................................. 9
附 录................................................................................................... 9
第一章 课程设计要求及电路说明
1.1 课程设计要求与技术指标
温度控制器的设计
设计要求与技术指标:
1、设计要求
(1)设计一个温度控制器电路;
(2)根据性能指标,计算元件参数,选好元件,设计电路并画出电路图;
(3)撰写设计报告。
2、技术指标
温度测量范围0—99℃,精度误差为0.1℃;LED数码管直读显示;温度报警指示灯。
1.2课程设计电路说明
1.2.1系统单元电路组成
温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。
1.2.2设计电路说明
主控制器:CPU是整个控制部分的核心,由STC89C52芯片连同附加电路构成的单片机最小系统作为数据处理及控制模块.
显示电路:显示电路采用4个共阳LED数码管,用于显示温度计的数值。
报警电路:报警电路由蜂鸣器和三极管组成,当测量温度超过设计的温度时,该电路就会发出报警。
温度传感器:主要由DS18B20芯片组成,用于温度的采集。
时钟振荡:时钟振荡电路由晶振和电容组成,为STC89C52芯片提供稳定的时钟频率。
第二章 课程设计及结果分析
2.1课程设计
2.1.1设计方案论证与比较
显示电路方案
方案一:采用数码管动态显示
使用一个七段LED数码管,采用动态显示的方法来显示各项指标,此方法价格成本低,而且自己也比较熟悉,实验室也常备有此元件。
方案二:采用LCD液晶显示
采用1602 LCD液晶显示,此方案显示内容相对丰富,且布线较为简单。
综合上述原因,采用方案一,使用数码管作为显示电路。
测温电路方案
方案一:采用模拟温度传感器测温
由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
方案二:采用数字温度传感器
经过查询相关的资料,发现在单片机电路设计中,大多数都是使用传感器,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
综合考虑,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。
2.1.2设计总体方案
根据上述方案比较,结合题目要可以将系统分为主控模块,显示模块,温度采集模块和报警模块,其框图如下:
2.1.3数字温度计的硬件电路设计
控制电路
CPU是整个控制部分的核心。在考虑经济性和满足需求的前提下,本系统选用宏晶公司生产的8位STC89C52单片机作为整个系统的控制中心。
STC89C52是宏晶公司生产的低功耗,高性能CMOS8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用宏晶公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚,它集Flash存储器既可在线编辑(ISP)也可用传统方法进行编辑及通用8位微处理器于单片芯片中,功能强大STC89C52单片机可为您提供许多高性价比的应用场合。
本次设计中,由STC89C52芯片连同附加电路构成的单片机最小系统作为数据处理及控制模块,其中,使用P0口作为数码管显示电路数据传输口,P2.4、P2.5、P2.6分别作为数码管的位选接口,P2.0作报警控制接口,P2.2作DS18B20的总线接口。其电路连接图如下:
温度传感器设计
引脚功能说明:
VDD :可选电源脚,电源电压范围3~5.5V。当工作于寄生电源时,此引脚必须接地。
DQ :数据输入/输出脚。漏极开路,常态下高电平。
GND :为电源地
(1)存贮器
DS18B20的存贮器由一个高速暂存(便笺式)RAM和一个非易失性、电可擦除EEPROM组成,后者存贮高温度和低温度触发器TH和TL。暂存存贮器有助于在单线通信时确保数据的完整性。数据首先写入暂存存贮器,在那里它可以被读回。当数据被校验之后,复制暂存存贮器的命令把数据传送到非易失性EEPROM。这一过程确保了更改存贮器时数据的完整性。
高速暂存RAM的结构为9字节的存储器,结构如3.6图所示。前2字节包含测得的温度信息。第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时刷新。第5字节为配置寄存器,其内容用于确定温度值的数字转换分辨率,DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。其中,低5位一直为1;TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式,在DS18B20出厂时,该位被设置为0,用户不要去改动;R1和R0决定温度转换的精度位数,即用来设置分辨率。
DS18B20分辨率
配置寄存器位定义
高速暂存的第6、7、8字节保留未用,表现为全逻辑1。第9字节是前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
高速暂存RAM结构图
当DS18B20接受到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩张的二进制补码形式存储在暂存RAM的第1、2字节中。
单片机可以通过单线接口读出数据。读数据是,低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。温度值格式如图所示:
低字节
高字节
温度数据值格式
图中,S表示符号位。当S=0时,表示测得的温度值为正值,可以直接将二进制转换为十进制;当S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制值。
(2)DS18B20的测温原理
如图3.8所示,图中低温度系数振荡器的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数振荡器随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。
DS18B20测温原理图
图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1和温度寄存器中,减法计数器和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数振荡器产生的脉冲信号进行减法计数,当减法计数器1的预置减到0时,温度寄存器的值将加1,减法计数器1的预置值将重新被装入,并重新开始对低温度系数振荡器产生的脉冲信号进行计数。如此循环,知道减法计数器2计数到0时,停止温度计数器值的累加,此时温度寄存器中的数值就是所测温度值。图中的斜率累加器用于补偿和修正测温过程的非线形性,直到温度寄存器达到被测温度值。
2.1.4软件设计
系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。
主程序
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图所示。
主程序流程图 图3-13 读温度流程图
读温度子程序
读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
温度转换命令子程序
温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。
计算温度子程序
计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,
Proteus 进行仿真
程序编写完以后,我们先对其进行仿真,初步验证电路图和程序的可行性和正确性。
Protel99 SE软件
Protel99 SE [5]共分5个模块,分别是原理图设计、PCB设计(包含信号完整性分析)、自动布线器、原理图混合信号仿真、PLD设计。
2.2 课程设计问题及解决方法
2.3结果分析
通过Proteus 进行仿真,电路能够符合实验设计的要求。
第三章 课程设计方案特点及体会
3.1课程设计方案特点
3.2心得体会
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char //宏定义
sbit dula=P2^7;
sbit p35=P2^4;
sbit p36=P2^5;
sbit dp=P0^7;
sbit p37=P2^6;
sbit DQ=P2^2; //定义DS18B20总线I/O
sbit LING=P2^0; //定义响铃
signed char m; //温度值全局变量
signed char shangxian=99; //上限报警温度,默认值为99
signed char xiaxian=0; //下限报警温度,默认值为0
uchar code LEDData[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};
/*****延时子程序*****/
void Delay(uint i)
{
while( i-- );
}
/*****初始化DS18B20*****/
void Init_DS18B20(void)
{
unsigned char x=0;
DQ=1;// 给脉冲信号
Delay(8); //稍做延时
DQ=0; //单片机将DS18B20总线拉低
Delay(80); //精确延时,大于480us
DQ=1; //拉高总线
Delay(14);
x=DQ; //稍做延时后,如果x=0则初始化成功,x=1则初始化失败
Delay(20);
}
/*****读一个字节*****/
unsigned char ReadOneChar(void)
{
unsigned char i=0;
unsigned char dat=0;
for (i=8;i>0;i--)
{
DQ=0; // 给脉冲信号
dat>>=1;//右移1位并赋值
DQ=1; // 给脉冲信号
if(DQ)
dat|=0x80;//与0x80位或运算
Delay(4);
}
return(dat);
}
/*****写一个字节*****/
void WriteOneChar(unsigned char dat)
{
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ=0;
DQ=dat&0x01;
Delay(5);
DQ=1;
dat>>=1;
}
}
void Tmpchange(void) //发送温度转换命令
{
Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0x44); //启动温度转换
}
/*****读取温度*****/
unsigned int ReadTemperature(void)
{
unsigned char a=0;
unsigned char b=0;
unsigned int t=0;
float tt=0;
Tmpchange();
Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器
a=ReadOneChar(); //读低8位
b=ReadOneChar(); //读高8位
t=b;
t<<=8;/左移8位并赋值
t=t|a;
tt=t*0.0625;
t= tt*100+0.5; //放大10倍输出并四舍五入
return(t);
}
/*****显示温度子程序*****/
Disp_Temperature() //显示温度
{
uint a,b,c,e;
e=ReadTemperature(); //获取温度值
a=e/1000; //计算得到十位数字
b=e/100-a*10; //计算得到个位数字
c=(e%100)/10; //计算得到小数点后一位
m=e/100;
if(m>shangxian || m<xiaxian) LING=0; //温度不在范围内报警
else LING=1;
p35=0;p36=0;p37=0;
dula=1;
P0 =LEDData[c]; //显示小数点后一位
dula=0;
P0=0xff;
p35=1;p36=0;p37=0;
Delay(300);
p35=0;p36=0;p37=0;
dula=1;
P0 =LEDData[b]; //显示个位
dp=0;
dula=0;
P0=0xff;
p35=0;p36=1;p37=0;
Delay(300);
p35=0;p36=0;p37=0;
dula=1;
P0 =LEDData[a];
dula=0; //显示十位
P0=0xff;
p35=0;p36=0;p37=1;
Delay(300);
p35=0;p36=0;p37=0; //关闭显示
}
/*****主函数*****/
void main(void)
{
ReadTemperature();
LING=1;
while(1)
{
Disp_Temperature();
}
}
第二篇:模拟电路课程设计报告模版新
课 程 设 计
课程设计名称: 模拟电路课程设计 专 业 班 级 : 电子信息科学与技术09级1班 学 生 姓 名 : 李某某 学 号 : 333333 指 导 教 师 : 李智慧 王彩红 金广锋 徐晓光 课程设计时间: 2011-6-20~2011-7-01
电子信息科学与技术 专业课程设计任务书
说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页
电子信息科学与技术 专业课程设计任务书
说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页
填 表 说 明
1.“课题性质”一栏:
A.工程设计;
B.工程技术研究;
C.软件工程(如CAI课题等);
D.文献型综述;
E.其它。
2.“课题来源”一栏:
A.自然科学基金与部、省、市级以上科研课题;
B.企、事业单位委托课题;
C.校、院(系、部)级基金课题;
D.自拟课题。
1 设计任务及要求(小三黑体)(段前0.5行,段后0.5行,下同)
×××××××××(小4号宋体,1.5倍行距)×××××××××××××××××××××???
在该部分中叙述:设计题目的重要性及意义;对题目中要求的功能进行的简单的叙述分析。
2 设计方案
×××××××××(小4号宋体,1.5倍行距)××××××××××××××××××××???
该部分进行电路原理图设计及芯片的选择或参数的计算
3模块设计与参数计算
×××××××××(小4号宋体,1.5倍行距)××××××××××××××××××××???
该部分进行模块设计,画出模块电路原理图,说明原理及芯片的选择或参数的计算
4 制作与调试
×××××××××(小4号宋体,1.5倍行距)××××××××××××××××××××???
包括:制作与调试方法;制作与调试过程中遇到的问题及解决办法; 5 参考文献
在“课程设计报告”的最后应附上所参考的相关文献,
参考文献格式如下:([1]书籍 [2] 文章例)
[1] 边肇祺.模式识别(第二版).北京:清华大学出版社,1988,25~35
[2] 李永忠.几种小波变换的图像处理技术.西北民族学院学报(自然科学版),2001.6,22(3),15~18
注意,文章中使用到的图,表必须有名字,有标号。正文中表格与插图的字体一律用5号宋体譬如:
运行结果如图1所示。
图1 ×××××××××(宋体,五号)
心得体会
×××××××××(小4号宋体,1.5倍行距)××××××××××××××××××××???
整体要求:必须独立完成,不能互相抄袭。设计完成后,将所完成的工作交由老师检查。并写出一份详细的设计报告。