电子开发 | 基础入门 | 电路原理图 | 濠电姵顔栭崰鏍偑閹绢喖鍨傚ù鐓庣摠閸ゅ霉閸忓吋缍戦柣鎰躬閺岀喖顢涢崱妤佸櫤婵犮垺鐗楃换娑㈠箻鐎电ǹ鏆¢梺鐟板殩閹凤拷 | PLC闂傚倷鑳剁涵鍫曞疾閻愭祴鏋嶉柨婵嗩槶閳ь兛绶氶弫鎾绘晸閿燂拷   闂傚倷绶氬ḿ褍螞濡ゅ懏鏅濋柕鍫濐槶閳ь剙鎳撻ˇ鍦偓娈垮枤鏋顏冨嵆瀹曟﹢鍩¢崘褏閽靛┑鐘垫暩閸嬫稑螞鎼淬劌鍨傞柛婵嗗閼板潡鏌熷▓鍨灓闁告纰嶇换娑㈠幢濡吋鍣紓浣插亾濠㈣埖鍔栭崑锝夋煕閵夘喖澧柡渚€浜堕幃妤冨枈婢跺顏� Ctrl+D 闂傚倷绀佺紞濠傖缚瑜旈、鏍川椤旇棄寮块梺鍐叉惈閹冲海绱掗埡鍛厵妞ゆ牗绮岄。鍏笺亜閵夛箑鐏撮柡灞诲妼閳藉螖閸愩劌顬夐梻浣告啞閺屻劑骞婇幇鏉跨妞ゆ劧绠戦~鍛存煃閵夈儱甯犻柟鏌ョ畺濮婂搫效閸パ冾瀳闁诲孩鍑归崣鍐嚕椤愶富鏁嬮柍褜鍓熼悰顕€骞囬鐔奉€撶紒鍓у閿氬ù婊堢畺閺屻劑鎮ら崒娑橆伓婵犵數鍋為崹鍫曞箰閹绢喖纾婚柟鍓х帛閸嬶絿鎲稿澶婂簥闁哄被鍎洪弫鍡涙煟閺傛寧鎲搁柍缁樻礋閺岋絽螣婢剁ǹ鎯堝銈呯箻娴滃爼骞冪涵鍜佹Ь闂佸搫鑻ˇ閬嶅箲閵忕姈鐔哥瑹椤栨稒銆冮梻渚€娼чˇ浠嬪垂瀹曞洨鐭嗗鑸靛姈閻撶喖鏌曡箛瀣偓鏍р槈瑜旈弻锝夊焺閸愵亝鍣у銈嗘穿缂嶄線宕洪埀顒併亜閹烘垵顏╅柣顓燁殜閺岀喓鈧數枪瀛濈紓浣规⒒閸嬫挾鎹㈠☉銏犲耿闁归偊鍓涙导鍥╃磽娴g瓔鍤欐い鎴濐樀閻涱噣宕橀鍏夊亾閿曞倸绠抽柡鍐ㄥ亰缁憋拷.

电子开发网

PLC闂傚倷鑳堕幊鎾绘倶閸儱纾婚柟鍓х帛閻撴盯鏌涢顐㈠閻庢熬鎷� 濠电姵顔栭崰鏍偑閹绢喖鍨傚ù鐓庣摠閸ゅ霉閸忓吋缍戦柣鎰躬閺岀喖顢涢崱妤佸櫤婵犮垺鐗楃换娑㈠箻鐎电ǹ鏆¢梺鐟板殩閹凤拷 plc闂備礁鎼ˇ閬嶅磿閹版澘鍨傛い鏍ㄥ焹閺嬪酣鏌曡箛濠傚⒉濠殿垱鎸抽幃褰掑箒閹烘垵顬夐梺鍝勬4閹凤拷 闂傚倷鐒﹂惇褰掑垂瑜版帗鍊舵慨妯跨簿婵櫕銇勯弮鍌涙珪闁崇粯妫冮弻鐔煎箚瑜滈崵鐔兼煕閳哄瀚�
濠电姵顔栭崰姘跺箠閹捐鐒垫い鎺戝€搁弸鎴犵磼閵娧冣枅闁哄矉缍佹慨鈧柕鍫濇闁款參姊洪悜鈺傤潐闁瑰嚖鎷� 闂傚倷鑳剁划顖炲箰閸℃稑绀嬫い鎺戭槹缂嶆﹢姊绘担鍦菇闁搞劏妫勫玻鑳槻闁宠绉归弫鎾绘晸閿燂拷 闂傚倷鐒﹂惇褰掑垂閽樺缂氱憸鏃堝箖閸濆嫧鏋庨柟鎯х-椤︻偊姊洪崫鍕ⅱ闁轰礁鎽滅划娆撴晸閿燂拷 闂傚倷鑳堕幊鎾寸珶婵犲洤鍨傞梻鍫熺〒閺嗭箓寮堕崼娑樺闁崇懓绉归弻宥夊Ψ閵夈儲姣愭繝鐢靛剳閹凤拷
闂傚倷鐒﹀鍨熆閳ь剛绱掗幓鎺濈吋闁诡垰鏈妶锝夊礃閵娿儱浜堕梻浣虹帛濮婂宕曢妶澶婄9闁跨噦鎷� 濠电姷顣藉Σ鍛村垂椤忓牆绀堟繝闈涚墐閸嬫挸顫濋鐘冲櫚闂佽鍠曠划娆徫涢崘銊㈡婵﹩鍘介崯锟� 闂傚倷娴囧銊╂倿閿曗偓椤灝顫滈埀顒勫箖妤︽妯勯梺璇″枙缁瑥螞閸愩劉妲堟慨姗嗗幗閸燂拷 闂傚倸鍊搁崐鎼佹晝閵夛妇绠惧┑鐘叉储閳ь剙鍊垮畷濂稿即閻旇渹缂撳┑鐐舵彧缁蹭粙宕导瀛樺亜闁跨噦鎷� 闂傚倷绀侀幖顐﹀疮閻楀牊鍙忛柣鎴f閸氬綊骞栧ǎ顒€濡介柛瀣ㄥ姂閺屻劑鎮ら崒娑橆伓
电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册

