51单片机格力空调遥控器_第1页
51单片机格力空调遥控器_第2页
免费预览已结束,剩余13页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、28.0 x09,0 x08,0 x00,0 x50,0 x021.1151单片机格力空调遥控器2.2.#include 3.#include 4.#define uchar unsigned char5.#define uint unsigned int6.#define enTransmitt flag=17.#define disTransmitt flag=O8.sfr T2M0D = 0XC9;9.bit flag=0;10.sbit IR38k =P2A3;/红外发射管11.sbit key1=P1A1;12.sbit key2=P1A3;13.sbit key3=P1A5;14.

2、sbit key4=PM7;15.sbit key5=P1A0;16.sbit key6=P1A4;17.uchar KeyScan();18.uint count=0,set_count=0;19.uchar fengliang_value=0;20.uchar key_value=0;21.uchar wendu_value=0;22.uchar mode_value=0;23.uchar switch_value=0;24.uchar zhuanye_value=0;25.uchar codeZhuanye5=0 x39,0 x04,0 x00,0 x50,0 x02,0 x79,0 x

3、04,0 x00,0 x50,0 x02;/手动,自动转页(20度,冷气)26.ucharcode fengliang5=0 x28,0 x08,0 x00,0 x50,0 x02,0 x19,0 x08,0 x00,0 x50,0 x02,;/自动模式风量 小,中,大(20度)uchar code mode5=0 x58,0 x00,0 x00,0 x50,0 x02,0 x59,0 x04,0 x00,0 x50,0 x02,0 x5a,0 x04,0 x00,0 x50,0 x02,0 x5b,0 x04,0 x00,0 x50,0 x02; /自动,冷气,除湿,送风/*ucharcod

4、eon_or_off5= 0 x40,0 x00,0 x00,0 x50,0 x02,0 x48,0 x00,0 x00,0 x50,0 x02 ; */uchar code on_or_off5=0 x39,0 x08,0 x00,0 x50,0 x02,0 x31,0 x08,0 x00,0 x50,0 x02,0 x59,0 x08,0 x00,0 x50,0 x02,0 x51,0 x08,0 x00,0 x50,0 x02,0 x79,0 x08,0 x00,0 x50,0 x02,0 x71,0 x08,0 x00,0 x50,0 x02,;/开机,关机uchar code wen

5、du5=0 x59,0 x00,0 x00,0 x50,0 x02,0 x59,0 x01,0 x00,0 x50,0 x02,0 x59,0 x02,0 x00,0 x50,0 x02,0 x59,0 x03,0 x00,0 x50,0 x02,0 x59,0 x04,0 x00,0 x50,0 x02,0 x59,0 x05,0 x00,0 x50,0 x02,0 x59,0 x06,0 x00,0 x50,0 x02,0 x59,0 x07,0 x00,0 x50,0 x02,0 x59,0 x08,0 x00,0 x50,0 x02,0 x59,0 x09,0 x00,0 x50,0

6、x02,0 x59,0 x0a,0 x00,0 x50,0 x02,0 x59,0 x0b,0 x00,0 x50,0 x02,0 x59,0 x0c,0 x00,0 x50,0 x02,0 x59,0 x0d,0 x00,0 x50,0 x02,0 x59,0 x0e,0 x00,0 x50,0 x02;/温度值void send_precode(unsigned int s_cnt_1,unsigned int s_cnt_2);void send_8bit_code(uchar value);void send_4bit_code(uchar value);void send_final

7、_code();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. void ir_out1() /启动和关闭56. 57.send_precode(180,90);58.send_8bit_code(on_or_offswitch_value0);59.send_8bit_code(on_or_offswitch_value1);60.send_8bit_code(on_or_offswitch_value2);61.send_8bit_code(on_or_offswitc

8、h_value3);62.send_4bit_code(on_or_offswitch_value4);63.send_final_code();64./ key_value=0;65.switch_value+;66.if(switch_value=6) switch_value=0; 67.67.68.void ir_out2() /wendu-69.71.70.send_precode(180,90);71.send_8bit_code(wenduwendu_value0);72.send_8bit_code(wenduwendu_value1);73.send_8bit_code(we

9、nduwendu_value2);74.send_8bit_code(wenduwendu_value3);75.send_4bit_code(wenduwendu_value4);76.send_final_code();77.wendu_value-;78.if(wendu_value=0) wendu_value=15;81.79.80.void ir_out3()wendu+81.82.send_precode(180,90);83.send_8bit_code(wenduwendu_value0);56. 84.send_8bit_code(wenduwendu_value1);85

