基于Proteus的汽车空调控制系统的设计与仿真.docx_第1页
基于Proteus的汽车空调控制系统的设计与仿真.docx_第2页
基于Proteus的汽车空调控制系统的设计与仿真.docx_第3页
基于Proteus的汽车空调控制系统的设计与仿真.docx_第4页
基于Proteus的汽车空调控制系统的设计与仿真.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

基于Proteus的汽车空调控制系统的设计与仿真聂茹(华南理工大学广州学院电子信息工程学院,广州510800)摘要 本文介绍的是利用Atmega16单片机、Proteus仿真软件开发的汽车空调自动控制系统。该系统具有电路结构简单、分立元件少、系统界面友好、操作简单等优点,能满足一般要求的汽车空调的自动控制。关键字 Proteus仿真;AVR单片机;空调控制Design and Simulation of Automobile Air-conditioning Control System Based on ProteusNIE Ru(College of Electronic information engineering, Guangzhou College of South China University of Technology, Guangzhou 510800)Abstract This paper introduces automobile air-conditioning automatic control system which is developed by Atmega16 SCM, Proteus simulation software. This system has the advantages such as simple circuit structure, less division element, friendly system interface, simple operation and so on, can satisfy the general requirements of the automobile air-conditioning automatic control.Key words Proteus simulation; AVR single chip; air-conditioning control1 引言汽车空调作为一种舒适性空调,不仅是人民生活水平提高的标志,也是提高汽车市场竞争能力的重要手段,同时,人们对汽车空调的温度控制性能也提出了更高的要求。本文介绍的就是利用Atmega16单片机、Proteus仿真软件开发的汽车空调自动控制系统, 能满足一般要求的汽车空调的自动控制。Atmega16是8位的单片机,具有Flash存储器,利用AVR单片机进行系统开发只需很少的外部器件就可以实现强大的功能,因此,在各种场合得到广泛应用,取代其它的8位单片机。而Proteus软件则是目前最好的模拟单片机及外围器件的仿真软件,可以仿真51系列、AVR,等,也可以仿真单片机的外围电路如键盘、LED、LCD、AD/DA、74系列、COMS 4000系列芯片等,应用Proteus提供的仿真模型和虚拟仪器可以高效地完成系统的软硬件设计和调试工作1,因此利用Proteus不仅可以大大提高开发效率,而且可以降低投资。2 系统设计 本设计的系统包含以下五部分:热电阻温度采集、液晶模块显示、继电器控制、键盘输入、风向步进电机的控制。2.1 热电阻温度采集在大型的中央空调中,热电阻温度传感器因其温度特性稳定、测量精度高等特点,得到了广泛的应用。本系统就是用Pt1000型铂电阻进行温度采集,铂电阻最常应用于中低温区,精度高,稳定性好,具有一定的非线性,温度越高电阻变化率越小,测量范围一般为一200850。目前应用最广泛的是Ptl002。图1 Pt1000热电阻温度测量电路图1为Pt1000热电阻温度传感器的测量电路。在电路中,热电阻RT与三个电阻R1、R2、R3构成电桥。当温度变化时,运算放大器的同相输入端的电位将发生变化,经过运算放大器放大后送到单片机中进行AD转换。由于单片机采用5V电压为参考电源,而在温度变化为0100C时,电桥电路的输出电压范围为00.7V,所以确定运算放大电路的放大倍数为7。运算放大电路的电阻可以由以下两个公式得到:可取。当输入电压为5V时,根据电桥平衡原理,有以下公式: (1)其中,U电桥电源电压,NADC数据寄存器的值,Pt1000在0C时的电阻1000。 (2)Rt温度为t时Pt1000的电阻值;t温度; Pt1000在0C时的电阻1000;A分度常数,A0.0038623139728 ;B分度常数,B-0.00000065314932626因此,根据以上公式(1)、(2)用Visual Basic.Net生成用N来查找温度t的程序表格(1024个值)部分如下:const float Pt1000Tab=0.0, /* 0 */ 0.1, /* 1 */0.2, /* 2 */0.2, 63.4, /* 696 */63.5, /* 697 */99.3, /* 1022 */99.4 /* 1023 */;2.2 液晶模块显示本系统采用164的字符型液晶模块,这种类型的LCD应用广泛,由于字符型液晶显示模块的接口形式都是统一的,因此当一种型号的接口电路设计好后,只要在指令上稍加改动就可以使用各种类型的字符型液晶显示模块。程序编译器上我们使用CodeVisionAVR C Compiler,该编译器具有相关器件库函数,开发方便快捷3。CodeVisionAVR集成LCD的函数,可方便实现LCD的读写,下面是部分函数及功能简单介绍。函数原型:void lcd_init(unsigned char lcd_columns)功能:初始化LCD模块,清屏并把显示坐标设定在0列0行。LCD模块的列必须指定(例如:16)。这时不显示光标。在使用其它LCD函数前,必须先调用此函数。函数原型:void lcd_clear(void) 功能:清屏并把显示坐标设定在0 列0行。函数原型:void lcd_gotoxy(unsigned char x, unsigned char y) 功能:设定显示坐标在x 列y行。列、行。函数原型:void lcd_putchar(char c)功能:在当前坐标显示字符c 。函数原型:void lcd_puts(char *str) 功能:在当前坐标显示SRAM 中的字符串str 。函数原型:void lcd_putsf(char flash *str) 功能:在当前坐标显示FLASH 中的字符串str 。在对LCD进行写入显示数据之前,需要对它进行初始化,设定显示参数。#include /*使用PORTB连接LCD模块*/#asm .equ _lcd_port=0x18 ;PORTB#endasmvoid main(void)/定义字符数组uchar arr5;/初始化,指定列数为16lcd_init(16);/设定显示坐标为(0,1)lcd_gotoxy(0,1); /*在(0,1)显示字符串,注意:此字符串存储在Flash只读存储器中*/lcd_putsf(Run Mode:);/*调用“浮点数转换成字符串”函数,函数原型:void ftoa(float n, unsigned char decimals, char *str)data为浮点数*/ftoa(data,1,arr);/设定显示坐标为(0,2)lcd_gotoxy(0,2); /显示RAM中字符串数组arr的内容lcd_puts(arr);while(1);2.3 继电器控制Atmega16不能直接驱动继电器,所以必须加入较大功率的驱动器。本系统采用ULN2003芯片来驱动继电器。其内部结构如图2所示。图2 ULN2003内部结构图采用达林顿阵列的ULN2003是专门用来驱动继电器的芯片,采用集电极开路输出,输出电流大,因此可以直接驱动继电器或固体继电器等器件,可以共驱动7路,成本较低,图3为其驱动原理图。图3 驱动原理图2.4 键盘输入本系统采用33矩阵式键盘。通过键盘可以控制空调系统的工作方式(关闭、送风、制冷)、风向步进电机(水平送风、倾斜送风、扫风)、温度设定等。键盘的行由PD0、PD1、PD2控制,而列则由PC3、PC4、PC5控制,如图4所示。采用程序扫描的方式识别键码,其过程如下:图4 33矩阵式键盘仿真图 (1)首先判断键盘中有无键按下。代码如下:PORTC&=0x20;if(PIND&0x07)!=0x07) /首先将PC5置为“0”,再判断PD0、PD1、PD2是否都是“1”。如果全是“1”,则表示第3列没有键按下,否则有键按下,再进入消除抖动程序;再将PC4置为“0”,判断PD0、PD1、PD2是否都是“1”。如果全是“1”,则表明第2列无键按下,否则有键按下,进入消除抖动程序;再将PC3置为“0”,再判断PD0、PD1、PD2是否都是“1”。如果全是“1”,则表明第1列无键按下,否则有键按下,进入消除抖动程序。(2)判断键码,即哪个按键按下。以下是识别按键为“Key2-3”( 第2行第3列)的程序代码。if(PIND&0x07)=0x05) / Key 2-3 / uchar key_num=K23; / 等待按键释放 while(PIND&0x07)=0x05); /判断换气风机是否在运行 if(ventilator_state=1) ventilator_state=0; /关闭换气风机 stop_ventilator(); /在LCD上的(12,3)显示“OFF” lcd_gotoxy(12,3); lcd_putsf(OFF); else ventilator_state=1; /开启换气风机 start_ventilator(); /在LCD上的(12,3)显示“Run” lcd_gotoxy(12,3); lcd_putsf(Run); return;/识别完毕,返回主程序2.5 风向步进电机控制Atmega16的定时器能够输出PWM,编程简单,精度高,因此通过编程让定时器2工作于相位可调模式,产生高精度的PWM波形输出,调节占空比,以达到控制步进电机不同转角的目的。初始化设置如下:ASSR=0x00;TCCR2=0x64;TCNT2=0x00;OCR2=0x00;TIMSK=0x80;3 系统仿真实现Proteus仿真提供的可调电阻是“十级可调”而不是“无级可调”,所以本系统用两个可调电阻模拟Pt1000热电阻,以实现“粗调”、“中调”、“细调”,反映热电阻阻值的细微变化。图5为换气风机、压缩机、蒸发器风机处于工作状态下的仿真图。图6为LCD的显示结果。图5 换气风机、压缩机、蒸发器风机处于工作状态下的仿真图图6 LCD的显示结果4 结束语本系统采用AVR单片机及Proteus仿真软件实现汽车空调

温馨提示

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

评论

0/150

提交评论