闂傚倷绀侀悿鍥涢崟顖氱疇闁圭増婢橀弸渚€鏌涘┑鍕姕鐎规洖顦伴妵鍕冀閵娿劌顥濋悷婊勬緲濡盯鍩€椤掍緡鍟忛柛鐘崇墱閹广垽骞嬮悙瀛樼彿濠电姴锕ら悧鍡欑矆閸愵亖鍋撻崗澶婁壕闁诲函缍嗛崜娑⑺囬鈧娲传閸曨厼顣甸梺绋款儐閹瑰洭寮婚敓鐘茬<婵炴垶锕╁Λ鍡樼節閳封偓閸曞灚鐤佹繝纰樷偓宕囨憼缂佺粯绻堝畷鐔碱敆娴e湱妲戦梻浣筋嚙鐎涒晝绮欓幒妤€绀夋俊銈呮噹閺嬩線鏌涘┑鍕姕鐎规洖顦伴妵鍕冀閵娿劌顥濋悷婊勬緲濡盯鍩€椤掍緡鍟忛柛鐘崇墱閹广垹螖閸滀焦鏅i梺鍛婄缚閸庤櫕绋夊鍡曠箚闁靛牆鍊告禍鎯р攽閻愬弶鍣洪悽顖楀墲娣囧﹦鈧數纭堕崑鎾绘晲閸涱収鏆㈢紓浣插亾濠㈣埖鍔栭悡鐔搞亜椤愵偄骞樼紒浣哄厴閺岋綁顢橀姀銏㈡毇閻庤娲橀〃濠囥€佸Δ鍛劦妞ゆ帒鍊归~鏇㈡煥閻斿搫孝闁藉啰鍠栭弻鏇熷緞濡厧甯ラ梺鎼炲€曠€氫即寮婚悢鍏碱棃婵炴垵宕崜浼存⒑閸濄儱鍓抽柟鍑ゆ嫹 闂傚倷鐒﹀鍨熆閳ь剛绱掗幓鎺濈吋闁诡垰鏈妶锝夊礃閵娧屾Н婵$偑鍊栧濠氬磻閹惧墎纾奸柟鎻掝儑绾惧潡鏌熷畡閭﹀剶闁轰礁绉瑰畷鐔碱敇閻斿摜妲楅梻鍌欑窔濞艰崵寰婃繝姘濠电姴娲ら悞鍨亜閹哄秶顦﹀┑顔碱樀閺屸剝鎷呴崨濠冨枑闂侀€炲苯澧紒瀣浮瀹曟繈骞掗弬鍨亰闂佺粯锚绾绢參鍩㈤弮鈧幈銊ヮ潨閸℃ぞ绨奸梺娲讳簷缁瑩寮诲☉妯锋婵炲拋鍙庢禍鐐哄箲閵忋倕鐒垫い鎺嗗亾妞ゎ叀娉曢幑鍕倻濡警妲卞┑鐘媰閸曨厾鐓夐悗瑙勬礃宀f寧绂掗敃鍌涘€婚柍杞版婢规洟姊虹捄銊ユ珢闁瑰嚖鎷�
闂傚倷绀侀悿鍥涢崟顐嬫稑螖閳ь剟鎮鹃悜钘夌妞ゆ巻鍋撶紒鍓佸仱閺屽秵娼幍顔跨獥闂佸憡鏌ㄩ幊搴ㄦ箒闂佺ǹ绻楁竟鍫熺珶濡皷鍋撶憴鍕闁哥姵鐗犻獮鍐樄鐎规洖鐖兼俊鎼佹晜閸撗勵嚇闂備浇顕ф绋匡耿闁秴纾绘俊顖氬悑椤愪粙鏌ㄩ悤鍌涘100 c闂備浇宕垫慨鏉懨归崒鐐茬煑闁逞屽墴閺屽秵瀵煎▎鎰伓 chm闂傚倷绀侀幖顐ょ矓閸洖鍌ㄧ憸蹇撐i幇鐗堟櫢闁绘ê寮妷鈺傜厱閻忕偛澧界粻姗€鏌曢崼顐喊闁哄矉绻濆畷鎺戔槈濮橆厼娅戦梻浣告憸閸嬫盯顢氶銏犵劦妞ゆ巻鍋撴繝鈧柆宥冣偓浣圭節閸ヨ埖鏅┑鐐村灦濮樸劎澹曟總鍛婄厱闁宠棄妫楅獮妯肩磼閳ь剚寰勯幇顓炰画闂佸搫娲ㄩ崑鐐核夐悩宕囩闁圭粯甯弨鑽ょ磼濡ゅ啫鏋旈柍褜鍓ㄧ紞鍡樼閻愬搫绠虹€广儱鎷嬮悢鍡涙煠閸濄儲鏆╅柛鐔诲皺缁辨帗娼忛妸褏鐤勯悗瑙勬礃閿曘垹鐣烽妸鈺婃晣鐟滃秹寮查敐鍛傛棃鎮╅棃娑楀摋闂佽法鍠嗛崕鐢稿春閳ь剚銇勯幒宥囶槮濠殿喖顦甸弻鈩冩媴閸涘﹥鍠愰梺閫炲苯澧紒瀣浮瀹曟繈骞掗弬鍨亰闂佺粯锚绾绢參鍩㈤弮鈧幈銊ヮ潨閸℃ぞ绨奸梺娲讳簷缁瑩寮诲☉妯锋婵炲拋鍙庢禍鐐哄箲閵忋倕鐒垫い鎺嗗亾妞ゎ叀娉曢幑鍕倻濡警妲卞┑鐘媰閸曨厾鐓夐悗瑙勬礃宀f寧绂掗敃鍌涘€婚柍杞版婢规洟姊虹捄銊ユ珢闁瑰嚖鎷�
搜索: 您现在的位置: 电子开发网 >> 电子开发 >> 单片机 >> 正文

