51单片机格力空调遥控器.docx

上传人:b****6 文档编号:7693896 上传时间:2023-01-25 格式:DOCX 页数:18 大小:193.50KB
下载 相关 举报
51单片机格力空调遥控器.docx_第1页
第1页 / 共18页
51单片机格力空调遥控器.docx_第2页
第2页 / 共18页
51单片机格力空调遥控器.docx_第3页
第3页 / 共18页
51单片机格力空调遥控器.docx_第4页
第4页 / 共18页
51单片机格力空调遥控器.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

51单片机格力空调遥控器.docx

《51单片机格力空调遥控器.docx》由会员分享,可在线阅读,更多相关《51单片机格力空调遥控器.docx(18页珍藏版)》请在冰豆网上搜索。

51单片机格力空调遥控器.docx

51单片机格力空调遥控器

1.1151单片机格力空调遥控器

2.

2.#include

3.#include

4.#defineucharunsignedchar

5.#defineuintunsignedint

6.#defineenTransmittflag=1

7.#definedisTransmittflag=O

8.sfrT2M0D=0XC9;

9.bitflag=0;

10.sbitIR38k=P2A3;//红外发射管

11.sbitkey1=P1A1;

12.sbitkey2=P1A3;

13.sbitkey3=P1A5;

14.sbitkey4=PM7;

15.sbitkey5=P1A0;

16.sbitkey6=P1A4;

17.ucharKeyScan();

18.uintcount=0,set_count=0;

19.ucharfengliang_value=0;

20.ucharkey_value=0;

21.ucharwendu_value=0;

22.ucharmode_value=0;

23.ucharswitch_value=0;

24.ucharzhuanye_value=0;

25.ucharcode

Zhuanye[][5]={{0x39,0x04,0x00,0x50,0x02},{0x79,0x04,0x00,0x50,0x02}};

//手动,自动转页(20度,冷气)

26.uchar

codefengliang[][5]={{0x28,0x08,0x00,0x50,0x02},{0x19,0x08,0x00,0x50,0

x02},

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.

ucharcodemode[][5]={

{0x58,0x00,0x00,0x50,0x02},{0x59,0x04,0x00,0x50

0x02},

{0x5a,0x04,0x00,0x50,0x02},{0x5b,0x04,0x00,0x50,0x02}

};//自动,冷气,除湿,送风

/*uchar

codeon_or_off[][5]={{0x40,0x00,0x00,0x50,0x02},{0x48,0x00,0x00,0x50,

0x02}};*/

ucharcodeon_or_off[][5]={

{0x39,0x08,0x00,0x50,0x02},{0x31,0x08,0x00,0x50,0x02},

{0x59,0x08,0x00,0x50,0x02},{0x51,0x08,0x00,0

x50,0x02},

{0x79,0x08,0x00,0x50,0x02},{0x71,0x08,0x00,0x50,0x02},

};//开机,关机

ucharcodewendu[][5]={

{0x59,0x00,0x00,0x50,0x02},{0x59,0x01,0x00,0x50,0x0

2},

{0x59,0x02,0x00,0x50,0x02},{0x59,0x03,0x00,0x50,0x02},

{0x59,0x04,0x00,0x50,0x02},{0x59,0x05,0x00,0x50,0x02},

{0x59,0x06,0x00,0x50,0x02},{0x59,0x07,0x00,0x50,0x02},

{0x59,0x08,0x00,0x50,0x02},{0x59,0x09,0x00,0x50,0x02},

{0x59,0x0a,0x00,0x50,0x02},{0x59,0x0b,0x00,0x50,0x02},

{0x59,0x0c,0x00,0x50,0x02},{0x59,0x0d,0x00,0x50,0x02},

{0x59,0x0e,0x00,0x50,0x02}

};//温度值

voidsend_precode(unsignedints_cnt_1,unsignedints_cnt_2);

voidsend_8bit_code(ucharvalue);

voidsend_4bit_code(ucharvalue);

voidsend_final_code();

voidir_out1()//启动和关闭

57.send_precode(180,90);

58.send_8bit_code(on_or_off[switch_value][0]);

59.send_8bit_code(on_or_off[switch_value][1]);

60.send_8bit_code(on_or_off[switch_value][2]);

61.send_8bit_code(on_or_off[switch_value][3]);

62.send_4bit_code(on_or_off[switch_value][4]);

63.〃send_final_code();

64.//key_value=0;

65.switch_value++;

66.if(switch_value==6){switch_value=0;}

67.

67.}

