电子钟设计 模版Word文件下载.docx

上传人:b****6 文档编号:16201708 上传时间:2022-11-21 格式:DOCX 页数:11 大小:207.49KB
下载 相关 举报
电子钟设计 模版Word文件下载.docx_第1页
第1页 / 共11页
电子钟设计 模版Word文件下载.docx_第2页
第2页 / 共11页
电子钟设计 模版Word文件下载.docx_第3页
第3页 / 共11页
电子钟设计 模版Word文件下载.docx_第4页
第4页 / 共11页
电子钟设计 模版Word文件下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

电子钟设计 模版Word文件下载.docx

《电子钟设计 模版Word文件下载.docx》由会员分享,可在线阅读,更多相关《电子钟设计 模版Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。

电子钟设计 模版Word文件下载.docx

参数

1.测温范围为0-1000º

C

2.测温误差<

±

C

 

进度

要求

1.布置任务、方案设计,硬件设计(1天)

2.画电路图(1天)

3.软件设计,画流程图(1天)

4.程序设计和调试(6天)

5.设计验收、撰写报告(1天)

详见进度安排表

参考资料

1.程德福.智能义器.机械工业出版社.2009.9

2.胡文金.单片机系统实训教程.重庆:

重庆大学出版社,2005

其它

说明

1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。

2.若填写内容较多可另纸附后。

3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。

系主任:

指导教师:

钟秉翔、柏俊杰

摘要

本系统是基于STC89C51单片机的温度控制系统,硬件系统主要包括单片机,DS18B20,独立按键模块,液晶显示模块,数模准换模块ADC0809,K分度热电偶传感器等组成。

它具有温度上、下限报警以及报警值设定,目标温度值设定,PWM手动与自动设定控制功能。

此系统中,K分度热电偶传感器获得温度的感应电压,转变成0~5V的标准电压信号,由ADC0809转换成数字信号与DS18B20数字温度传感器测得得室温一起送入单片机,DS18B20所测室温做补偿用,然后通过PID算法,采用模拟PWM控制电子开关的闭合时间,以实现控制的目的。

关键字:

单片机DS18B20PID算法PWM控制

1方案总体设计与论证

图1—1是基于单片机的温度控制系统基本组成方框。

主要由K分度温度传感器,DS18B20,信号调理电路,A/D0809转换器,80C51单片机,独立键盘输入,LCD显示器,发光二极管(指示工作状态)等组成。

K分度热电偶传感器把温度转换成电压的器件,温度传感器输出电压的大小随温度的高低变化而变化,在0℃—1000℃温度变化范围内,电压值的变化范围从0毫伏到41.276毫伏。

DS18B20采集到的室温作为补偿,信号调理电路的主要功能是把微弱的温度电压信号放大到0—5v伏的范围内,以适应AD0809输入的要求。

A/D转换器把放大后的模拟电压信号转换成对应的数字信号。

单片机8051是温度控制系统的核心部分,一方面控制A/D0809转换器实现模拟信号到数字信号的转换,另一方面将采集到温度的数字信号,通过滤波查表来显示实测温度,经过PID算法,由PWM来控制加热时间。

LCD显示器实测量的温、室温、设定温度等。

由MODE键选择不同模式,UP、DOWN键来修改各个值,来设定和修改报警的温度上、下限值、目标温度值设定,PWM手动/自动设定控制功能。

而软件设计是紧紧围绕系统的硬件结构展开的,软件主要是配合控制硬件完成预期的设计要求,软件的基本模块也是针对上述硬件结构进行相应操作的,来实现各个工作模式。

各个工作模式

模式一:

实测温度显示、室温显示、设定目标温度,PWM显示以及PWM自动调节。

模式二:

实测温度显示、室温显示、PWM显示,以及PWM手动调节控制。

模式三:

设定和修改上限温度。

模式四:

设定和修改下限温度。

图1.1系统总框图

2硬件电路设计与分析

2.1C51单片机最小系统

单片机最小系统由CUP芯片、时钟电路(外接11.0592HZ的的晶振),和复位电路组成。

图2.1C51单片机最小系统

2.2K分度热电偶测量处理电路

K分度热电偶的工作原理:

将两种不同的金属丝组成回路,如果二种金属丝的两个接点有温度差,在回路内就会产生热电势,这就是热电效应,热电偶就是利用这一原理制成的一种温差测量传感器,置于被测温度场的接点称为工作端,另一接点称为冷端(也称自由端),冷端可以是室温值也可以是经过补偿后的0℃、25℃的模拟温度场。

信号调理电路中包括滤波和放大部分。

将K分度传感器的测量值,可直接输出到运算放大器,电容滤波的反相放大电路,使得传感器感受0℃—1000℃的信号调理电路对应输出0—5V的电压值,通过查表求出温度值。

图2.2K分度热电偶处理电路

2.3DS18B20工作原理

由于温度测量系统处在室温中,用K型热电偶测量温度需要进行补偿,所以采用DALLAS公司生产的DS18B20数字温度传感器测量室温进行补偿,提高测量系统的精度。

温范围为-55℃~+125℃,在-10~+85℃时精度为±

0.5℃,独特的单线接口方式,与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温,在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。

DS18B20有三个引脚,GND为电源地、DQ为数字信号输入/输出端、VDD为外接供电电源输入端(在寄生电源接线方式时接地)。

图2.3DS18B20工作原理图