基于51单片机的恒温控制器系统 protues+keil c

作者:佚名    文章来源:网友    点击数:2835    更新时间:2023/5/21

恒温控制器系统概述

该恒温控制器系统包含以下几个功能:

  • 可按键设定温度
  • 可显示当前温度和用户设定温度
  • 有升温、降温模块
  • 可最终达到恒温

仿真软件

  • Keil 5
  • Proteus 8.6

系统设计

电路设计

 
恒温控制系统一共有6个模块,分别是主控芯片模块、按键输入模块、设定温度显示模块、当前温度显示模块、温度采集模块和升温、降温模块。

  1. 按键输入模块:该模块由4*3的矩阵键盘和1个确认按钮构成。系统刚开始启动后,用户通过矩阵键盘输入想要设定的温度(0°~99°),输入完毕后按下确认键,然后将该温度数据传送给主控芯片AT89C51;
  2. 设定温度显示模块:该模块由一个2位8段LED数码管构成,主控芯片AT89C51使用P3口控制该数码管的段选,使用P2.4和P2.5两个端口来控制该数码管的位选。主控芯片AT89C51将从矩阵键盘得到的设定温度信息,通过2位8段LED数码管显示出来;
  3. 温度采集模块;该模块由一个DS18B20温度传感器构成。使用DS18B20温度传感器采集当前的温度,并将该温度信息传送给主控芯片AT89C51;
  4. 当前温度显示模块:该模块由两个74HC573锁存器和一个4位8段LED数码管构成,主控芯片AT89C51使用P2.6和P2.7控制两个74HC573锁存器的片选,两个锁存器的输入口均与主控芯片的P0口相连,并使用一个100欧的排阻作为P0口的上拉电阻,两个锁存器的输出口分别与4位8段LED数码管的段选口与位选口相连;
  5. 升温、降温模块:该模块由一个绿色LED和一个红色LED构成,绿色LED负责降温,每闪烁一次温度下降0.5°,红色LED负责升温,每闪烁一次温度上升0.5°。主控芯片AT89C51根据当前温度和用户设定温度之间的差值,来控制升温还是降温,以达到恒温的目的。

软件代码编写

 

51单片机恒温控制系统程序流程图  

程序的具体流程如下:

  1. 硬件初始化,关闭所有的数码管;
  2. 进行两次按键扫描循环,分别获取用户设定温度的十位和个位,获取完毕后,判断确认键是否被按下,如果用户按下确认键则进入到主程序循环中;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
while(ok) //用户设定温度
 {
  while(key1 == 15)
  {
   key1 = keyscan();
   delay(50);
  }
  while(key2 == 15)
  {
   key2 = keyscan();
   delay(50);
  }
  delay(100);//等待确认键
 }
