1、 计算机控制技术课程实验指导书 电气工程与自动化 专业吴茂 王飞 编佛山科学技术学院二 00 六 年 九 月 摘 要本实验指导书根据计算机控制技术实验大纲的要求编写。本实验指导书编写了 3 个实验。实验一:A/D 转换器实验;实验二:D/A 转换器实验;实验三:温度数据的采集和数据处理。其中实验一是计算机控制系统输入通道的典型应用,实验二是计算机控制系统输出通道的典型应用,实验三则是计算机控制系统在温度测量方面的典型应用,即温度数据的采集和数据处理。其中实验一和实验二为设计性实验,是本实验课程的重点,实验三为综合性实验,是本实验课程的难点。通过这三个实验的开设使学生在理论学习的基础上加强实际动
2、手操作能力,以求做到感性认识与理性认识的统一。前言(一)本实验课程性质计算机控制技术是自动化类各专业的“主干专业课程”,实验课属工程技术类课程的实践环节。通过本实验课程的开设,使学生能够具备独立设计简单计算机控制系统的能力,使学生为今后将计算机控制技术广泛应用于工农业生产,交通运输以及国防建设的各个领域,提高生产过程的自动化程度而打下基础。(二)开设实验课目的与任务工业控制是计算机的一个重要应用领域,计算机控制正是为了适应这一领域的需要而发展起来的一门专业技术。它主要研究如何将计算机技术和自动化控制理论应用于工业生产过程,并设计出所需要的计算机控制系统。开设本课程的目的在于使学生了解和掌握以微
3、型机为核心组成的控制系统的硬件、软件基础知识和基本应用技术。(三)本实验课的主要内容1、本实验指导书根据计算机控制技术实验大纲编写,根据实验教学大纲的要求,本实验指导书编写了 3 个实验,均为设计性实验:实验一 A/D 转换器实验实验二 D/A 转换器实验实验三 计算机温度数据采集及处理2、主要实验器材:单片机实验板(2005.03 VER2.0 版,佛山科学技术学院自动化系开发)示波器、数字万用表、A/D 转换器、D/A 转换器、数字温度传感器 DS18B20(四)本实验课教学重点、难点、手段、方法等有关说明计算机控制技术课程的教学由两大部分组成:(一)理论教学内容;(二)实验教学内容。实验
4、教学中的重点是实验一 A/D 转换器实验和实验二 D/A 转换器实验。其中实验一是计算机控制系统输入通道的典型应用,实验二计算机控制系统输出通道的典型应用,而输入输出通道是计算机控制系统的重要组成部分。实验三是计算机控制系统的一个典型应用,即温度数据的采集和数据处理。实验三是本实验课教学的难点,它涉及到数字温度传感器的原理和应用,I2C 数据通讯的原理和数据处理的方法。通过这三个实验的开设使学生在理论学习的基础上加强实际动手操作能力,以便做到感性认识与理性认识的统一。目 录实验一 A/D 转换器实验1实验二 D/A 转换器实验2 实验三 计算机温度数据采集及处理 3主要参考书4附录 1:温度传
5、感器 DS18B20 简介5附录 2:10 位 11 路串行 A_D 转换器 TLC1543 的应用12附录 3:串行 10 位数_模转换器 TLC5615 及其在单片机中的应用14附录 4:实验装置原理图16实验一 A/D 转换器实验一、目的和要求1、了解串行 A/D 转换器 TLC1543 的工作原理。2、掌握 A/D 转换器程序设计方法以及与 AT89C52 单片机的接口电路。3、掌握 A/D 转换实验上机调试方法。二、实验内容1、将 TLC1543 的 IN0 通道连接到实验板上的可调直流 05V 电源上。要求A/D 转换的数字量,在实验板数码管上以十进制形成显示出来,取三位小数。2、
6、编写和调试由单片机控制的 TLC1543 串行 A/D 转换、数据变换和数码管显示程序。3、测量 A/D 转换器 TLC1543 的零点误差和线性度。三、仪器、设备和材料1、单片机实验板 一块、 2、PC 计算机 一台、3、数字万用表 一块、4、螺丝批 一把、5、TLC1543 一片,6、导线 若干。四、实验原理1、参照 TLC1543 使用说明及实验板原理图及参考程序。五、实验步骤1、实验连线,将实验板上 TLC1543 的 A0 端连接到实验板直流 05V 电源上(可调电阻电压输出端) 。2、编写 TLC1543 串行 A/D 转换程序、数据变换和 LED 数码显示程序。3、将 PC 计算
7、机上编写的实验程序代码下载到单片机实验板上,并调试程序。4、调节可调电阻,输出 0V 电压,记录数码管显示,测量其零点误差;调节可调电阻,输出一组电压值(05V) ,记录下数码管显示数据和数字万用表测量数据,将数据填入自行设计的表格中(分度值可取 0.5V) ,根据数码管显示数据和万用表测量数据分别在坐标纸上画出 TLC1543 的线性度曲线,分析误差产生的原因。六、实验注意事项1、注意 PC 计算机与开发板的正确连线。2、注意调试程序的方法和技巧,在实验报告上说明调试过程的体会。实验二 D/A 转换器实验一、目的和要求1、了解 D/A 转换器 TLC5615 的工作原理,2、掌握 D/A 转
8、换器与单片机连接的接口电路和程序设计方法。3、掌握 D/A 转换实验上机调试方法。 二、实验内容1、从 TLC5615 串行口输入数字量,通过 D/A 转换产生锯齿波、方波和三角波。2、用示波器观察并记录下输出波形。三、仪器、设备和材料1、单片机实验板 一块、 2、PC 计算机 一台、3、万用表 一块、4、螺丝批 一把、5、TLC5615 一块,6、导线 若干。 四、实验原理参照 TLC5615 使用说明及实验板原理图及参考程序。五、实验步骤1、编写调试程序2、用示波器观察 DAOUT 段的波形。六、实验注意事项1、注意电脑与开发板的连线的正确2、仔细调试程序实验三 计算机温度数据采集与处理一
9、、目的和要求1、了解数字式温度传感器 DS18B20 的工作原理。2、掌握温度测量与显示电路的硬件电路和程序设计。3、掌握本实验上机调试方法。二、实验内容1、完成数字化温度传感器 DS18B20 与单片机实验电路板的连接电路设计。2、完成温度测量、温度数据换算和温度数据 LED 显示等程序的编写。3、上机调试,观察温度显示数据随环境温度变化的情况。三、仪器、设备和材料1、单片机实验板 一块、 2、PC 计算机 一台、3、温度传感器 DS18B20 一块、4、导线 若干。四、实验原理参考实验指导书的附录。由美国 DALLAS 半导体公司生产的 DSl8B20 型单线智能温度传感器,属于新一代适配
10、微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。DSl8B20 采用 DALLAS 公司独特的“单线(1-Wire)总线” 专有技术,测温在-10+85范围内,可确保测量误差不超过0.5。选用外部+5V 电源(允许电压范围是 3.05.5V) ,进行温度数字转换时的工作电流约为 1.5mA,待机电流仅 25uA,典型功耗为 5mW。数字温度传感器测量温度的原理是:DSl8B20 内部测温电路中低温度系数振荡器用于产生稳定的频率 0,高温度系数振荡器则相当于 T 转换器,能将被测温度 t 转换成频率信号 0,当计数门打开时,DSl8B20 就
11、对低温度系数振荡器产生的时钟脉冲 0 进行计数,进而完成温度测量,计数门的开启时间由高温度系数振荡器来决定。 五、实验步骤1、实验连线,选择实验板上单片机某引脚与 DS18B20 的数据口 I/O 脚连接,并且将 DS18B20 接上电源和接地。2、完成温度测量、温度数据换算和温度数据 LED 显示等程序的编写。要求温度数据保留整数部分(小数部分四舍五入) 。3、将 PC 计算机上编写的实验程序代码下载到单片机实验板上,并调试程序。六、实验注意事项1、注意温度传感器 DS18B20 的正确连线,特别注意电源和地线不能接反。2、程序设计要求在实验报告中画程序流程图,并加以必要的文字说明,实验报告
12、附上你的程序清单。3、如果要求温度数据保留到小数点后一位(四舍五入) ,如何修改你的程序。4、注意调试程序的方法和技巧,在实验报告上说明调试过程的体会。主要参考书1、微型计算机控制技术,于海生等编著,清华大学出版社,1999 年 3 月第 1 版。2、微型计算机控制技术,潘新民、王燕芳编著,人民邮电出版社,1999 年 6 月第 1 版。3、微型计算机控制技术,黄一夫主编,机械工业出版社,1988 年。4、单片机原理及其接口技术,胡汉才编,清华大学出版社,2004 年 2 月第 2 版。,5、 智能化集成温度传感器原理与应用,沙占友等著,机械工业出版社,2002 年 7 月第 1 版。附录 1
13、:DS18B20 型单线智能温度传感器简介由美国 DALLAS 半导体公司生产的 DSl8B20 型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中,例如多路温度测控仪、中央空调、大型冷库、恒温装置等。此外巧妙利用DSl8B20 内部 64 位激光 ROM 中具有惟一性的 48 位产品序号,还可设计成专供大型宾馆客房或军事仓库使用的保密性极佳的电子密码锁。DSl8B20 的电源电压范围均扩展到+3 +5.5V,DSl8B20 还能对温度分辨力进行编程,选择 9 位12 位模式下工作,在 12 位模式下的最高分
14、辨力可达 0.0625。 1、 DS18B20 的性能特点(1)DSl8B20 采用 DALLAS 公司独特的“单线(1-Wire)总线”专有技术,通过串行通信接口(I/O)直接输出被测温度值(9 位二进制数据,含符号位) 。(2)在测温范围是-55+125时,测量误差不超过2,在-10+85范围内,可确保测量误差不超过0.5。温度数字量转换时间的典型值仅需 93.75ms,比 DS1820 有很大的提高.(3)内含 64 位经过激光修正的只读存储器 ROM,扣除 8 位产品系列号和 8 位循环冗余校验码 CRC 之后,产品序号占 48 位。出厂前就作为 DSl8B20 惟一的产品序号,存入其
15、 ROM 中。在构成大型温控系统时,允许在单线总线上挂接多片 DSl8B20。(4)适配各种单片机或系统机。(5)用户可分别设定各路温度的上、下限并写入随机存储器 RAM 中。利用报警搜索命令和寻址功能,可迅速识别出发生了温度越限报警的器件。(6)内含寄生电源。该器件既可由单线总线供电,亦可选用外部+5V 电源(允许电压范围是3.05.5V) ,进行温度数字转换时的工作电流约为 1.5mA,待机电流仅 25uA,典型功耗为5mW。2、DS18B20 的工作原理DSl8B20 的原理与 DS1820 的原理是一样的。DS18B20 继承了 DS1820 的所有优点。DS18B20 采用 3 脚
16、PR35 封装或 8 脚 SOIC 封装,引脚排列如图附 1 所示。I/O 为数据输入输出端( 即单线总线),它属于漏极开路输出,外接上拉电阻后,常态下呈高电平。 UDD 是可供选用的外部+5V 电源端,不用时需接地。GND 为地,NC 为空脚。其内部主要包括 7 部分:寄生电源;温度传感器; 64 位激光(laser)ROM 与单线接口;高速暂存器,即便笺式 RAM,用于存放中间数据;T H 触发寄存器和 TL 触发寄存器,分别用来存储用户设定的温度上、下限tH、t L 值;存储与控制逻辑; 8 位循环冗余校验码(CRC)发生器。下面分别介绍各部分的工作原理。(a) (b)图附1 DS182
17、0/DS18B20 的引脚排列(a) PR35 封装 (b) SOIC 封装图附 2 多片 DS1820(DS18B20)与 80C31 的接线(1)测温电路原理DSl8B20 内部测温电路中低温度系数振荡器用于产生稳定的频率 0,高温度系数振荡器则相当于 T 转换器,能将被测温度 t 转换成频率信号 0 图中还隐含着计数门,当计数门打开时,DSl8B20 就对低温度系数振荡器产生的时钟脉冲 0 进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定。每次测量前,首先将-55所对应的基数分别置入减法计数器、温度寄存器中。在计数门关闭之前若计数器已减至零,温度寄存器中的数值就增加
18、0.5。然后,计数器依斜率累加器的状态置入新的数值,再对时钟计数,然后减至零,温度寄存器值又增加 0.5。只要计数门仍未关闭,就重复上述过程,直至温度寄存值达到被测温度值。这就是DSl8B20 的测温原理。斜率累加器能对振荡器的非线性予以补偿,提高测量准确度。 需要指出,温度值本应为 9 位(其中,符号占一位) ,但因符号位又被扩展成高 8 位,故实际以 16 位补码的形式读出。其中,高 8 位代表符号, “0”表示 t0, “1”表示 ttH 或 ttL,则将该器件的报警标志置位,并对主 CPU 发出的报警搜索命令做出响应。因此可用多片 DSl8B20 同时测量温度并进行报警搜索。一旦某个测
19、温点越限,主 CPU 用报警搜索命令即可识别正在报警的 DSl8B20,并且读出其序号,而不必考虑其他未报警的 D3、单线总线系统的通信协议单线总线是一种具有一个总线主机(亦称主 CPU)和一个或多个从机( 从属器件)的系统,DSl820 起从机的作用。下面介绍单线总线的通信协议。31 主 CPU 访问 DSl820 的工作流程主 CPU 经过单线接口访问 DSl820 的工作流程为:对 DSl820 进行初始化ROM 操作命令存储器( 包括便笺式 RAM 和 E2RAM)操作命令一数据处理。主 CPU 对 ROM 操作完毕,即发出控制操作命令,使 DSl820 完成温度测量并将测量结果存入高
20、速暂存器中,然后读出此结果。32 初始化单线总线上的所有处理过程均从初始化开始。初始化包括首先由主 CPU 发出一个复位脉冲,然后由从属器件发出应答脉冲,通知主 CPU。初始化时主 CPU 首先发出一个复位信号,将单线总线上所有 DSl820 复位;然后释放单线总线,改成接收状态,单线总线被上拉电阻只拉成高电平。在检测到此上升沿后, DSl820 需要等待 1560s 才向主 CPU 发出响应脉冲。初始化过程的时序波形如图 4-1 所示。此后便可对 ROM、RAM 进行操作。图附4 初始化过程的时序波形33DS1820 的通信协议DSl820 有严格的通信协议来保证各位数据传输的正确性和完整性
21、。通信协议规定了复位脉冲、应答脉冲、写 0、写 1、读 0 和读 1 等几种信号的时序。除了应答脉冲,其余信号均由主CPU 控制。在对 DSl820 进行 ROM 及 RAM 操作之前,主 CPU 首先发出一个复位脉冲(最小脉冲宽度为480s 的低电平信号) ;然后主 CPU 便释放单线总线(I/O 线 ),使之处于接收状态。单线总线经过上拉电阻被拉至高电平。当 DSl820 检测到 I/O 端的上升沿后,就等待 1560s,再向主 CPU 发出应答脉冲(60240s 的低电平信号) 。在初始化过程中,复位脉冲与应答脉冲的波形参见图 4-1。 34 存储器操作命令存储器操作命令共 6 条,具体
22、如下:(1)温度转换命令(CONVERTT)44H 。令 DSl820 进行温度转换。如果主 CPU 在该命令之后为读时序,那么只要 DSl820 正忙于进行温度转换,即读得“0” ;当温度转换完成时,DSl820 则返回“1” 。假如由寄生电源给 DSl820 供电,主 CPU 在发出该命令后立即将单线总线拉成高电平,并且保持 500ms 时间,以便在温度转换期间给 DSl820 提供所需要的电源。(2)读暂存存储器(READ SCRATCHPAD)BEH。该命令为读暂存存储器 9 个字节的内容。从字节 0 开始读,直至读到字节 8。主 CPU 可以在读暂存存储器期间发出一个复位脉冲来终止读
23、操作。 (3)写暂存存储器(WRITESCRATCHPAD)4EH。该命令发出后,主 CPU 送给 DSl820 的两个字节数据就分别写入丁 H 触发寄存器和 Tl 触发寄存器中,顺序是先写 TH,后写 TL。主 CPU也可以在写暂存存储器期间发出一个复位脉冲来终止写操作。(4)复制暂存存储器(COPYSCRATCHPAD)48H。该命令把触发寄存器中的 TH、TL 字节分别复制到 E2RAM 的 TH、TL 字节上。若主 CPU 发出该命令后又进行读操作,只要 DSl820 正忙于复制,主 CPU 就读得“0” ;当复制工作完成后,DSl820 又返回“1” 。如果由寄生电源供电,主 CPU
24、 在发出该命令后就把单线总线拉到高电平,并保持 10ms。(5)重新调出 E22RAM(RECALL E2RAM)B8H。该命令是把存储在 E2RAM 温度触发器TH、TL 内的数据重新调入暂存存储器的 TH、TL 字节。每次 DSl820 上电时也自动进行这种操作。因此,只要器件接通电源,暂存存储器的 TH 和 TL 中已经有有效的数据供使用。若主 CPU在发出该命令之后又进行读操作,只要 DSl820 正忙于进行调出,主 CPU 就读得“0”(表示“忙碌”);完成调出操作后 DSl820 即返回“1”(表示“操作完毕 ”)。(6)读电源(READ POWER SUPPLY)B4H。此项命令
25、发送给 DSl820 之后,对主 CPU 发出的每一条读命令,DSl820 都向主 CPU 提供电源方式信号 “0”(表示由寄生电源供电)或者“1”(表示由外部电源供电)。35 读/写时序主 CPU 通过时序 (亦称作“时间片”)来写入或读出 DSl820 中的数据。时序用于传输数据位和指定进行何种操作的命令字。(1)写时序。主 CPU 把 I/O 线(即单线总线,亦称数据线)从高电平拉至低电平时,作为一个写周期的开始。写时序包括两种类型:写 1 时序,写 0 时序。写 1 或写 0 时序时必须保持至少60s,在两个写周期之间至少要有 1s 的恢复期。DSl820 在 I/O 线变为低电平后的
26、 1560s 的时间内进行采样。若 I/O 线为高电平,即认为写入了一位 1;若 I/O 线为低电平,即认为写入了一位 0。写时序的波形如图附5(a)所示。主 CPU 在开始写 1 周期时,必须将 I/O 线拉至低电平,然后再释放,15s 内将 I/O 线拉成高电平。主 CPU 在开始写 0 周期时,也应将 I/O 线拉至低电平,并保持 60s 的时间。图附5 读/ 写时序波形图(a)写时序 (b)读时序(2)读时序。当主 CPU 将 I/O 线从高电平拉成低电平时,就作为一个读周期的开始,并且 I/O线保持低电平的时间至少为 1s。DSl820 的输出数据在读时序下降沿过后的 15s 内有效
27、。在此期间,主 CPU 应释放 I/O 线,使之处于输入状态以便读取数据。经过 15s 后读时序结束,I/O线经外部上拉电阻又变成高电平。读取一位数据至少需要 60s 时间,并且在两位数据之间至少要有 1s 的恢复期。读时序的波形如图附5(b)所示。令初始化时间为 TINIT,电路的时间常数为 TRC。主 CPU 的采样时间为 TSAMPLE,高电平的闽值电压为 UIH。在如图 4-4 所示主 CPU 读一位数据的波形中,要求 TINIT+TRC+TSAMPLE15s。经过改进后,主 CPU 读一位数据的波形如图 4-5 所示,采用尽量缩短 TINIT、T RC 的周期并把主 CPU 采样期安排到末尾的方法,可以使总线有更充裕的稳定时间。 36 读写时间片DSl820 的读写时间片如图附6 所示。这里讲的“时间片”(time slot)亦称时间间隙,简称时隙。该图对其他类型的单线智能温度传感器也适用。图中,t SLOT 代表时间片,T REC 为恢复时间。T LOW0、 tLOWl 分别表示在写 0、写 1 时单线总线保持低电平的时间。 tRDV 为读数据有效时间。t RSTL 为复位信号的低电平时间。t PDHIGH、t PDLOW 分别表示应答信号的高、低电平时间。图附6 读一位数据的波形图图附7 改进后一位数据的波形图图附8 跳过 ROM 的操作流程图