660 likes | 779 Views
第 9 章 MCS-51 单片机系统的开发应用. 西安思源学院. 电子信息工程学院. 9.1 单片机应用系统研制过程. 9.1.1 总体设计 1 .明确设计任务 认真进行目标分析,根据应用场合、工作环境、具体用途,考虑系统的可靠性、通用性、可维护性、先进性,以及成本等,提出合理的、详尽的功能技术指标。 2 .器件选择 ( 1 )单片机选择 主要从性能指标如字长、主频、寻址能力、指令系统、内部寄存器状况、存储器容量、有无 A/D 、 D/A 通道、功耗、价能比等方面进行选择。对于一般的测控系统,选择 8 位机即能满足要求。
E N D
第9章 MCS-51单片机系统的开发应用 西安思源学院 电子信息工程学院
9.1.1 总体设计 1.明确设计任务 认真进行目标分析,根据应用场合、工作环境、具体用途,考虑系统的可靠性、通用性、可维护性、先进性,以及成本等,提出合理的、详尽的功能技术指标。 2.器件选择 (1)单片机选择 主要从性能指标如字长、主频、寻址能力、指令系统、内部寄存器状况、存储器容量、有无A/D、D/A通道、功耗、价能比等方面进行选择。对于一般的测控系统,选择8位机即能满足要求。 (2)外围器件的选择 外围器件应符合系统的精度、速度和可靠性、功耗、抗干扰等方面的要求。应考虑功耗、电压、温度、价格、封装形式等其他方面的指标,应尽可能选择标准化、模块化、功能强、集成度高的典型电路。
3.总体设计 总体设计就是根据设计任务、指标要求和给定条件,设计出符合现场条件的软、硬件方案。并进行方案优化。应划分硬件、软件任务,画出系统结构框图。要合理分配系统内部的硬件、软件资源。包括以下几个方面: (1)从系统功能需求出发设计功能模块。包括显示器、键盘、数据采集、检测、通信、控制、驱动、供电方式等。 (2)从系统应用需求分配元器件资源。包括定时器/计数器、中断系统、串行口、I/O接口、A/D、D/A、信号调理、时钟发生器等。 (3)从开发条件与市场情况出发选择元器件。包括仿真器、编程器、元器件、语言、程序设计的简易等。 (4)从系统可靠性需求确定系统设计工艺。包括去耦、光隔、屏蔽、印制板、低功耗、散热、传输距离/速度、节电方式、掉电保护、软件措施等。
9.1.2 硬件设计 由总体设计所给出的硬件框图所规定的硬件功能,在确定单片机类型的基础上进行硬件设计、实验。进行必要的工艺结构设计,制作出印刷电路板,组装后即完成了硬件设计。 一个单片机应用系统的硬件设计包含系统扩展和系统的配置(按照系统功能要求配置外围设备)两部分。 1.硬件电路设计的一般原则 (1)采用新技术,注意通用性,选择典型电路。 (2)向片上系统(SOC)方向发展。扩展接口尽可能采用PSD等器件。 (3)注重标准化、模块化。 (4)满足应用系统的功能要求,并留有适当余地,以便进行二次开发。 (5)工艺设计时要考虑安装、调试、维修的方便。
2.硬件电路各模块设计的原则 单片机应用系统的一般结构 如下图所示。 各模块电路设计时应考虑以下几个方面: (1)存储器扩展:类型、容量、速度和接口,尽量减少芯片的数量。 (2)I/O接口的扩展:体积、价格、负载能力、功能,合适的地址译码方法。
(3)输入通道的设计:开关量(接口形式、电压等级、隔离方式、扩展接口等),模拟输入通道(信号检测、信号传输、隔离、信号处理、 A/D、扩展接口、速度、精度和价格等)。 (4)输出通道的设计:开关量(功率、控制方式等),模拟量输出通道(输出信号的形式、 D/A 、隔离方式、扩展接口等) (5)人机界面的设计:键盘、开关、拨码盘、启/停操作、复位、显示器、打印、指示、报警、扩展接口等。 (6)通信电路的设计:根据需要选择RS-232C、RS-485、红外收发等通信标准。 (7)印刷电路板的设计与制作:专业设计软件( Protel,OrCAD等)、设计、专业化制作厂家、安装元件、调试等。
(8)负载容限:总线驱动。 (9)信号逻辑电平兼容性:电平兼容和转换。 (10)电源系统的配置:电源的组数、输出功率、抗干扰。 (11)抗干扰的实施:芯片、器件选择、去耦滤波、印刷电路板布线、通道隔离等。
1.总体规划 结合硬件结构,明确软件任务,确定具体实施的方法,合理分配资源。定义输入/输出、确定信息交换的方式(数据速率、数据格式、校验方法、状态信号等)、时间要求,检查与纠正错误。 2.程序设计技术 软件结构实现结构化,各功能程序实行模块化、子程序化。一般有以下两种设计方法: (1)模块程序设计:优点是单个功能明确的程序模块的设计和调试比较方便,容易完成,一个模块可以为多个程序所共享。其缺点是各个模块的连接有时有一定难度。 (2)自顶向下的程序设计:优点是比较符合于人们的日常思维,设计、调试和连接同时按一个线索进行,程序错误可以较早的发现。缺点是上一级的程序错误将对整个程序产生影响,一处修改可能引起对整个程序的全面修改。
3.程序设计 (1)建立数学模型:描述出各输入变量和各输出变量之间的数学关系。 (2)绘制程序流程图:以简明直观的方式对任务进行描述。 (3)程序的编制:选择语数据结构、控制算法、存储空间分配,系统硬件资源的合理分配与使用,子程序的入/出口参数的设置与传递。 4.软件装配 各程序模块编辑之后,需进行汇编或编译、调试,当满足设计要求后,将各程序模块按照软件结构设计的要求连接起来,即为软件装配。在软件装配时,应注意软件接口。
9.1.5 系统调试 单片机应用系统的软、硬件制作完成后,必须反复进行调试、修改,直至完全正常工作,经过测试,功能完全符合系统性能指标要求,应用系统设计才算完成。 1.硬件调试 (1)静态检查 根据硬件电路图核对元器件的型号、极性、安装是否正确,检查硬件电路连线是否与电路图一致,有无短路、虚焊等现象。 (2)通电检查 通电检查时,可以模拟各种输入信号分别送入电路的各有关部分,观察I/O口的动作情况,查看电路板上有无元件过热、冒烟、异味等现象,各相关设备的动作是否符合要求,整个系统的功能是否符合要求。
2.软件调试 程序模块编写完成后,通过汇编或编译后,在开发系统上进行调试。调试时应先分别调试各模块子程序,调试通过后,再调试中断服务子程序,最后调试主程序,并将各部分进行联调。 3.系统调试 当硬件和软件调试完成之后,就可以进行全系统软、硬件调试,对于有电气控制负载的系统,应先试验空载,空载正常后再试验负载情况。系统调试的任务是排除软、硬件中的残留错误,使整个系统能够完成预定的工作任务,达到要求的性能指标。 4.程序固化 系统调试成功之后,可以将程序通过专用程序固化器固化到ROM。
5.脱机运行调试 将固化好程序的ROM插回到应用系统电路板的相应位置,即可脱机运行。系统试运行要连续运行相当长的时间(也称为考机),以考验其稳定性。并要进一步进行修改和完善处理。 6.测试单片机系统的可靠性 单片机系统设计完成时,一般需进行单片机软件功能的测试,上电、掉电测试,老化测试,静电放电(ElectroStatic Discharge,ESD)抗扰度和电快进瞬变脉冲群(Electrical Fast Transient,EFT)抗扰度等测试。可以使用各种干扰模拟器来测试单片机系统的可靠性,还可以模拟人为使用中可能发生的破坏情况。 经过调试、测试后,若系统完全正常工作,功能完全符合系统性能指标要求,则一个单片机应用系统的研制过程全部结束
9.2 磁电机性能智能测试台的研制 9.2.1 系统概述 双缸摩托车上的磁电机有一个发电线圈和二个点火线圈,为摩托车提供前灯照明电压,及通过放电器为发动机的二个气缸提供点火信号,其质量直接影响到摩托车的运行性能。目前,磁电机性能测试普遍使用人工观察和判断的方法。 通常采用标准针状放电器替代火花塞检测点火装置产生电火花的能力,用刻度盘加指针的方法来测取点火提前角,精度低,且效率低下。为此研制了磁电机性能智能测试台,对双缸摩托车用磁电机的多项参数进行自动测试。
测试内容、条件及标准如下 1.点火线圈高压绝缘介电强度测试 在放电器极距为11mm,磁电机转速为6000r/min时,放电器应能产生每秒不少于50次的火花。 2.连续点火性能测试 磁电机在放电器极距为6mm时,最低连续点火转速为280r/min,最高连续点火转速为13 000r/min,每次运行20s,不能有缺火现象. 3.照明及充电性能测试 直流负载用2.2士0.05无感等效电阻,磁电机转速为2400r/min时,直流负载电压大于13.5V;磁电机转速为6800r/min时,负载电压应小于28V。
4.点火提前角与自动进角测试 点火提前角是磁电机的点火信号超前于摩托车活塞上死点的角度。磁电机转速为280~13000r/min的范围内,点火提前角应能从15土2随转速升高而自动连续进角到41°土2°。280~l 300r/min范围内点火提前角应为15°土2°,6000~13000r/min范围内点火提前角为41°土2°。
9.2.2 测试系统硬件设计 磁电机性能智能测试系统硬件结构图
9.2.4 程序设计 系统程序结构图
9.3 水产养殖水体多参数测控仪 本系统以单片机为核心,采用RS-485协议组建分布式控制网络,利用计算机自动检测养殖水池的温度、溶氧含量、浑浊度等各环境因子,通过对增氧机、电磁阀等执行机构的控制,可以把各项环境因子调整到合适的范围,使鱼类生长在最适宜环境条件下,系统还可以自动对大量现场数据和曲线进行分析,实现参数的自校正和自适应控制,真正达到了低成本、高效益的现代化水产养殖要求。在相关模型和软件支持下,工控机和下位机均能在发生池水缺氧,温度、酸碱度不适等异常情况时自动发出报警信号。
1.传感器选型 温度与PH值传感器: 采用了配以导热系数较大的不锈钢保护钢管的铂电阻元件、玻璃电极和参比电极组合在一起的塑壳可充式复合电极(上海雷磁E-201-C型复合电极)。 溶解氧传感器: 原电池式薄膜电极(青岛昱昌科技有限公司的YC-DO-1溶解氧传感器)。 水位传感器: 全温度补偿低压力传感器;恒流供电,0~70mV;电压线性输出;精度:高 气压传感器: JQYB-1A型气压变送器,0~110Kpa, 24VDC供电,0~5V输出,精度:北京昆仑海岸传感技术中心生产。
2.调理电路的设计 (1)温度信号调理电路 系统设计保证如下条件: R6=R7 R5=R8 前端桥式电路放大倍数 图9-12 温度信号调理电路
(2) pH值调理电路 图9-13 PH值调理电路
3. A/D与D/A转换电路 图9-14AD/DA转换器接口电路图
4. 单片机系统与看门狗电路 图9-16单片机系统与看门狗电路图
6. 通信接口电路 图9-17 通信接口电路图
7. 控制面板电路 图9-18 控制面板电路图
9.3.4 软件设计 系统主程序流程图
9.4 单片机温度控制实验装置的研制 单片机温度控制实验装置的系统框图见图9-20。该系统主要由单片机及扩展电路、固态继电器(Solid State Relay,简写为SSR)、加热元件、R/V变换电路、感温元件、铝块、PC机等组成。其中单片机及扩展电路包括8255、ADC0809、键盘、LED显示器、RS232/TTL 电平转换电路及其它电路。
电热丝为普通电烙铁用电热丝,用2根,固定在铝块的左右两侧深孔内,使铝块加温。 热敏电阻为负温度系数热敏电阻,其阻值随周围的温度升高而减小。热敏电阻嵌入铝块内部来感知铝块温度,通过R/V转换电路,将铝块温度转化为对应的电压。 ADC0809为模/数转换器,将R/V转换电路的模拟输出电压转换为对应的数字量,送单片机。 SSR为过零触发固态继电器,只有在交流电压的过零点附近才能使双向晶闸管触发导通。该器件能对交流电进行控制的最小周期为半个周波,即10ms。
课堂设计的基本内容 1.熟悉单片机温控系统硬件结构和温控原理。了解常用的温控算法。 2.编制测温程序。A/D转换值在LED显示器上显示,铝块温度由插入铝块深孔中的温度计读数反映。实测铝块在升温和降温过程中的温度/A/D转换关系表。 3.编制单片机温控程序,在PC机上编译后,经串行口下载到单片机,并调试。
设计说明 1.数码管显示字形 LED显示器是由发光二极管构成的字段组成的显示器。
显示程序任务: 设置显示缓冲区(7EH- 79 H) ,存放待显示数据和字符(位置码)。 显示译码:程序存储器中建立字形码常数表,查表得出对应数据和字符的字形码。 输出显示:输出字形码到显示端口。 2.字位口表(从高位起) 位置 G5 G4 G3 G2 G1 G0 数值 20H 10H 08H 04H 02H 01H 3.键盘显示原理图
4.周波控制法: 实现温度控制。以某一时间间隔(例如200ms)为1个控制周期Tc,调整每个控制周期中加到固态继电器输入端的控制信号uc的宽度tp,即可改变加到电热丝上的电压uo和平均功率。
模块流程 (1)显示子程序模块 采用动态显示方式,即一位一位地轮流点亮(扫描)6位显示器。 在8032RAM存储器中设置六个显示缓冲区单元7EH-79H,分别存放6位显示器的显示数据(从高到低)。
(2)键盘输入模块 实验系统有4×8的键盘结构(见键扫显示原理图)。 键盘的行线通过电阻接+5V,当键盘上没有键闭合时所有的行线和列线都断开,行线都为高电平。当键盘上某一键闭合时,则该键所对应的行线和列线都短路。 CPU逐行逐列地检查键盘的状态,可判断键盘上有无键闭合。CPU对键盘上闭合键的键号确定,可根据行线和列线的状态计算求得,也可以根据行线和列线的状态查表求得。
主程序和T0中断服务程序。 T0设定10ms定时中断一次,对测量结果进行采样。 调节周期定为0.5秒
9.5 单片机的C语言程序开发 1. Keil软件系统概述 2.Keil uVision2 Keil uVision2 是优秀的单片机开发软件之一,读者可以向Keil公司代理周立功网站索取并下载得到, 解压后在Windows下运行软件包中的WIN\Setup.exe安装,在桌面上有Keil uVision2图标,点击后出现如图所示界面,该集成软件开发平台,具有汇编语言和C语言源代码编辑、编译、仿真于一体,它的人机界面友好,操作方便,是51单片机开发者的首选。
Keil Vision2软件的运行 双击软件图标进入集成开发系统,如图所示,界面由工程管理窗口、源程序编辑调试窗口和输出窗口组成,界面上还有菜单和工具栏。当系统工作时还有内存窗口,变量观察窗口以及外围设备对话框出现,其中工程管理窗口有三个选择页面File,Regs,Books。分别显示当前项目的文件结构、CPU的寄存器的值、CPU的附加说明文件。
在软件使用中还会出现下列窗口1. 主窗口(Mainframe Window) 可设置其它各种调试窗口,设置断点、观察点,修改地址空间, 加载文件等等;2. 调试窗口(DEBUG Window) 支持用户程序的各种显示方式,可连续运行,单步运行用户程序, 并可在线汇编;3. 命令窗口(Command Window) 支持命令行的输入;
4. 观察窗口(Watch Window) 可设置所要观察的变量、表达式等;5. 寄存器窗口(Registe Window) 显示内部寄存器的内容,程序运行次数等;6. 串口窗口(Serical Windows) 显示串口接收和发送的数据; 7. 性能分析窗口 显示所要观察的各程序段占用CPU的空间;8. 内存窗口(Memory Window) 显示所选择的内存中的数据;9. 符号浏览窗口(Symbol Browser Window) 显示各种符号名称,包括专有符号,用户自定义符号(函 数名、变量、标号)等;