68.voidir_out2()//wendu--

69.{

71.

70.send_precode(180,90);

71.send_8bit_code(wendu[wendu_value][0]);

72.send_8bit_code(wendu[wendu_value][1]);

73.send_8bit_code(wendu[wendu_value][2]);

74.send_8bit_code(wendu[wendu_value][3]);

75.send_4bit_code(wendu[wendu_value][4]);

76.send_final_code();

77.wendu_value--;

78.if(wendu_value==0){wendu_value=15;}

81.

79.}

80.voidir_out3()〃wendu++

81.{

82.send_precode(180,90);

83.send_8bit_code(wendu[wendu_value][0]);

84.send_8bit_code(wendu[wendu_value][1]);

85.send_8bit_code(wendu[wendu_value][2]);

86.send_8bit_code(wendu[wendu_value][3]);

87.send_4bit_code(wendu[wendu_value][4]);

88.send_final_code();

89.wendu_value++;

90.if(wendu_value==15){wendu_value=O;}

91.}

92.voidir_out4()//modechoose

93.{

94.send_precode(180,90);

95.send_8bit_code(mode[mode_value][0]);

96.send_8bit_code(mode[mode_value][1]);

97.send_8bit_code(mode[mode_value][2]);

98.send_8bit_code(mode[mode_value][3]);

99.send_4bit_code(mode[mode_value][4]);

100.send_final_code();

101.mode_value++;

102.if(mode_value==4)

103.{mode_value=0;}

107.

104.}

105.voidir_out5()//转叶

106.{

107.send_precode(180,90);

108.send_8bit_code(zhuanye[zhuanye_value][0]);

109.send_8bit_code(zhuanye[zhuanye_value][1]);

110.send_8bit_code(zhuanye[zhuanye_value][2]);

111.send_8bit_code(zhuanye[zhuanye_value][3]);

112.send_4bit_code(zhuanye[zhuanye_value][4]);

113.send_final_code();

114.zhuanye_value++;

115.if(zhuanye_value==2){zhuanye_value=0;}

}

voidir_out6()//风量

{

send_precode(180,90);

send_8bit_code(fengliang[fengliang_value][0]);

send_8bit_code(fengliang[fengliang_value][1]);

send_8bit_code(fengliang[fengliang_value][2]);

send_8bit_code(fengliang[fengliang_value][3]);

send_4bit_code(fengliang[fengliang_value][4]);

send_final_code();

fengliang_value++;

if(fengliang_value==3){fengliang_value=0;}

}

//============================================

voiddelayms(unsignedcharms)

{

unsignedchari;

while(ms--)

{

for(i=0;i<120;i++){};

}

}

voidTimerlnit()

{

EA=1;

ET0=1;

TMOD=0X01;

TH0=0XfF;

TL0=221;//50US

120.

121.

122.

123.

124.

125.

126.

127.

128.

129.

130.

131.

132.

133.

134.

135.

136.

137.

138.

139.

140.

141.

142.

143.

144.

145.

146.

147.

148.

149.

150.

151.

T2C0N=0x00;

152.T2MOD=0x02;//enableT2'swaveoutputthroughT2pin(P10)

153.RCAP2H=(65536-11059/38/4)>>8;//outputfrequencyis38KHz

154.RCAP2L=(65536-11059/38/4)&0xff;

155.}

156.voidTransmittPulse()

157.{

158.enTransmitt;

159.//ir=0;

160.TR0=1;

161.TR2=1;

162.}

163.voidTransmittLow()

164.{

165.//ir=1;

166.TR0=1;

167.disTransmitt;

168.TR2=0;

169.IR38k=1;

170.}

171.voidendTransmitt()

172.{

173.//ir=0;

174.TR0=0;

175.TR2=0;

176.IR38k=1;//JIEZHI

177.}

178.voidsend_logic0(unsignedints_cnt_1,unsignedints_cnt_2)