//键盘扫描
uchar keyscan()
{
 uchar temp,key;
 key = 15; // 默认值,如果没有按键按下key就为该默认值
 P1 = 0xfe; //扫描第一行
 temp = P1;
 temp = temp & 0xf0;
 if(temp!=0xf0)
 {
  delay(10); // 延时消抖
  temp = P1;
  temp = temp & 0xf0;
  if(temp!=0xf0)
  {
   temp = P1;
   switch(temp) //扫描列
   {
    case 0xee:
     key = 1;
     break;
    case 0xde:
     key = 2;
     break;
    case 0xbe:
     key = 3;
     break;
   }
   while(temp!=0xf0) //等待按键释放
   {
    temp = P1;
    temp = temp & 0xf0;
   }
  }
 }
 P1 = 0xfd; //扫描第二行
 temp = P1;
 temp = temp & 0xf0;
 if(temp!=0xf0)
 {
  delay(10); // 延时消抖
  temp = P1;
  temp = temp & 0xf0;
  if(temp!=0xf0)
  {
   temp = P1;
   switch(temp) //扫描列
   {
    case 0xed:
     key = 4;
     break;
    case 0xdd:
     key = 5;
     break;
    case 0xbd:
     key = 6;
     break;
   }
   while(temp!=0xf0) //等待按键释放
   {
    temp = P1;
    temp = temp & 0xf0;
   }
  }
 }
 P1 = 0xfb; //扫描第三行
 temp = P1;
 temp = temp & 0xf0;
 if(temp!=0xf0)
 {
  delay(10); // 延时消抖
  temp = P1;
  temp = temp & 0xf0;
  if(temp!=0xf0)
  {
   temp = P1;
   switch(temp) //扫描列
   {
    case 0xeb:
     key = 7;
     break;
    case 0xdb:
     key = 8;
     break;
    case 0xbb:
     key = 9;
     break;
   }
   while(temp!=0xf0) //等待按键释放
   {
    temp = P1;
    temp = temp & 0xf0;
   }
  }
 }
 P1 = 0xf7; //扫描第四行
 temp = P1;
 temp = temp & 0xf0;
 if(temp!=0xf0)
 {
  delay(10); // 延时消抖
  temp = P1;
  temp = temp & 0xf0;
  if(temp!=0xf0)
  {
   temp = P1;
   switch(temp) //扫描列
   {
    case 0xe7:
     key = 0;
     break;
    case 0xd7:
     key = 0;
     break;
    case 0xb7:
     key = 0;
     break;
   }
   while(temp!=0xf0) //等待按键释放
   {
    temp = P1;
    temp = temp & 0xf0;
   }
  }
 }
 return key;
}
  1. 在主程序循环中,首先调用dis_set()函数显示用户设定温度;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
for(i=20;i>0;i--)
 dis_set(key1, key2); //显示用户设定的温度
//显示设定温度函数
void dis_set(uchar k1, uchar k2)
{
  display2(1, k1);
  display2(2, k2);
  display2(0, k1);
}
//设定温度数据显示函数
void display2(uchar num, uchar tem_data)
{
 if(num==0)
 {
  S1 = 1;
  S2 = 1;
  delay(5);
 }
 if(num==1)
 {
  S1 = 0;
  S2 = 1;
  P3 = table[tem_data]; //table为 0-9的16进制编码表
  delay(5);
 }
 else if(num==2)
 {
  S1 = 1;
  S2 = 0;
  P3 = table[tem_data];
  delay(5);
 }
}

然后再从温度传感器获取当前温度,获取当前温度的流程如下图所示,先调用DSreset()函数进行温度传感器的初始化,再调用temwrite()函数,对传感器写入温度转换的指令,进行温度获取和转换,然后调用get_tem()函数对传感器写入读取寄存器指令,从寄存器中读取存储的温度数据,并对该数据进行精度转换处理,最后获得一个保留了1位小数的当前温度数据;

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
temchange();    //获取当前温度
//温度获取和转换函数
void temchange(void)
{
 DSreset();
 delay(1);
 temwrite(0xcc); //写跳过ROM指令
 temwrite(0x44); //写温度转换指令
}
//读取寄存器中存储的温度数据
uint get_tem(void)
{
 uchar l8,h8;
 DSreset();
 delay(1);
 temwrite(0xcc); //写跳过ROM指令
 temwrite(0xbe); //写读寄存器指令
 l8 = temread(); //读低8位数据
 h8 = temread(); //读高8位数据
 tem = h8;
 tem = tem<<8;
 tem = tem|l8; //合成一个16位数据
 f_tem = tem*0.0625;
 tem = f_tem*10+0.5; //*10用于保留1位小数点,+0.5用于四舍五入
 return (tem);
}

DS18B20温度传感器的基本操作代码如下,各项操作要严格遵守DS18B20温度传感器的时序图,延时时间要足够,可以根据使用的主控芯片适当地修改循环的次数来调整延时。

初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//温度传感器初始化
uint DSreset(void)
{
 uint i;
 DS = 0;
 i = 73;
 while(i>0)
  i--;
 DS = 1;
 i = 0;
 while(DS)
 {//等待DS18B20拉低总线
  delay(1);
  i++;
  if(i>10)
  {
   return 0;//初始化失败
  }
 }
 DS = 1;
 return 1;//初始化成功
}

读1位数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//读1位数据
bit temreadbit(void)
{
 uint i;
 bit tem_bitdata;
 DS = 0;
 i++; //延时
 DS = 1;
 i++;
 i++;
 tem_bitdata = DS;
 i = 10;
 while(i>0)
  i--;
 return(tem_bitdata);
}

读1字节数据

1
2
3
4
5
6
7
8
9
10
11
12
//读1字节数据
uchar temread(void)
{
 uint i;
 uchar j,tem_data;
 for(i=1;i<=8;i++)
 {
  j = temreadbit();
  tem_data = (j<<7)|(tem_data>>1); //移位,让最低位在最后面
 }
 return (tem_data);
}

写1字节数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//写1字节数据
void temwrite(uchar tem_data)
{
 uint i;
 uchar j;
 bit send_bitdata;
 for(j=1;j<=8;j++)
 {
  send_bitdata = tem_data&0x01; //取要发送数据的最低位
  tem_data = tem_data>>1; //右移一位
  if(send_bitdata) //写1
  {
   DS = 0;
   i++;
   i++;
   DS = 1;
   i = 10;
   while(i>0)
    i--;
  }
  else     //写0
  {
   DS = 0;
   i = 10;
   while(i>0)
    i--;
   DS = 1;
   i++;
   i++;
  }
 }
}
  1. 获取完当前温度,调用dis_tem()函数显示当前温度;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
