温度设置范围:
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