学习情境8机器人的设计与制作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习情境8 机器人的设计与制作
8.1资讯—知识准备
8.1.1 智能机器人的介绍
随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已经可以在一块芯片上同时集成CPU、存储器、定时器/计数器、并行和串行接口、看门狗、前置放大器,甚至A/D、D/A转换器等电路,这就很容易将计算机技术与测量控制技术结合起来,组成所谓的“智能化测量控制系统”。这促使机器人技术也有了突飞猛进的发展,现在人们已经完全可以设计并制造出具有某些特殊功能的简易智能机器人了。
8.1.2MCS-51单片机的串行接口及串行通信
一、串行通信概述
1、什么叫串行通信?
并行、串行举生活中的例子(排横队行走,排纵队行走)说明;
引出并行通信,串行通信的概念。
P00
P01
P02
P03
RXD
TXD
2、同步通信、异步通信
提问:数字电路中移位寄存器是怎样进行移位的?
同步——发送设备时钟等于接收设备时钟。
同步字符1 同步字符2 数据1 数据2 ···数据n 校验字符校验字符
异步——发送时钟不一定等于接收时钟。
空闲位起始位 5 ~ 8位数据奇偶校验位停止位空闲位
3、串行通信方向
A B
发半双工发
收收
A 全双工 B
4、波特率
即串行通信速率。b/s 、bps
举例、设有一帧信息,1个起始位、8个数据位、1个停止位,传输速率为240个字符。求波特率。
解:
(1+8+1)×240 = 2400 b/s = 2400波特。
5、串行通信接口
发送:展示投影胶片CPU
D7 D6 D5 D4 D3 D2 D1 D0 发送数据寄存器
SBUF(99H)
1 D7 D6 D5 D4 D3 D
2 D1 D0 0 发送数据
发送时钟
接收:展示投影胶片
接收时钟
0 D0 D1 D2 D3 D4 D5 D6 D7 1 接收数据
D0 D1 D2 D3 D4 D5 D6 D7 接收数据寄存器
SBUF(99H)
CPU
二、MCS-51机串行接口
单片机内有:通用异步接收/发送器UART
全双工,4种工作方式,波特率可编程设置,可中断。
1、串口的组成
从编程角度讲来看主要由以下寄存器组成。
PCON SMOD
SCON SM0 SM1 SM2 REN TB8 RB8 TI RI
SBUF D7 D6 D5 D4 D3 D2 D1 D0 SBUF发
SBUF收SM0、SM1:工作方式选择位(后面再讲)
SM2:多机通信控制位,常与RB8配合,决定是否激活RI
REN:允许接收
TB8:发送的第九位数
RB8:接收的第九位数
TI :中断标志
RI
SMOD:波特系数选择位,0 ——20 = 1
1 ——21 = 2
2、串行口的工作方式
(1)方式0:同步移位寄存器方式,波特率固定为fosc / 12
RXD ——接收发送数据
TXD ——产生同步移位脉冲
接收/发送完,置位RI / TI ,(要求SM2 = 0)
方式0 发送
接收
无起始位,无停止位
(2)方式1:8位UART,波特率为(2SMOD×T1的溢出率)/ 32
停止位D7 D6 D5 D4 D3 D2 D1 D0 起始位发送位
起始位D0 D1 D2 D3 D4 D5 D6 D7 停止位接收位
1帧信息,10位。送RB8位
波特率可变:2SMOD / 32 ×(T1的溢出率)
发送完置位TI。
接收完数据置位RI。
置位RI是有条件的。即:
REN = 1,RI = 0 且SM2 = 0或SM2 = 1但是接收到的停止位为1。
此时,数据装载SBUF,停止位进入RB8,RI置1。
(3)方式2、方式3 :9位UART,多机通信。
方式2波特率:(固定)2SMOD / 64 ×fosc
方式3波特率:2SMOD / 32 ×(T1溢出率)
发送完数据置位TI。
接收到有效数据完毕,置位RI。
有效数据条件:REN = 1,RI = 0 且SM2 = 0或接收到第9位数据为1。
此时,数据装载SBUF,第9位数据(TB8),RI置1。
3、波特率的设置
方式0、方式2固定。
方式1,方式3可变。波特率= 2SMOD / 32 ×(T1的溢出率)
T1溢出率= 单位时间内溢出次数= 1 /(T1的定时时间)
而T1的定时时间t就是T1溢出一次所用的时间。此情况下,一般设T1工作在模式2(8位自动重装初值)。
N = 28-t / T,t = (28-N)T =(28-N)×12 / fosc
所以,T1溢出率= 1/t = fosc / 12(28-N),
故,波特率= 2SMOD / 32 ×fosc / 12(256-N)。
若已知波特率,则可求出T1的计数初值:
y = 256-2SMOD×fosc / (波特率×32×12)
巩固新课:
例、若fosc = 6MHz,波特率为2400波特,设SMOD = 1,则定时/计数器T1的计数初值为多少?并进行初始化编程。
解:y = 256-2SMOD×fosc / (2400×32×12)= 242.98≈243 = F3H 同理,fosc = 11.0592MHz,波特率为2400,设SMOD = 0,则
y = F4H
初始化编程:
MOV TMOD,#20H
MOV PCON,#80H
MOV TH1,#0F3H
MOV TL1,#0F3H
SETB TR1
MOV SCON,#50H
8.2 计划—学生学习的设想
8.2.1 学习目的
知识目标:
1 串行通信基础
2 串行通信总线标准及其接口
3 MCS-51的串行接口
能力目标:
8.2.2学习条件
1.教室
2.多媒体
3.单片机实训室(PG206)
4.虚拟仿真实训室(Proteus)
5.数字化综合服务平台
8.2.3 项目技术要求
本机器人能在任意区域内沿引导线行走,自动绕障,在有光源引导的条件下能沿光源行走。同时,能检测埋在地下的金属片,发出声光指示信息,并能实时存储、显示检测到的金属片数目以及各金属片至起跑线间的距离,最后能停在指定地点,显示出整个运行过程的时间。