图2.4DS18B20接口电路

2.4ADC0809转换电路

ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器。

其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

是目前国内应用最广泛的8位通用A/D芯片。

其引脚功能如下:

IN0~IN7:

8路模拟量输入端。

D7~D0:

8位数字量输出端。

A0、A1、A2:

3位地址输入线,用于选通8路模拟输入中的一路

ALE:

地址锁存允许信号,输入,高电平有效。

START:

A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。

EOC:

A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

OE:

数据输出允许信号,输入,高电平有效。

当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

CLK:

时钟脉冲输入端。

要求时钟频率不高于640KHZ。

REF(+)、REF(-):

基准电压。

  Vcc:

电源,单一+5V。

 GND:

地。

ADC0809工作过程:

首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。

此地址经译码选通8路模拟输入之一到比较器。

START上升沿将逐次逼近寄存器复位。

下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。

直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。

当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。

图2.5ADC0809电路图

2.5LCD显示电路

本设计采用ST7920控制器的LCD液晶显示器,其具有低电压,字迹清晰、能够显示汉字和字符等特点,且编程方便,易于查看、修改。

ST7920控制器系列中文图形液晶模块的软件特性主要由ST7920控制驱动器决定的。

ST7920同时作为控制器和驱动器,它可提供33路com输出和64路seg输出。

在驱动器ST7920的配合下,最多可以驱动256×

32点阵液晶。

分别由单片机的P10、P11、P12来接液晶的CS、SID、SCLK。

图2.6液晶接口电路

2.6独立键盘

因为本设计中需要的按键不多,故设计采用独立式按键,分别占用P2.0,P2.1,P2.2和P2.3口。

它们分别实现设置模式的功能键,温度上限、下限设置修改,温度上限报警,温度下限报警。

目标温度设置键,以及自动或手动控制PWM,键盘的消抖动可有软件来实现。

图2.7独立按键

3软件设计与分析

3.1PID算法

PID算法由比例、积分、微分三部份组成,将实测温度和设定值进行比较,得到偏差,根据偏差值乘以比例系数(Kp)就确定比例项、积分项由累积偏差和乘以Ki和微分项由累积偏差差值乘以Kd,根据所的的值确定pwm值,程序如下:

voidPID(void)//PID算法{staticintSumerror=0,Lasterror=0;

intDerror=0,Error=0;

doublesum=0.0;

Error=mubiao-var;

//设定值-实时值

if(Error>

50){Pwm_sum=100;

return;

}

if(Error+50<

0){Pwm_sum=0;

return;

}

Sumerror=Sumerror+Error;

//积分

Derror=Error-Lasterror;

//微分

Lasterror=Error;

sum=Kp*Error;

sum=sum+Sumerror*Ki;

sum=sum+Derror*Kd;

if(sum>

0)sum=sum/100;

if(sum>

100)Pwm_sum=100;

elseif(sum<

0)Pwm_sum=0;

elsePwm_sum=(uint)sum;

VoidPID_Start(void)//PID入口{if(PID_time>

=20)//0.1s进入一次PID控制

{

PID_time=0;

PID();

3.2温度补偿

将DS18B20测得室温通过转化来查K分度热电偶表电压值,程序如下:

ucharwenshi;

uintx;

wenshi=temperature/10;

x=(K_TABLE[wenshi+1]-K_TABLE[wenshi])/10;

/*表中相邻两值对应温度相差10°

C*/

x=K_TABLE[wenshi]+x*(temperature%10);

//温度补偿

3.3查表滤波函数

由AD0809读取的十个数字分别赋给数组table[i],将得到的数组进行比较,得到最大值和最小值,将数组中的数据去掉最大值和最小值后求和,在求平均数,根据平均数得,再将得到数值转化为相应电压值程序如下:

voidLv_bo(void)//滤波

{unsignedcharmax,min,i;

unsignedintsum;

sum=table[0];

max=table[0];

min=table[0];

for(i=1;

i<

10;

i++)

if(table[i]>

max)

max=table[i];

elseif(min>

table[i])

min=table[i];

sum=table[i]+sum;

sum-=max;

sum-=min;

U1=(float)sum/8;

U1=((U1*5)/255);

//换成mv}

3.4模式转换

由判断MODE键按下才次数来,转换不同的模式,当MODE键按下时,count_mode++。

其里面还调用液晶显示函数来显示不同模式,如模式0:

显示室温、实测温度、PWM值。

voidmoshi()//模式

{uintaa=0;

if(Mode==0)

{delay(200);

{

count_mode++;

if(count_mode>

3)count_mode=0;

}

if(count_mode==0)

PID_Start();

Display(0,0,2,0,"

室温"

);

Display(0,4,4,0,"

自动调节"

if(time>

=4)

temperature=ReadTemperature();

//读温度

time=0;

view(temperature);

Display(0,3,2,1,disp_buf+2);

Display(1,0,4,0,"

实测温度"

view(var);

Display(1,5,4,1,disp_buf);

Display(2,0,4,0,"

设定温度"

mubiao=xiugai(mubiao);

if(mubiao>

=1000)

mubiao=1000;

view(mubiao);

Display(2,5,4,1,disp_buf);

view(Pwm_sum);

Display(3,0,4,1,"

PWM:

"

Display(3,3,3,1,disp_buf+1);

Display(3,5,1,1,"

%"

if(count_mode==1)

{

.................

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 中考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1