微机原理设计实验教程.docx
《微机原理设计实验教程.docx》由会员分享,可在线阅读,更多相关《微机原理设计实验教程.docx(59页珍藏版)》请在冰豆网上搜索。
微机原理设计实验教程
第1章实时控制系统设计
1.1微机测控系统设计
一、实验目的
1.了解实时控制系统的构成。
2.学会较复杂的实时系统的设计。
二、实验设备
微机一台、实验用的传感器和集成电路以及导线若干。
三.实验内容及步骤
实验要求设计一个微机测控系统,要求如下。
1.测量对象:
温度、压力、流量等共4路非电路参量(要求以一定周期巡回检测)。
2.控制对象:
温度(要求控制范围为0~200℃,温度控制精度为±2℃)。
3.对各参数的测量值实时显示。
4.当温度参数超限并失调时,能声音报警。
5.操作员能在运行过程中通过人机对话修改温度设定目标值。
7.测量的各参数中,除温度用作控制外,其余只用作监视系统运行,对测量精度可不予考虑或自定。
鉴于上述给定的设计任务和要求,按以下步骤来进行系统设计。
根据任务要求,设计系统功能结构。
根据设计要求,本微机测控系统除对温度要进行闭环控制外,对其余3个参量只作巡回检测,对各个参数要能实时显示和故障报警。
因此,系统的功能结构可用图5.1表示。
其中微型控制器作为整个系统的控制核心,除了完成对A/D通道、D/A通道和键盘、显示、报警等外部过程与设备的控制任务外,还要完成对采样数据的数字滤波、非线性校正、标度变换和温度控制算法的实现等数据处理任务。
图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。
选定了主体芯片后,便可以选择与这几种主体芯片相关的其他芯片和元器件。
例如,选用运算放大器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微机测控系统的组织结构图
实验步骤:
本测控系统主要包括以下几部分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.3ADC0809的接口电路
2.DAC0832的接口电路设计
由于DAC0832内部有两级数据缓冲器,所以不必为它另加接口电路,只需从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个存储单元。
图1.4主程序模块
5.中断服务程序模块
中断服务程序模块指的是2秒钟定时中断服务程序。
该模块的程序流程图如图1.5所示。
图1.5中断服务程序模块
6.子程序模块
这部分软件实际上是许多子程序模块的集合。
主程序和中断服务程序中的许多功能模块,甚至于子程序中嵌套的某些功能程序段,都可以以子程序的形式编制和被调用。
这些子程序模块包括如下子程序。
(1)4通道巡回采样子程序。
(2)数字滤波子程序:
对于被采点的参数,连续采5次,然后以算术平均滤波法,中值滤波法或比较取舍滤波法等进行滤波。
(3)标度变换子程序:
将各测量参数按线性变换公式从二进制数字值变换为相应工程量单位,以便于显示和打印。
(4)温度非线性校正子程序:
按查表法或折线拟合法进行温度测量值的非线性校正。
(5)温度控制子程序:
根据控制算法(如PID算法、预测控制算法等)计算温度控制量,然后送D/A通道,实现温度调节。
(6)音响报警子程序:
利用机内定时器通道2的音频信号发生器功能,控制扬声器发出报警信号。
(7)按键识别与处理子程序:
在扫描键盘的基础上识别功能键,并转向相应的功能子程序模块。
(8)温度变化曲线设置子程序:
通过人机对话设置或修改温度变化曲线,作为温控的标准。
(9)显示当前各参数值子程序:
在显示器上按一定的格式显示4个参数的最新测试值。
这10个子程序模块的功能,大多数在前面各章的实验中已经实现过,这里仅将“4通道巡回采样子程序”这个基本子程序模块的流程图示于图1.6中。
图1.6八通道巡回采样子程序模块流程图
在图1.6中,“数字滤波”功能模块又是通过一个子程序来实现的,这实际上是一种子程嵌套。
为了测量每个通道的某点参数值,流程图中连续采样了5次,目的是为后面进行数字滤波提供条件。
根据上述各程序模块的流程图,可编写出各模块的源程序。
按照细化设计的硬件电路图和软件流程图安装电路,编写源程序,并对源程序进行汇编、连接,形成可执行目标程序,然后进行仿真和调试。
四、思考题
1总结一个完整的实时系统应该如何设计。
2.若给定一个温度曲线,要求系统按照此温度曲线工作,请画出软件流程图。
3.参考信号处理方面的书籍,将数字滤波于程序分不同级别设计,画出相应的流程图。
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转换器被启动以后,当转换结束时,向微机发出中断请求。
微机进入中断服务程序,读取各通道的转换结果,并将它们变换为BCD码的电压值(小数点后保留2位)显示在屏幕上。
图1.7多路数据采集与处理电路图
本实验软件的主程序和两个中断服务程序的流程图可以分别参考图1.8和图1.9。
图1.8多路数据采集与处理系统主程序流程图图1.9定时中断服务程序流程图
除了以上的设计之外,如果采集、处理系统中要求将处理后的数据经示波器或其他模拟输出设备显示出来,那么,在系统中还需要加人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系列微机一台。
2.微机硬件实验平台。
3.并行接口和定时/计数器接口芯片。
4.译码器芯片。
5.按键开关、数码管。
6.基本TTL电路芯片。
三、实验内容及步骤
模拟一个检测车轮转动里程的计价系统。
要求具有时钟和计程计价显示功能:
当启动键被按下时,系统开始计程,同时显示出起价和每公里单价;在行驶过程中,实时显示已行走的里程数和当前累计价格;当清除键被按下时,计程计价器清0。
实验步骤:
本实验设计一个微机计程计价系统,需要完成以下几个部分的硬件设计。
1.车轮转动里程检测电路
该电路的主要作用是敏感路程,产生计程脉冲;在具体实现时可采用干簧继电器来作为里程传感器,将继电器安装在与车轮相连接的涡轮变速器的磁铁上,使汽车每前进10m干簧继电器闭合一次,即向里程计数电路发出一个计数脉冲(在本实验中,可以采用一个单脉种源模拟该脉冲),以使得计数电路进行里程计数。
2.里程计数中断电路
当车轮转动里程检测电路提供了计程脉冲信号后,里程计数中断电路则根据该脉冲信号定时向微机系统发出计数中断请求信号,使系统根据一定的算法对里程数据进行计数计算。
3.时钟计时与显示电路
设计使用一个定时/计数器每(1/100)s向主机发一次中断请求信号。
并利用并行接口电路完成对时钟的实时显示功能。
同时,利用静态或动态扫描电路完成对出租车的起价、每公里单价以及行驶公里数和当前累计价的显示。
4.启动及清除电路
在系统电路中,设计一个启动/清除按钮,用来作为启动里程计数器或清除里程计数的开关。
将该按钮开关接到微机系统的某个中断请求线上,当开关被按下一次时就作为计程启动中断请求;再按一次时,就作为系统的计程清零中断处理。
完成以上各部分功能的整体电路结构如图1.10所示。
图1.10出租车计程计价系统整体设计电路框图
该计程计价系统的软件设计分为以下几个模块。
l.主程序模块
在主程序模块中,需要完成对各接口芯片的初始化、出租车起价和单价的初始化、中断向量的设置以及开中断、循环等等工作。
另外,在主程序模块中还需要设置启动/清除标志寄存器、里程寄存器和价格寄存器,并对它们进行初始化。
然后,主程序将根据各标志寄存器的内容,分别完成启动、清除、计程和计价等不同的操作。
当主程序判断出有“启动计程中断”产生时,将根据里程寄存器中的内容计算和判断出行驶里程是否已超出起价公里数。
若己超出起价公里数,则根据里程值、每公里的单价数和起价数来计算出当前的累计价格,并将结果存于价格寄存器中,然后将已行走的里程数和当前然累计价格送显示电路显示出来。
当主程序判断出有“清除计程中断”产生时,将显示电路中的当前行驶里程数和运行累计价格清零,井重新进行初始化过程。
本实验的主程序流程图参见图1.11。
2.定时中断服务程序
在定时中断服务程序中,需要完成对行车时间的累加计数,并将该时间数据和当前时钟送显示电路进行实时显示。
当里程计数器对里程脉冲计满一定数值(如1公里)时,就由里程计数中断电路向微机发出中断请求,使微机进入里程计数中断服务程序中。
在该程序中,需要完成当前行驶里程数的累加操作,并将结果存人里程寄存器中。
当系统有启动/清除中断请求产生时,我们可以设定第一次中断为启动中断,第二次中断为清除中断,并在中断服务程序中将标志寄存器的内容相应置“1”或清“0”。
其中,标志为“l”时表示本次中断是启动中断;为“0”时表示是清除中断。
图1.11出租车计程计价系统主程序流程图
注意事项:
(1)由于出租车需要有起始公里数和起价数据,因此在编程时,需将里程寄存器和价格寄存器进行初始化赋值。
(2)由于系统中的启动计程和清除计程两种中断是采用同一根中断请求线,因此在设计中断服务程序时,需要设计一个启动/清除标志寄存器来存放当前的中断状态,以便在主程序中根据中断类型的不同而进行不同的操作。
四、思考题
1.如果系统要求设计成白天和晚上(设为21点以后)具有不同的计费价格,系统硬件及软件的设计应如何改变?
画出系统实现的硬件框图及软件流程图。
2.系统中的计程误差会由哪些因素引起?
应如何提高计程计费的精确度?
3.如果要求出租车在遇到塞车或停车等待的情况下,也需要在一定的等时间内进行等待计时计费,那么,系统应如何进行设计?
写出等待计时计费的算法。
1.4交通信号灯实时控制系统设计
一、实验目的
现代城市交通日益拥挤,为保证交通安全,防止交通堵塞,使城市交通井然有序,交通信号灯在市交通管理中的作用越来越重要。
通过本实验,旨在使学生掌握以下几点。
l.掌握交通信号灯实时控制系统的设计思路与实现方法。
2.掌握定时/计数器和并行接口在实时控制系统中的应用。
3.加深对定时/计数器和并行接口芯片的工作方式和编程方法的了解。
4.加深对中断机理及其应用方法的了解。
二、实验设备
l.80X86系列微机一台。
2.微机硬件实验平台。
3.定时/计数器和并行接口芯片。
4.按键开关1个,钮子开关3个及红、黄、绿发光二极管。
三、实验内容及步骤
本实验设计制作一个交通信号灯实时控制系统。
交通图主程序流程如图1.12所示。
要求如下。
(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个钮子开关,当钮子开关为高电平时,表示主干道的车辆到来。
图1.12交通图主程序流程图
有关定时计数的功能,可以采用8253计数/定时器结合中断服务程序计数的方法来实现。
比如,可设想用8253来产生秒时钟信号,为此可以设置8253的定时器0工作于方式3(方波方式),定时器1工作于方式2(分频方式),并将定时器0的输出端接到定时器的时钟端。
这样,就可以做到让定时器0每隔10ms向定时器1发出一个计数脉冲,而当定时器1计满100个数时,就向主机发出一次中断请求信号,于是就实现了每隔h发出一次中断请求的功能。
然后在时钟中断服务程序中对秒信号作相应的计数。
综上所述,实验的支干道来车中断服务程序流程图如图1.13所示,时钟中断服务程序流程图从略。
注意事项:
(1)满足交通灯实验要求的设计方案有多种,即使选定了以8255和8253作为主要芯片后,也仍可设计出多种硬件实现方案。
而硬件实现方案的任何差异,都将导致软件控制程序的不同。
(2)在实验中,如果自己设计单脉种源的产生电路,需要加入消抖电路来进行消抖处理(如果采用DLE-2型或CHI-A型微机硬件接口实验装置上的单脉冲源,则已经进行了消抖处理,可以直接使用)。
图1.13中断服务程序流程图
四、思考题
l.如果要求支干道上有3辆车到来时,主干道才由绿灯转为黄灯,再变为红灯,其他要求不变。
那么,系统应如何设计?
简述实现方法和思路,并画出设计电路框图和程序流程图。
2.如果要求在各交通灯变化的过程中,用数码管显示器显示出交通灯变化的间隔时间(采用倒计时),请问在本系统的基础上需要进行哪些修改?
第2章智能仪器仪表系统设计实验
2.1数字频率计设计
一、实验目的
数字频率计是用来对脉冲信号和正弦波信号等各种波形进行频率测量的仪器,它将测量的结果直接用十进制数显示出来。
本实验通过设计一个由微机控制的数字频率计,旨在使学生能够做到以下几点。
1.进一步掌握定时以数器的原理及应用方法。
2.熟悉数字频率计的测量原理与实现方法。
3.掌握微机化数字频率计的设计思路。
二、实验设备
1.80X86系列微机一台。
2.微机硬件实验平台。
3.定时/计数器、并行接口芯片。
4.基本TTL电路芯片若干。
三、实验内容及步骤
本实验设计并实现一个由微机控制的数字频率计。
具体要求如下。
1.能测量1Hz~10MHZ频率范围的矩形和正弦波的频率或周期。
2.在全频率范围内测量误差≤0.1%。
3.以十进制数字显示出被测信号的频率或周期。
实验步骤:
根据频率的定义,要测量某一波形的频率,实际上就是要测出单位时间内波波形出现的个数。
实现频率测量的原理框图如图2.1所示。
被测信号或直接(对矩形波)、或经放大整形后变成矩形波(对正弦波等非矩形波),通过一个称为闸门开关电路(通常为“与”门或者“与非”门)去计数器计数。
闸门的开启时间由时基电路经门控电路控制。
假定闸门开启时间为T基,计数器计数值为N,则可得被测信号的频率为:
f=N/T基。
图中时基电路提供基准时钟脉冲信号,它是准确测量的基础;门控电路实质上是一个二分频器(单个触发器),用于将时基信号周期T变换为脉宽T,使闸门每次测量只开启时间T。
图2.1数字频率计原理图
如果将图