179.{

180.set_count=s_cnt_1;//

181.TransmittPulse();

182.count=0;

184.while(count

185.;

186.endTransmitt();

187.〃ir=1;

188.set_count=s_cnt_2;//11;〃

189.//ir=1;

190.count=0;

191.TransmittLow();

192.

192.while(count

193.;

194.endTransmitt();

195.}

196.voidsend_logic1(unsignedints_cnt_1,unsignedints_cnt_2)

197.{

198.set_count=s_cnt_1;//

199.TransmittPulse();

201.

200.count=0;

203.

201.while(count

202.;

203.endTransmitt();

204.//ir=1;

205.//=========================

206.set_count=s_cnt_2;//32;〃

207.//ir=1;

208.count=0;

212.

209.TransmittLow();

214.

210.while(count

216.

217.

218.

219.

220.

221.

222.

223.

224.

225.

226.

227.

228.

229.

230.

231.

232.

233.

234.

235.

236.

237.

238.

239.

240.

241.

242.

243.

244.

245.

246.

247.

endTransmitt();

}

voidsend_precode(unsignedints_cnt_1,unsignedints_cnt_2)

{

set_count=s_cnt_1;//180;〃9MS

TransmittPulse();//startsendpulse

count=0;

while(count

{;}

endTransmitt();

set_count=s_cnt_2;//90;//4.5MS

count=0;

TransmittLow();

while(count

{;}

endTransmitt();

}

voidsend_final_code()

{

set_count=28;//

count=0;

TransmittPulse();

while(count

endTransmitt();

}

voidsend_8bit_code(ucharvalue)

248.

249.

250.

251.

252.

253.

254.

255.

256.

257.

258.

259.

260.

261.

262.

263.

264.

265.

266.

267.

268.

269.

270.

271.

272.

273.

274.

275.

276.

277.

278.

279.

uchari,temp;

temp=value;

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

{

if(temp&0x01)sendl_logic1(11,32);//1.68ms

elsesend_logic0(11,11);//600US

temp=temp>>1;

}

}

voidsend_4bit_code(ucharvalue)

{

uchari,temp;

temp=value;

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

{

if(temp&0x01)sendd_logic1(11,32);//1.68ms

elsesend_logic0(11,11);//600US

temp=temp>>1;

}

}

//============================主函数========================

voidmain()

{

TimerInit();

while

(1)

{

key_value=KeyScan();

switch(key_value)

{

case1:

ir_out1();delayms(200);break;//

280.

281.

282.

283.

284.

285.

286.

287.

288.

289.

290.

291.

292.

293.

294.

295.

296.

297.

298.

299.

300.

301.

302.

303.

304.

305.

306.

307.

308.

309.

310.

311.

case2:

ir_out2();delayms(200);break;//温度-

case3:

ir_out3();delayms(200);break;//温度+.

case4:

ir_out4();delayms(200);break;//模式选择

case5:

ir_out5();delayms(200);break;//转叶设置

case6:

ir_out6();delayms(200);break;

〃default:

ir=1;break;

}

}

}

voidtimer0(void)interrupt1

{

TH0=0XfF;

TL0=221;〃50us

count++;

if(flag)

TR2=1;〃IR38k=0;

elseTR2=0;//IR38k=1;

}

unsignedcharKeyScan()

{

/*第一列扫描*/

if(key1==0)

{

delayms(20);

if(key1==0)

{

return1;

312.

while(!

key1);

313.

}

314.

if(key2==0)

315.

{

316.

delayms(20);

317.

if(key2==0)

318.

{

319.

return2;

320.

}

321.

while(!

key2);

322.

}

323.

324.

if(key3==0)

325.

{

326.

delayms(20);

327.

if(key3==0)

328.

{

329.

return3;

330.

}

331.

while(!

key3);

332.

}

333.

if(key4==0)

334.

{

335.

delayms(20);

336.

if(key4==0)

337.

{

338.

return4;

339.

}

340.

while(!

key4);

341.

}

342.

if(key5==0)

 

344.

delayms(20);

345.

if(key5==0)

346.

{

347.

return5;

348.

}

349.

while(!

key5);

350.

}

351.

if(key6==0)

352.

{

353.

delayms(20);

354.

if(key6==0)

355.

{

356.

return6;

357.

}

358.

while(!

key6);

359.

}

360.

return0;

361.

}

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

当前位置:首页 > 表格模板 > 合同协议

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

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