计算机控制技术实验Word下载.docx
《计算机控制技术实验Word下载.docx》由会员分享,可在线阅读,更多相关《计算机控制技术实验Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
(一)理论教学内容;
(二)实验教学内容。
实验教学中的重点是实验一A/D转换器实验和实验二D/A转换器实验。
其中实验一是计算机控制系统输入通道的典型应用,实验二计算机控制系统输出通道的典型应用,而输入输出通道是计算机控制系统的重要组成部分。
实验三是计算机控制系统的一个典型应用,即温度数据的采集和数据处理。
实验三是本实验课教学的难点,它涉及到数字温度传感器的原理和应用,I2C数据通讯的原理和数据处理的方法。
通过这三个实验的开设使学生在理论学习的基础上加强实际动手操作能力,以便做到感性认识与理性认识的统一。
目录
实验一A/D转换器实验………………………………………………1
实验二D/A转换器实验………………………………………………2
实验三计算机温度数据采集及处理………………………………3
主要参考书…………………………………………………………………4
附录1:
温度传感器DS18B20简介………………………………………5
附录2:
10位11路串行A_D转换器TLC1543的应用…………………12
附录3:
串行10位数_模转换器TLC5615及其在单片机中的应用……14
附录4:
实验装置原理图…………………………………………………16
一、目的和要求
1、了解串行A/D转换器TLC1543的工作原理。
2、掌握A/D转换器程序设计方法以及与AT89C52单片机的接口电路。
3、掌握A/D转换实验上机调试方法。
二、实验内容
1、将TLC1543的IN0通道连接到实验板上的可调直流0-5V电源上。
要求A/D转换的数字量,在实验板数码管上以十进制形成显示出来,取三位小数。
2、编写和调试由单片机控制的TLC1543串行A/D转换、数据变换和数码管显示程序。
3、测量A/D转换器TLC1543的零点误差和线性度。
三、仪器、设备和材料
1、单片机实验板一块、
2、PC计算机一台、
3、数字万用表一块、
4、螺丝批一把、
5、TLC1543一片,
6、导线若干。
四、实验原理
1、参照TLC1543使用说明及实验板原理图及参考程序。
五、实验步骤
1、实验连线,将实验板上TLC1543的A0端连接到实验板直流0-5V电源上(可调电阻电压输出端)。
2、编写TLC1543串行A/D转换程序、数据变换和LED数码显示程序。
3、将PC计算机上编写的实验程序代码下载到单片机实验板上,并调试程序。
4、调节可调电阻,输出0V电压,记录数码管显示,测量其零点误差;
调节可调电阻,输出一组电压值(0-5V),记录下数码管显示数据和数字万用表测量数据,将数据填入自行设计的表格中(分度值可取0.5V),根据数码管显示数据和万用表测量数据分别在坐标纸上画出TLC1543的线性度曲线,分析误差产生的原因。
六、实验注意事项
1、注意PC计算机与开发板的正确连线。
2、注意调试程序的方法和技巧,在实验报告上说明调试过程的体会。
1、了解D/A转换器TLC5615的工作原理,
2、掌握D/A转换器与单片机连接的接口电路和程序设计方法。
3、掌握D/A转换实验上机调试方法。
1、从TLC5615串行口输入数字量,通过D/A转换产生锯齿波、方波和三角波。
2、用示波器观察并记录下输出波形。
2、PC计算机一台、
3、万用表一块、
5、TLC5615一块,
参照TLC5615使用说明及实验板原理图及参考程序。
1、编写调试程序
2、用示波器观察DAOUT段的波形。
1、注意电脑与开发板的连线的正确
2、仔细调试程序
实验三计算机温度数据采集与处理
1、了解数字式温度传感器DS18B20的工作原理。
2、掌握温度测量与显示电路的硬件电路和程序设计。
3、掌握本实验上机调试方法。
1、完成数字化温度传感器DS18B20与单片机实验电路板的连接电路设计。
2、完成温度测量、温度数据换算和温度数据LED显示等程序的编写。
3、上机调试,观察温度显示数据随环境温度变化的情况。
3、温度传感器DS18B20一块、
4、导线若干。
参考实验指导书的附录。
由美国DALLAS半导体公司生产的DSl8B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。
DSl8B20采用DALLAS公司独特的“单线(1-Wire)总线”专有技术,测温在-10~+85℃范围内,可确保测量误差不超过±
0.5℃。
选用外部+5V电源(允许电压范围是3.0~5.5V),进行温度/数字转换时的工作电流约为1.5mA,待机电流仅25uA,典型功耗为5mW。
数字温度传感器测量温度的原理是:
DSl8B20内部测温电路中低温度系数振荡器用于产生稳定的频率ƒ0,高温度系数振荡器则相当于T/ƒ转换器,能将被测温度t转换成频率信号ƒ0,当计数门打开时,DSl8B20就对低温度系数振荡器产生的时钟脉冲ƒ0进行计数,进而完成温度测量,计数门的开启时间由高温度系数振荡器来决定。
1、实验连线,选择实验板上单片机某引脚与DS18B20的数据口I/O脚连接,并且将DS18B20接上电源和接地。
要求温度数据保留整数部分(小数部分四舍五入)。
1、注意温度传感器DS18B20的正确连线,特别注意电源和地线不能接反。
2、程序设计要求在实验报告中画程序流程图,并加以必要的文字说明,实验报告附上你的程序清单。
3、如果要求温度数据保留到小数点后一位(四舍五入),如何修改你的程序。
4、注意调试程序的方法和技巧,在实验报告上说明调试过程的体会。
主要参考书
1、《微型计算机控制技术》,于海生等编著,清华大学出版社,1999年3月第1版。
2、《微型计算机控制技术》,潘新民、王燕芳编著,人民邮电出版社,1999年6月第1版。
3、《微型计算机控制技术》,黄一夫主编,机械工业出版社,1988年。
4、《单片机原理及其接口技术》,胡汉才编,清华大学出版社,2004年2月第2版。
,
5、《智能化集成温度传感器原理与应用》,沙占友等著,机械工业出版社,2002年7月第1版。
DS18B20型单线智能温度传感器简介
由美国DALLAS半导体公司生产的DSl8B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中,例如多路温度测控仪、中央空调、大型冷库、恒温装置等。
此外巧妙利用DSl8B20内部64位激光ROM中具有惟一性的48位产品序号,还可设计成专供大型宾馆客房或军事仓库使用的保密性极佳的电子密码锁。
DSl8B20的电源电压范围均扩展到+3~+5.5V,DSl8B20还能对温度分辨力进行编程,选择9位~12位模式下工作,在12位模式下的最高分辨力可达0.0625℃。
1、DS18B20的性能特点
(1)DSl8B20采用DALLAS公司独特的“单线(1-Wire)总线”专有技术,通过串行通信接口(I/O)直接输出被测温度值(9位二进制数据,含符号位)。
(2)在测温范围是-55~+125℃时,测量误差不超过±
2℃,在-10~+85℃范围内,可确保测量误差不超过±
温度/数字量转换时间的典型值仅需93.75ms,比DS1820有很大的提高.
(3)内含64位经过激光修正的只读存储器ROM,扣除8位产品系列号和8位循环冗余校验码CRC之后,产品序号占48位。
出厂前就作为DSl8B20惟一的产品序号,存入其ROM中。
在构成大型温控系统时,允许在单线总线上挂接多片DSl8B20。
(4)适配各种单片机或系统机。
(5)用户可分别设定各路温度的上、下限并写入随机存储器RAM中。
利用报警搜索命令和寻址功能,可迅速识别出发生了温度越限报警的器件。
(6)内含寄生电源。
该器件既可由单线总线供电,亦可选用外部+5V电源(允许电压范围是3.0~5.5V),进行温度/数字转换时的工作电流约为1.5mA,待机电流仅25uA,典型功耗为5mW。
2、DS18B20的工作原理
DSl8B20的原理与DS1820的原理是一样的。
DS18B20继承了DS1820的所有优点。
DS18B20采用3脚PR—35封装或8脚SOIC封装,引脚排列如图附-1所示。
I/O为数据输入/输出端(即单线总线),它属于漏极开路输出,外接上拉电阻后,常态下呈高电平。
UDD是可供选用的外部+5V电源端,不用时需接地。
GND为地,NC为空脚。
其内部主要包括7部分:
①寄生电源;
②温度传感器;
64位激光(laser)ROM与单线接口;
④高速暂存器,即便笺式RAM,用于存放中间数据;
⑤TH触发寄存器和TL触发寄存器,分别用来存储用户设定的温度上、下限tH、tL值;
⑥存储与控制逻辑;
⑦8位循环冗余校验码(CRC)发生器。
下面分别介绍各部分的工作原理。
(a)(b)
图附-1DS1820/DS18B20的引脚排列
(a)PR—35封装(b)SOIC封装
图附-2多片DS1820(DS18B20)与80C31的接线
(1)测温电路原理
DSl8B20内部测温电路中低温度系数振荡器用于产生稳定的频率ƒ0,高温度系数振荡器则相当于T/ƒ转换器,能将被测温度t转换成频率信号ƒ0图中还隐含着计数门,当计数门打开时,DSl8B20就对低温度系数振荡器产生的时钟脉冲ƒ0进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定。
每次测量前,首先将-55℃所对应的基数分别置入减法计数器、温度寄存器中。
在计数门关闭之前若计数器已减至零,温度寄存器中的数值就增加0.5℃。
然后,计数器依斜率累加器的状态置入新的数值,再对时钟计数,然后减至零,温度寄存器值又增加0.5℃。
只要计数门仍未关闭,就重复上述过程,直至温度寄存值达到被测温度值。
这就是DSl8B20的测温原理。
斜率累加器能对振荡器的非线性予以补偿,提高测量准确度。
需要指出,温度值本应为9位(其中,符号占一位),但因符号位又被扩展成高8位,故实际以16位补码的形式读出。
其中,高8位代表符号,“0”表示t>
0℃,“1”表示t<
0℃;
低8位则以0.5℃/LSB(最低有效位)的形式表示温度值。
表附—1温度—数据的对应关系
温度/℃
数字输出(二进制)
数字输出(十六进制)
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010001
0191H
+10.125
0000000010100010
00A2H
+0.5
0000000000001000
0008H
0000000000000000
0000H
-0.5
1111111111111000
FFF8H
-10.125
1111111101011110
FF5EH
-25.0625
1111111001011111
FE6FH
-55
1111110010010000
FC90H
温度与数据的对应关系见表1—1。
欲测量华氏温度(0F),需进行下述换算:
t(0F)=9/5(0C)+32(1—1)
DS18B20中温度字节中的位定义
低八位
23
22
21
20
2-1
2-2
2-3
2-4
高八位
S
26
25
24
(2)高速暂存器(简称暂存器)
它由便笺式RAM、非易失性电擦写E2RAM所组成,后者用来存储tH和tL值。
数据先写入RAM,
图附-3暂存器的操作命令流程图
经校验后再传给E2RAM。
便笺式RAM占9个字节,第0、1字节是测量出的温度信息,第2、3字节分别是tH、tL值,第4、5字节不用。
第6、7字节为计数寄存器,可用于提高温度分辨力。
第8字节用来存储上述8字节的循环冗余校验码。
详见表附—2。
暂存器的命令集见表附—3。
6条命令分别为温度转换、读暂存器、写暂存器、复制暂存器、重新调出E2RAM、读电源供电方式。
表附—2暂存器的内容
便笺式RAM
字节
E2RAM
温度低字节
温度高字节
1
报警上限/用户定义字节1
2
报警下限/用户定义字节2
3
保留
4
5
计数余数值
6
每度计数值
7
CRC
8
表附—3暂存器命令集
指令
说明
约定代码
发生约定代码后单线总线
温度转换
启动DSl8B20进行温度转换
44H
主CPU读DSl8B20的“忙状态”
读暂存器
读暂存器9个字节的内容
BEH
主CPU读9个字节的数据
写暂存器
将数据写入暂存器的TH和TL字节
4EH
主CPU给DSl8B20发出两个字节的数据
复制暂存器
把暂存器的TH、TL字节写入E2RAM中
48H
重新调E2RAM
把E2RAM中的TH、'
FL字节分别调入暂存器TH、TL字节
B8H
读电源供电方式
启动DSl8B20发送电源供电方式的信号给主CPU
B4H
主CPU读DSl8B20的“电源状态”
(3)初始化
对DSl8B20的操作是首先进行初始化,然后执行ROM操作命令,再执行暂存器操作命令,最后完成数据处理。
(4)报警信号
在完成温度转换之后,DSl8B20就把测得的温度值,同tH、tL作比较。
若t>
tH或t<
tL,则将该器件的报警标志置位,并对主CPU发出的报警搜索命令做出响应。
因此可用多片DSl8B20同时测量温度并进行报警搜索。
一旦某个测温点越限,主CPU用报警搜索命令即可识别正在报警的DSl8B20,并且读出其序号,而不必考虑其他未报警的D
3、单线总线系统的通信协议
单线总线是一种具有一个总线主机(亦称主CPU)和一个或多个从机(从属器件)的系统,DSl820起从机的作用。
下面介绍单线总线的通信协议。
3.1主CPU访问DSl820的工作流程
主CPU经过单线接口访问DSl820的工作流程为:
对DSl820进行初始化→ROM操作命令→存储器(包括便笺式RAM和E2RAM)操作命令一数据处理。
主CPU对ROM操作完毕,即发出控制操作命令,使DSl820完成温度测量并将测量结果存入高速暂存器中,然后读出此结果。
3.2初始化
单线总线上的所有处理过程均从初始化开始。
初始化包括首先由主CPU发出一个复位脉冲,然后由从属器件发出应答脉冲,通知主CPU。
初始化时主CPU首先发出一个复位信号,将单线总线上所有DSl820复位;
然后释放单线总线,改成接收状态,单线总线被上拉电阻只拉成高电平。
在检测到此上升沿后,DSl820需要等待15~60μs才向主CPU发出响应脉冲。
初始化过程的时序
波形如图4-1所示。
此后便可对ROM、RAM进行操作。
图附-4初始化过程的时序波形
3.3DS1820的通信协议
DSl820有严格的通信协议来保证各位数据传输的正确性和完整性。
通信协议规定了复位脉冲、应答脉冲、写0、写1、读0和读1等几种信号的时序。
除了应答脉冲,其余信号均由主CPU控制。
在对DSl820进行ROM及RAM操作之前,主CPU首先发出一个复位脉冲(最小脉冲宽度为480μs的低电平信号);
然后主CPU便释放单线总线(I/O线),使之处于接收状态。
单线总线经过上拉电阻被拉至高电平。
当DSl820检测到I/O端的上升沿后,就等待15~60μs,再向主CPU发出应答脉冲(60~240μs的低电平信号)。
在初始化过程中,复位脉冲与应答脉冲的波形参见图4-1。
3.4存储器操作命令
存储器操作命令共6条,具体如下:
(1)温度转换命令(CONVERTT){44H}。
令DSl820进行温度转换。
如果主CPU在该命令之后为读时序,那么只要DSl820正忙于进行温度转换,即读得“0”;
当温度转换完成时,DSl820则返回“1”。
假如由寄生电源给DSl820供电,主CPU在发出该命令后立即将单线总线拉成高电平,并且保持500ms时间,以便在温度转换期间给DSl820提供所需要的电源。
(2)读暂存存储器(READSCRATCHPAD){BEH}。
该命令为读暂存存储器9个字节的内容。
从字节0开始读,直至读到字节8。
主CPU可以在读暂存存储器期间发出一个复位脉冲来终止读操作。
(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在发出该命令后就把单线总线拉到高电平,并保持10ms。
(5)重新调出E22RAM(RECALLE2RAM){B8H}。
该命令是把存储在E2RAM温度触发器TH、TL内的数据重新调入暂存存储器的TH、TL字节。
每次DSl820上电时也自动进行这种操作。
因此,只要器件接通电源,暂存存储器的TH和TL中已经有有效的数据供使用。
若主CPU在发出该命令之后又进行读操作,只要DSl820正忙于进行调出,主CPU就读得“0”(表示“忙碌”);
完成调出操作后DSl820即返回“1”(表示“操作完毕”)。
(6)读电源(READPOWERSUPPLY){B4H}。
此项命令发送给DSl820之后,对主CPU发出的每一条读命令,DSl820都向主CPU提供电源方式信号“0”(表示由寄生电源供电)或者“1”(表示由外部电源供电)。
3.5读/写时序
主CPU通过时序(亦称作“时间片”)来写入或读出DSl820中的数据。
时序用于传输数据位和指定进行何种操作的命令字。
(1)写时序。
主CPU把I/O线(即单线总线,亦称数据线)从高电平拉至低电平时,作为一个写周期的开始。
写时序包括两种类型:
写1时序,写0时序。
写1或写0时序时必须保持至少60μs,在两个写周期之间至少要有1μs的恢复期。
DSl820在I/O线变为低电平后的15~60μs的时间内进行采样。
若I/O线为高电平,即认为写入了一位1;
若I/O线为低电平,即认为写入了一位0。
写时序的波形如图附-5(a)所示。
主CPU在开始写1周期时,必须将I/O线拉至低电平,然后再释放,15μs内将I/O线拉成高电平。
主CPU在开始写0周期时,也应将I/O线拉至低电平,并保持60μs的时间。
图附-5读/写时序波形图
(a)写时序(b)读时序
(2)读时序。
当主CPU将I/O线从高电平拉成低电平时,就作为一个读周期的开始,并且I/O线保持低电平的时间至少为1μs。
DSl820的输出数据在读时序下降沿过后的15μs内有效。
在此期间,主CPU应释放I/O线,使之处于输入状态以便读取数据。
经过15μs后读时序结束,I/O线经外部上拉电阻又变成高电平。
读取一位数据至少需要60μs时间,并且在两位数据之间至少要有1μs的恢复期。
读时序的波形如图附-5(b)所示。
令初始化时间为TINIT,电路的时间常数为TRC。
主CPU的采样时间为TSAMPLE,高电平的闽值电压为UIH。
在如图4-4所示主CPU读一位数据的波形中,要求TINIT+TRC+TSAMPLE<
15μs。
经过改进后,主CPU读一位数据的波形如图4-5所示,采用尽量缩短TINIT、TRC的周期并把主CPU采样期安排到末尾的方法,可以使总线有更充裕的稳定时间。
3.6读/写时间片
DSl820的读/写时间片如图附-6所示。
这里讲的“时间片”(timeslot)亦称时间间隙,简称时隙。
该图对其他类型的单线智能温度传感器也适用。
图中,tSLOT代表时间片,TREC为恢复时间。
TLOW0、tLOWl分别表示在写0、写1时单线总线保持低电平的时间。
tRDV为读数据有效时间。
tRSTL为复位信号的低电平时间。
tPDHIGH、tPDLOW分别表示应答信号的高、低电平时间。
图附-6读一位数据的波形图
图附-7改进后一位数据的波形图
图附-8跳过RO