for(i=20;i>0;i--)  //显示当前温度
 dis_tem(get_tem());
//显示当前温度函数
void dis_tem(uint t)
{
 uchar i;
 i = t/100; //取温度的十位
 display1(1,i);
 i = t%100/10; //取温度的个位
 display1(2,i+10);
 i = t%10; //取温度的小数点后一位
 display1(3,i);
}
//当前温度数据显示函数
void display1(uchar num, uchar tem_data)
{
 WE = 1; //选位,低电平有效
 P0 = ~((0x01)<<(num));
 WE = 0;
 DU = 1; //选段,高电平有效
 P0 = table[tem_data];
 DU = 0;
 delay(10);
}
  1. 将当前温度和用户设定温度传入deal()函数,进行恒温控制,在恒温控制函数deal()中,根据判断当前温度和用户设定温度之间的差值进行不同的处理,如果当前温度小于用户设定温度,就进行升温处理,即红灯闪烁一次,每闪烁一次温度上升0.5°,如果当前温度大于用户设定温度,就进行降温处理,即绿灯闪烁一次,每闪烁一次温度下降0.5°,如果当前温度与用户设定温度想等,则不做处理,只显示温度;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
void deal(uint t, uint t_set)
{
 uchar i;
 if(t<t_set) if(t="" else="" }="" 升温="" 0x20);="" work(15,="" {="">t_set)
 {
  work(15, 0x40); //降温
 }
 else
 {
  i = 15;
  while(i--)
   {
    dis_tem(tem_set);
    dis_set(key1, key2);
   }
 }
}
//升温、降温模块
void work(uint s, uchar led)
{
 uchar i;
 if(led==0x20)
 {
  i = s;
  led0 = ~(led0); //灯亮
  tem = tem+5;
  while(i--)
  {
   dis_tem(tem);
   dis_set(key1, key2);
  }
  led0 = ~(led0); //灯灭
  i = s;
  while(i--)
  {
   dis_tem(tem);
   dis_set(key1, key2);
  }
 }
 else
 {
  i = s;
  led1 = ~(led1); //灯亮
  tem = tem-5;
  while(i--)
  {
   dis_tem(tem);
   dis_set(key1, key2);
  }
  led1 = ~(led1); //灯灭
  i = s;
  while(i--)
  {
   dis_tem(tem);
   dis_set(key1, key2);
  }
 }
}</t_set)>
  1. 进行一次恒温控制后,系统又回到主程序循环的起始点,不断重复上述3-5步骤,使温度保持在用户设定的温度,达到恒温的效果。

代码下载 51单片机恒温控制系统C语言程序代码


