欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    客车空调控制系统.doc

    • 资源ID:79032476       资源大小:257.50KB        全文页数:23页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    客车空调控制系统.doc

    客车空调系统 空调系统的组成空调系统主要由压缩机、冷凝器、蒸发器、膨胀阀、干燥储液器及管路等组成 空调制冷原理 1) 用户按操作程序启动汽车空调系统之后,压缩机在发动机带动下开始工作,驱使制冷剂(R134a,一种环保型制冷剂,不会破坏臭氧层、无毒性、无刺激、不燃烧、无腐蚀性)在密封的空调系统中循环流动,压缩机将气态制冷剂压缩成高温高压的制冷剂气体后排出压缩机。2) 高温高压制冷剂气体经管路流入冷凝器后,在冷凝器内散热、降温,冷凝成高温高压的液态制冷剂流出。3) 高温高压液态制冷剂经管路进入干燥储液器内,经过干燥、过滤后流进膨胀阀。4) 高温高压液态制冷剂经膨胀阀节流,状态发生急剧变化,变成低温低压的液态制冷剂。5) 低温低压液态制冷剂立即进入蒸发器内,在蒸发器内吸收流经蒸发器的空气热量,使空气温度降低,吹出冷风,产生制冷效果,制冷剂本身因吸收了热量而蒸发成低温低压的气态制冷剂。6) 低温低压的气态制冷剂经管路被压缩机吸入,进行压缩,进入下一个循环,只要压缩机连续工作,制冷剂就在空调系统中连续循环,产生制冷效果;压缩机停止工作,空调系统内制冷剂随之停止流动,不产生制冷效果。 电路控制原理系统框架二控制面板部分 1. 硬件部分a.电源电路 工作原理:R/Y端口为24V电源输入一路经自恢复保险PT3二极管D8限流电阻R38稳压二极管V1输出稳定12V电源为开关电路供电,另一路经继电器KA6输出24v给驱动电路供电,经二极管D12限流电阻R39到三端稳压器LM7805的输入端经稳压后为中央处理器(MCU)和EEROM提供5v电压。b.开关机电路工作原理:(1) 当K7按下时基集成电路NE555P的6脚(阀值)电压高于6v ,3脚(输出)就输出低电平0v 到电源电路三极管Q2的基极,Q2截止继电器失去供电而断开供电实现关机 (2)当K1按下时基集成电路NE555P的2脚(触发)电压接地0v ,3脚(输出)就输出高电平12-0.8=11.2v 到电源电路三极管Q2的基极,Q2导通继电器恢复供电而接通供电实现关机c.驱动电路d.中央处理器(MCU)工作原理:当中央处理器:供电5v,复位电路,时钟电路这3个条件成立中央处理器就能正常工作。e.显示及按键电路 2. 软件部分 软件控制流程图 软件组成1. 头文件(STC12C5410AD.H,define_i/o.h ,main.h)2. 按键检测与处理(按键检测端口与显示LED端口公用)3. 故障处理子程序4. 温度检测,理子程序5. 显示子程序6. 强冷子程序7. 工作时间记录子程序8. 抗干扰处理 (看门狗:当系统非正常进入死循环不能每隔一段时间把看门狗清零计时器溢出把系统复位。形象一点就是必须在狗饿之前喂一次狗(清零)要不然狗会以为你乱了(程序跑飞)就会叫醒你(系统复位进入正常)功能要求功能说明:1、ON键。按ON键,接通控制面板电源,数字显示回风传感器感应温度值。2、温度设定与改变(接通控制面板电源后可操作) 2.1、缺省温度设定为24。温度设定值范围在1627改变。 2.2、按下一次,温度设定值升高1,显示2秒钟。 2.3、按下一次,温度设定值降低1,显示2秒钟。 2.4、温度设定值显示2秒钟后,转换显示车内温度值,车内温度显示范围为1260(精度为0.5)。车内温度低于12显示LO,车内温度高于60显示HI。3、制冷键控制功能。 3.1、制冷键只有在蒸发风机工作的情况下才能接通。 3.2、在初始状态下,按制冷键一次,制冷指示灯亮,"制冷"输出为正,允许最大感性负载1A。 3.3、在初始状态下,按制冷键两次,制冷指示灯熄灭,"制冷"输出为零。 3.4、再次启动时,恢复初始状态。4、新风键控制功能。 4.1、按新风键一次(车内温度27),新风指示灯亮,"新风控制"输出为正。 4.2、按新风键两次,新风指示灯熄灭,"新风控制"输出为零。5、压缩机启停控制功能。 5.1、左右除霜传感器感应温度3.5时,制冷输出为正;左右除霜传感器感应温度2,制冷输出为零。 5.2、车内温度超过设定值0.5时,制冷输出为正;车内温度低于设定值1.5时,制冷输出为零。6、风速键调节风量功能。 6.1、在初始状态下,按动风速键一次,蒸发风机启动,风量为低速,允许最大感性负载1A,低速指示灯亮。 6.2、在初始状态下,按动风速键两次,蒸发风机启动,风量为中速,允许最大感性负载1A,中速指示灯亮。 6.3、在初始状态下,按动风速键三次,蒸发风机启动,风量为高速,允许最大感性负载1A,高速指示灯亮。 6.4、连续按动风速键,风量按照:低中高低 循环。 6.5、再次启动时,恢复初始状态。 6.6、在通风状态下,通风输出(13#)线一直输出高电位,允许最大感性负载1A(主要驱动空调无电瓶发电机供电继电器),注意:在风速转换过程中,此输出不得跳动,保持平稳,只有在按OFF键后才失电。7、控制面板总负载不超过3A。8、OFF键。按动OFF键,关闭控制面板电源。9、其他功能。 9.1、在空调系统出现高低压故障时,按制冷键一次,制冷输出(4#)仍为高电位(通过电器盒继电器禁止压缩机启动),用发光二极管闪动显示Er1,闪动频率为1HZ(1秒钟1次)。 9.2、温度传感器短路,用发光二极管闪动显示Er2,闪动频率1HZ(1秒钟1次)。 9.3、温度传感器断路,用发光二极管闪动显示Er3,闪动频率1HZ(1秒钟1次)。10、强冷功能。 按ON键,接通控制面板电源,按动风速键,启动蒸发风机,将制冷键按下5秒钟,启动压缩机和冷凝风机(只有在蒸发风机工作的情况下,才具备此功能)。并当转换风速和新风状态时,强冷功能不应消失。11、同时按""键显示空调使用时间。单位为10小时。 控制源程序#include "STC12C5410AD.H"#include "define_io.h"#include "main.h"unsigned char KeyFlag;const unsigned int TempTable = /0 1 2 3 4 5 6 7 8 914230,13600,13010,12450,11910,11400,10920,10460,10020,9596,/10 11 12 13 14 15 16 17 18 199197,8817,8454,8108,7779,7467,7164,6877,6603,6342,/20 256092,5854,5626,5408,5199,5000,4811,4630,4456,4291,/304132,3980,3835,3695,3562,3434,3311,3193,3081,2972,/402869,2769,2673,2581,2493,2409,2327,2249,2174,2102,/502032,1965,1901,1839,1780,1722,1667,1614,1563,1514,/601466,1421,1376,1334,1293;void delay(unsigned int n)unsigned int i;for(i = 0; i < n; i +);/*void Ldelay(unsigned char n)unsigned char i,j,k;for(i = 0; i < n; i +)for(j = 0; j < 0xff; j +)for(k = 0; k < 0xff; k +)WDT_CONTR = 0x38;*/void trans_led_data(unsigned char DAT)unsigned char Data17 = /0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /0 1 2 3 4 5 6 7 8 9 H I L o 无 E r0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x89,0xf9,0xc7,0xa3,0xff,0x86,0xaf;unsigned char i,j;i = DataDAT & dp;CY = 0;for(j = 0; j < 8; j +)i <<= 1;LED_DATA = CY;LED_CLK = 0;LED_CLK = 1;void show_temp()unsigned char a,b,c;if(!set_time)if(temp_num > 59)/温度超过60度a = 14;/不显示c = 10;/显示字母"H"b = 11;/显示字母"I"/flag = 0;/不显示点"."else if(temp_num <= 12)/温度低于12度c = 12; /显示字母“L”b = 13;/显示"O"a = 14;/不显示/flag = 0;/不显示点"."elsea = temp_dot;b = temp_num%10;c = temp_num/10;/flag = 1;/显示点"."/-if(a=5)a=0;elsea=5;if(b)b-=1;elsec-=1;b=9;/-elsea = 0;b = set_temp%10;c = set_temp/10;/flag = 1;/显示点"."LED3_ON = 0;dp = 0xff;trans_led_data(c);LED1_ON = 1;delay(1000);LED1_ON = 0;dp = 0x7f;trans_led_data(b);LED2_ON = 1;delay(1000);LED2_ON = 0;dp = 0xff;trans_led_data(a);LED3_ON = 1;delay(1000);WDT_CONTR = 0x3c;/喂狗void show_error(unsigned char num)unsigned char i;i = num;LED3_ON = 0;trans_led_data(15); /ELED1_ON = 1;delay(1000);LED1_ON = 0;trans_led_data(16);/rLED2_ON = 1;delay(1000);LED2_ON = 0;trans_led_data(i);LED3_ON = 1;delay(1000);WDT_CONTR = 0x3c;/喂狗void show_temp_err()/显示温度或错误标志if(!error_flag)|(error_flag=1)&&(!SW_N_FLAG)|(set_time)/当无错时(error_flag=0)或错为1(欠压,error_flag=1),并且制冷键没按下时,温度调节时也显示温度,显示温度show_temp();else/当错为2(温感器短路)或3(温感器开路)时,或错为1(Er1)且制冷键按下显示Errif(flag)show_error(error_flag);elseLED1_ON = 0;LED2_ON = 0;LED3_ON = 0; void make_cool(void)/制冷动作程序/if(!SW_N_ERR_TIME)/有欠压故障后,制冷键按下0.5S后起作用if(!ERR_ACT_DELAY)if(!make_cool_flag)/如果没有开强冷功能if(error_flag > 1)/如果出现温感器开路或短路故障,不能开制冷功能CON4 = OFF;SW_N_FLAG = 0;/关了制冷便不管是否欠压都不显示出错信息else /没有出现温感器开路或短路故障if(con4_flag)/如果制冷按下if(temp_w_num >= 4)&&(temp_s_num >= 4)&&(temp_num>set_temp) /4CON4 = ON;if(error_flag = 1)/出现欠压故障时:SW_N_FLAG = 1;/欠压时开了制冷标志else if(temp_w_num <= 2)|(temp_s_num <= 2)|(temp_num<(set_temp-1) /2CON4 = OFF;/关制冷SW_N_FLAG = 0;/关了制冷便不管是否欠压都不显示出错信息else/如果制冷关掉CON4 = OFF;/关制冷SW_N_FLAG = 0;/关了制冷便不管是否欠压都不显示出错信息else /强冷功能if(error_flag > 1)/如果出现温感器开路或短路故障,不能开制冷功能CON4 = OFF;SW_N_FLAG = 0;/关了制冷便不管是否欠压都不显示出错信息elseif(con4_flag)/如果制冷按下CON4 = ON;if(error_flag = 1)/出现欠压故障时:SW_N_FLAG = 1;/欠压时开了制冷标志else/如果制冷关掉CON4 = OFF;/关制冷SW_N_FLAG = 0;/关了制冷便不管是否欠压都不显示出错信息void show_time()unsigned char a,b;a = clock_time%10;b = clock_time/10;LED1_ON = 0;LED3_ON = 0;dp = 0xff;trans_led_data(b);LED2_ON = 1;delay(1000);LED2_ON = 0;dp = 0xff;trans_led_data(a);LED3_ON = 1;delay(1000);WDT_CONTR = 0x3c;/喂狗void led_clear()/清LED显示LED1_ON = 0;LED2_ON = 0;LED3_ON = 0;dp = 0xff;trans_led_data(14);unsigned char check_key()unsigned char i,j;i = 0x7f;for(j = 0; j < 8; j +)i <<= 1;LED_DATA = CY;LED_CLK = 0;LED_CLK = 1;if(!KEY_INPUT)delay(200);if(!KEY_INPUT) break;return j;void active_key()bit TempBit = 0;unsigned char i,j,k;/check_err();led_clear();/清LED显示j = check_key();k = j;switch(j)case 1:/制冷键if(temp_w_num >= 4)&&(temp_s_num >= 4)&&(temp_num>set_temp)|(con4_flag) if(error_flag < 2)/温度传感器没有出现短路或断路故障时,制冷键才起作用if(mec_flag)/如果风速键按过后制冷键才起作用/if(error_flag=1)/欠压故障出现/SW_N_ERR_TIME = 5;KeyFlag = 1;con4_flag = con4_flag;/制冷控制make_cool();make_cool_flag = 0;/强冷标志清0,不用强冷make_cool_time = 5;/制冷键按下后,5S计时装载,如果5S后依然按下,则为强冷show_clock_flag = 0;set_time = 0;break;case 0:/风速键if(CON3)&&(CON1)&&(CON2)|(!CON1)CON3 = ON;CON1 = OFF;elseif(!CON3)CON3 = OFF;CON2 = ON;elseif(!CON2)CON2 = OFF;CON1 = ON;mec_flag = 1;set_time = 0;show_clock_flag = 0;break;case 2:/ -DEC_FLAG = 1;/-键按下标志置1set_time_delay = 10;/设定温度-键按下后持续时间break;case 3:/ +ADD_FLAG = 1;/+键按下标志置1set_time_delay = 10;/设定温度+键按下后持续时间break;case 5:/新风键CON5 = CON5;set_time = 0;show_clock_flag = 0;break;default:show_clock_flag = 0;break;while(!KEY_INPUT) /按键按下没松开时执行的程序WDT_CONTR = 0x3c;/喂狗led_clear();/清LED显示if(show_clock_flag)&&(!show_clock_delay)/如果+-两键同时按下,并且延时后show_time();/显示开机总时间elseshow_temp_err();/显示温度或故障信息led_clear();/清LED显示if(mec_flag)/强冷功能,制冷键按下5秒才起作用if(error_flag < 2)/温度传感器没有出现短路或断路故障时,制冷才起作用if(k=1)&&(!make_cool_time)/con4_flag = 1;/CON4 = ON;if(!TempBit)&&(!KeyFlag)make_cool_flag = 1;/强冷标志置1,开强冷功能TempBit = 1;con4_flag = con4_flag;/制冷控制make_cool();make_cool();if(!clock_flag)/如果+-键没有同时按下,不需显示时间if(!set_time_delay)/如果设定温度+-键按下过了1秒if(k=2)if(set_temp > 16)set_temp -;set_time = 4;/按键放开后继续显示的时间set_time_delay = 3;/延时后再减if(k=3)if(set_temp < 28)set_temp +;set_time = 4;/按键放开后继续显示的时间set_time_delay = 3;/延时后再加key_flag=1;if(k = 2)|(k = 3)/检测是否+-两键同时按下程序led_clear();/清LED显示i = 0x7f;for(j = 0; j < 8; j +)i <<= 1;LED_DATA = CY;LED_CLK = 0;LED_CLK = 1;if(!KEY_INPUT)delay(200);if(!KEY_INPUT)if(j = 3)&&(k = 2)|(j = 2)&&(k = 3)/如果+和-键都按下了clock_flag = 1;set_time_delay = 0;if(!show_clock_flag)/如果+-键同时按下,显示时间标志为0show_clock_flag = 1;/显示时间标志置1show_clock_delay = 2;/+-键同时被按下后,到显示出时间需要的延时break; check_key();/-按键放开后if(!clock_flag)/如果+-键没有同时被按下if(ADD_FLAG)/如果+键按下标志为1ADD_FLAG = 0;/+键按下标志清0if(set_temp < 28)/如果设定温度小于最大设定值,28度set_temp +;set_time = 4;/设定温度后需继续显示设定值的时间if(DEC_FLAG)/如果-键按下标志为1DEC_FLAG = 0;/-键按下标志清0if(set_temp > 16)/如果设定温度大于最小设定值,16度set_temp -;/设定值减1set_time = 4;/设定温度后需继续显示设定值的时间else/如果+-键同时按下标志是1clock_flag = 0;/按键一旦松开,时间显示标志关掉ADD_FLAG = 0;/+-键按下,调设定温度标志清0DEC_FLAG = 0;KeyFlag = 0;void check_temp_num()unsigned char i;unsigned long int j,k,TtemNUM1;Rgt = (ADC_G_DATA * R)/(Uvcc - ADC_G_DATA);Rwt = (ADC_W_DATA * R)/(Uvcc - ADC_W_DATA);Rst = (ADC_S_DATA * R)/(Uvcc - ADC_S_DATA);for (i = 1; i < 62; i +)active_key();if(LED_INIT_FLAG)/刚开机等到HI显示过去,显示稳定后再显示,去除开机时显示"HI"现象show_temp_err();/显示温度或故障信息j = TempTablei + 1;k = TempTablei;TtemNUM1 = (j / 2) + (k / 2);if(Rgt <= k) && (Rgt > j)temp_num = i;if(Rgt <= TtemNUM1)temp_dot = 5;elsetemp_dot = 0;if(Rwt <= k) && (Rwt > j)temp_w_num = i;if(Rst <= k) && (Rst > j)temp_s_num = i;void check_err()/检测故障程序if(ADC_G_DATA >5000)|(ADC_W_DATA > 5000)|(ADC_S_DATA > 5000)/温度传感器开路故障 5000if(ERR_ACT_FLAG!=3)ERR_ACT_DELAY = 5;ERR_ACT_FLAG = 3;/出错if(!ERR_ACT_DELAY)error_flag = 3;/出错标志置3,将显示"Er3"elseif(ADC_G_DATA < 100)|(ADC_W_DATA < 100)|(ADC_S_DATA < 100)/温度传感器短路故障 100/error_flag = 2;/出错标志置2,将显示"Er2"if(ERR_ACT_FLAG!=2)ERR_ACT_FLAG = 2;/出错ERR_ACT_DELAY = 5;if(!ERR_ACT_DELAY)error_flag = 2;elseif(SW_N)&&(!CON4)/高低压故障/error_flag = 1;/出错标志置1,将显示"Er1"if(ERR_ACT_FLAG!=1)ERR_ACT_FLAG = 1;/出错ERR_ACT_DELAY = 5;if(!ERR_ACT_DELAY)error_flag = 1;elseif(!SW_N)/error_flag = 0;/没有故障if(ERR_ACT_FLAG!=0)ERR_ACT_FLAG = 0;/没错ERR_ACT_DELAY = 5;if(!ERR_ACT_DELAY)error_flag = 0;unsigned long int ADC_active(void)unsigned char i;unsigned long int adc_num,adc_num1,adc_num2;adc_num2 = 0;for(i = 0; i < 8; i +)ADC_DATA = 0;/清空ADC数据ADC_CONTR |= 0x08;/启动ADC转换while(!(ADC_CONTR & 0x10);/等待ADC转换完成 ,ADC_FLAG,ADC转换完成标志位,完成后为1;/WDT_CONTR = 0x38;/喂狗ADC_CONTR &= 0xe7;/清0 ADC_FLAG,ADC_START 位,停止ADC转换adc_num1 = ADC_DATA;adc_num2 = adc_num2 + adc_num1;/保存AD转换结果if(LED_INIT_FLAG)/刚开机等到HI显示过去,显示稳定后再显示,去除开机时显示"HI"现象show_temp_err();/显示温度或故障信息adc_num = adc_num2 / 8;return adc_num;void ADC_control(void)unsigned long int adc_mid_data;/- ADC -ADC_CONTR |= 0x80;/开ADC电源delay(30);/-通道0-ADC_CONTR = 0xe0;/1,11,00,000 转换速度(11)210, ADC通道(000)0delay(3);adc_mid_data = ADC_active();ADC_G_DATA = (adc_mid_data*Uvcc)/256;/-/-通道1-ADC_CONTR = 0xe1;/1,11,00,001 转换速度(11)210, ADC通道(001)1delay(3);adc_mid_data = ADC_active();ADC_W_DATA = (adc_mid_data*Uvcc)/256;/-/-通道2-ADC_CONTR = 0xe2;/1,11,00,010 转换速度(11)210, ADC通道(010)2delay(3);adc_mid_data = ADC_active();ADC_S_DATA = (adc_mid_data*Uvcc)/256;/-ADC_CONTR &= 0x7f;/关ADC电源main()unsigned char i;/- I/O口功能设置 -P1M0 = 0x87;P1M1 = 0x78;P2M0 = 0x8c;P2M1 = 0x70;P3M0 = 0xdf;P3M1 = 0x20;led_clear();/清LED显示/-P1 = 0x78;/CON15断开P2 = 0x40;P3 = 0x00;CON4 = OFF;LED_INIT_FLAG=0;/用于开机延时片刻,消除“HI”显示mec_flag = 0;/风速键按下指示标志set_temp = 20;set_time = 0;DEC_F

    注意事项

    本文(客车空调控制系统.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开