1.1 微机测控系统设计
一、实验目的
1.了解实时控制系统的构成。
2.学会较复杂的实时系统的设计。
二、实验设备
微机一台、实验用的传感器和集成电路以及导线若干。
三.实验内容及步骤
实验要求设计一个微机测控系统,要求如下。
1.测量对象:温度、压力、流量等共4路非电路参量(要求以一定周期巡回检测)。
2.控制对象:温度(要求控制范围为0~200℃,温度控制精度为± 2℃)。 3.对各参数的测量值实时显示。
4.当温度参数超限并失调时,能声音报警。
5.操作员能在运行过程中通过人机对话修改温度设定目标值。
7.测量的各参数中,除温度用作控制外,其余只用作监视系统运行,对测量精度可不予考虑或自定。
鉴于上述给定的设计任务和要求,按以下步骤来进行系统设计。根据任务要求,设计系统功能结构。
根据设计要求,本微机测控系统除对温度要进行闭环控制外,对其余3个参量只作巡回检测,对各个参数要能实时显示和故障报警。因此,系统的功能结构可用图5.1表示。其中微型控制器作为整个系统的控制核心,除了完成对A/D通道、D/A通道和键盘、显示、报警等外部过程与设备的控制任务外,还要完成对采样数据的数字滤波、非线性校正、标度变换和温度控制算法的实现等数据处理任务。
1
图1.1 微型控制器测控系统的总体功能结构框图
根据系统功能结构,选择主体芯片和相关元器件,设计系统组织结构(即物理结构)。
从功能结构图可知,实现本测控系统的主体功能单元是由模拟多路开关、A/D转换器、D/A转换器等模块组成的。
由于4个参量中,只有温度有测量和控制精度的要求,因此,可以只以它作为选择ADC、DAC的出发点。由温度控制的范围(0~200℃)和精度(20)要求,可确定选取8位分辨率的ADC和DAC。ADC0809芯片不仅内含了8位ADC,而且内含了8选1模拟多路开关(AMUX),是一个很好的8位数据采集系统,所以可选ADC0809作为A/D通道主体芯片;同理,DAC0832不仅内含了8位DAC,而且内含了两级数据缓存器,有利于简化接口设计,故可选DAC0832作为D/A通道主体芯片。为了保证参量检测,特别是温度控制的实时性和巡回采集周期性,最好采用定时中断的方法来启动每个周期的检测,为此可选定时计数器,由它来产生所需频率的时钟,作为ADC0809的时钟输人。至于定时中断的时间间隔,则取决于温度控制的周期。控制周期最短不能少于以下几部分时间之和:
(1)对4路参量顺序采集一遍的时间Tc。 (2)对4路参量采集值进行数据处理的时间Tt。
(3)按照控制算法形式控制信号,并输出对执行机构施效的时间Ts。
鉴于温度属大惯性参量,上述几部分时间之和远小于温度对控制的响应时间,因此,没有必要作精确的计算,只需根据经验选择控制周期,本系统取控制周期即定时中断的时间间隔为1~2s。
选定了主体芯片后,便可以选择与这几种主体芯片相关的其他芯片和元器件。例
2
如,选用运算放大器747将D/A转换后的电流信号转换为电压信号;选用固态继电器(内含光耦电路和双向可控硅及触发控制电路等)作为对温度调节机构(加热/降温设备)的驱动电路;选取合适的传感器和变送器将温度、压力、流量等非电量变换为满足A/D转换器输人所需要的电压信号;选取74LS138作为向系统中各I/O接口提供端口地址的地址译码器等等。
其中关于传感器及变送器的选取,要特别说明几点。
(1)为了避免失灵区和非线性对传感精度的影响,在选传感器量程时,对惯量较大的参量,如温度、流量等传感器,应保证正常变化范围在10%~90%中程内;对惯性小的参量,如电流、压力等传感器,其使用下限值仍可按量程的10%考虑,上限量程考虑到冲击宜取正常上限值的l.5倍左右(有时还有附加限值措施)。
(2)传感器的分辨率和精度的取值一般要比系统控制精度高一个数量级,以弥补后级各种系统干扰带来的误差。例如本系统温控要求的控制精度是1%(20/200℃=1%),则温度传感器的分辨率和精度起码要取到0.1%。
(3)各种参数传感器后面的变送器主要是解决传感器输出与A/D转换器输入之间的匹配问题,保证送到A/D转换器输入端的模拟量形式(单/双极性、电压/电流形式)及量程符合A/D转换器模拟接口的规范。综上所述,可以得到本系统的组织机构(物理结构)如图1.2所示。根据系统组织结构,设计I/O接口硬件电路。
图1.2 微机测控系统的组织结构图
3
实验步骤:
本测控系统主要包括以下几部分I/O接口硬件电路的设计。 1.ADC0809的接口电路设计
ADC0809与PC系列微机总线的接口方法有多种,可以通过可编程并行接口(如8255)与总线相连,也可以通过常规TTL/MOS芯片组成的接口与总线相连;可以是中断式接口,也可以是查询式接口或其他同步方式接口;以8个模拟输入通道的选择可用3根数据线来控制,也可用3位地址来控制;对A/D转换的启动控制,可以由START和ALE分别控制,也可将它们合并起来统一控制。这几方面的方案取舍不同,接口电路的设计细节也将不同。
本系统决定采用常规TTL芯片来实现用3位地址线A2~A0选择输入通道的查询式接口,并且将START和ALE合起来作为启动转换控制,这样便可得到ADC0809的接口电路如图1.3所示。根据图中的接法,它的8个通道分别使用的端口地址是2B0H~2B7H,向这8个端口地址循环写人任何一个数,便可实现对8个模拟输人通道的巡回采样;对这8个端口地址的任何一个执行读操作,即可读取A/D转换的结果。同样,对端口地址2B8H~2BFH的任何一个地址执行一次读操作,再从读值中提取位值,即可获得A/D转换是否结束的状态。
图1.3 ADC0809的接口电路
2.DAC0832的接口电路设计
由于DAC0832内部有两级数据缓冲器,所以不必为它另加接口电路,只需从
4
74LS138的输出线中选用一根作为它的数据缓冲器端口地址选通信号线即可(假定选用Y0线,则0832占用的端口地址是8000H~8FFFH)。对于本系统的应用,没有必要采用两级缓存,所以可通过正确连接控制线使第二级缓冲器直通。这样,只要将输出数据向280H~287H之中的任何一个地址进行一次写操作,即可完成D/A转换。
3.8253接口和其他I/O接口电路的设计
8253的接口很简单,只要为它提供一根74LS138的输出线作为CS信号,其余RD、WR和所选通道的OUT信号与总线的IOR、IOW和IRQi分别相连,A1、A0和D7~D0与总线的同名信号对应相连即可。
键盘操作、显示和故障报警等功能,如果由自己设置相应的设备来完成,则需要设计相应的接口。但本系统既然采用PC系列微机作为控制核心,就完全可利用微机系统中己有的资源,通过软件来完成这些功能。因此,没有必要考虑这些接口的设计问题。
根据系统硬件电路和系统功能要求,设计系统软件。
本系统软件设计采用模块化结构,主要由三类模块组成:主程序模块、中断服务模块和子程序模块。常用的程序段尽量采用于程序的形式,这样使程序结构清晰灵活,内存占用量减少,而各子程序模块又可独立存在,用户可根据需要调用。
4.主程序模块
主程序模块主要完成各项初始化工作和开放中断,为接收中断请求作准备。与控制有关的各项实质性工作都在中断服务程序中完成。主程序模块流程如图1.4所示。其中数据缓冲区包括A/D转换后的4路参数输入数据缓冲区和准备打印的打印输出数据缓冲区。输入数据缓冲区的大小以能装下4路参数值为原则,如果考虑数字滤波的额外需要,还应扩大若干倍。输出数据缓冲区的大小,根据题目要求,以能缓冲存储最近10 次的各参数测量值为下限,即至少要有 40个存储单元。
5
图1.4 主程序模块
5.中断服务程序模块
中断服务程序模块指的是2秒钟定时中断服务程序。该模块的程序流程图如图1.5所示。
图1.5中断服务程序模块
6
6.子程序模块
这部分软件实际上是许多子程序模块的集合。主程序和中断服务程序中的许多功能模块,甚至于子程序中嵌套的某些功能程序段,都可以以子程序的形式编制和被调用。这些子程序模块包括如下子程序。 (1)4通道巡回采样子程序。
(2)数字滤波子程序:对于被采点的参数,连续采5次,然后以算术平均滤波法,中值滤波法或比较取舍滤波法等进行滤波。
(3)标度变换子程序:将各测量参数按线性变换公式从二进制数字值变换为相应工程量单位,以便于显示和打印。
(4)温度非线性校正子程序:按查表法或折线拟合法进行温度测量值的非线性校正。
(5)温度控制子程序:根据控制算法(如PID算法、预测控制算法等)计算温度控制量,然后送D/A通道,实现温度调节。
(6)音响报警子程序:利用机内定时器通道2的音频信号发生器功能,控制扬声器发出报警信号。
(7)按键识别与处理子程序:在扫描键盘的基础上识别功能键,并转向相应的功能子程序模块。
(8)温度变化曲线设置子程序:通过人机对话设置或修改温度变化曲线,作为温控的标准。
(9)显示当前各参数值子程序:在显示器上按一定的格式显示4个参数的最新测试值。
这10个子程序模块的功能,大多数在前面各章的实验中已经实现过,这里仅将“4通道巡回采样子程序”这个基本子程序模块的流程图示于图1.6中。
7
图1.6 八通道巡回采样子程序模块流程图
在图1.6中,“数字滤波”功能模块又是通过一个子程序来实现的,这实际上是一种子程嵌套。为了测量每个通道的某点参数值,流程图中连续采样了5次,目的是为后面进行数字滤波提供条件。
根据上述各程序模块的流程图,可编写出各模块的源程序。
按照细化设计的硬件电路图和软件流程图安装电路,编写源程序,并对源程序进行汇编、连接,形成可执行目标程序,然后进行仿真和调试。
四、思考题
1 总结一个完整的实时系统应该如何设计。
2.若给定一个温度曲线,要求系统按照此温度曲线工作,请画出软件流程图。
3.参考信号处理方面的书籍,将数字滤波于程序分不同级别设计,画出相应的流程图。
8
1.2 多参数实时采集与处理系统设计
一、实验目的
在各种工业控制的实际应用系统中,微机控制的实时数据采集与处理系统技术已经被广泛地使用。通过本实验使学生能够做到以下3点。 1.掌握多参数实时数据采集与处理系统的设计思路与方法。 2.进一步掌握A/D转换的原理以及数据处理的方法。
3.进一步掌握A/D转换控制器在检测系统中的应用方法。
二、实验设备
1.DVCC开发机一台。 2.微机硬件实验一台。 3.A/D转换器芯片。 4 基本TTL电路芯片。
三、实验内容及步骤
设计一个可以采集两路参数、参数分辨率为8位的实时数据采集与处理系统。假定两路参数对应的直流电压在0~5V范围内变化,要求对通道0每隔1s采样一次,共采集100次;对通道1每隔5s采样一次,共采集20次。并要求将不同通道采集的数据进行相应的处理后以电压值的形式分别显示在屏幕的不同区域上。
屏幕上可以设计两个窗口,用来显示两个不同通道的电压值,同时在不同窗口上显示出相应通道号的提示信息。由此,实验中需要设计一个主程序和两个中断服务程序,即时钟中断服务程序和转换结束中断服务程序。图1.7所示是按照上述思路实现的两路数据采集与处理系统的参考电路图。 实验步骤:
本实验可以考虑利用定时/计数器来完成实验中的定时功能,使定时/计数器(1/100)s向微机发一次中断请求信号,由软件进行计数,设计一个(1/100)s计数器,当系统每次接收一次时钟中断时,(1/100)s计数器加 1,当计数器加到 100时,表示时间到 1s,则启动通道0进行A/D转换;再设计一个秒计数器,当秒计数器加到5时,启动通道1进行A/D转换。在A/D转换器被启动以后,当转换结束时,向微机发出中断请求。微机进入中断服务程序,读取各通道的转换结果,并将它们变
9
换为BCD码的电压值(小数点后保留2位)显示在屏幕上。
图1.7 多路数据采集与处理电路图
本实验软件的主程序和两个中断服务程序的流程图可以分别参考图1.8和图1.9。
图1.8 多路数据采集与处理系统主程序流程图 图1.9 定时中断服务程序流程图
10
除了以上的设计之外,如果采集、处理系统中要求将处理后的数据经示波器或其他模拟输出设备显示出来,那么,在系统中还需要加人D/A转换通道。
注意事项:
(1)在本实验中,我们对两路北A/D转换数据分别进行采集和数据变换处理,并设计两个窗口分别进行显示,因此,在编程时应对两个不同窗口上的显示光标位置进行交替存取处理,以确保显示的正确性。
(2)如果选用ADC0809芯片作为A/D转换器,在设计它与微机的接口时,对模拟输人通道的选择可有两种方法:一种是通过数据总线选择,另一种是通过地址总线选择。这两种选择方法对接口驱动程序有不同的要求。
四、思考题
1.由于A/D转换器的转换速度各不相同,而微机进行数据传输的速度和方式也有所不同。试设计一个利用微机内部的DMA传输方式来控制对数据的采集和传输。要求画出硬件电路连接图,并给出软件程序流程图。
2.分析本实验系统的采样精度,若要求采集精度为0.001,系统的硬件及软件方面应作哪些改变?
3.在你设计的系统中,被采集的电压信号允许的最高变化频率是多少? 4.如果要提高输入参数的采集精度,请画出新的硬件电路原理图。
1.3 出租车计价器设计
一、实验目的
自动计程计价器是每辆出租的四个必备的仪表装置之一,也是一种较典型的微控制器自动检测系统。本系统通过设计一个出租车计程计价器,使学生能够做到以下3点。
l.掌握出租车计程计价器的工作原理和实现方法。
2.进一步掌握定时/计数器和并行接口在检测系统中的应用。 3.进一步掌握定时/计数器和并行接口的微机接口方法。
二、实验设备
l.80X86系列微机一台。
11
2.微机硬件实验平台。
3.并行接口和定时/计数器接口芯片。 4.译码器芯片。 5.按键开关、数码管。 6.基本TTL电路芯片。
三、实验内容及步骤
模拟一个检测车轮转动里程的计价系统。要求具有时钟和计程计价显示功能:当启动键被按下时,系统开始计程,同时显示出起价和每公里单价;在行驶过程中,实时显示已行走的里程数和当前累计价格;当清除键被按下时,计程计价器清0。
实验步骤:
本实验设计一个微机计程计价系统,需要完成以下几个部分的硬件设计。 1.车轮转动里程检测电路
该电路的主要作用是敏感路程,产生计程脉冲;在具体实现时可采用干簧继电器来作为里程传感器,将继电器安装在与车轮相连接的涡轮变速器的磁铁上,使汽车每前进10m干簧继电器闭合一次,即向里程计数电路发出一个计数脉冲(在本实验中,可以采用一个单脉种源模拟该脉冲),以使得计数电路进行里程计数。 2.里程计数中断电路
当车轮转动里程检测电路提供了计程脉冲信号后,里程计数中断电路则根据该脉冲信号定时向微机系统发出计数中断请求信号,使系统根据一定的算法对里程数据进行计数计算。
3.时钟计时与显示电路
设计使用一个定时/计数器每(1/100)s向主机发一次中断请求信号。并利用并行接口电路完成对时钟的实时显示功能。同时,利用静态或动态扫描电路完成对出租车的起价、每公里单价以及行驶公里数和当前累计价的显示。 4.启动及清除电路
在系统电路中,设计一个启动/清除按钮,用来作为启动里程计数器或清除里程计数的开关。将该按钮开关接到微机系统的某个中断请求线上,当开关被按下一次时就作为计程启动中断请求;再按一次时,就作为系统的计程清零中断处理。
完成以上各部分功能的整体电路结构如图1.10 所示。
12
图1.10 出租车计程计价系统整体设计电路框图
该计程计价系统的软件设计分为以下几个模块。 l.主程序模块
在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设置以及开中断、循环等等工作。另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。
当主程序判断出有“启动计程中断”产生时,将根据里程寄存器中的内容计算和判断出行驶里程是否已超出起价公里数。若己超出起价公里数,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将已行走的里程数和当前然累计价格送显示电路显示出来。
当主程序判断出有“清除计程中断”产生时,将显示电路中的当前行驶里程数和运行累计价格清零,井重新进行初始化过程。 本实验的主程序流程图参见图1.11。
2.定时中断服务程序
在定时中断服务程序中,需要完成对行车时间的累加计数,并将该时间数据和当前时钟送显示电路进行实时显示。
当里程计数器对里程脉冲计满一定数值(如1公里)时,就由里程计数中断电路
13
向微机发出中断请求,使微机进入里程计数中断服务程序中。在该程序中,需要完成当前行驶里程数的累加操作,并将结果存人里程寄存器中。
当系统有启动/清除中断请求产生时,我们可以设定第一次中断为启动中断,第二次中断为清除中断,并在中断服务程序中将标志寄存器的内容相应置“1”或清“0”。其中,标志为“l”时表示本次中断是启动中断;为“0”时表示是清除中断。
图1.11 出租车计程计价系统主程序流程图
注意事项:
(1) 由于出租车需要有起始公里数和起价数据,因此在编程时,需将里程寄存器
14
和价格寄存器进行初始化赋值。
(2) 由于系统中的启动计程和清除计程两种中断是采用同一根中断请求线,因此在设计中断服务程序时,需要设计一个启动/清除标志寄存器来存放当前的中断状态,以便在主程序中根据中断类型的不同而进行不同的操作。
四、思考题
1.如果系统要求设计成白天和晚上(设为21点以后)具有不同的计费价格,系统硬件及软件的设计应如何改变?画出系统实现的硬件框图及软件流程图。
2.系统中的计程误差会由哪些因素引起?应如何提高计程计费的精确度? 3.如果要求出租车在遇到塞车或停车等待的情况下,也需要在一定的等时间内进行等待计时计费,那么,系统应如何进行设计?写出等待计时计费的算法。
1.4 交通信号灯实时控制系统设计
一、实验目的
现代城市交通日益拥挤,为保证交通安全,防止交通堵塞,使城市交通井然有序,交通信号灯在市交通管理中的作用越来越重要。通过本实验,旨在使学生掌握以下几点。
l.掌握交通信号灯实时控制系统的设计思路与实现方法。 2.掌握定时/计数器和并行接口在实时控制系统中的应用。
3.加深对定时/计数器和并行接口芯片的工作方式和编程方法的了解。 4.加深对中断机理及其应用方法的了解。
二、实验设备
l.80X86系列微机一台。 2.微机硬件实验平台。
3.定时/计数器和并行接口芯片。
4.按键开关1个,钮子开关3个及红、黄、绿发光二极管。
三、实验内容及步骤
本实验设计制作一个交通信号灯实时控制系统。交通图主程序流程如图1.12所示。要求如下。
15
(1) 在一个十字路口的一条主干道和一条支干道上分别装上一套红、黄、绿3种信号灯:用钮子开关模拟十字路口的车辆检测传感器信号。
(2) 在一般情况下,主干道上的绿灯常亮,而支干道总是红灯。
(3) 当检测到支干道上来车时(用按键开关模拟),主干道的绿灯转为黄灯,持续4S后,又变为红灯,同时支干道由红灯变为绿灯。
(4) 支干道绿灯亮后,或者检测到主干道上来了3辆(用3个钮子开关模拟),或者虽未来3辆车,但绿灯已经持续了25s,则支干道立即变为黄灯,4s后转为红灯,同时主干道由红灯变为绿灯。
实验步骤:
根据实验内容,在本实验系统中,微机需要检测4个开关送来的主、干道车辆到达信号,并按一定的条件发出主、支干道6个信号灯的控制信号。显然,用一片8255A完全可以满足上述要求。可对8255A各端口作如下安排。
令端口A工作于方式0的无条件数据输出方式,用以控制交通灯的亮灭;端口B工作于方式1的输入方式,并设置为允许中断;将端口C的PC2接到负脉冲源上,使得每按一下按钮表示支干道上有一辆车过来,而将PC0接到中断请求线L,使得当支干道上有车来时,由中断请求线向CPU发出中断,CPU响应中断后发出控制信号来控制主、支干道交通灯变换状态。端口C的高 4位用作输入口,从PC7、PC6、PCS接人3个钮子开关,当钮子开关为高电平时,表示主干道的车辆到来。
16
图1.12 交通图主程序流程图
有关定时计数的功能,可以采用8253计数/定时器结合中断服务程序计数的方法来实现。比如,可设想用8253来产生秒时钟信号,为此可以设置8253的定时器0工作于方式3(方波方式),定时器1工作于方式2(分频方式),并将定时器0的输出端接到定时器的时钟端。这样,就可以做到让定时器0每隔10ms向定时器1发出一个计数脉冲,而当定时器1计满100个数时,就向主机发出一次中断请求信号,于是就实现了每隔h发出一次中断请求的功能。然后在时钟中断服务程序中对秒信号作相应的计数。
综上所述,实验的支干道来车中断服务程序流程图如图1.13 所示,时钟中断服
17
务程序流程图从略。
注意事项:
(1)满足交通灯实验要求的设计方案有多种,即使选定了以8255和8253作为主要芯片后,也仍可设计出多种硬件实现方案。而硬件实现方案的任何差异,都将导致软件控制程序的不同。
(2)在实验中,如果自己设计单脉种源的产生电路,需要加入消抖电路来进行消抖处理(如果采用DLE-2型或CHI-A型微机硬件接口实验装置上的单脉冲源,则已经进行了消抖处理,可以直接使用)。
图1.13 中断服务程序流程图
四、思考题
l.如果要求支干道上有3辆车到来时,主干道才由绿灯转为黄灯,再变为红灯,
18
其他要求不变。那么,系统应如何设计?简述实现方法和思路,并画出设计电路框图和程序流程图。
2.如果要求在各交通灯变化的过程中,用数码管显示器显示出交通灯变化的间隔时间(采用倒计时),请问在本系统的基础上需要进行哪些修改?
第2章 智能仪器仪表系统设计实验
2.1 数字频率计设计
一、实验目的
数字频率计是用来对脉冲信号和正弦波信号等各种波形进行频率测量的仪器,它将测量的结果直接用十进制数显示出来。本实验通过设计一个由微机控制的数字频率计,旨在使学生能够做到以下几点。
1. 进一步掌握定时以数器的原理及应用方法。 2. 熟悉数字频率计的测量原理与实现方法。 3. 掌握微机化数字频率计的设计思路。
二、实验设备
1.80X86系列微机一台。 2.微机硬件实验平台。
3.定时/计数器、并行接口芯片。
4.基本TTL电路芯片若干。
三、实验内容及步骤
本实验设计并实现一个由微机控制的数字频率计。具体要求如下。 1.能测量1Hz~10MHZ频率范围的矩形和正弦波的频率或周期。 2.在全频率范围内测量误差≤0.1%。
3.以十进制数字显示出被测信号的频率或周期。 实验步骤:
19
根据频率的定义,要测量某一波形的频率,实际上就是要测出单位时间内波波形出现的个数。实现频率测量的原理框图如图2.1所示。
被测信号或直接(对矩形波)、或经放大整形后变成矩形波(对正弦波等非矩形波),通过一个称为闸门开关电路(通常为“与”门或者“与非”门)去计数器计数。闸门的开启时间由时基电路经门控电路控制。假定闸门开启时间为 T基,计数器计数值为N,则可得被测信号的频率为:f = N/T基。图中时基电路提供基准时钟脉冲信号,它是准确测量的基础;门控电路实质上是一个二分频器(单个触发器),用于将时基信号周期T变换为脉宽T,使闸门每次测量只开启时间T。
图2.1数字频率计原理图
如果将图2.1中的双刀双掷开关S由0拨到1,该图便由频率测量图变成了周期测量图,因为这时被测输入信号和时基信号交换了位置,使被测信号的周期变成了门控信号,而时基信号反而变成了通过闸门去让计数器计数的信号。显然,若计数结果为N,而已知时基信号周期为T基,则可知被测信号周期为
TN T基
我们知道,同一信号的频率和周期互为倒数。因此,本质上图6.l中的开关S无论打到0还是1位置,都既可测频率又可测周期。但无论哪种测法,计数器的计数结果都有±1个字的固定绝对误差,因此可以得出一个结论:闸门的开启时间内脉冲信号的通过个数越多,测量带来的相对误差就越小。换句话说,产生门控时间的脉冲周期与通过闸门去计数的脉冲周期相差越大,测量的精度就越高。因此,对于低频被测信号,采用周期测量法有较高的精度,而用频率测量法却误差较大;相反,对高频信号,则用频率测量法比用周期测量法得到的测量精度更高。如果要求频率
20
计工作在三个从低频到高频、甚至超高频的很宽的频率范围内,则可分成两大频率段,低频段采用周期测量法测周期、测频率,高频段采用频率测量法测频率、测周期。例如本实验任务要求被测信号频率范围为1Hz~10MHZ,可把1Hz~500kHz作为低频段处理,而把500kHZ~10MHz作为高频段处理。如果高、低频段的频域还很宽时,为了提高测量精度,可进一步将高、低频段细分为几个子频段,各个子频段采用不同的时基信号频率。子频段的频率越高,要求使用的时基频率越高;相反,于频段的频率越低要求使用的时基频率越低。至于各个子频段的时基频率究竟选多高,在采用周期测量法的低频段和采用频率测量法的高频段,选取原则不同:在低频段,应根据各子频段的上限频率和测量误差要求来选取其时基频率:在高频段,则应根据各个子频段的下限频率和测量误差要求来选取其时基频率。例如,本实验测量误差≤0.1%,当把低频段分为1Hz~100kHz和100kHz~500kHz两个子频段时,它们的时基频率应分别按100kHz和500kHz的1000倍以上来选取,即分别不低于100MHz和500MHz:而当把高频段分为500kHz~5MHz和5MHz~10MHz时,则它们的时基频率应分别按 500MHz和 5 MHz的1/1000以下来选取,即分别不高于 500Hz和 5kHz。
综上所述,可以得到综合了频率测量法周期测量法的最佳特性的数字频率计原理框图如图2.2所示。
图2.2 综合特性良好的数字频率计原理图
图中S1为一个三刀双掷开关,置于0时为高频档,按频率测量法测量高频信号:置于1时。为低频档,按周期法测量低频信号。S2和S3分别为高频和低频分档开关。S2置于0和1时,分别对应于500kHz~5MHz频段和5MHz~10MHz频段;S3置于0和1时,分别对应于1Hz~100kHz频段和100kHz~500 kHz频段。
至于对输人信号究竟是测频率还是测周期,则可通过再设置一个开关S4来由操
21
作员控制(如图2.2中所示),然后由系统根据S4状态对每次测量后的计量值进行不同的运算,即可得到频率或周期。
如果用微机来控制完成图2.2所示的频率计功能,其中的全部逻辑电路(放大整形和显示电路除外)均可由一个可编程定时时数器芯片和一个并行接口,外加必要的外围电路来实现。图2.3给出了相应的中闸门开启时间的长短,使得测量精度可以灵活选择。
图2.3 智能化数字频率计硬件原理图
图2.3中的并行接口主要实现4个功能:一是将测量结果送出去显示;二是发出计数器和定时器的同步控制信号,通过将一根输出端口线同时连接到计数器和定时器的门控端来实现两者的同时启动;三是输出开关转换控制信号,以实现频率测量法和周期测量法的选择,以及时基信号频率的选择;四是输入频率/周期测量转换开关的状态,以实现测频率和测周期的选择。
对图2.3中的两个定时/计数器通道也可以不按上述设置,而改作另一种安排:令它们都工作于计数器方式,一个对时信号计数,一个对被测信号计数。这时,取消 OUT1和 IRQn的中断请求连线,但两个计数器仍受同一门控信号控制。这样,设时基信号周期和计数值分别为T基和N基,被测信号周期和计数值分别为T信和N
信
,则有T基N基 = T信和N信,即被测信号周期、频率分别为:
22
T信 =(T基N基)/ N信 F信 = 1/ T信
只要计数时间相对于被计数的两个信号的周期都足够长,就可保证必要的测量精度。
按照这种安排方案,图2.3中的时基信号既可以如图中实线所示,由晶振和外部分频电路组成时基电路来产生,也可以采用图中虚线表示的电路来产生时基信号,只需编程设计该计数器通道的计数初值即可。
显然,上述两种安排方案对软件的设计要求是不同的。假若采用第一种方案,则实验系统的软件应从主程序和中断服务程序这两部分来考虑设计,具体实现可参考图2.4和图2.5所示的流程图。
图2.4 智能化频率计主程序流程图 图2.5 智能化频率计中断服务程序流程图
注意事项:
(1)由于计数器通道是从初值开始作减1计数的,所以当读取计数完成的计数器值后,应将计数初值减去计数终值才是真正的计数值。中断服务程序流程图中的“对计数器内容求反”就是与主程序中将计数器初值设为FFFFH相对应的。如果设置别的计数初值,则这里也要作相应改变。
23
(2)为了读计数器内容,一定要先发读回命令或锁存命令。
四、思考题
1.系统中被测信号的频率范围与时基信号的频率之间应有什么关系?频率测量法和周期测量法对时基频率有什么不同的要求?
2.如果要设计频率超出测量范围的故障报警,硬件和软件设计上要作哪些考虑?
3.若要为频率计增加自校和量程自动转换的功能,应如何考虑?
2.2 多功能波形发生器设计
一、实验目的
多功能波形发生器是科学实验研究中常用的电子仪器之一。本实验通过设计一个由微机控制的多功能波形信号发生器,旨在使学生能够做到以下几点。 1.熟悉几种典型波形产生的原理。
2.进一步掌握A/D转换电路在智能化仪表装置中的应用。
3.了解由微机控制的多功能波形发生器的设计思路与实现方法。
二、实验设备
1.80X86系列微机一台。 2.微机硬件实验平台。 3.示波器一台。
4.定时/计数器和DAC接口芯片。
5.基本TTL电路芯片。
三、实验内容及步骤
本实验设计一个由微机控制的多功能波形发生器。具体要求如下。
1.该发生器能在操作人员控制下输出正弦波、方波、三角波或锯齿波波形。 2.这些波形的极性、周期和占空比(对矩形波而言)等可由操作人员设置和修改。通过示波器显示、检验产生的波形。 实验步骤:
24
任何一个随时间连接变化的波形都可以分解为许多离散的数据点,每周期中数据点的个数取决于周期的长短和数据点间时间间隔的大小,而各点数据的幅值则与连续波形的变化规律相同,也随时间的变化而变化。
因此,要实现各种波形的输出,可以利用一个定时/计数器,控制微机系统周期性地定时输出一些随时间迁移而有规律变化的数据,这些数据的变化规律与要求的输出波形相一致。这样,就可以得到需要的输出波形了。输出波形的曲线光滑程度取决于每个周期中数据点的多少,或者说数据点间时间间隔的长短。数据点越多,时间隔越短,输出的曲线将越光滑。
要想看到产生的波形,必须将微机输出的二进制数据变换为模拟电压或电流信号送往示波器。为此需要采用D/A转换器。D/A转换器的位数取决于所需的精度和分辨率。位数越多一个周期中的数据点数就可越多,波形自然就越光滑、越难确。建议本实验中采用12位DAC1210作为D/A转换器。
为了按实验任务要求产生几种不同的波形,特作如下几点提示。
(1)可预先在内存数据内中建立各种波形的一个周期输出数据表。然后,每来一次定时中断信号或每延时一定时间,循环地依次从表中取一个数据输出,便可得到相应的波形。
(2)对于方波、锯齿波和三角波等脉冲波形的产生,也可不预先建立输出数据表,而直接根据波形特点,依次将每点输出数据加/减一数或在上、下限值上交替变化来实现。
(3)数据点输出的间隔可以采用定时/计数器硬件控制,也可采用软件延时控制,前者控制精度较高,后者实现简单。通过改变输出间隔即可达到改变波形周期的目的。
(4)为了改变波形幅度,可采用预置和修改上、下限幅值的方法来实现,如12位DAC满量程输出为10V,要求输出幅度在2V~8V范围内变化,则每一步(数据每变化1)的电压值为l0V/4096≈0.002V,上、下限数据分别为8V/0.2V=4000=0FA0H和2V/0.002V=1000=3E8H。可见,改变上、下限值输出的延时时间,可改变矩形波的占空比。
综上所述,假设还是采用定时器硬件定时和建立输出数据表的方案来实现本实验任务,则可得到本实验的硬件结构示意图如图2.6所示。
25
图2.6 智能化多功能波形发生器硬件结构示意程图
关于实验系统软件,在主程序中,需要完成定对定时/计数器的工作方式和初值的初始化设定,以及对不同波形数据表格的选取等功能。当周期表格数据结束时,需将指针重新指向表格起始地址。在中断服务程序中,需要完成从数据表格中取数据并送达D/A转换器的功能,同时需要将数据表格的指针增加 1。主程序和中断服务程序的参考流程图如图2.7和图2.8所示。
图2.7 智能化多功能波形发生器主程序流程图 图2.8 定时中断服务程序流程图
26
注意事项:
(l)在实验中,需要对波形数据表格进行读数,并需要判断表格是否结束。因此在软件编程过程中,应该对表格的长度进行计算并设置,或在表格的末尾加上一个结束,以便于系统作出判断。
(2)如果选用的D/A转换器是不带输出缓存的DAC,硬件上必须为它再提供一个数据输人锁存器。
四、思考题
1.本实验采用设计波形数据表格的方法先对波形数据进行存储,然后再用定时/计数器控制对数据定时的输出。在这种方式下,显示波形的平滑程序取决于哪些因素?为什么?
2.要产生正弦波等非脉冲波,如果不采用预先建立输出数据表的方法,还有没有其他方法?
2.3 常用TTL集成电路检测仪设计
一、实验目的
在各种计算机应用系统中,TTL集成电路芯片是常用的一类芯片,而集成电路芯片的好坏常用TTL集成电路测试来检验。本实验通过设计一个用微机控制的集成电路测试系统,旨在使学生能够做到以下几点:
l.初步了解用微机对不同功能集成电路进行测试的原理和方法。 2.进一步了解并行接口在智能化仪表设备中的应用。
3.初步掌握智能化集成电路测试仪的设计思路与实现方法。
二、实验设备
1.80X86系列微机一台。 2.微机硬件实验平台。 3.并行接口芯片。
4.基本TTL集成电路芯片。
三、实验内容及步骤
27
本实验设计一个以微机为控制核心的TTL集成电路测试系统,要求系统能实现对基本TTL集成电路芯片的测试功能(如测试74LS00、74LS02、74LS08、74LS32、74LS393等器件),并用发光二极管显示出来,若芯片功能正常,则绿色发光二极管亮;若功能错误,则红色发光二极管亮。
实验步骤:
对于所有的集成电路芯片,它们都具有一定的输人、输出逻辑关系。可以鉴于这些固定的逻辑关系来设计对它们的测试。其测试原理是:在某一被测芯片的输入端加入不同组合或不同顺序的逻辑电平,根据芯片的输入、输出逻辑关系功能表,测试其输出结果是否正确。
根据以上测试原理,在本实验的软件设计中,首先应当根据各被测芯片的逻辑功能,在内存中建立一个反映正确的输入、输出关系的功能表(对组合电路是真值表,对时序电路是状态转换表)。例如对于74LS00芯片,其功能表(即真值表)如
表2.l所示。
图2.9 集成电路测试硬件结构图
有了表2.l所示的功能表,就可以通过接口电路在测试芯片的输入端依次加人输入码,并采集其输出与标准输出码进行比较,如果比较全部一致,表示芯片工作正常;而如果比较不完全相同,则表示芯片有故障。
显然,为了实现上述测试功能,硬件上至少要设置两个并行输出口和一个并行输入口,其中一个输出口和一个输入口分别用于输出测试码和输人测试码响应码,另一个输出口用于驱动正常/不正常LED指示灯。与芯片直接相连的输出口、输入口的位数要根据被测芯片的输人(包括控制输入)和输出引脚数目来确定。设计时应按照被测芯片集中引脚数最多的芯片来确定位数。
图2.9给出了本实验的硬件结构示意图。实验的软件流程图可以参见图2.10。
28
图2.10 集成电路测试程序流程图
注意事项:
(1)当需要测量一些带控制输人端(如时钟、片选、使能端等)的芯片时,应在给被测芯片加入控制信号之前,先加入输入码。否则,会造成测量错误。
(2)一般的TTL集成电路芯片内都具有两个或两个以上的逻辑门电路(例如74LS00芯片中具有4个与非门),因此在对它们同时进行测试时应该记录每一个(每一组)输人信号与各输出信号对应的位置,这样,当遇到错误时就可以马上判断出是哪一个门工作不正常,并给出错误指示。
(3)对于时序逻辑芯片的测试,要先控制它进入一个初态,然后再按状态转换顺序,依次向它送入时钟脉冲进行状态测试。有的芯片还要测试其强制复位/置位功能和控制端的有效/无效特性等。
四、思考题
29
1.如果要对并行接口芯片8255和定时/计数器芯片8253的性能进行测试,测试系统应如何设计?说明设计思路。
2.如果被测集成电路芯片的型号未知,要求测试系统能检测出该芯片的型号。该系统的软、硬件结构应如何设计?给出设计思路。
2.4 抢答器设计
一、实验目的
在现代生活的许多智力竞赛和娱乐节目中,经常需要应用竞赛抢答器来供多人或多组对一些题目进行抢答。本实验通过设计一个微机控制的竞赛抢答系统,旨在使学生能做到以下几点:
1.了解微机控制的竞赛抢答器的设计原理和方法。
2.进一步掌握定时/计数器、并行接口芯片和中断控制器的工作原理与使用方法。
3.进一步加深对中断机理的认识。
二、实验设备
l.80X86系列微机一台。 2.微机硬件实验平台。
3.定时/计数器、并行接口芯片。 4.基本TTL集成电路芯片。
三、实验内容及步骤
本实验设计并实现一个用微机控制的智力竞赛抢答器。具体要求如下。 1.可供8组同时抢答,由按钮控制。
2.能显示出最先抢答的组号,而对其他组的抢答不予理睬。 3.对主持人未曾按启动钮之前就按抢答钮的犯规组,亮红灯警告。 4.对抢答后的回答时间进行计时控制,如回答超时,则以音响报警。 实验步骤:
本实验的关键是准确判断出最先抢答者的信号并锁存,而同时不理睬其他抢答者的信号。为此,可将8个抢答按钮信号通过一个8位并行输入口接至微机中。当
30
主持人启动抢答器后,微机通过该并行输入口循环对8路抢答信号进行采样。当采样到哪一组的抢答信号已经发出,则立即停止采样,并记录下该抢答组的组号。每路抢答按钮电路可以参考图2.11 进行设计。
从图2.11可知,当8组均未能按下抢答按钮时,送入到并行接口的吕位抢答状态数据都为0。而当微机采样到这8位数据不为0时,则表示有一组获得了抢答的机会。然后通过逐位查询各位口状态,即可判断出是哪一组抢答成功。最后利用并行输出接口将抢答成功的组号显示出来。在本实验中,可以仅用一位7段数码管来显示抢答选手的组号。
为了对抢答后的回答时间进行计时控制,可以利用一个可编程定时/计数器,先置计数初值,再计时,当计时时间到后,由并行接口输出一个响铃信号提示抢答选手的回答时间己到。
由于本系统要求对抢答犯规的组亮红灯警告,所以要设置一个启动按键,在主持人按下启动按键之前,如果有抢答钮被按下,则该抢答选手犯规,可以通过并行接口输出一个信号使该组的红色发光二极管点亮以示意该组选手犯规。在设计中可以采用中断的方式输人启动按键的状态,为此可以将启动按键信号直接接到微机的某根中断请求线上。
综上所述,本实验的硬件电路可参考图2.12所示的硬件结构示意图进行设计。 实验的软件设计可分为主程序、启动中断服务程序和定时中断服务程序三部分。 启动中断服务程序完成的任务较单一,只需要对启动标志进行记录。例如可以
31
在主程序中设置一个启动标志并清0,当启动按钮被按下后,系统进人中断服务程序。这时,只需要在中断服务程序中将启动标志置1即可,系统在返回主程序后将查询该标志,以确定抢答是否开始。
在主程序中,当判断有抢答钮被按下时,需要判断启动标志是否为1,如果系统还没有启动,则抢答结果为无效,且判该抢答组犯规。此时,将通过并行接口送出点亮该组红色发光二极管的信号,提示有犯规行为。另外在主程序中,还要对抢答回答时间进行初始化赋值,当回答开始后,如果回答超时,则要通过并行接口送出响铃报警信息,以提示超时。
在定时中断服务程序中,主要是完成对回答问题时间的计时操作时间计数器,当定时器每发一次定是中断时,时间计数器加1。关于对本实验的主程序和启动中断服务程序的设计可参见图2.13和图2.14。关于定时中断服务程序的流程图在本书的前面已经有较详细的介绍,这里不再重述。
注意事项:
(1)在主程序设计时,需要设计一个回答问题的计时标志,当抢答有效时,就将计时标志置回。这样,在定时中断服务程序中,应该首先判断计时标志,当计时标志为1时,方开始计时:否则直接中断返回。
(2)在本系统的程序设计中,每次回答问题并需要继续进行抢答时,应该将所有的标志和定时器、计数器等进行重新初始化:否则系统将不能正常工作。
32
图2.14 抢答器主程序流程图
四、思考题
1.如果系统还要求为每组设置一个记分及显示电路,开始时均预置100分,抢答后由主持人记分,答对一次加10分,否则减10分。系统的软、硬件设计应如何考虑?
2.在本实验系统中,使用软件对并行接口的抢答按钮信号进行采样,试分析该方式与中断方式控制操作的优缺点。
3.如果考虑到有几个组同时按报答钮的可能性,在设计时应采取什么措施?
33
第3章 家用电器控制系统设计实验
3.1 空调机控制系统设计
一、实验目的
随着人们生活水平的提高,空调机尤其是分体式空调机已经进入到千家万户,而空调机的运行无疑与空调控制系统是分不开的。本实验通过设计一个微机控制的空调器控制系统,使学生能够做到以下几点。 1.了解空调机的工作原理及控制系统的组成。
2.掌握利用微机空调器控制系统的设计思路与实现方法。 3.初步了解红外遥控器的原理与结构。
4.熟悉微机接口芯片在家用电器中的应用。
二、实验设备
1.80X86系列微机一台。 2.微机硬件实验平台。
3.A/D转换器、定时/计数器、并行接口等微机接口芯片。
4.基本TTL电路芯片以及晶体管、电阻、电容等。
三、实验内容及步骤
本实验设计一个分体式空调机的微机控制系统。要求完成以下基本控制功能。 1.制冷与制热状态的恒温自动控制。 2.用户的温度设定和定时时间的设定。 3.送风控制。 4.自动去湿控制。
5.定时、开、关机的控制。 6.三分钟延时启动的保护。
7.当前环境的温、湿度以及设定温度的发光二极管显示功能。 实验步骤:
34
要完成一个微型控制的分体式空调器控制系统的设计,主要应考虑三大部分的设计,即:参数/命令输入电路部分、微机及接口部分和输出控制电路部分。其中,参数/命令输出电路部分主要包括:温湿度传感及调理电路、有线或无线键盘遥控电路以及各种保护传感电路等。微机及接口部分主要包括:用于采集各种参数、命令、状态的模拟、数字输入通道和用于控制各种执行机构的数字/开关量输出通道。其中微机作为整个系统的主控部件,通过软件编程,除了完成I/O操作控制外,还要完成对采集数据的比较/判别、计时、运算等处理操作。输出控制电路部分主要包括:压缩机、风扇电机的控制电路,四通换向阀和辅助加热器等的切换电路以及对各种参数状态的显示电路等。
图3.1给出了微机化分体式空调控制系统的功能结构示意图,下面对组成空调器控制系统的三大部分的设计作一些简要提示。
1.输入电路的设计
这部分电路的设计主要完成对室内温度、湿度,室外温度参数和结霜过载保护等状态的传感电路的设计,以及键盘红外遥控器的设计。这里主要对键盘红外遥控器的设计和结构予以说明。
红外遥控器可以选用KS5803B红外线发射器、CX20106A红外线接收器以及KADA8801微处理器来组成。
KS5803B红外线发射器具有22个功能键,均可用来作为空调机的各种功能控制键。KS5803B的数据发射器采用了16位数字PPM编码方式,即每一个要发送的数据前面需要加入引导码和16位设备码,然后才是要发送的16位数据编码,且该数据编码需要分两次发送出去,以供接收器进行正、反码的比较和检验。所以,这种遥控器具有很强的抗环境光干扰的能力。
当KS5803B红外线发出去的红外线信号由红外线接收器CX20106A接收后,经
35
过整形和放大送到8801微机处理器的RETIN输人端,微处理器对接收到脉冲序列进行解码和检验等处理。当检验的结果为正常键值信号时,8801就将处理后的数据通过其8位并行输出口送到主控微机中去。
2.微机主控部分的设计
在该部分的设计中,主要完成对红外遥控器的键盘数据和各种参数、状态传感器数据的采集和处理操作。其中,对于红外线数据采集电路的设计可以通过可编程序或不可编程的并行接口与8801并行输出口相连来实现:而对于各温湿度传感器的数据采集可以通过A/D转换器(如ADC0809等)来完成。关于对各种采集数据的判断、比较和处理操作,必须通过编写软件来完成。最后,微机将根据这些处理后的数据发出各种操作命令,经并行接口送到输出控制电路上去,以启动关闭各种相应设备。
3.输出控制电路的设计
根据微机发出的各种操作命令对空调机的压缩机、风扇电机、四通换向阀和主助加热器等执行部件进行开/关控制;同时,将微机采集处理后的温湿度数据和有关设置参数、状态在数码管上显示出来。
除了以上各部分电路外,还需要设计一个定时器电路,来为系统提供实时时钟和完成对各种定时、延时操作的控制。
综上所述,可以得到本实验系统的硬件结构示意图如图3.2所示。
基于以上的硬件设计,空调机控制系统的软件可以由以下几部分组成。
36
1.主程序
在主程序中首先需要完成对整个系统的初始化,包括对定时器、并行接口、堆栈指针、各种寄存器和各种标志的初始化和赋值操作:然后需要进行中断和识别有无遥控按键命令等操作;最后需要完成对定时时间的比较并对各时间状态标志进行置位操作。在这里,可以设计一个时间状态的标志,如定时时间到后,将其状态标志置1,并转去执行时间控制于程序,在时间控制于程序中将对空调机进行启动。本系统的主程序流程图可参见图3.3。
图3.3 空调机控制系统主程序流程图
2.按键命令处理子程序
这部分程序的设计是用来完成对键值进行分析判别的功能。程序将根据采样到的遥控按键的键值判断出下一步应该进行的操作,然后转去执行相应的操作控制子程序,以完成具体的操作功能.该子程序的流程图如图3.4所示。
3.定时中断服务程序
在系统中可以利用定时器定时向微机发出中断请求信号,微机收到请求后将进入定时中断服务程序。在中断服务程序中,主要完成对各软件时间计数操作,即完
37
成计时功能。
4.各种功能控制子程序
空调机控制系统的功能于程序包括:温湿度数据采集与处理子程序、去湿控制子程序、风扇控制于程序、制冷控制于程序、睡眠控制子程序、时间控制子程序、延时子程序和显示子程序等。这些功能控制子程序的作用是驱动相应的硬件设备,与各种硬件设备进行指令或数据的交换。
图3.4 空调机控制系统按键命令处理子程序流程图
注意事项:
在进行系统设计时应注意:当空调机停机以后,应该使定时器系统继续工作,如果遇到关机又马上启动的情况,应利用时间控制程序使得压缩机在3分钟以后方可启动。
四、思考题
l.如果要为系统增加欠压/过压保护功能,硬件、软件上应如何考虑?
38
2.如果要求送风量按设定温度与室内温度的差值大小而自动分三档控制:差值2℃之内低速档送风:差值2℃~5℃之间中速档进风:差值5℃以上高速档风。硬件、软件设计应作何修改?请说明设计思路。
3.如果要求增加睡眠工作方式:用户睡前设定温度并启动睡眠控制方式后,风机即开始低速运转,制冷/制热运行一小时后设定温度自动增/减1℃,2小时后再增/减1℃,以后维持不变直到用户睡醒后进行新的工作方式选择或新的温度设置或关机,请问如何实现?说明设计思路。
3.2 洗衣机控制系统设计
一、实验目的
近几年来,洗衣机尤其是全自动洗衣机已经成了人们日常生活中不可缺少的好帮手。全自动洗衣机为人们的生活提供了极大的方便。虽然目前市场上的洗衣机种类很多,但它的控制器部分的原理比较相似。本实验旨在通过设计一个微机控制的洗衣机控制系统,使学生能够做到以下几点。 l.了解洗衣机的工作原理及控制系统的组成。 2.掌握微机洗衣控制系统的设计思路与实现方法。 3.初步了解水位传感器和电机驱动的原理与结构。
4.熟悉微机接口芯片在家用电器中的应用。
二、实验设备
1.80X86系列微机一台。 2.微机硬件实验平台。
3.A/D转换器、定时/计数器、并行接口等微机接口芯片。
4.基本TTL电路芯片以及晶体管、电阻、电容等。
三、实验内容及步骤
本实验设计并建立一个由微机控制的洗衣机控制系统。要求完成以下基本控制功能。
1.给水和排水的自动控制。 2.用户定时时间的设定。
39
3.电机的正反转。
4.各种定时和故障报警电路。 5.定时开、关机的控制。 6.三分钟延时启动的保护。 7.具有键盘。 实验步骤:
一般洗衣机的主要控制功能是靠时间的定时操作来完成的,并且需要利用键盘来控制程序的执行,利用传感器来测量水位等。因此,对于电机的开/关和正/反转时间控制以及对于进排水阀门的开关时间控制,都可以利用定时操作程序来控制完成。 本系统硬件上主要由以下几部分组成:定时控制电路、洗衣机功能控制电路和数据采集电路。其中主要包括以下电路。
定时控制电路:可以采用定时时数器芯片来实现。该电路定时向系统发出中断请求信号。
功能控制电路:可以采用并行输出接口加驱动器来实现。根据执行机构的不同性质,有的需要通过D/A转换器(甚至变频调速器)去驱动,有的则可直接通过驱动电路去驱动。以电机、电磁阀为控制对象的输出通道,其驱动器最好应用继电器或光耦器加可控硅来实现,而声音报警器则只需用一个音频“功放”来驱动。另外,对于洗衣机功能控制所需的初始化数据,也可以通过将键盘连接到一个并行接口上来获得。
数据采集电路:主要是由水位传感器和A/D转换器组成,目的是获得水位信息,以控制进水排水过程的结束。在洗衣机中,水位的传感器检测一般是由水位的变化通过传动机构带动沿线水阀电位器改变采样电压的大小来实现的。此外,数据采集电路中还包括一些故障(如欠压/过压、排水阀、进水阀、电机过载和甩干不平衡等)敏感电路,它们共享一根中断请求线,出现任一故障时,发出中断请求信号,在中断服务程序中启动报警。
综上所述,本实验系统的硬件结构示意图如图3.5所示。
40
图3.5洗衣机控制系统硬件电路示意图
在电机控制电路中,由于电机有正转和反转两种操作,所以设计时可以采用两个继电器来进行驱动控制,如图3.6所示(电路中的G1和G2表示两个继电器)。
图3.6洗衣机正反转的驱动电路图
在设计洗衣机控制系统的软件时,首先需要设置一些用于记录各种时间的软件计数寄存器和记录各种状态的标志,系统将根据这些寄存器和标志的内容判断出洗衣机的下一步工作状态和整个工作流程。整个洗衣机控制系统的软件可由主程序、定时中断服务程序、A/D转换结束中断服务程序和故障中断服务程序中需要完成对各种计时寄存器的累加计时操作等。可以设计中断源(定时/计数器)每隔100ms发出一次中断请求。
在A/D转换结束中断服务程序中,需要读入A/D转换结果。并换算为水位,与设定的进水/排水位相比较,以决定是否关闭进水/排水阀门。
在故障中断服务程序中,需要完成对报警标志置位的功能。当系统遇到电机、
41
电磁阀过载波、甩干不平衡或电压异常等情况时,将通过故障传感电路向微机发出中断请求,使微机进人故障中断服务程序,半报警标志置位,以便主程序在检测状态时启动报警装置。
以上各中断服务程序的功能较单一,控制流程自行设计,这里仅给出主程序的流程图如图3.7所示,供设计时参考。
注意事项:
在设计洗衣机控制系统时应当设置一个暂停键,当它第一次按下时,洗衣机暂停工作;待再次按下时,又从暂停车处开始继续原来的工作。为此,宜将该键与系统的一根中断信号线相连,当按键第一次按下时,中断服务程序中要完成对所有现场和断点的保护;而当它第二次按下时,中断服务程序中应将所有现场和断点予以恢复。
四、思考题
1.如何在洗衣机上实现用水量的统计?并设计电路原理图。
2.如果要求甩干时比清洗时电机以更快的速度转动,应如何修改系统设计?
3.实际中如何检测电机、电磁间是否过载,甩干时是否不平衡,以及电压是否欠压/过压?这些故障信号接在同一中断请求线上,如何区别是什么故障?
42
图3.7 洗衣机控制器的主程序流程图
43
3.3 多功能电话服务系统设计
一、实验目的
在通信业十分发达的今天,对电话服务的要求也越来越高,电话的使用已经不单单是用于通话,而往往还需要多种其他功能的服务。通过本实验旨在使学生能够做到以下几点。
1.了解智能电话服务系统的各种功能及其工作原理方法。 2.掌握利用微机多功能电话服务系统的设计思路。
3.熟悉微机硬件技术在家电行业中的广泛应用。
二、实验设备
l.80X86系列微机一台。 2.微机硬件实验平台。
3.自动拨号芯片/模拟语音芯片、键盘/显示芯片和A/D转换器芯片。 4.遥控发送和接收装置。
5.烟雾传感器、气体探测器、光电应器、按键开关和电话线路等。
6.基本TTL集成电路芯片。
三、实验内容及步骤
本实验设计一个由微机控制的多功能电话服务控制系统。要求该系统除可以完成电话留言和远程利用屋内电话进行家用电器遥控的功能外,还可以进行以下情况的自动报警。
1.盗窃报警:当检测到有人进入室内,但在一定的时间内没有取消报警时,将自动拨通主人的电话、寻呼机或事先设置好的各用电话号码。
2.火灾报警:通过安装在室内各处的火警传感器探头,当检测到有火情时,报警装置将自动拨通主人的电话或寻呼机,并自动拨打基础119火警电话,给出火灾的发生地点;然后可以继续拨打其他相关人员的电话。
3.煤气报警:当安放在厨房及房间各处的传感器检测到有煤气泄漏时,将立即拨打主人和相关人员的电话,以便进行处理。
4.急救报警:在有病人的家庭中(如高血压、心脏病等)可以在床头或容易触摸到的地方安装一个报警按钮,系统将自动拨打家属的电话和医院急救电话。
44
实验步骤:
要实现满足本实验任务要求的多功能电话服务系统,需要对以下几种电路进行设计。
l.电话接收控制与自动拨号电路
该电路主要用于完成对电话信号的自动收发控制。其核心是设计一个DTMF数据收发和信号音量判断模块,以完成对DTMF数据的发送或接收、对信号音量的接收和带滤等功能。例如可以使用MT8880、MT8888等芯片来作为该模块的核心芯片。另外,由于系统是通过电话线来连接的,因此还需要设计一个摘、挂机的控制电路,通过它将电话信号进行极性变换、光电隔离和放大,最后耦合到DTMF数据收发和信号音判断电路中去。
在设计电话接收控制这部分电路时,需要设计一个振铃判断电路模块,用来实现对电话振铃信号的产生、接收、判断和处理等功能。有关这部分电路的设计,可以采用如LS1240之类的振铃信号产生器芯片来接收电话线上传送来的50Hz振铃信号,控制输出信号的频率和转换速率(借助外部元件),产生频率可控的双音频振铃信号以及对交流振铃信号进行桥式整流等;而采用诸如4017这样的八进制计数/分配器芯片来实现对振铃信号的判断和计数。 2.语音处理电路
该部分电路的主要功能是将语音信号经过模/数(A/D)转换以后存于存储器中.当需要放音时再从存储器中将语音数据取出,经D/A转换后送到放大电路中进行放大输出。为简化硬件电路,可用一片语音芯片来完成这些功能。目前常用的语音处理芯片有数字语音芯片(如TC883lF等)和模拟语音芯片(如ISD3000系列和ISD4000系列等)两种。一般只要选好的语音处理芯片与微机进行直接连接即可完成语音的存储和播放等功能。 3.键盘与显示电路
键盘与显示电路的设计在以前的实验中已经介绍过了,它可以利用键盘与显示接口芯片(如8279)或并行接口芯片(如8255)来实现键盘和数码管的扫描识别和显示功能。
4.警情传感器采集电路
由于要完成盗窃、火灾、医疗急救和煤气泄漏等警情的自动报警,因此,实验
45
中需要设计一个对各种警情传感数据进行巡回采集的电路。一旦判明有某种警情发生,则利用自动拨号等电路进行相应的电话报警。
实现这部分电路的关键是选用合适的传感器。对于盗窃报警,可以采用光电感应器或红外线探测器等来完成检测功能;对于火灾和煤气报警,可以通过检测温度(或烟雾)和煤气的浓度等来发现险情,急救报警信号则很简单,只需用一个按钮来发出。该报警信号平时并不需要不停顿地检测,但一旦发出请求应及时响应,所以考虑将它直接到微机的某根中断请求线上,在对应中断服务程序中对急救信号作出响应。 5.遥控电路
遥控电路的设计主要是为了完成远程利用电话来对家用电器进行开关控制的功能。这部分电路可以采用红外遥控的方式来实现。在实现过程中,需要在系统中装人红外或无线发射器,并将被控设备的开关连接到红外或无线接收器上,这样即可完成对家用电器开关的电话遥控功能。
综上所述,关于多功能电话服务系统的硬件设计,可以参考图7.8所示的硬件结构示意图进行。
多功能电话服务系统的软件可由以下三大模块组成:主程序模块、中断服务程序模块和功能子程序模块。 1.主程序模块
在该模块中,主要完成各种初始化设置和对各种报警信号的采集、处理和判断
46
并根据判断结果对相应执行机构发出操作控制信号等功能。 2.中断服务程序模块
该模块包括急救报警和A/D转换结束两个中断服务程序。在急救报警中断服务程序中,主要就是做一件事:将急救报警标志置l。为此,在主程序中应相应设置一个急救报警标志,并将该标志清0。这样,当系统在主程序中查询到该标志为1时,便通过自动拨号电话向外发出报警信息。
在A/D转换结束中断服务程序中,需要将A/D转换结果与正常数据进行比较,如果比较值超出规定范围,就表示有险情发生,需要将相应的报警标志置位,以便主程序查询判明后引发相应报警。 3.功能子程序模块
当主程序对各种状态标志和各种寄存器进行处理和比较后,便可得到一个判断结果,并根据判断结果调用相应的功能于程序模块。这些功能子程序模块主要包括:留言存储处理子程序;放音子程序;键盘扫描及识别子程序:设置保存子程序:查询摘机信号子程序;查询挂机信号子程序等。图7.9给出了本系统的主程序流程图。有关中断服务程序和各功能子程序的流程图请实验者自行设计编写。 注意事项:
1.在进行系统设计时,考虑到可能有一些外界干扰因素会对防盗检测和各种烟雾、煤气检测装置产生影响,为了尽量避免误报警,应为同一种警情/险情(特点是盗窃警情)设置多个检测点,当几个检测点都检测到相应情况发生时,系统才发出报警信息。
2.在实际的密码设置过程中,为了安全起见,应该在设置之前先查询密码寄存器是否有非0数据(即查询原来是否已有密码),如果当前不是第一次设置密码,需要用户先输人原来密码,然后再对原密码进行修改。
四、思考题
1.为了遥控启、停家电设备,利用红外遥控方式和无线遥控方式在电路设计上有何不同?各有何优缺点?画出两种遥控方式的硬件电路图。
2.为使用户在万一忘记原设定的控制密码时仍有办法进入系统,系统的软件应如何设计?
3.能否再增加一些模块,实现向手机发送短信?
47
4.能否在增加 GPRS模块,实现家庭的远程无线监控系统?
48
3.4 智能电子钟设计
一、实验目的
以微机为控制核心的智能电子钟以时间准、功能强、外形美而越来越受到人们的青睐。本实验通过设计一个智能电子钟,旨在使学生能够做到以下几点。
l.了解智能电子钟的功能特点与工作原理。
2.掌握以微机为核心实现电子钟功能的思路和方法。
3.进一步掌握多位数码管显示的原理和接口方法。
二、实验设备
1.80X86系列微机一台。 2.微机硬件实验平台。
3.定时/计数器、并行接口和键盘/显示接口芯片。 4.键盘、数码管、响铃器和固态继电器等。
5.基本TTL集成电路芯片。
三、实验内容及步骤
本实验设计一个由微机控制的智能电子钟。要求它有以下功能。 l.能够按照主人的作息时间表定时响铃。
2.能够按照主人提供的定时时间表,以遥控方式定时打开或关闭音响、电视和其他家电的设备。
3.动态显示实时时钟的时、分、秒数据。 实验步骤:
要完成本实验任务要求的功能,可以将系统分为以下几个部分来设计:定时器/计数器电路、时间及功能设置电路、时间显示电路、对被控对象进行遥控操作的电路以及响铃报警电路等。其中,定时器/计数器电路是整个电子钟设计的基础。一般都是用定时/计数器来产生定时中断信号(例如定时时间间隔为1/100s),然后通过软件计数器来相继获得实时时钟的秒、分、时等时间值。
要设计功能和作息时间表、家电控制定时时间表的设置电路(即键盘扫描识别电路)和时钟显示电路(即数码管动态扫描显示电路)可以采用可编程/不可编程并行接口芯片或专用键盘/显示器接口芯片来实现。
49
对进行遥控操作的电路以及响铃报警电路的设计,可以利用并行输出接外加驱动电路来实现。其中实现家电设备遥控的驱动电路,主要可由遥控收发器和固有态继电器组成;而响铃报警驱动电路则只需用一个功率放大器即可。
由上所述可见,本实验系统的硬件结构示意图如图3.10所示。
图3.10 智能化电子钟的硬件结构图
实现智能化电子钟的软件主要由主程序和中断服务程序两模块组成。
在主程序中,除了完成对系统的初始化和中断向量的设置外,需要对各种软件时间计数器进行查询、比较和判断,并根据判断结果发出各种控制信号,以完成对各种家电设备的控制操作和对实时钟的显示操作。
图3.11给出了主程序模块的功能流程图,其中许多具体功能块在前面实验中都说明过。
在定时中断服务程序中,需要设计1/100s计数器,秒个位、秒十位计数器,分个位、分十位计数器,时个位、时十位计数器以及由键盘设置的各定时时间计数器和各作息时间计数器等等,并对各计数器酌情作加1计数。然后,由主程序来完成对各种计数器内容的查询。 注意事项:
向定时器通道写计数初值时,无论以二进制还是十进制形式写人,如果其值超过255,需分两次分别写入计数器的高、低字节,否则只需写一次。究竟写一次还是两次,要在写初值之前通过写控制字来设置。
四、思考题
50
1.如果系统中需要加入闹钟的功能,由键盘设定闹钟的功能和设定闹钟响铃时间,并要求由按钮关闭响铃。试画出系统实现的电路框图和软件流程图。
2.请在本实验的基础上设计一种带有标准RS-232或USB接口的智能化电子钟。
图3.11 智能化电子钟的主程序流程图
51
因篇幅问题不能全部显示,请点此查看更多更全内容