800 likes | 957 Views
学习情境二 辐射式传感器与单片机接口. 学习子情境 1 超声波传感器与 单片机接口. 2.1.1 数码管与单片机的接口 2.1.2 LED 数码管动态显示 2.1.3 独立式按键与单片机的接口设计 2.1.4 超声波传感器及特征 2.1.5 超声波传感器的典型应用. P0 口. P1 口. P2 口. P3 口. 2.1.1 数码管与单片机的接口. 1 单片机的并行 I/O 接口. 四个并口的比较. 例 1 :电路如下图所示,试用二极管显示按键当前状态。. 电路分析:
E N D
学习情境二 辐射式传感器与单片机接口 学习子情境1 超声波传感器与 单片机接口
2.1.1 数码管与单片机的接口 2.1.2 LED数码管动态显示 2.1.3 独立式按键与单片机的接口设计 2.1.4 超声波传感器及特征 2.1.5 超声波传感器的典型应用
P0口 P1口 P2口 P3口 2.1.1 数码管与单片机的接口 1 单片机的并行I/O接口
例1:电路如下图所示,试用二极管显示按键当前状态。例1:电路如下图所示,试用二极管显示按键当前状态。 电路分析: 电路中P1口的低四位接按键,作输入口使用,高四位接发光二极管,作输出口使用。
这是流程图,在设计程序之前应首先绘制流程图,流程图是编写和修改程序的依据。这是流程图,在设计程序之前应首先绘制流程图,流程图是编写和修改程序的依据。 • 软件设计: ……… L:MOV P1,#0FH MOV A,P1 ANL A,#0FH SWAP A MOV P1,A SJMP L ;将P1口低四位置为输入口 ;将按键状态读回单片机 ;将读回数据的高四位清零 ; 将状态值交换到A的高四位 ;将状态值送至P1口的高四位 ;返回起始点
从这一实例中我们可以看到: • 同一个并口的每一位可以单独使用,例如: SETB P1.0;将P1.0置1 • 也可以设置某些位为输入口,某些位为输出口。例如本例中P1口的低四位为输入口,高四位为输出口。
P3.5 P3.4 P3.3 P3.2 P1.0 P1.1 P1.3 P1.2 P0口 2 .数码管基础知识 • 与单片机接口的常用显示器件有LED(Light Emiting Diode)和LCD(Liquid Crystal Display),这里主要介绍LED数码管的相关知识。
共阳结构 共阴结构 • 七段显示器的原理
共阴数码管段码 • 数码管的显示代码表 共阳数码管段码
#89H #76H • 共阴、共阳数码管比较 例:使下面两个数码管都显示H。 H的段码: H的段码:
2.1.2 LED数码管动态显示 • LED数码管动态显示硬件结构 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 8051 4# 2# 1# 3# 5# 6# P3.0 P3.1 P3.2 P3.3 P3.4 P3.5
LED数码管动态显示硬件结构电路原理分析 • 单片机1个并口P1口作为6个数码管公共的段码输入端; • 单片机的P3.0~P3.5作为数码管的6个位选信号控制端; • 7407和7406分别作为段码和位选的驱动信号; • LED数码动态扫描原理 • 首先点亮LED1,其于5个LED熄灭,保持3mS左右,消隐; • 其次点亮LED2,其于5个LED熄灭,保持3mS左右,消隐; • …… • 最后点亮LED6,其于5个LED熄灭,保持3mS左右,消隐; • 扫描完1次大约需要24mS(每一次消隐1mS),扫描周期为50HZ左右;又由于人眼的“视觉暂留”现象,则认为所有的数码管是恒定点亮的。
从P1口送出1#段码;P3.0←1、其它输出0 从P1口送出6#段码;P3.5←1、其它输出0 延时3ms(1#)显示) 延时3ms(6#)显示) 从P1口送出00H 从P1口送出00H 延时1ms消隐 延时1ms消隐 流程图:
案例分析1(2位学号显示) • 硬件电路原理图 P3.2 P3.3 P3.4 P1.3 P1.2 P1.1 P1.0 P3.5
开 始 30H ←#39H,A ←30H 取出(ACC)低4位,查出8段码,送P0口,P3.4←1 ,P3.5←0 延时3ms(LED1显示) 从P0口送出0FFH 延时1ms(消隐) 取出(ACC)高4位,查出8段码,送P0口,P3.4←0 ,P3.5←1 延时3ms(LED2显示) 从P0口送出0FFH 延时1ms(消隐) 流程图:
取出低位的段码,送LED1 两者区别 取出高位的段码,送LED2 • 程序清单 ORG 0000H MOV P0,#0FFH ;段码清零 MOV 30H,#39H ;写入需要显示的数据“39” MOV DPTR,#TAB ;共阳极数码管的段码表 LOOP: CLR P3.4 ;选中LED1 SETB P3.5 MOV A, 30H ANL A,#0FH ;高4位清0,保留低4位 MOVC A,@A+DPTR ;查表取出低4位的段码 MOV P0,A ;段码送P0口 LCALL DELAY3ms ;延时3ms MOV P0,#0FFH LCALL DELAY1ms ;消隐1ms CLR P3.5 ;选中LED2 SETB P3.4 MOV A,30H ;取显示数据 ANL A,#0F0H ;低4位清0,保留高4位 SWAP A ;累加器高低4位交换
思考:如果是共阴数码管呢? • 程序清单(续) MOVC A,@A+DPTR ;查表取出段码 MOV P0,A ;段码送P0口 LCALL DELAY3ms ;延时3ms MOV P0,#0FFH LCALL DELAY1ms ;消隐1ms LJMP LOOP TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H DB 0F8H,80H,90H,88H,83H,0C6H,0A1H DB 86H,8EH ;“0—F”的共阳极段码表 END
案例分析2(简易按键抢答) • 题目要求:使用案例1中的硬件电路实现以下功能。 • 实现4路信号的输入 • 利用数码管显示按键状态 • 当K1按下时,数码管的最低位(P3.5)显示“1”; • 当K2按下时,数码管的最低位显示“2”; • 当K3按下时,数码管的最低位显示“3”; • 当K4按下时,数码管的最低位显示“4”。 • 每次限时30S
P1口读入数据 (A)=? =0EH =0DH =0BH =07H 其他 显示1 显示2 显示3 显示4 返回 判决分支 流程图:
CJNE(条件转移指令) 常用于多分支程序中 显示1 条件 显示2 0 N 1 N-1 …… 显示3 程序1 程序2 程序N-1 程序N 显示4 • 程序清单 ORG 0000H MAIN: MOV A, P1 ANL A, #0FH CJNE A, #0EH,LOOP0 MOV R1,#01H LCALL DISP LJMP MAIN LOOP0: CJNE A,#0DH,LOOP1 MOV R1,#02H LCALL DISP LJMP MAIN LOOP1: CJNE A,#0BH,LOOP2 MOV R1,#03H LCALL DISP LJMP MAIN LOOP2: CJNE A,#07H,LOOP3 MOV R1,# 04H LCALL DISP LOOP3: LJMP MAIN
程序清单(续) DISP: MOV DPTR,#TAB ;查表显示 MOV A,R1 MOVC A,@A+DPTR ANL P3,#0DFH ;选中P3.5对应的数码管 MOV P0,A ;送段码 DEL30S:MOV R2,#30 ;延时30S DELS: LCALL DEL1S DJNZ R2,DELS MOV P0,#0FFH ;清除显示 RET ;重新开始下一次抢答 DEL1S: …… ;延时1S子程序 RET TAB: …… END
2.1.3 独立式按键与单片机的接口设计 1. 按键与单片机的接口 • 独立式按键与单片机的接口 芯片内有上拉电阻 芯片内无上拉电阻
键盘查询 • 按键在闭合和断开时,触点会存在抖动现象
硬件消抖 硬件消抖在很大程度上可以降低抖动,但不能彻底根除。
注意此处所查的电平状态要取决于电路特点。这一点十分重要。注意此处所查的电平状态要取决于电路特点。这一点十分重要。 N P3.0=0 用什么指令实现呢? Y 延 时 N P3.0=0 Y 按键没按下 按键按下 • 软件消抖 上图所用的软件消抖方法
例1:电路如下图所示,编程实现用按键K1控制数码管的显示,通过按下按键使数码管交替显示H和L。例1:电路如下图所示,编程实现用按键K1控制数码管的显示,通过按下按键使数码管交替显示H和L。
解题思路 • 本例中要求显示的内容比较特殊,根据共阴数码管的显示特性及数码管与单片机的接口方式,首先计算H和L字符的显示段码:
P3.0=0? N Y 延时消抖 N P3.0=0? Y 标志位取反 标志为1吗? N Y 结论A 结论B • 此题中只需在每次判断按键后,按键确实按下的前提下,将标志位取反即可。 • 程序是根据按键来反复切换显示内容的,对于这种在两种状态间变化的问题,可通过在程序中设置标志位(因为一位的状态只有0和1两种状态),并检测标志位的状态来实现,如左侧流程图所示:
P3.0=0? N Y 延时消抖 F0是什么? N P3.0=0? Y 标志位取反 标志为1吗? N Y 结论A 结论B ORG 0000H MAIN:MOV P1,#00H CLR F0;将标志位F0清0作准备 KEY:JB P3.0,JCBZ LCALL DEL12 JB P3.0,JCBZ CPL F0 JCBZ: JNB F0,XH MOV P1,#38H;显示L SJMP KEY XH: MOV P1,#76H;显示H SJMP KEY
例2:电路如下图所示,编程实现在数码管上循环显示数字0~9,相邻数据之间间隔1秒。例2:电路如下图所示,编程实现在数码管上循环显示数字0~9,相邻数据之间间隔1秒。
这样实在是太麻烦了,就没有好的方法吗?能用循环的方法实现吗?这样实在是太麻烦了,就没有好的方法吗?能用循环的方法实现吗? • 解决方案一: • 用上一课题的循环程序设计的方法 ORG 0000H MAIN: MOV P1,#0C0H LCALL DEL MOV P1,#0F9H LCALL DEL MOV P1,#0A4H LCALL DEL ………
可是数码管的段码有没有什么规律可找,怎么办呢?可是数码管的段码有没有什么规律可找,怎么办呢? • 对于象案例中这种规律性不是很强,或计算比较困难的程序控制,可以考虑采用查表的方法来完成。 比如:1、数码显示;2、单片机通过D/A 转换器输出正弦波 查表 程序??
查表程序编写的一般方法 MOV DPTR,#TABLE;定义表的首地址,即表的标号 MOV A,?? ;把要查的数的序号赋给A MOVC A,@A+DPTR ;查表,结果存于A中 …… …… TABLE: DB ??,??,?? ;表定义,??代表各字节的内容,如果 DB ??,??,?? ;一行写不完,第二行以DB 开头继续
1、表格中每个数据占据一个存储单元时,使用DB进行定义,例如:1、表格中每个数据占据一个存储单元时,使用DB进行定义,例如: TAB1:DB 0D4H,48H,22H,51H DB 04H,96H,03H,95H 2、表格中每个数据占据二个存储单元时,使用DW进行定义,例如: TAB2:DW 100H,1ACH,814 DW 567,546H,2345,890 • 表格构造方法 • 表格的内容:表格可由数据、字符、地址等内容构成。 • 表格的特点:表格可由多行构成,每一行以伪指令DB或DW开头,相邻数据间以“,”间隔,最后不加“,”。
例2的解决方案二 ——采用查表程序的设计方法 • 此题循环程序设计的关键: • 显示初值:0(存于30H单元) • 循环次数:10(存于R7中)(数据0~9,共10个数) • 显示内容:通过查表得到数码管的段码 为什么不放在A中呢?
查表程序的设计——例2 ORG 0000H MAIN:MOV 30H,#00H MOV R7,#10 MOV DPTR,#TAB L1: MOV A,30H MOVC A,@A+DPTR MOV P1,A LCALL DEL INC 30H DJNZ R7,L1 SJMP MAIN TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
2.1.4 超声波传感器及特征 1.超声波: 高于2×1O4Hz的机械波。 超声波波长、频率与速度C的关系为: 2.超声波的特征: 频率高(可达2×104Hz ~109Hz),因而波长短,绕射现象小,方向性好,能够成为射线而定向传播; 超声波在液体、固体中衰减很小,穿透本领大,碰到杂质或分界面就会有显著的反射。
3. 超声波的波型 ①纵波。 ②横波。 ③表面波 ④兰姆波。
4 波的叠加、干涉及驻波 1.干涉现象 由不同波源发出的频率相同、振动方向相同、相位相同或相位差恒定的两个波在空间相遇时,某些点振动始终加强,某些点振动始终减弱或消失,这种现象称为干涉现象。 2. 驻波 两个振幅相同的相干波在同一直线上彼此相向传播时叠加而成的波称为驻波。 3.波腹/节点 每相距的这些点上,介质保持静止状态,这些点称为节点,节点之间对应介质位移最大的点称为波腹。
5 超声波的反射、折射及波型转换 1.反射、折射 当声波传播至两介质的分界面,一部分能重返回原介质,称为反射波; 另一部分能量透过介质面, 到另一介质内继续传播,称为折射波。 如图9-1所示
6 折射定律 • 入射角与波速的符号如上, • 折射角为 ,则有
7 多普勒效应 声源和工件之间有相对运动时,反射回来的超声波的频率将与声源发射超声波的频率有所不同,这种现象即为多普勒效应,由此效应引起的频率变化称为多普勒频移。 设在S有一声源,发出一频率为的超声波,如果接收点以速度V0与声波传播方向同向运动,此时声波相对于运动着的接收点的速度是C—V0,因此接收点所收到的频率为 如接收点不动,而声源以速度 VS运动接近接收点,则在一秒钟内声源发出了f s次振动,但第一次是在S点发出的,到接收点接收到第 f s次振动时声源却已经前进了VS的距离,因此 f s次振动就像只通过 距离一样。而对接收点来说,声波仍以介质中的声速 C传来,所以接收到的波长和同挤紧了 的波长一样。所以,接收点感觉到的频率 将为 • 其中多普勒频移为: • 如果速度方向不一致时,只要把有关速度在这方向上的分量代入公式,即可得相应的多普勒效应 。
超声波位置传感器尤其适用于存在/非存在监测、精确距离监测,或其它类型传感技术不能很好的发挥作用的应用领域,如监测透明或发光物体、充满雾气或尘埃的空气,或是喷射状液体。超声波位置传感器尤其适用于存在/非存在监测、精确距离监测,或其它类型传感技术不能很好的发挥作用的应用领域,如监测透明或发光物体、充满雾气或尘埃的空气,或是喷射状液体。
8 传感监测能力 距离 • 近距离 < 1 m [39 in] • 中等距离 1 m to 2 m [39 in 到 79 in] • 长距离> 2 m [80 in up] 原料
9 远距离传感器 > 2 m [80 in 以上] 942-A4M-2D-k130E 942-A4N-2D-1C1-130E 942-M3A-2D-1G1-130E 传感器监测范围 光束孔径角 振荡频率 可重复性 输出类型 反应时间 额外 输入/输出值
超声波传感器 超声波传感器是通过发生高频声波,然后测量声波从发生器发出、至目标物体再反射回来所需要的时间,来进行传感监测的。也可称为“传播时间”
超声波传感器的操作功能 • 1. 传感器变送器发射高频声波 (175KHZ 到 215KHZ) • 目标物体将声波反射回来 • 标送器接收到反射回来的信号 • 4. 测量传播时间 • 5. 将空气温度取样Temperature of air is sampled • 6. 计算距离
超声波传感器: 不同的类型 频率 优点 缺点 对噪音敏感 可重复性低 强阻尼 近距离 40kHz 215kHz 弱阻尼 远距离 高抗噪音干扰度 高分辨率
典型工业噪音频谱 dB 50 100 150 200 f (kHz) 注意: 许多同类传感器使用的是40 kHz的载波频率