Tags:51单片机,恒温控制,C语言,proteus  
责任编辑:admin
  • 上一篇文章:
  • 下一篇文章: 没有了
  • 相关文章列表
    51单片机数码管显示程序, 共阴数码管显示程序 数码管原理(显示
    单片机C语言编程入门教程  流水灯程序示例
    51单片机学习笔记直流电机驱动(PWM)C语言程序
    MCU-51单片机直流电机驱动(PWM)51单片机驱动直流电机
    先学51还是先学STM32?STM32和51单片机的区别
    51单片机和STM32单片机的结构有什么不同
    51单片机、AVR单片机和PIC单片机的IO口操作
    关于51单片机IO引脚的驱动能力与上拉电阻
    51单片机“呼吸灯”程序
    51单片机入门之静态数码管电路设计
    稳定可靠的恒温控制装置,TWH8751 Temperature controller
    AT89C51,51单片机1602液晶显示时钟程序
    单片机电子时钟程序设计
    4位单片机数字钟 电子钟制作
    51单片机4位数码管电子钟源程序
    AT89C2051电脑机箱风扇智能温控仪,AT89C2051 Temperature contro
    51单片机温控风扇(含程序+原理图+仿真+PCB)
    89C52来做定时记数器程序,51定时程序
    单片机C语言程序设计:用 ADC0808 控制PWM 输出
    51单片机蜂鸣器播放音乐代码
    利用单片机AT89S51与ADC0809设计数字电压表,Voltmeter
    单片机制作的纯正弦波逆变器,12V Pure Sine Wave Inverter
    51单片机00-59秒计时器 0-59s Timer
    51单片机按键程序中 while(!key)的作用
    51系列单片机寻址方式
    认识单片机引脚【详解】
    数码管显示矩阵键盘扫描值
    用51单片机设计的无线防盗报警器技术
    51单片机产生“嘀、嘀、……”报警声
    51单片机汇编模拟串口通信程序
    请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
    1分 2分 3分 4分 5分

    还可以输入 200 个字
    [ 查看全部 ] 网友评论
        没有任何评论
    闂傚倷鐒﹂惇褰掑垂閽樺缂氱憸鏃堝箖閸濆嫧鏋庨煫鍥风到濞堛劑姊洪柅鐐茶嫰婢у鈧娲╃紞渚€鐛€n喗鍋愰柣銏℃櫕瑜斿娲箰鎼达絺濮囩紒鐐緲缁夊綊骞嗛崶顏備汗闁圭儤鎸撮幐鍛存⒑缁洖澧查柣鐕傜畵瀹曟垿宕ㄧ€涙ḿ鍘卞┑顔斤供閸撴稒鏅堕弴銏$厵妞ゆ柨鍚嬪婵嬫煟濮樺墎鐣洪柟绛圭節婵″爼宕卞Ο鑽ゆ闂備浇顕х€涒晝绮欓幒妤€绀夐柡鍥ュ灩閺勩儲淇婇妶鍕妽濠殿垰鐡ㄧ换婵囩箾閹傚缂傚倷鐒﹂〃鍛存儗閸岀偛绠栭柤鎭掑劜婵挳鏌涢幇鍏哥敖闁哥偞鎸冲娲箹閻愭彃濮庢繝鈷€鍡橆棄闁崇粯鎹囬獮瀣偐閻㈢绱撮梻浣烘嚀椤曨厽鎱ㄩ悿顖樹汗闁哄被鍎查悡銉︾箾閹寸儑渚涢柛鐐殿劘c闂佽姘﹂~澶愬箖閸洖纾块柤纰卞墯閺嗘粓鏌涢锝嗙缂佺媭鍣i弻宥堫檨闁告挾鍠庨锝夋偨閸涘﹥娅㈤梺璺ㄥ櫐閹凤拷,濠电姷顣藉Σ鍛村垂閻e本顫曢柡鍥ュ灩閺嬩線鏌熼梻瀵割槮闁哄绶氶弻鐔封枔閸喗鐏嶉梺鍝勬閺呯娀寮婚敐澶樻晣婵犲﹤鍟慨銈夋⒑娴兼瑨顓洪柟鍑ゆ嫹,闂傚倷绀侀幉锟犮€冮崱妞曞搫饪伴崟顒佺彿闂佸搫绋侀崢鑲┾偓姘槺缁辨帡鍨剧€圭姴鏁紸缂傚倸鍊烽悞锔剧矙閹次诲洭鏌嗗鍡椾槐闂佺鎻梽鍕疾椤掆偓闇夐柨婵嗙墛椤ュ鏌i妶搴℃珝闁哄矉绠撻崺鈧い鎺戝缁€鍐┿亜韫囨挻鍣烘慨锝呭閺岋綁鎮╂潏顐妳闂佹悶鍔嶅姗€婀佸┑鈽嗗灥閸嬫劗澹曟ィ鍐╃厵閻庣數枪鍟搁悷婊勫鐏忔瑧妲愰幒妤婃晩闁芥ê顦慨銏ゆ倵鐟欏嫭绀冩繛鑼枛瀵偄顓奸崶锔藉媰闂佽壈顫夋竟鍡浰囨导瀛樺€甸悷娆忓閸嬬娀鏌涙惔銏犫枙闁糕斂鍨介幊鏍煛閸屾稒顔囬梻浣稿閸嬪懐鎹㈤崒鐐村€堕柨鐔哄У閳锋垶銇勯幇鈺佲偓鏇炵毈闂備胶绮划鐘诲垂鐠鸿櫣鏆﹂柟閭﹀枤缁犳棃鎮跺☉鎺嗗亾閸忓懎顥氶梻浣呵归張顒佺瑹濡ゅ懎纾婚柕濞炬櫅缁狙囨煃鏉炴壆绐旀い搴㈩殜閺屾稑鈻嶇拠鎻掓殜闁哄鐗犻弻鏇熺箾閸喖濮嶇紓浣靛妼閸熻儻褰侀梺鎼炲劵缁叉椽宕戦幘璇茬闁圭粯甯炵粙璇测攽閻愬瓨缍戦柛姘儔閵嗗啴宕ㄩ懜顑挎睏闂佺鍕垫畷闁哄拋鍓氶幈銊ノ熼崸妤€鎽甸梺鍝勬閺呯娀骞冨Δ鈧埥澶娾枎韫囨搩娼撶紓鍌欐祰妞存悂宕归崹顔炬殾闁挎繂顦粻锝夋煟濡吋鏆╅弫鍫ユ⒒娴g懓顕滈柛鎰煼楠炲繘鏁撻敓锟�
    最新推荐
    闂備浇宕垫慨宥夊礃椤垳鐥梻浣告惈椤戞垹鎹㈠┑鍡欐殾闁绘ǹ顕у婵囥亜閹烘垵鈧骞夐鈧弻鈩冨緞鐏炶棄澹嬮梺鐟板殩閹凤拷
     [闂傚倷绀侀幉锟犮€冮崱妞曞搫饪伴崟顒佺彿闂佸搫绋侀崢鑲┾偓姘槸铻栭柨鏇氱劍绾爼鏌曢崼顐喊闁哄矉绻濆畷鎺楁晜閽樺浼�]闂傚倷绀侀幉锟犲Φ閻愮數鐭嗗〒姘e亾濠碘€崇仛瀵板嫮浠︾粙澶稿濠电偞鍨电壕顓犳閹殿喚纾奸柛娆惷畵鍡欌偓瑙勬穿缁绘繂顕i幘顔藉亹鐎瑰壊鍠楀В鍫ユ⒒娴e憡鎯堥柣妤€妫濋獮鏍敃閿旇棄浠鹃梺鍛婃处閸撴盯鎮疯ぐ鎺撶叆闁绘洖鍊圭€氾拷100 c闂備浇宕垫慨鏉懨归崟顖氱闁跨噦鎷�
     [闂備礁鎼ˇ閬嶅磿閹版澘鍨傛い鏍ㄥ焹閺嬪酣鏌曡箛瀣伄閻忓繒鏁婚弻銊╂偆閸屾稑顏�]婵犵數鍋為崹鍫曞箰閹间絸鍥┾偓鍦О娴滃湱绱掗埀顒勬倻閻娀姊虹拠鎻掝劉闁告劘宕电槐鎾愁潩閸楃偛袣闂佸憡娲﹂崜娑€€呴悜鑺ュ仯闁诡厽甯掓俊浠嬫煕閳轰礁鈧灝顕i崼鏇熷€婚柛鈩冾殘娴犙冣攽閻愬弶锛嶉柡渚囩厺-TR
     [闂傚倷鐒﹀鍨熆閳ь剛绱掗幓鎺濈吋闁诡垰鐭傞幃娆擃敆閸屻倖绁梺鑽ゅУ娴滀粙宕濆澶婃槬闁稿瞼鍋為崑锝吤归敐鍥ㄥ殌缂佲偓閸愨斂浜滈柟鍨鐎氾拷]LM324闂備礁鎼ˇ顐﹀疾濠婂牆绀夐柡宥庡幖濡﹢鏌ㄩ悤鍌涘4~20mA闂備礁鎼ˇ閬嶅磿閹达箑绠柨鐕傛嫹1~5V闂傚倷鐒﹂惇褰掑垂瑜版帗鍊舵慨妯夸含閻牓鏌ㄩ悤鍌涘
     [闂傚倷鐒﹀鍨熆閳ь剛绱掗幓鎺濈吋闁诡垰鐭傞幃娆擃敆閸屻倖绁梺鑽ゅУ娴滀粙宕濆澶婃槬闁稿瞼鍋為崑锝吤归敐鍥ㄥ殌缂佲偓閸愨斂浜滈柟鍨鐎氾拷]LM386婵犵绱曢崑娑橈耿鏉堚晛鍨濇い鏍仦閸婂灚銇勯幒宥囧妽濠殿垱鎸抽弻鐔煎箲閹伴潧娈銈嗘煥閿曨亪寮诲☉婊呯杸闁瑰灝鍟崜璺侯渻閵堝啫鍔滈柟鐟版搐椤曪綁濡搁埡浣虹暰閻熸粌顑嗙粋宥夋晲婢跺鍘遍梺鎸庣箓閸燁偅淇婃總鍛婂仺妞ゆ牓鍊栫€氾拷
     [闂傚倷鐒﹀鍨熆閳ь剛绱掗幓鎺濈吋闁诡垰鐭傞幃娆擃敆閸屻倖绁梺鑽ゅУ娴滀粙宕濆澶婃槬闁稿瞼鍋為崑锝吤归敐鍥ㄥ殌缂佲偓閸愨斂浜滈柟鍨鐎氾拷]936闂傚倷鑳剁划顖滄暜閹烘鏅濋柕鍫濈墑娴滃綊鏌熺紒銏犳灍闁稿鍔岄湁闁挎繂鎳庨弳鐔兼煟閺傛寧鍤囬柡灞剧☉铻i柣鎾冲閻忎線姊虹拠鈥虫灈闁挎洦浜滈悾鐑藉醇閺囩喐娅㈤梺璺ㄥ櫐閹凤拷
     [闂傚倷绀侀幉锟犮€冮崱妞曞搫饪伴崟顒佺彿闂佸搫绋侀崢鑲┾偓姘槸铻栭柨鏇氱劍绾爼鏌曢崼顐喊闁哄矉绻濆畷鎺楁晜閽樺浼�]闂備胶鍎甸崜婵堟暜閹烘绠犻幖娣妽閺咁剟鏌熼柇锕€鍘撮柡瀣墵閺屾洝绠涢妷褏锛熼梺闈涚墛閹告娊骞冭ぐ鎺撳仏閻庢稒锚椤忥拷+濠电姷鏁搁崑鐐哄箰閹绢喖鐤炬繛鎴炲焹閸嬫捇鎯傞崨濠傤伓+闂傚倷鑳堕、濠勭礄娴兼潙纾块柟缁㈠櫘閺佸棝鏌i弬鍨倯闁稿骸绉归弻娑㈠即閵娿儰绨荤紓浣插亾闁跨噦鎷�
     [闂傚倸鍊风欢锟犲磻閸涱収娼╅柕濞炬櫅閺嬩線鏌曢崼婵愭Ч闁稿鍔戝濠氬醇閻旀亽鈧帡鏌熼挊澶屝ч柟顔款潐閹峰懘鎮烽幍顕呮О婵$偑鍊栭幐鎼佸箟閳ョ繀缂氭い蹇撶墱閺佸秵绻涢崱妯哄Е闁稿鎷�]S7-200PLC闂傚倷鐒﹂惇褰掑礉瀹€鈧埀顒佸嚬娴滅偤骞愰幒妤€顫呴柕鍫濇閸撴娊姊虹紒妯烩拹婵″弶甯¢獮蹇涱敃閳锋艾缍婇幃顏堝川椤旂⒈浼� S7_2
     [闂備礁鎼ˇ閬嶅磿閹版澘鍨傛い鏍ㄥ焹閺嬪酣鏌曡箛瀣伄閻忓繒鏁婚弻銊╂偆閸屾稑顏�]S7-200闂備礁婀遍崢褔鎮洪妸鈺佺濠电姵鑹鹃崙鐘绘煕閹般劍娅囨い鈺冨厴閹鎷呴崨濠呯缂備讲鍋撻柛鏇ㄥ灡閻撴洟鐓崶椋庢偧闁告ɑ绮庣槐鎺楀箟鐎n偄顏�,STEP7
     [闂備礁鎼ˇ閬嶅磿閹版澘鍨傛い鏍ㄥ焹閺嬪酣鏌曡箛瀣伄閻忓繒鏁婚弻銊╂偆閸屾稑顏�]ModbusPoll闂傚倷绀侀幉锛勫垝瀹€鍕垫晢闁绘牕鐛沚usSalve闂傚倷鑳舵灙濡ょ姴绻橀獮蹇涙晸閿燂拷
     [闂備礁鎼ˇ閬嶅磿閹版澘鍨傛い鏍ㄥ焹閺嬪酣鏌曡箛瀣伄閻忓繒鏁婚弻銊╂偆閸屾稑顏�]STEP7濠电姷顣藉Σ鍛村垂椤忓牆绀堟繝闈涚墐閸嬫挸顫濋鐘冲櫚闂佸搫鑻惌浣虹不濞戙垹妫橀悹鎭掑妽閳诲苯鈹戦悙宸殶濠殿喕鍗冲畷鎰板即閻樺搫小闂佽法鍣﹂幏锟� Smart_
     [闂備礁鎼ˇ閬嶅磿閹版澘鍨傛い鏍ㄥ焹閺嬪酣鏌曡箛瀣伄閻忓繒鏁婚弻銊╂偆閸屾稑顏�]Modbus闂備浇宕垫慨鎾敄閸涙潙鐤柟鎯板Г閸庡﹥銇勯弽銊х煀闁搞劍绻堥弻娑㈠箻濡も偓閸婅崵鎲撮敓锟� v1.024 缂傚倸鍊搁崐椋庢閵堝绠柨鐕傛嫹
     [闂備礁鎼ˇ閬嶅磿閹版澘鍨傛い鏍ㄥ焹閺嬪酣鏌曡箛瀣伄閻忓繒鏁婚弻銊╂偆閸屾稑顏�]Modscan32闂傚倷绀侀幉锛勫垝瀹€鍕垫晢闁绘牕鐛泂im32,modb
     [闂傚倷鐒﹀鍨熆閳ь剛绱掗幓鎺濈吋闁诡垰鐭傞幃娆擃敆閸屻倖绁梺鑽ゅУ娴滀粙宕濆澶婃槬闁稿瞼鍋為崑锝吤归敐鍥ㄥ殌缂佲偓閸愨斂浜滈柟鍨鐎氾拷]89c51闂傚倷鑳舵灙缂佺粯鍔欒棟闂侇剙绉甸崑鐔哥箾閹存瑥鐏╂俊顐o耿濮婃椽顢曢敐鍥剁伇闂傚倸妫楃紞濠囧蓟閿濆鏁傞柛鈩冾殕閻濄垻绱撴担浠嬪摵闁绘侗妲漮tues
     [闂傚倷鐒﹀鍨熆閳ь剛绱掗幓鎺濈吋闁诡垰鐭傞幃娆擃敆閸屻倖绁梺鑽ゅУ娴滀粙宕濆澶婃槬闁稿瞼鍋為崑锝吤归敐鍥ㄥ殌缂佲偓閸愨斂浜滈柟鍨鐎氾拷]婵犵數鍋為崹鍫曞箰缁嬫5娲Χ婢跺﹦顦版俊銈忕到閸燁偊宕掗妸鈺傜厱闁绘劖娼欒ⅷotues婵犵數鍋涢顓熸叏閹€鏋栭柡鍥╁剳閼板潡鏌ㄥ☉妯侯伀闁活厽鐟╅幃妤呮晲鎼存繄鏁栫紒鐐緲缁夌數鎹㈠┑濠庢Ъ闂佸憡姊归〃濠囧箖閵夆晜鏅搁柨鐕傛嫹
     [闂傚倷鐒﹀鍨熆閳ь剛绱掗幓鎺濈吋闁诡垰鐭傞幃娆擃敆閸屻倖绁梺鑽ゅУ娴滀粙宕濆澶婃槬闁稿瞼鍋為崑锝吤归敐鍥ㄥ殌缂佲偓閸愨斂浜滈柟鍨鐎氾拷]51闂傚倷绀侀幉锟犮€冮崱妞曞搫饪伴崟顒佺彿闂佸搫绋侀崢鑲┾偓姘樀閺屾稑鈹戦崱妤婁患闂佺鍐垮姛缂佽鲸甯為埀顒婄秬閸╂牜鈧熬鎷� protues婵犵數鍋涢顓熸叏閹€鏋栭柡鍥╁剳閼板潡鏌ㄩ悤鍌涘
    闂傚倷绀侀幖顐︽偋閸愵喖纾婚柟鍓х帛閻撴盯鏌涚仦鍓х煀妞わ絽銈搁弻锛勨偓锝庝簻閺嗙喓绱掗瑙勬珚闁轰焦鎹囬弫鎾绘晸閿燂拷
    关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
    返回顶部
    刷新页面
    下到页底
    晶体管查询