490 likes | 578 Views
任务七 电动云台的控制. 学习目标 :过学习任务七的完成方法,熟悉步进电机的工作原理,掌握单片机的串行通信过程等 。 任务描述 : 在安防系统中与摄像机配合使用的电动云台一般使用的是步进电机实现对云台的控制,从而实现对不同角度的摄像的功能。要求通过单片机的串行口实现对电动云台的控制。. 步进电机的工作原理.
E N D
任务七 电动云台的控制 学习目标:过学习任务七的完成方法,熟悉步进电机的工作原理,掌握单片机的串行通信过程等。 任务描述:在安防系统中与摄像机配合使用的电动云台一般使用的是步进电机实现对云台的控制,从而实现对不同角度的摄像的功能。要求通过单片机的串行口实现对电动云台的控制。
步进电机的工作原理 步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,它的的驱动电路根据控制信号工作,控制信号由单片机产生。当步进驱动器接收到 一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,控制换相顺序,即通电控制脉冲必须严格按照一定顺序分别控制各相的通断。通过控制脉冲个 数即可以控制角位移量,从而达到准确定位的目的。控制步进电机的转向,即给定工作方式正序换相通电,步进电机正转,若按反序通电换相,则电机就反转。控制 步进电机的速度,即给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步,两个脉冲的间隔越短,步进电机就转得越快。同时通过控制脉冲频率 来控制电机转动的速度和加速度,从而达到调速的目的。
第6章MCS -51单片机的串行口 • 6.1计算机串行通信基础 基本概念 通信方式 • 6.2 MCS-51单片机的串行口 • 6.3 MCS-51单片机串行口的应用 • 6.4串行通信的标准接口 • 思考题
6.1计算机串行通信基础 基本概念 • 串行通信是将数据的各位一位一位地依次传送。适合于计算机之间、计算机与外部设备之间的远距离通信。 01000010 A B 11100111 返回本章首页
通信方式 • 串行通信从数据传输方式分为: 单工方式、半双工方式、全双工方式。 • 从信息格式来说,串行通信有两种方式: 异步通信方式、同步通信方式。 • 波特率:每秒钟传送二进制代码的位数。b/s、 bps 、位/秒。 返回本章首页
B 接 A 发 (a) 单工方式
B A 发 发 收 收 (b) 半双工方式
A 发 收 B 收 发 (c) 全双工方式
… P 0/1 0 D0 D1 D2 D3 D4 D5 D6 0/1 0/1 D0 … 起 始 位 数 据 位 校 停 验 止 位 位 n-1 第n个字符(一串行帧) n+1 P 1 异步通讯的帧格式
同步——发送设备时钟与接收设备时钟严格一致。同步——发送设备时钟与接收设备时钟严格一致。 发送设备 接收设备
6.2 MCS-51单片机的串行口 • 一、 串行口的结构 • 二、串行口的工作方式 • 三 、波特率的计算 返回本章首页
一、 串行口的结构 P3.1 P3.0 MCS-51串行口组成示意
D7 D6 D5 D4 D3 D2 D1 D0 1 0 发送: CPU 发送寄存器SBUF 发送时钟
1 0 D7 D6 D5 D4 D3 D2 D1 D0 接收: CPU 接收数据寄存器SBUF 接收时钟
SM0、SM1:工作方式选择位(四种工作方式) SM2:多机通信控制位(常与RB8配合,决定是否激活RI) REN:允许接收控制位 TB8:发送的第九位数 RB8:接收的第九位数 TI / RI :中断请求标志位(前面已讲过) 1.串行口数据缓冲器SBUF 2.串行口控制寄存器SCON 该寄存器的字节地址为98H,可位寻址。
3.特殊功能寄存器PCON 其字节地址为87H,没有位寻址功能。PCON 的格式如图7-7所示,其中与串行接口有关的只 有D7位。 SMOD位用于决定波特率的倍数。 0 20 = 1倍 1 21 = 2倍 返回本节
二、 串行口的工作方式 MCS-51的串行口有四种工作方式,它是由SCON中 的SM1和SM0来决定的,如表格 7-1 表7-1 串行口工作方式
1.方式0 同步移位寄存器方式 数据从RXD输入或输出,TXD仅作同步移位脉冲 波特率固定为fosc / 12 RXD —— 接收发送数据 TXD —— 产生同步移位脉冲 接收/发送完,置位RI / TI ,(要求SM2 = 0) 发送 发送 接收 无起始位,无停止位 。可用于并口的扩展。 无起始位,无停止位 。可用于并口的扩展。
2.方式1 8位UART 停止位 D7 D6 D5 D4 D3 D2 D1 D0 起始位 起始位 D0 D1 D2 D3 D4 D5 D6 D7 停止位 1起始位、8位数据位、1位停止位 发送 发送完置位TI。 接收 送 RB8 当接收到数据后,置位RI是有条件的。即: REN = 1,RI = 0 且SM2 = 0或SM2 = 1但是接收到的停止位为1。 此时,数据装载SBUF, RI置1 ,停止位进入RB8。
波特率=(2SMOD/32)×T1溢出率 例 T1的方式2下, 1 T=(28-X) × 12 × fosc 1 fosc T1的溢出率= = T 12 ×(28-X)
3.方式2 9位UART 停止位 起始位 D0 TB8 D1 D7 D2 D6 D3 D5 D4 D4 D5 D3 D2 D6 D7 D1 D0 RB8 起始位 停止位 一般用于多机通信。一帧信息11位。 发送 发送完数据置位TI。 接收 送RB8 接收到有效数据完毕,置位RI的条件: REN = 1,RI = 0 且SM2 = 0或接收到第9位数据为1, 此时,数据装载SBUF,RI置1,第9位数据(TB8)RB8。
4.方式3 • 当SM0SM1=11时,串行口工作在方式3。方式3为波特率可变的9位异步通信方式,除了波特率外,方式3和方式2相同。 • 方式3的波特率由下式确定: 方式3波特率=(2SMOD/32)×定时器T1的溢出率 返回本节
三 、 波特率的计算 表7-2 波特率计算公式
表7-3 常用的波特率及计算器初值 返回本节
6.3 MCS-51单片机串行口的应用 一、 串行口方式0用作扩展并行I/O口 二、 方式1与点对点的异步通讯 三、 方式2、方式3与多机通讯 四、微机与单片机之间的通讯 返回本章首页
一、 串行口方式0用作扩展并行I/O口 图7-11 串行口方式0扩展并行输出口
MOV SCON,#00H ;串行口方式0初始化 MOV A,#80H ;最左一位发光二极管先亮 CLR P1.0 ;关闭并行输出 START1: MOV SBUF,A ;开始串行输出 LOOP: JNB TI,LOOP ;查询TI SETB P1.0 ;启动并行输出 ACALL DELAY ;显示延时 CLR TI ;清发送中断标志 RR A ;准备右边一位显示 CLR P1.0 ;关闭并行输出 SJMP START1 ;再一次串行输出 返回本节
二、 方式1与点对点的异步通讯 例 甲乙两台单片机以方式1进行串行通信,波特率为1200,甲发送,数据在甲机外RAM1000H~101FH单元中;乙接收,把数据存入外RAM1000H~101FH单元中。甲乙的晶振频率为6MHZ。 解(1) (2)波特率= (2SMOD/32)×fosc/ [12 ×(28-X)] 令SMOD=0 256-X=6 ×106/(384 ×1200) X=243=0F3H (3)SCON=0100 0000=40H 0101 0000=50H 甲 TXD GND RXD GND 乙
(4)甲机程序 主程序 中断服务程序
ORG 0070H ZD:CPL TI CJNE R0,#1FH,LOOP CLR ES SJMP L1 LOOP:INC R0 INC DPTR MOVX A,@DPTR MOV SBUF,A L1:RETI END ORG 0000H LJMP MAIN ORG 0023H LJMP ZD ORG 0600H MAIN:MOV SCON,#40H MOV TMOD #20H MOV TH1,#0F3H MOV TL1,#0F3H SETB TCON.6 SETB EA SETB ES MOV DPTR,#1000H MOV R0,#00H MOVX A,@DPTR MOV SBUF,A SJMP $
(5)乙机程序 主程序 中断服务程序
ORG 0000H LJMP MAIN ORG 0023H LJMP ZD ORG 0600H MAIN:MOV SCON,#50H MOV TMOD #20H MOV TH1,#0F3H MOV TL1,#0F3H SETB TCON.6 SETB EA SETB ES MOV DPTR,#1000H MOV R0,#00H SJMP $ ORG 0060H ZD:CPL RI MOV A,SBUF MOVX @DPTR , A CJNE R0,#1FH,LOOP CLR ES SJMP L1 LOOP: INC R0 INC DPTR L1:RETI END
MOV TMOD,#20H ;定时器1设为方式2 MOV TL, #0F3H ;定时器初值 MOV TH1, #0F3H ;8位重装值 SETB TR1 ;启动定时器1 MOV SCON,#50H ;串行口设为方式1,REN=1 MOV R0, #20H ;发送数据区首址 MOV R1, #40H ;接收数据区首址 ACALL SOUT ;输出一个字符 $: SJMP $ ;等待中断 ORG 0023H ;串行口中断入口 AJMP SBRl ;转至中断服务程序 SBRl: JNB RI,SEND ;TI=1,为发送中断 ACALL SIN ;RI=1,为接收中断 SJMP NEXT ;转至统一的出口 例 在下面给出的实现指定功能的通讯程序中,发送和接收都通过调用子程序来完成,并设发送数据区的首地址为20H,接收数据区的首地址为40H。 主程序: 中断服务程序:
SEND: ACALL SOUT ;调用发送子程序 NEXT: RETI ;中断返回 SOUT: MOV A,@Ro ;取发送数据到A MOV C,P ;加上奇校验位 CPL C MOV ACC.7,C INC R0 ;修改发送数据指针 MOV SBUF,A ;发送ASCII码 CLR TI ;清发送中断标志 RET 发送子程序:
SIN: MOV A,SBUF ;读出接收缓冲区内容 MOV C,P ;取出校验位 CPL C ;奇校验 ANL A,#7FH ;删除校验位 MOV @R1,A ;读入接收缓冲区 INC R1 ;修改接收数据指针 CLR RI ;清接收中断标志 RET 接收子程序: 返回本节
三、 方式2、方式3与多机通讯 多机通讯连接示意图 返回本节
四、 微机与单片机之间的通讯 微机与单片机串行通信接口
(a)MC1488 (b)MC1489 TTL RS232 RS232 TTL MC1488,MC1489引脚 返回本节
6.4 串行通信的标准接口 一、相互通道的典型结构 二、关于RS-232C、RS-449、RS-422、RS-423和RS-485接口 返回本章首页
一、相互通道的典型结构 多机系统的相互通道 返回本节
二、关于RS-232C、RS-449、RS-422、RS-423和RS-485接口二、关于RS-232C、RS-449、RS-422、RS-423和RS-485接口 1.RS-232C接口 通过电话网实现远程连接
引脚号 符号 名称 说明 1 PGND 保护地 为了安全和大地相连,有时可不接 2 TXD 发送数据 从DTE到DCE的数据线 3 RXD 接收数据 从DCE到DTE的数据线 4 RTS 请求发送 当DTE希望在数据线上传递数据时由DTE发出,DCE通过所得到的控制信号决定是否响应 5 CTS 允许发送 允许计算机发送数据时,则由DCE发出 6 DSR 数字置位就绪 当数据线已被接好后由DCE发出 7 SGND 信号地 作为信号地的公共回路 8 DCD 数据载波检测 当DCE已经从数据线上接收到信号时发出此信号 20 DTR 数字终端就绪 当DTE已准备好和调制解调器交换数据时,由DTE发出,使用公共通信网时才需要 22 RI 振铃指示 当正在进行通信时,由DCE发出,使用公共通信网时才需要 微机中常用的RS-232C接口信号
2.RS-449、RS-422、RS-423和RS-485接口 特性参数 RS-232C RS-423 RS-422 RS-485 工作模式 单端发 单端收 单端发 双端收 双端发 双端收 双端发 双端收 在传输线上允许的驱动器和接收器数目 1个驱动器 1个接收器 1个驱动器 10个接收器 1个驱动器 10个接收器 32个驱动器 32个接收器 最大电缆长度 15m 1200m (1kb/s) 1200m (90kb/s) 1200m (100kb/s) 最大速率 20kb/s 100kb/s (12m) 10Mb/s (12m) 10Mb/s (15m) 驱动器输出 (最大电压) ±25V ±6V ±6V -7V~+12V 驱动器输出 (信号电平) ±5V(带负载) ±15V(未带负载) ±3.6V(带负载) ±6V(未带负载) ±2V(带负载) ±6V(未带负载) ±1.5V(带负载) ±5V(末带负载) 驱动器负载阻抗 3kΩ~7kΩ 450Ω 100Ω 54Ω 驱动器电源开路电流 (高阻抗态) Vmax/300Ω (开路) ±100μA(开路) ±100μA(开路) ±100μA(开路) 接收器输入电压范围 ±15V ±10V ±12V -7V~+12V 接收器输入灵敏度 ±3V ±200mV ±200mV ±200mV 接收器输入阻抗 2kΩ~7kΩ 4kΩmi n 4kΩmin 12kΩmin 返回本节
终端/计算机与终端/计算机简化连接形式 (a) (b)
思考题 1、什么叫串行通信? 2、UART叫什么?(通用异步接收/发送器) 3、单工、半双工、全双工? 4、串口有几种工作方式? 5、波特率如何设置?(T1的计数初值如何确定)