摘 :基AT89C51单片机制作温度控制器动接通电加热制冷设备鸡舍温度达设想温度求实时显示室温度室温度低设定限温度时控制器连通电加热设备室温度等设定限温度时控制器断开电加热设备室温度设定限温度时控制器接通电制冷设备室温度等设定限温度时控制器断开电制冷设备
关键词:单片机温度控制鸡舍
The system of temperature control by Microcontroller
Which is used in chicken house
Zhangfancheng Pengshilin
(College of Physics and Electronic Engineering LongDong University QingYang 745000 Gansu)
Abstract:Based on AT89C51 singlechip to produce a temperature controller which is used to turn heating or cooling equipment automatically so that the temperature of hen house reaches the set temperature When the indoor temperature is below the set temperature limit the controller will connect electric refrigeration equipment and it will set off until the temperature is equal to the mean minimum temperature when the temperature of hen house is higher than the set temperature limit the controller switches electric refrigeration equipment automatically until it is equal to the set temperature
Key words temperature measurement and controlmicrocontroller chicken house.
0 引言
着现代信息技术飞速发展传统工业改造逐步实现够独立工作温度检测显示系统应诸领域特冶金化工建材食品加工机械制造等领域温度控制系统广泛应加热制冷等方面鸡类养殖专业户说予鸡群合适温度增加产蛋量提高生产效率设计开发温度控制器数字式调控温度动控制温度减少手动操作工作量加热制冷设备运行佳节状态减量消耗企业带更效率
总体设计方案:
鸡舍
温度检测
CPU
制冷加
热设备
键盘
显示
系统结构框图
1 硬件系统设计
11 硬件系统五部分组成单片机温度检测电路控制输出电路键盘电路显示电路
111 单片机
根设计制作求考虑51系列单片机已长期应性较稳定功完全满足系统控制求机采AT89C51单片机时AT89C51单片机身携带门狗电路防止设定温度电源断电丢失减少设计工作量次通键盘设置室设定温度通储存器储存起电源断电储存器存储设定温度丢失电源电单片机动设定温度储存器中读出方面避免断电更新设置工作方面保护控制器控制安全性性
112 温度检测电路
根设计求现条件里温度传感器采LM35HLM35H检测数先运算放器LM358进行放处理模数转换ADC0809进行转换送入单片机AT89C51
113 控制输出电路
控制信号单片机p24p25引脚输出继电器控制接触器接触器直接控制加热制冷设备单片机p24引脚输出高电时控制加热设备继电器加热设备启动直输出低电
p25输出高电时控制加热设备继电器制冷设备启动直输出低电
114 键盘电路
键盘三键分S1(设置)S2(+)S3()首先S1键单片机进入设置模式然S2键原基础加次加S3键原基础减次减设置设置控制限温度次次S1键进入设置控制限温度模式通S1S2键设置室应达限温度次次S1键退出设置模式
115 显示电路
显示电路两位FJ5101BH数码组成两片74LS164驱动实现静态显示74LS164需串行数时钟单片机P30P31提供
2 系统软件部分
# include
# include
# include
# define ledcode P1
# define ledcon P3
# define key P2
sbit ptP2^4
sbit pulsP2^3
sbit coldP2^5
unsigned char code table[14]{0x0c0 0x0f9 0x0a4 0x0b0 0x99 0x92 0x82 0x0f8 0x80 0x90 0xc60xc70x890xff}
unsigned
char clock[7]{0}mode0temh[6]{1213131334}teml[6]{1113131332}temp[6]{1013131325}ij
float data temperat
unsigned char bdata kkt
sbit keymk^2
sbit keygk^0
sbit keysk^1
void timer0() interrupt 1
{
TH0(6553650000+8)256
TL0(6553650000+8)256
clock[6]++
if (clock[6]>9)
{
clock[6]0
clock[5]++
if (clock[5]>9)
{
clock[5]0
clock[4]++
if (clock[4]>5)
{
clock[4]0
clock[3]++
if (clock[3]>9)
{
clock[3]0
clock[2]++
if (clock[2]>5)
{
clock[2]0
clock[1]++
if (clock[0]2)
{if (clock[1]>3) clock[0]clock[1]0}
else
{if (clock[1]>9) clock[0]++clock[1]0}
}
}
}
}
}
}
void timer1() interrupt 3
{
pulspuls
}
void display(unsigned char array[]unsigned char n)
{
signed char im
unsigned char data clkcon0x1
for (in1i>0i)
{
ledcodetable[array[i]]
ledconclkcon|0xc0
for (m0m<100m++)
clkcon_crol_(clkcon1)
}
return
}
main()
{
TMOD0x21
IE0x8a
TH0(6553650000)256
TL0(6553650000)256
TH12
TL12
TR01
TR11
for()
{
XBYTE[0x00]0
key0xff
kkey
kk&0x07
ktk
while (kt0x07)
{
key0xff
ktkey
ktkt&0x07
}
if (~keym)
{
mode++
if (mode>3) mode0
}
switch (mode)
{
case 0
display(clock6)
if (~keyg)
{
clock[3]++
if (clock[3]>9)
{
clock[3]0
clock[2]++
if (clock[2]>5) clock[2]clock[3]0
}
}
if (~keys)
{
clock[1]++
if (clock[0]2)
{if (clock[1]>3) clock[1]clock[0]0}
else
{if (clock[1]>9) clock[1]0clock[0]++}
}
break
case 1 display(temp6)
break
case 2 display(teml6)
if (~keyg)
{
teml[5]++
if (teml[5]>9) teml[5]0
}
if (~keys)
{
teml[4]++
if (teml[4]>9) teml[4]0
}
break
case 3 display(temh6)
if (~keyg)
{
temh[5]++
if (temh[5]>9) temh[5]0
}
if (~keys)
{
temh[4]++
if (temh[4]>9) temh[4]0
}
break
}
ledcode0xff
P00xff
temperatP0
temperattemperat*200510
temp[5](int)temperat10
temp[4](int)temperat10
if ((int)temperat
if ((int)temperat>temh[4]*10+temh[5])
{pt0cold1}
}
}
4 系统调试
41 软件系统调试
检查完程序先模块独立调试模块连起调试
42 整机调试
421 键盘调试
S1键≥3S进入设置状态数码显示前设置温度设置状态S2温度设置值加1高设置99设置状态S3温度设置值减1低设置00设置状态S1温度设置值存储AT89C51中退出设置状态设置状态S2S3键反应
422 设置温度存储调试
进入设置状态设置温度重新设值然S1键保存温度控制器断电通电进入设置状态重新设定温度值否存存说明设置温度存储正常否检查硬件软件两部分直存储正常止
423 温控调试
检测调试温度控器时LM35H置热水中注意裸露引脚部分沾水水温度没达设定温度限值时温度控制器加热设备控制端红色发光二极发光水温度高设定温度限值时温度控制器制冷设备控制端绿色发光二极发光热水温度设定温度限值限值间时温度控制器红色发光二极绿色发光二极熄灭
5 结束语
文基AT89C51单片机设计鸡舍温度动控制系统中单片机AT89C51直接参加闭环控制程通检测电路鸡舍温度进行巡回检测采样采样模拟信号ADC0809转换电路变成数字量输入单片机设计控制算法输入量进行计算处理发出控制信号驱动执行机构鸡舍室温度达预定求通仿真实验系统设计满足系统控制求系统通性强系统稍加修改类热处理炉恒温培养温度需求较敏感方
参考资料:
[1]黄道君刘丹华杨西惠微型计算机原理应[M]**:高等教育出版社2005
[2]立民MCS51系列单片机应系统设计配置接口技术[M]**:**航空航天学出版社1990
[3]张志良单片机原理接口技术[M]2版**:机械工业出版社2005
[5]毕万新单片机原理接口技术[M]2版**:**理工学出版社2005
[6]陈景初单片机应系统设计实践[M]**:**航空航天学出版社
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档