10、.send_8bit_code(wenduwendu_value2);86.send_8bit_code(wenduwendu_value3);87.send_4bit_code(wenduwendu_value4);88.send_final_code();89.wendu_value+;90.if(wendu_value=15) wendu_value=O;91.92.void ir_out4()/mode choose93.94.send_precode(180,90);95.send_8bit_code(modemode_value0);96.send_8bit_code(modemo

11、de_value1);97.send_8bit_code(modemode_value2);98.send_8bit_code(modemode_value3);99.send_4bit_code(modemode_value4);100. send_final_code();101. mode_value+;102. if(mode_value=4)103. mode_value=0;107.104. 105. void ir_out5() /转叶106. 107. send_precode(180,90);108. send_8bit_code(zhuanyezhuanye_value0)

12、;109. send_8bit_code(zhuanyezhuanye_value1);110. send_8bit_code(zhuanyezhuanye_value2);111. send_8bit_code(zhuanyezhuanye_value3);112. send_4bit_code(zhuanyezhuanye_value4);113. send_final_code();114.zhuanye_value+;115. if(zhuanye_value=2) zhuanye_value=0;void ir_out6() /风量send_precode(180,90);send_

13、8bit_code(fengliangfengliang_value0);send_8bit_code(fengliangfengliang_value1);send_8bit_code(fengliangfengliang_value2);send_8bit_code(fengliangfengliang_value3);send_4bit_code(fengliangfengliang_value4);send_final_code();fengliang_value+;if(fengliang_value=3) fengliang_value=0;/=void delayms(unsig

14、ned char ms)unsigned char i;while(ms-)for(i=0;i8; /output frequency is 38KHz154.RCAP2L=(65536-11059/38/4)&0 xff;155. 156. void TransmittPulse()157. 158. enTransmitt;159. / ir=0;160. TR0=1;161. TR2=1;162. 163. void TransmittLow()164. 165. /ir=1;166. TR0=1;167. disTransmitt;168. TR2=0;169. IR38k=1

15、;170. 171. void endTransmitt()172. 173. /ir=0;174. TR0=0;175. TR2=0;176. IR38k=1; /JIEZHI177. 178. void send_logic0(unsigned int s_cnt_1,unsigned int s_cnt_2)179. 180. set_count=s_cnt_1;/181. TransmittPulse();182. count =0;184. while(countset_count)185. ;186. endTransmitt();187.ir=1;188. set_count=s

16、_cnt_2;/11;189. /ir=1;190. count =0;191. TransmittLow();192.192. while(countset_count)193. ;194. endTransmitt();195. 196. void send_logic1(unsigned int s_cnt_1,unsigned int s_cnt_2)197. 198. set_count=s_cnt_1;/199. TransmittPulse();201.200. count =0;203.201. while(countset_count)202. ;203. endTransm

17、itt();204. /ir=1;205. /=206. set_count=s_cnt_2;/32;207. /ir=1;208. count =0;212.209. TransmittLow();214.210. while(countset_count)endTransmitt();void send_precode(unsigned int s_cnt_1,unsigned int s_cnt_2)set_count =s_cnt_1;/180;9MSTransmittPulse(); /start send pulsecount =0;while(countset_count);en

18、dTransmitt();set_count =s_cnt_2;/90;/4.5MScount =0;TransmittLow();while(countset_count);endTransmitt();void send_final_code()set_count=28;/count =0;TransmittPulse();while(countset_count)endTransmitt();void send_8bit_code(uchar value)216.217.218.219.220.221.222.223.224.225.226.227.228.229.230.231.232

19、.233.234.235.236.237.238.239.240.241.242.243.244.245.246.247.uchar i,temp;temp=value;for(i=0;i1;void send_4bit_code(uchar value)uchar i,temp;temp=value;for(i=0;i1;/=主函数=void main()TimerInit();while(1)key_value=KeyScan();switch(key_value)case 1:ir_out1();delayms(200);break; /248.249.250.251.252.253.2

20、54.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.开和关case 2:ir_out2();delayms(200);break; /温度-case 3:ir_out3();delayms(200);break; /温度+.case 4:ir_out4();delayms(200);break; /模式选择case 5:ir_out5();delayms(200);break; /转叶设置case 6:ir_out6();delayms(200);break;default:ir=1;break;void timer0(void) interrupt 1TH0=0XfF;TL0=221;50uscount+;if(flag)TR2=1;IR38k=0;else TR2=0;/IR38k=1;unsigned char KeyScan()/*-第

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论