微机控制实验指导书.docx
- 文档编号:26476023
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:30
- 大小:280.42KB
微机控制实验指导书.docx
《微机控制实验指导书.docx》由会员分享,可在线阅读,更多相关《微机控制实验指导书.docx(30页珍藏版)》请在冰豆网上搜索。
微机控制实验指导书
实验一温度测量与显示
一、实验目的
1、了解数字化温度传感器DS18B20的工作原理;
2、掌握温度传感器DS18B20的程序设计方法;
二、实验原理
美国DALLAS半导体公司生产的DSl8B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中,例如多路温度测控仪、中央空调、大型冷库、恒温装置等。
DSl8B20采用3脚PR—35封装。
I/O为数据输入/输出端(即单线总线),它属于漏极开路输出,外接上拉电阻后,常态下呈高电平。
UDD是可供选用的外部+5V电源端,不用时需接地。
GND为地。
图1多片DS1820(DS18B20)与80C31的接线图2DS18B20引脚
DSl8B20内部测温电路有低温度系数振荡器,用于产生稳定的频率ƒ0,高温度系数振荡器则相当于T/ƒ转换器,能将被测温度t转换成频率信号ƒ0,。
DSl8B20内部有计数门,当计数门打开时,DSl8B20就对低温度系数振荡器产生的时钟脉冲ƒ0进行计数,进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定。
每次测量前,首先将-55℃所对应的基数分别置入减法计数器、温度寄存器中。
在计数门关闭之前若计数器已减至零,温度寄存器中的数值就增加0.5℃。
然后,计数器依斜率累加器的状态置入新的数值,再对时钟计数,然后减至零,温度寄存器值又增加0.5℃。
只要计数门仍未关闭,就重复上述过程,直至温度寄存值达到被测温度值。
这就是DSl8B20的测温原理。
斜率累加器能对振荡器的非线性予以补偿,提高测量准确度。
温度与数据的对应关系见表1—1
表1—1温度—数据的对应关系
温度/℃
数字输出(二进制)
数字输出(十六进制)
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010001
0191H
+10.125
0000000010100010
00A2H
+0.5
0000000000001000
0008H
0
0000000000000000
0000H
-0.5
1111111111111000
FFF8H
-10.125
1111111101011110
FF5EH
-25.0625
1111111001011111
FE6FH
-55
1111110010010000
FC90H
表1—2DS18B20中温度字节中的位定义
低八位
23
22
21
20
2-1
2-2
2-3
2-4
高八位
S
S
S
S
S
26
25
24
表1—3暂存器主要命令集
指令
说明
约定代码
发生约定代码后单线总线
温度转换
启动DSl8B20进行温度转换
44H
主CPU读DSl8B20的“忙状态”
读暂存器
读暂存器9个字节的内容
BEH
主CPU读9个字节的数据
写暂存器
将数据写入暂存器的TH和TL字节
4EH
主CPU给DSl8B20发出两个字节的数据
2、跳过ROM的操作流程图
图3跳过ROM的操作流程图
3、DS18B20初始化(复位)
单线总线上的所有处理过程均从初始化开始。
初始化包括首先由主CPU发出一个复位脉冲,然后由从属器件发出应答脉冲,通知主CPU。
初始化时主CPU首先发出一个复位信号,将单线总线上所有DSl820复位;然后释放单线总线,改成接收状态,单线总线被上拉电阻只拉成高电平。
在检测到此上升沿后,DSl820需要等待15~60μs才向主CPU发出响
应脉冲。
此后便可对ROM、RAM进行操作。
三、实验仪器材料
△
1、PC计算机
2、单片机实验板
3、DS18B20温度传感器
四、实验内容
1、DS18B20引脚与单片机的连接,注意选择的I/O口要有上拉电阻。
2、LED数码管显示器与单片机的接口设计。
3、画出单片机测量温度与显示的电路图。
4、画出温度测量与显示程序流程图。
5、编写DS18B20温度测量与显示程序。
6、程序调试。
五、实验注意事项
1、在程序设计过程中可以用Keil就行仿真调试。
2、实验效果一定要在单片机实验板上演示成功。
3、在实验报告后面附上程序清单。
六、思考题
1、DS18B20在初始化过程中如果失败,可能有哪些原因?
2、如何设置DS18B20温度测量的分辨率?
实验二温度测量与报警
一、实验目的
1、了解数字化温度传感器DS18B20的工作原理;
2、掌握温度传感器DS18B20的温度报警接口程序设计方法;
二、实验原理
1、原理:
在室内变电站中,由于变压器工作散发的热量使室内温度升高,通常采用排气风机来降低室内温度。
该温度控制器采用单片微型计算机控制,用户可以设置上、下两种不同的温度设定值,并可以长期保存或随时修改,具有报警与控制功能,是一种简单的开关式温度控制系统。
2、主要功能:
A)、显示功能:
两位LED数码显示,可显示温度随机测量值T;也可显示上、下两个不同的温度报警值T上、T下。
B)、温度报警设置功能:
用户可以根据现场实际情况,用选择键K1和参数设定键K2(+)、K3(-)来设定T上、T下温度值。
用K4键来启/停测控系统。
C)、温度控制功能:
本系统有两路继电器输出,分别控制两台电机的启动与关闭。
测量温度T与设定温度T上、T下以及电机工作状态关系如下:
当T>T上时,蜂鸣器响5声,两台电机同时工作,用两个LED灯模拟显示。
当T下 当T 温度设置范围: 00OC~60OC 控制输出: 两路继电器输出。 三、实验仪器材料 △ 1、PC计算机 2、单片机实验板 3、DS18B20温度传感器 四、实验内容 1、设计单片机驱动继电器电路和控制电动机启动、停止接口电路。 2、设计单片机驱动蜂鸣器报警电路。 3、画出单片机测量温度与报警系统的电路图。 4、画出温度测量与报警程序流程图。 5、编写DS18B20温度测量与报警程序。 6、程序调试。 五、实验注意事项 1、在程序设计过程中可以用Keil就行仿真调试。 2、实验效果一定要在单片机实验板上演示成功。 3、在实验报告后面附上程序清单。 六、思考题 1、在键盘设计时应该注意什么问题? 2、如何将温度报警值保存到DS18B20的内部存储器中? 实验三工业顺序控制器 一、实验目的 1、了解工业顺序控制的一般情况; 2、掌握工业顺序控制程序的设计方法; 二、实验原理 1、预备知识: 工业控制中的顺序控制以开关量进行控制的,如机械手、生产线、装配线等,它按顺序有规律地完成规定的动作,每个动作称为一个工序,判断工序的终结的条件是反馈和延时,条件满足则进行工序转移,开始下一个动作的执行。 2、本实验电路原理图: 3、本实验工序名称动作转移条件 待机无P3.0=0 合模P1.0=0P3.1=0 注射P1.1=0P3.2=0 加热P1.2=0延时30秒 开模P1.3=0P3.3=0 顶进P1.4=0P3.4=0 顶退P1.5=0P3.5=0 三、实验仪器材料 △ 1、PC计算机 2、单片机实验板 3、程序下载线 四、实验步骤 1、画单片机实验原理图。 在Proteus环境下画出顺序控制器的实验电路图,将单片机的P1口接LED进行动作显示,将P3口接按键开关作为条件反馈的模拟。 接口设置可以自己根据你的单片机实验板来确定,可以不按实验原理中的电路图来画。 2、程序编制: (1)、注塑机的控制实现如下工艺要求 工序名称 动作 转移条件 待机 无 P3.0=0 合模 P1.0=0 P3.1=0 注射 P1.1=0 P3.2=0 加热 P1.2=0 延时30秒 开模 P1.3=0 P3.3=0 顶进 P1.4=0 P3.4=0 顶退 P1.5=0 P3.5=0 (2)、画出注塑机控制工艺的程序流程图。 (3)、要求用数码管显示延时30秒倒计时的时间。 (4)、按注塑机的控制工艺编写程序,其中注塑机的动作用LED灯进行模拟。 五、实验注意事项 1、在程序设计过程中可以用Keil就行仿真调试。 2、实验效果一定要在单片机实验板上演示成功。 3、在实验报告后面附上程序清单。 六、思考题 实验四PWM技术及其应用 一、实验目的 (1)了解PWM技术及其应用; (2)掌握PWM技术的设计方法。 二、实验原理 1、PWM波原理: LED一般是恒流操作的,如何改变LED的亮度呢? 答案就是PWM控制。 在一定的频率的方波中,调整高电平和低电平的占空比,即可实现。 比如我们用低电平点亮一个LED灯,我们假设把一个频率周期分为10个时间等份,如果方波中的高低电平占空比是9: 1,这是一个比较暗的亮度,如果方波中高低电平占空比是10: 0,这时,全部是高电平,灯是灭的。 如果占空比是5: 5,就是一个中间亮度,如果高低比是1: 9,是一个比较亮的亮度,如果高低是0: 10,这时全部是低电平,就是最亮的。 实际上应用中,电视屏幕墙中的几十百万LED象素都是这样控制的,而且每一个象素都有红绿蓝3个LED,每个LED可以变化的亮度是几百到几万或者更多的级别,以实现真彩色的显示。 还有在您的手机中,背光灯的亮度如果是可以变化的,也是这种工作方式。 目前的城市彩灯也有很多都使用了LED,需要控制亮度是也是PWM控制。 2、实验电路图 三、实验仪器材料 1、PC计算机 2、单片机实验板 3、程序下载线 四、实验内容 1、该部分实验指导材料是单片机PWM技术的实验指导材料,实验内容包括: LED灯的亮度控制与双PWM波输出。 电路图是IIC与PWM混合的实验电路。 实验环境为KeilC51下编译,生成HEX文件后,下载程序后,进行功能验证。 2、根据你的单片机实验板来确定电路设计,可以不按实验原理中的原理图来画电路图。 可以用8个LED灯来实现8个亮度级别的PWM的产生程序。 3、模拟PWM输出控制灯的10个亮度级别程序设计方法。 下面来分析实验的例程,在这个例程中,我们将定时器2溢出定为1/1200秒。 每10次脉冲输出一个120HZ频率。 这每10次脉冲再用来控制高低电平的10个比值。 这样,在每个1/120秒的矩形波周期中,我们都可以改变矩形波的输出占空比,从而控制LED灯的10个级别的亮度。 为什么输出矩形波的频率要120HZ? 因为如果频率太低,人眼就会看到闪烁感觉。 一般起码要在60HZ以上才感觉好点,120HZ就基本上看不到闪烁,只能看到亮度的变化了。 4、51单片机产生双PWM程序设计方法。 程序思路说明: 关于频率和占空比的确定,对于12M晶振,假定PWM输出频率为1KHZ,这样定时中断次数。 设定为C=10,即0.01MS中断一次,TH0=FF,TL0=F6;由于设定中断时间为0.01ms,这样可以设定占空比可从1-100%变化。 即0.01ms*100=1ms。 TH0和TL0是计数器0的高8位和低8位计数器,计算法: TL0=(65536-C)%256;TH0=(65536-C)/256,其中C为所要计数的次数即多长时间产生一次中断;TMOD是计数器工作模式选择,0X01表示选用模式1,它有16位计数器,最大计数脉冲为65536,最长时间为1ms*65536=65.536ms。 五、实验要求 1、在程序设计过程中可以用Keil就行仿真调试。 2、实验效果一定要在单片机实验板上演示成功。 3、画出程序流程图。 4、在实验报告后面附上程序清单。 六、思考题 1、如何改用两个定时器的方法驱动PWM输出? 一个输出占空比,一个输出频率。 这样可以产生更少的中断,避免过多的干扰主程序的运行。 2、如何根据测量输出端口P1.3、P1.4的频率与占空比,分别调节两个按键看频率与占空比的变化。 实验五 一、实验目的 (1)了解顺序控制在家用电器中的应用 (2)掌握洗衣机程序设计方法 二、实验原理 1、洗衣机的工作过程如下: ①程序设定: 水位设定(高、中、低) 程序设定(轻柔快速,强力) ②设定按键 水位设定键K1 程序设定键K2 启动停止键K3 ③程序段时间表 轻柔 快速 强力 进水 √ √ √ 洗1 5 3 8 排水 √ √ √ 脱水 √ √ √ 进水 √ √ √ 洗2 5 3 8 排水 √ √ √ 脱水 √ √ √ ④传感器电路 水位传感器G1 脱水保护开关G2 ⑤实时保护开关 进位超时保护K1 排水超时保护K2 ⑥LED指示灯 L1L2L3——水位指示灯 L4L5L6——程序指示灯 L7——启动(工作)灯 三、实验仪器材料 △ 1、PC计算机 2、单片机实验板 3、程序下载线 四、实验内容 1.画出洗衣机硬件电路图 2.程序设计 水位计数器SW=1(初始化) 低中高 3 2 1 程序计数器CW=1(初始化) 轻柔快速强力 1 3 2 程序流程图 N 打开进水阀 取SW值 启动子程序: 取CW值 调洗衣1 拉开排水阀 调脱水程序 打开进水阀 取SW值 水到位? Y N 水到位? N Y 调洗衣2 拉开排水阀 调脱水程序 结束 五、实验要求 1、在程序设计过程中可以用Keil就行仿真调试。 2、实验效果一定要在单片机实验板上演示成功。 3、画出程序流程图。 4、在实验报告后面附上程序清单。 六、思考题 附录1: DS18B20型单线智能温度传感器简介 由美国DALLAS半导体公司生产的DSl8B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中,例如多路温度测控仪、中央空调、大型冷库、恒温装置等。 此外巧妙利用DSl8B20内部64位激光ROM中具有惟一性的48位产品序号,还可设计成专供大型宾馆客房或军事仓库使用的保密性极佳的电子密码锁。 DSl8B20的电源电压范围均扩展到+3~+5.5V,DSl8B20还能对温度分辨力进行编程,选择9位~12位模式下工作,在12位模式下的最高分辨力可达0.0625℃。 下面介绍DSl8B20的性能特点和工作原理。 1.1DS18B20的性能特点 (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惟一的产品序号,存入其ROM中。 在构成大型温控系统时,允许在单线总线上挂接多片DSl8B20。 (4)适配各种单片机或系统机。 (5)用户可分别设定各路温度的上、下限并写入随机存储器RAM中。 利用报警搜索命令和寻址功能,可迅速识别出发生了温度越限报警的器件。 (6)内含寄生电源。 该器件既可由单线总线供电,亦可选用外部+5V电源(允许电压范围是3.0~5.5V),进行温度/数字转换时的工作电流约为1.5mA,待机电流仅25uA,典型功耗为5mW。 1.2DS18B20的工作原理 DSl8B20的原理与DS1820的原理是一样的。 DS18B20继承了DS1820的所有优点。 DS18B20采用3脚PR—35封装或8脚SOIC封装,引脚排列如图1-1所示。 I/O为数据输入/输出端(即单线总线),它属于漏极开路输出,外接上拉电阻后,常态下呈高电平。 UDD是可供选用的外部+5V电源端,不用时需接地。 GND为地,NC为空脚。 其内部框图如图1-2所示。 主要包括7部分: ①寄生电源;②温度传感器; 64位激光(laser)ROM与单线接口;④高速暂存器,即便笺式RAM,用于存放中间数据;⑤TH触发寄存器和TL触发寄存器,分别用来存储用户设定的温度上、下限tH、tL值;⑥存储与控制逻辑;⑦8位循环冗余校验码(CRC)发生器。 下面分别介绍各部分的工作原理。 (a)PR—35封装(b)SOIC封装 图1-1DS1820/DS18B20的引脚排列 图1-2DS18B20的内部框图 (1)寄生电源 寄生电源由二极管VD1、VD2和寄生电容C所组成。 电源检测电路用于判定供电方式并输出相应的逻辑电平(“0”表示用寄生电源供电,“1”表示由外部电源供电),以便高速暂存器能够读出数据和命令。 采用寄生电源供电时UDD端需接地,DSl8B20就从单线总线上获取电源。 当I/O线为高电平时VD1导通,VD2截止,除向DSl8B20供电外,还把部分电储存在C中。 当I/O线呈低电平时,VD1截止,改由C上的电压Uc继续向DSl8B20供电,该寄生电源有两个显著优点: 第一,检测远程温度时无须本地电源;第二,在缺少正常电源时也能读ROM。 使用寄生电源时应注意,在温度转换期间uP,应使I/O线保持高电平。 若使用外部电源UDD,就通过VD2向器件供电,此时VD1截止。 图1-3示出N片DSl8B20与80C31单片机的接线,R为上拉电阻,典型值可取5.1kΩ或4.7kΩ。 80C31(主CPU)和DS18B20所用的电源电压,分别用Ucc、UDD表示,下同。 现将8031单片机P1口中的P1.0端接单线总线,加总线驱动电源后,理论上总线最多可挂接248片DSl8B20。 80C31依次发出操作指令,各片DSl8B20即可在200~500ms之内完成温度转换。 图1-3多片DS1820(DS18B20)与80C31的接线 (2)测温电路原理 DSl8B20内部测温电路框图如图1-4所示。 低温度系数振荡器用于产生稳定的频率ƒ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-4内部测温电路框图 表1—1温度—数据的对应关系 温度/℃ 数字输出(二进制) 数字输出(十六进制) +125 0000011111010000 07D0H +85 0000010101010000 0550H +25.0625 0000000110010001 0191H +10.125 0000000010100010 00A2H +0.5 0000000000001000 0008H 0 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 S S S S 26 25 24 DSl8B20型单线智能温度传感器典型的测温误差曲线如图3-6所示。 由图可见,在0~70℃范围内,DSl8B20的上、下限测温误差分别为+0.5℃、-0.5℃,而典型产品的误差仅为±0.25℃。 (3)64位激光ROM 芯片内部有经过激光修正的ROM,内含64位ROM编码,包括产品系列号(高8位)、产品序号(中间48位)和CRC编码(低8位)。 编码格式如下: 8位产品系列号 48位产品列号 8位CRC编码 MSBLSBMSBLSBMSBLSB (4)高速暂存器(简称暂存器) 它由便笺式RAM、非易失性电擦写E2RAM所组成,后者用来存储tH和tL 图1-5暂存器的操作命令流程图 值。 数据先写入RAM,经校验后再传给E2RAM。 便笺式RAM占9个字节,第0、1字节是测量出的温度信息,第2、3字节分别是tH、tL值,第4、5字节不用。 第6、7字节为计数寄存器,可用于提高温度分辨力。 第8字节用来存储上述8字节的循环冗余校验码。 详见表3—2。 暂存器的命令集见表3—3。 6条命令分别为温度转换、读暂存器、写暂存器、复制暂存器、 重新调出E2RAM、读电源供电方式。 暂存器的操作命令流程如图3-7所示。 表1—2暂存器的内容 便笺式RAM 字节 E2RAM 温度低字节 0 温度高字节 1 报警上限/用户定义字节1 2 报警上限/用户定义字节1 报警下限/用户定义字节2 3 报警下限/用户定义字节2 保留 4 保留 5 计数余数值 6 每度计数值 7 CRC 8 表1—3暂存器命令集 指令 说明 约定代码 发生约定代码后单线总线 温度转换 启动DSl8B20进行温度转换 44H 主CPU读DSl8B20的“忙状态” 读暂存器 读暂存器9个字节的内容 BEH 主CPU读9个字节的数据 写暂存器 将数据写入暂存器的TH和TL字节 4EH 主CPU给DSl8B20发出两个字节的数据 复制暂存器 把暂存器的TH、TL字节写入E2RAM中 48H 主CPU读DSl8B20的“忙状态” 重新调E2RAM 把E2RAM中的TH、'FL字节分别调入暂存器TH、TL字节 B8H 主CPU读DSl8B20的“忙状态” 读电源供电方式 启动DSl8B20发送电源供电方式的信号给主CPU B4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 控制 实验 指导书