第12章微机应用系统设计案例

Download Report

Transcript 第12章微机应用系统设计案例

第12章 微机应用系统设计案例
12.1 微机应用系统设计
12.2 微机应用系统开发
12.3 应用系统设计实例
教学重点
本章是在掌握微型计算机软硬件原理的基础
上学习系统的设计与开发。
难点:微型计算机系统的开发与设计
重点:微型计算机系统开发步骤及方法
了解:微型计算机系统应用的领域及特点
12.1 微机应用系统设计
主讲内容
12.1.1 总体设计
12.1.2 硬件设计
12.1.3 软件设计
12.1 微机应用系统设计
微机应用系统是指以微处理器为核心,配以一
定的外围电路和软件,能实现某种或几种功能
的应用系统。它由硬件部分和软件部分组成。
该系统设计包括总体设计、硬件设计、软件设
计、制版、元器件安装等。开发步骤:
 系统需求分析
 系统总体方案设计
 系统硬件电路设计
 系统软件设计
 系统调试
12.1.1 总体设计
1.系统总体需求分析
一方面应该对用户和市场的需求,了解用户对新系统
的要求,另一方面还要对国内外同类系统的状况进行详细
的分析调查。
2.系统可行性分析
◆市场或用户需求
◆经济效益和社会效益
◆技术支持与开发环境
◆系统的目前竞争力和未来生命力
3.系统方案设计
4.划分硬件、软件任务,画出系统结构框图
12.1.2 硬件设计
微型计算机系统的硬件设计有从元件级上
的设计和利用应用板(单片单板机)构成系统
两大类。
1.从元件级上的设计:配置必须的存储器、接口电
路和外围设备而组成一个系统。要考虑的主要因素有:
微处理器选择、存储器配置、输入通道设计、输出通道
设计、电源配置和打印、显示、报警、通信、操作、信
号等接口电路。
2.利用应用板设计:指选用市面上销售的通用微处理
器产品,可以缩短开发周期。
12.1.2 硬件设计
硬件电路设计时应注意的几个问题 :
1.程序存储器:尽量避免用小容量的芯片组合扩充成
大容量的存储器。
2.数据存储器和I/O接口:应尽量减少芯片数量,使
译码电路简单。
3.地址译码电路:优先考虑线选法
4.总线驱动能力:数据总线宜采用双向8路三态缓冲
器74LS245作为总线驱动器;地址和控制总线可采用单
向8路三态缓冲器74LS244作为单向总线驱动器。
5.系统速度匹配
12.1.3 软件设计
按照先粗后细的办法,把整个系统软件划分
成多个功能独立、大小适当的模块,应有以下特
点:
1.结构清晰、简捷、流程合理
2.各功能块程序化、子程序化
3.程序存储区、数据存储区规划合理
4.各功能程序的运行状态、运行结果以及运行要求尽量设置状态
标志
5.做好抗干扰设计
6.设置自诊断程序
开始
系统需求和可行性分析
确定系统总体方案设计划分软硬件功能
硬
件
设
计
绘制硬件框图
设计硬件电路
绘制印刷电路板图
制作电路板
硬件电路调试
软
件
设
计
软件资源划分
软件结构模块划分
程序设计
程序调试
系统综合调试
排除故障,修正软硬件
程序固化,应用系统独立运行
完成研制
图12-1 微机系统开发流程图
12.2 微机应用系统开发
主讲内容
12.2.1 微机应用的开发
12.2.2 开发工具的组成和功能
12.2.3 具体开发系统简介
10.2.4 微机应用系统的调试
12.2.1 微机应用的开发
1. 开发的意义
2.开发需要解决的问题
⑴ 编程:根据开发工具的性能,可以有机器语言、
汇编语言和高级语言三种不同级别的编程方式。
⑵ 排错:主要是指对单片机应用系统的硬件、软件
进行综合调试。
⑶ 仿真:仿真实际上也是一种软件和硬件综合在一
起的排错调试手段,它能加速目标应用系统的开发。
12.2.1 微机应用的开发
3.开发的手段
⑴ 通用机模拟开发
⑵ 在线仿真开发
在线仿真就是把开发的目标系统连接到仿真器上,在
仿真软、硬件环境支持下的在线开发。
开发工具也有不同类型。主要有以下三种:
◆通用型微机仿真器开发系统
◆ 实用型开发系统
◆ 通用机开发系统
12.2.2开发工具的组成
1.开发工具的组成
⑴ 主机
⑵ 在线仿真器
⑶ 仿真软件
2.实时在线仿真功能
实时在线仿真器的功能可以分为调试功能和辅助设计
功能。
⑴ 调试功能
① 运行控制功能:应能以单步、断点(多种断点条件)、连续
三种方式运行程序
② 状态的读出和修改功能:用户可以读出/修改目标系统所
有资源的状态,以便检查运行的结果。
③ 跟踪功能:具有逻辑分析仪的功能。
12.2.2开发工具的组成
⑵ 辅助设计功能
①程序设计语言:汇编或C/C++语言等。
② 程序编辑。
③ 其它软件功能:如反汇编程序和实用子程序库。
12.2.3 微机应用系统的调试
微机应用系统调试包括硬件调试和软件调试两
项内容。
1. 硬件调试
硬件调试的任务是排除应用系统的硬件电路
故障,包括设计性错误、工艺性故障和样机故
障:
⑴ 脱机测试
• 检查线路
• 核对元器件
• 检查电源系统
• 外围电路调试
12.2.3 微机应用系统的调试
⑵ 联机调试
• 测试扩展RAM
• 测试I/O接口和设备
• 试验晶振和复位电路
• 测试A/D和D/A转换电路
• 其它外设的测试
12.2.3 微机应用系统的调试
2. 软件调试
⑴ 单步运行
⑵ 断点运行
⑶ 连续运行
⑷ 检查和修改存储器单元的内容
⑸ 检查和修改寄存器的内容
⑹ 符号化调试
12.2.3 微机应用系统的调试
3. 软硬件综合调试
在系统综合调试时,应将全部硬件(包括外设)连接
好,应用程序也都组合好。进行完整系统的软硬件调试,
不断地调整修改应用系统的软硬件,进一步排除较难发现
的软硬件错误,使系统达到预期的技术指标。
12.3 应用系统设计实例
主讲内容
12.3.1 系统分析和总体设计
12.3.2 系统的硬件电路设计
12.3.3 系统的软件设计
12.3 应用系统设计实例
实例:现要求设计一个单片机温度控制系统,自动控制一个温室的温
度,实现如下功能:
① 要求温室温度为三档:第一档为室温,第二档为40℃,第三
档为50℃。温度控制误差≤±2℃。
② 升温由3台1000W的电炉实现。若3台电炉同时工作时,可保
证温室温度在3min内超过60℃。
③ 要求实时显示温室温度,显示位数为3位,即××.×℃(如
38.7℃)。
④ 当不能保证所要求温度范围时,发出声光报警信号。
⑤ 对升温和降温过程时间不作要求。
系统总体分析
系统硬件设计
系统软件设计
12.3.1 系统分析和总体设计
1. 对温度控制系统的分析
① 温度测量 模拟信号到数字信号的转换(A/D)
② 温度控制 电炉的通电或断电实现实现温度控制,需
要开关量输出通道。
③ 温度给定 要有相应的给定输入装置,如键盘。
④ 温度显示 按要求实时显示温室的温度值。
⑤ 报警 声光报警信号。
12.3.1 系统分析和总体设计
2. 控制方案的确定
对温度控制精度要求不高,可选用继电器控制方式
① 第一档 给定温度为室温,切除所有电炉。
② 第二档 给定温度为40℃,一般情况为1台电炉工作。
③ 第三档 给定温度为50℃,一般情况为2台电炉工作。
④ 检测温室 取A/D采样周期为30s。
12.3.1 系统分析和总体设计
3. 硬件和软件功能划分
硬件系统包括:
温度测量电路,即传感器、放大器、A/D转换及接口;
温度控制电路,即开关量输出和电炉驱动;
温度显示电路和输出报警电路等。
软件功能包括:
温度检测(定时采样、软件滤波)功能;
利用定时器实现30s定时,以满足采样周期的要求;
温度控制的实现,三台电炉的通电与断电;
实现定时器30s定时,满足采样周期的要求;
显示温度和输出报警。
12.3.1 系统分析和总体设计
4. 系统结构框图
温度检测
温度设定
温度显示
报警
单
片
机
传感器
1#电炉控制
1#炉
温
2#电炉控制
2#炉
室
3#电炉控制
3#炉
图12-2 温度控制系统结构框图
12.3.2 系统的硬件电路设计
1. 微机的选择
本例对控制精度要求不高,控制功能一般,此外采
集和处理的数据不多且不需要保留,故选择常用X86系列
微机中的8086/8088作为CPU即可。
2. 输入通道设计
包括温度传感器、放大器和A/D转换器三部分。 温度检
测采用温度传感器AD590,运算放大器OP07作为信号放
大器,A/D转换器采用ADC0809。
12.3.2 系统的硬件电路设计
3. 输出通道设计
输出通道有3条,光电耦合双向晶闸管驱动电路,
分别控制3台电炉通电和断电。
4. 人机接口设计
⑴ 温度设定电路
本例采用BCD码拨盘。
⑵ 温度显示电路
温度值采用LED显示。可以利用串行口的移位寄存器
功能,扩展为三位静态显示LED接口电路。
12.3.2 系统的硬件电路设计
⑶ 报警电路
报警电路仅需要一位开关量输出控制,采用微机
的I/O口线即可。
12.3.3 系统的软件设计
1. 软件总体设计
根据题目要求及硬件设计,软件设计需满足以下要
求:
温度检测 定时启动A/D转换,采取四点平均值滤波
法抑制信号的干扰。
温度控制 比较温度检测值和给定值,控制电路的通
断。
定时采样 利用8253的定时器T0或T1,进行30s定时,
以满足采样周期的要求。
温度显示 在每次检测温度后,将新的温度检测值经
过标度变换后由串行口输出给LED显示器。
蜂鸣报警 将每次温度检测值与设定值作比较,如果
其差值超出允许范围,输出报警信号,并将程序转入事
故处理程序。
12.3.3 系统的软件设计
⑴ 程序结构设计
应用程序结构采用中断方式,由定时器发出定时中断申请。
主程序进行系统初始化,包括定时器、I/O口和中断系统的初始
化,等待定时中断。
在中断服务程序中,先判断是否到30s。若不到30s,返回;若到
30s,进行以下操作:拨盘设定值检测、温度检测、标度变换、温度显
示和温度控制,并根据温度检测值决定是否报警。据此可设计出应用程
序总体结构如图12-3所示。
⑵ 程序模块划分
在应用程序总体结构中,将以下6个功能程序作为模块程序:温度
设定输入、温度检测、温度值标度变换、温度显示、温度控制和报警程
序模块。
12.3.3 系统的软件设计
程序开始
N
30s定时到?
Y
主程序
并行口初始化
串行口初始化
定时器初始化
中断系统初始化
拨盘设定值检测
温度检测
标度变换
温度显示
温度超出范围否?
N
温度控制
中断返回
图12-3 应用程序总体流程图
Y
报警及
事故处理
12.3.3 系统的软件设计
程序开始
⑴ 温度检测程序模块
将结果单元50H和
寄存器B清零,转换
次数4→R6
温度检测程序的功能是连续进
启动A/D转换
行4次A/D转换,求取转换结果的平
均值,存入内部50H单元。A/D转换
转换结束否?
N
采用查询方式。
N
Y
累加转换结果
(A)+(50)H→(50)H
有进位否?
Y
(B)+1→(B)
(R6)-1=0?
Y
(B)、(50H)联合除
以4,结果→50H
返回
N
12.3.3 系统的软件设计
⑵ 温度控制程序模块
温度控制程序的功能是将温度实测值(存于50H单
元)与设定值(存于51H单元)作比较,如测值高于设定
值1℃(注意,此值小于要求误差2℃,对应的数字量为
04H),则关闭一台电炉;如实测值低于设定值,则接通
一台电炉;否则不予调节。
三台电炉的接通顺序是3#、2#、1#,关闭顺序是1#、
2#、3#。
图12-4 温度控制程序流程图
程序开始
Y
差值>04H?
测量值>给定值即
(50H)>(51H)吗?
N
N
N
差值>04H?
Y
N
1#炉通电
(P1.0=1)吗?
3#炉通电
(P1.2=1)吗?
Y
N
#
N
Y
#
关闭1 炉:0→P1.0
开3 炉:1→P1.0
2#炉通电
(P1.1=1)吗?
2#炉通电
(P1.1=1)吗?
Y
N
关闭2#炉:0→P1.1
开2#炉:1→P1.1
关闭3#炉:0→P1.2
开1#炉:1→P1.2
返回
Y
12.3.3 系统的软件设计
① 应用程序主要功能
当拨码盘设定值为1时,控制温度为室温;设定值为2
时,控制温度为40±2℃;设定值为3时,控制温度为
50±2℃。如果设定值不是1、2或3,则显示出错误信息,
提醒用户重新进行温度设定。
温度显示形式为3位十进制数:2位整数和1位小数,
即“××.×”。如果实际温度与设定温度的差值大于
5℃,发出警报信号。差值小于5℃后,报警信号自动撤
除。
12.3.3 系统的软件设计
② 温度控制方式
温度控制采用继电控制方式,用通断电炉的方法
调节温度,采样周期为30s。
③ 应用程序占用资源情况
50H—温度检测值存放单元;51H—温度设定值
存放单元;5DH~5FH—显示缓冲区;60H~7FH—堆
栈;A、B、R0、R6、DPTR—工作寄存器;R7—软
件计数器。使用内部定时器/计数器0作采样周期定时
器,中断方式。
本章内容结束!