最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

单片机恒温控制系统设计【很完整】

来源:动视网 责编:小OO 时间:2025-09-27 11:51:49
文档

单片机恒温控制系统设计【很完整】

1.功能要求用户设定温度值后,显示设定温度和当前温度根据当前温度和设定温度之间的差值,控制加温或停止加温,最终达到恒温。2.方案论证按要求,系统采用1片51单片机、1片A/D转换器ADC0809、键盘和4个共阴极7段LED显示器件。系统框图如图1所示。3.硬件电路设计本设计中,8255A和A/D转换器都作为单片机的扩展外设。4.硬件电路的功能(分模块介绍)(1)温度采集与控制单元电路:温度采集电路是用热敏电阻和一个分压电阻形成电压采样点,电压经换算可得到当前温度。用一个大功率电阻形成温度控制电
推荐度:
导读1.功能要求用户设定温度值后,显示设定温度和当前温度根据当前温度和设定温度之间的差值,控制加温或停止加温,最终达到恒温。2.方案论证按要求,系统采用1片51单片机、1片A/D转换器ADC0809、键盘和4个共阴极7段LED显示器件。系统框图如图1所示。3.硬件电路设计本设计中,8255A和A/D转换器都作为单片机的扩展外设。4.硬件电路的功能(分模块介绍)(1)温度采集与控制单元电路:温度采集电路是用热敏电阻和一个分压电阻形成电压采样点,电压经换算可得到当前温度。用一个大功率电阻形成温度控制电
1.功能要求

用户设定温度值后,显示设定温度和当前温度根据当前温度和设定温度之间的差值,控制加温或停止加温,最终达到恒温。

2.方案论证

   按要求,系统采用1片51单片机、1片A/D转换器ADC0809、键盘和4个共阴极7段LED显示器件。系统框图如图1所示。

3.硬件电路设计

   本设计中,8255A和A/D转换器都作为单片机的扩展外设。

4.硬件电路的功能(分模块介绍)

(1) 温度采集与控制单元电路:

   温度采集电路是用热敏电阻和一个分压电阻形成电压采样点,电压经换算可得到当前温度。用一个大功率电阻形成温度控制电路,控制点接地,大功率电阻上有电流流过则发热,控制点接+12V,大功率电阻上无电流流过则停止发热。电路图如下图2所示。

(2)动态显示电路:

   假设温度在100 ℃一下,因此可以选择4个共阴极的七段LED,前两个显示设定温度,后两个显示当前温度。单片机与8255A相连,用8255A的A口连接段码,B口连接位码实现动态显示。具体电路如图3所示。单片机与8255A的连接电路略,假设8255A的地址为FFF0H -FFF3H。

(3)A/D转换与温度控制电路:

   数据采集选用A/D转换器0809,程序中循环采集A/D转换值,采集完成由单片机接收采集的数据,经计算分析,确定是否加温,加温有8255A的PC0控制。具体电路如图4所示。

单片机接收到A/D转换值X后,将其转换为测试点的电压V,在计算出电阻Rt的值。Rt计算过程为:

V=5X/256

i=V/510

Rt=(5-V)/i=510*(5-V)/V

固有:Rt=510*(256-X)/X

   热敏电阻的阻值与温度之间有对应关系。有的热敏电阻的阻值与温度之间是线性关系,有的是非线性。对线性关系,可用公式将Rt换算成温度,对于非线性关系,可用查表程序。

   从连接电路中可知,0809芯片的地址是7FFFH,0809的控制端CBA与地相连,因此只可采集IN0的信号。采样结束信号EOC与8255的PC7相连,可通过查询测试A/D转换状态。

   UNL2803是反向驱动电路,A端为0时,A’为12V,停止加温;A端为1时,A’为0V,开始加温。

