(完整版)基于单片机的汽车空调控制系统设计1毕业论文

1200bits。

单片机的串行工作方式有四种,本文采用串行工作方式l。即以10位为一帧的异步串行通信方式,共包括1个起始位,8个数据位和1个停止位。

数据发送是由一条写发送寄存器(SBUF)的指令开始,随后在串行口由硬件自动加入起位和停止位,构成一个完整的帧格式,然后在移位脉冲的作用下,由TDX端串行输出。一个字符帧发送完后,使TXD输出线维持在“l”状态下,并将串行控制寄存器SCON的TI位置“1”,通知CPU可以接着发送下一个字符。

接收数据时,SCON的允许接收位RNE位应处于允许接收状态(REN=1)。在此前提下,串行口采样RXD端,当采样到从“1”向“0”的状态跳变时,就认定是接收到起始位。随后在移位脉冲的控制下,把接收到的数据位移入接收寄存器中。直到停止位到来之后置位接收中断标志位RI,通知CUP从SBUF取走接收到的一个字符。

5 汽车空调智能温控系统的软件设计

硬件电路设计完成之后,系统的主要功能将依赖于软件程序来实现,同时系统能否正常可靠地工作,除了硬件的合理设计外,与功能完善的软件设计是分不开的。

5.1 系统软件设计概述

由于汇编程序占用空间小,执行效率高,而且具有可直接操作硬件资源和实时性强等特点,故在本次设计中,采用MCS-51汇编语言进行程序编写。

本系统采用的是8位单片机AT89C52,其程序存储器也只有8K,为了

更充分地使用单片机的有限空间,在开发该系统软件时使用中断模式作为整个软件的主线。汽车空调智能温控系统的软件程序是由主程序、外部中断服务程序、串行中断服务程序和定时器中断服务程序等组成。

5.2 系统软件的工作模式

汽车空调智能温控系统的工作模式分为“正常运行模式”、“软关机模式”、“手动控制模式”和“自动控制模式”。

系统上电时,软件进入上电自检状态,这时系统会首先从X25045读入上次断电前存入EEPROM的系统状态信息,初始化各个中断并恢复空调控制器到上次关机前状态。经过上电初始化,智能温控系统会恢复到上次关机前的“正常运行模式”。此时,通过温度调节按键可以设定需要的温度值,温度传感器定时检测车厢温度,显示器显示温度设定值和温度测量值,混合风门的开度会根据温差和温差变化自动调节,温控系统能够与PC机通过串口通讯交换数据。按一下“ONOFF”键,可使温控系统进入“软关机模式”。此时,系统不能再进行温度检测、温度设定和串行通讯,显示器熄灭,混合风门步进电机停止运转。

同时,系统在关机前自动把温控系统的状态信息(如混合风门的开度位置,自动控制模式下的温度设定值或手动控制模式下的风门档位值)保存到X25045的EEPROM中。如果再按一下“N0OFF”键,系统将恢复到“正常运行模式”。当处于“手动控制模式”时,可以直接调节混合风门开度档位(由全制冷到全加热分为5档)。当处于“自动控制模式”时,智能温控系统根据温度设定值与测量值的偏差自动调节混合风门的开度,使车厢温度能满足乘客期望的舒适度要求。

5.3 系统软件的模块化编程

本控制系统的软件设计采用模块化形式编写,模块化编程是一种软件

设计方法,各模块程序分别编写,编译和调试,最后把各模块一起连接定位。模块化编程具有以下优点: l) 开发周期短;

2) 当同类的需求较多时,可以把程序放入库中以备以后使用; 3) 有利于软件的可示化; 4) 有利于软硬件的联调;

5) 使得要解决的问题与待定模块分离,很容易找到出错的模块,大大简化了调试。

根据智能温度控制器的功能需要,整个系统大概可以分为6个功能模块,包括主程序模块、按键扫描处理子程序模块、FUZZY控制系统算法子程序模块、温度信号采集子程序模块、模糊控制子程序模块、步进电机驱动控制子程序模块

[18]

5.3.1 主程序模块

主程序模块的内容包括系统初始化,温度设定值与测量值的显示,正常工作模式与软关机模式的切换,X25045的EEPROM读写等。

其中系统初始化的对象包括堆栈指针SP的初值,风门步进电机的运转步数△u(k)的初值,X25045的状态寄存器,8255的状态寄存器及控制寄存器,各个定时器的工作方式及定时常数,串行工作方式和波特率等。下面分别给出主程序模块流程图和其中的显示程序流程图。

主程序流程图如图5.1所示,其中F0用于存放LED显示器的开关状态。

图5.1 主程序流程图

显示程序包含在主程序中,采用软件定时动态扫描方法,每隔1毫秒刷新一位LED显示。系统的显示内容包括两位温度设定值和两位温度测量值,流程图如图5.2所示。

根据硬件原理图的设计,LED显示器采用8255的PA口作为段选码,

PB0和PB1是温度设定值的十位和个位的位选码,PB2和PB3是温度测量值的十位和个位的位选码。8255的DO~D7接AT89C52的PO口,AO、Al经74LS373接P0.0和P0.1,CS经74LS373接P0.7。所以8255的地址编码为:命令状态口--FF7FH,AP口--FF7CH,BP口--FF7DH,PC口--FF7EH。设定8255的PA口和PB口为输出口,PC口为输入口,故命令控制字为89H。采用动态显示方式,即某一时刻只让某一位处于选通状态,同时在段选线上输出要显示的字形码。

图5.2 显示程序流程图

5.3.2 按键扫描处理子程序模块

1) 按键扫描程序按键扫描程序的功能包括以下3个方面的内容: a. 判别键盘上有无键闭合。判别方法为外部中断申请输入端,有没有向CPU发送中断请求。若有,进入中断服务子程序,即键盘上有键处于闭合状态。

b. 去除键的机械抖动。扫描键盘中断服务程序里除了要识别闭合键的键号外,还要排除键抖动引起的误操作,以及避免对同一个键的一次闭合作多重处理的错误。按键消抖措施分硬件和软件两种,本系统采用软件消抖措施,方法为判别到键盘上有键闭合后,延迟10ms,再判别键盘的状态,若仍然有键闭合,则认为键盘上有一个键处于稳定的闭合状态,否则就认为是键的抖动。

c. 判别闭合键的键号。按键采用硬件中断请求与软件查询相结合的方法,查询顺序即为优先顺序,依次读P0.0~P0.2的状态,则与变为低电平的引脚相应的按键是闭合的。为了便于查询,中断信号请求方式为电平触发方式。

通常,键盘工作方式有三种,即编程扫描、定时扫描和中断扫描。在本设计中,对“UP”、“DOWN”和“AUTO”键采用中断扫描的方式,而“ONOFF”

联系客服:779662525#qq.com(#替换为@)