(4)键盘电路:

   键盘是用来设置恒温时的温度值,根据要求,可设置两个按键开关,K1用于增加设定值,K2用于减小设定值,两个开复安分别接在两个外部中断请求端INT0和INT1上,每按一次开关,温度值变化一次,开关电路如图5所示。由于外部中断是低电平或低脉冲出发,故连接时将K—端与中断请求端相连。

5. 程序设计

系统程序分为主程序、数据转换与控制子程序和中断服务程序。

(1)主程序:

  完成系统的8255初始化、启动A/D转换并采集数据、循环显示设定温度和采集温度。程序流程如果6所示。

(2)数据转换与控制子程序:

   热敏电阻采用mfd103,电阻与温度之间为非线性关系,因此,从A/D转换器接收的数据经计算得到Rt,经查表形成温度值,存入相应单元,并比较设定值与实际温度,控制加热电路。子程序流程图如下所示。

(3)中断服务程序

   中断服务程序由两个外部中断服务程序组成,其中一个完成设定温度加1,另一个完成设定温度减1。

6.程序清单

#include

#include

#include

#define uchar unsigned char

#define uint unsigned int

//定义0~9的共阴极显示代码

Code unchar Table[10]=

{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};    

//定义热敏电阻值与温度关系表(表为20~39℃电阻值,温度间隔为1)

code unit wd[20]=

{0x30CC,0x2EA6,0x2C9C,0x2AAB,0x2802,0x2710,0x25,

0x23CC,0x2248,0x20D6,0x1F76,0x1E26,0x1CE7,0x1BB6,

0x1A93,0x197D,0x1874,0x1778,0x1687,0x15A0};

uint wd_s,wd_c      //分别存放设定温度和当前温度

unit x;            //定义变量存放采样值

//数据转换与控制子程序

void change()

{

unit rt,I;

rt=510*(256-x)/x;        //计算Rt

for(i=1;i<20;i++) //查电阻表,形成当前温度值

{if (rt>=wd[i]) break;}

 wd_c=20+i;            //保存温度

if (wd_c XBYTE[0XFFF2]=1;

if (wd_c>wd_s) //当前温度大于设定温度时,停止加热

 XBYTE[0XFFF2]=0;

}

 //0号中断服务程序

 void int0_fun(void) interrupt 0

{wd_s++;

}

 //1号中断服务程序

void int0_fun(void) interrupt 1

{wd_s--;

}

 //主程序

main()

{

unchar m[4];               //存放温度各位数

unchar com=0xfe;           //显示位码

unchar i;                  //定义循环变量

IE=0x85;                   //中断初始化

IT0=1;

IT1=1;

XBYTE[0x7FFF3]=00X88;     //8255A初始化

while(1)

{

 XBYTE[0x7FFF]=0;      //启动转换

 if (XBYTE[0x7FFF2]&0x80=0);

 x=XBYTE[0x7FFF];

change()

  m[0]=wd_s/10;          //形成设定温度的十位和个位

m[1]=wd_s%10;

m[2]=wd_c/10;           //形成当前温度的十位和个位

m[3]=wd_c%10;

//显示温度

for (i=0;i<4;i++)

{

XBYTE[0xFFF1]=0xff;

XBYTE[0xFFF0]=table[m[i]];

XBYTE[0xFFF1]=com;

com=_crol_(com,1);

}

}

}

文档

单片机恒温控制系统设计【很完整】

1.功能要求用户设定温度值后,显示设定温度和当前温度根据当前温度和设定温度之间的差值,控制加温或停止加温,最终达到恒温。2.方案论证按要求,系统采用1片51单片机、1片A/D转换器ADC0809、键盘和4个共阴极7段LED显示器件。系统框图如图1所示。3.硬件电路设计本设计中,8255A和A/D转换器都作为单片机的扩展外设。4.硬件电路的功能(分模块介绍)(1)温度采集与控制单元电路:温度采集电路是用热敏电阻和一个分压电阻形成电压采样点,电压经换算可得到当前温度。用一个大功率电阻形成温度控制电
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top