AT89S51单片机全地形八足机器人机械手的设计(14)_毕业论文

毕业论文移动版

毕业论文 > 机械论文 >

AT89S51单片机全地形八足机器人机械手的设计(14)


 
图4.4 自动运行时,上位机界面显示
手动控制时,只需在“设定圈数”和“电机转向”中设置各电机的相应控制命令。
4.2 下位机软件设计
下位机软件主要由C语言编程,下位机主要功能是通过串口接收上位机传来的控制命令,根据命令执行相应的程序控制步进电机运行,使机械手按照操作者意愿到达指定位置。
4.2.1 下位机串口通讯模块
1.AT89S51串行口结构[19]
下位机串口通讯主要是通过对串行控制寄存器SCON 和电源控制寄存器PCON 的设置来实现的,SCON 是一个可位寻址的特殊功能寄存器,通过设置SCON 的SM0 和SM1 ,可以使单片机有四种不同的工作方式。SCON和PCON各位定义如表4.1:
位地址    9F    9E    9D    9C    9B    9A    99    98
SCON    SM0    SM1    SM2    REN    SM0    TB8    TI    RI
(a)SCON各位定义
位地址    8E    8D    8C    8B    8A    89    88    87
PCON    SMOD    …    …    …    GF1    GF0    PD    IDL
(b)PCON各位定义
表4.1 SCON和PCON各位定义
(1)SCON常用位定义:
SM0和SM1:为串行口方式控制位,用于设定串行口工作方式,在用于和PC机实现串行通信时,一般设置为方式1或方式3,主要区别是方式1的数据格式为8位,只用于双机通信;方式3的数据格式为9位,其中第9位SM2为多机通信位,可实现单片机的多点通信,即既适用于双机通信,又适用于多机通信。
SM2:为多机通信控制位,在方式1下,SM2应设置为0,此时RI只有在接收电路接收到停止位“1”时才被激活成“1”,并能自动发出串行口中断请求。
TI:为发送中断标志位,用于指示一帧数据发送完否。在方式0下,发送电路发送完第8位数据时,TI由硬件置位;在其他方式下,TI在发送电路开始发送停止位时置位。这就是说:TI在发送前必须由软件复位,发送完一帧后由硬件置位。因此,CPU查询TI状态便可知晓一帧信息是否已发送完毕。
RI:为接收中断标志位,用于指示一帧信息是否接收完。在方式1下,RI在接收电路接收到第8位数据时由硬件置位;在其他方式下,RI是在接收电路接收到停止位的中间位置时置位的。RI也可供CPU查询,以决定CPU是否需要从“SBUF(接收)”中提取接收到的字符或数据。RI也由软件复位。
(2)PCON常用位的定义
SMOD:为波特率选择位。在方式1、方式2和方式3时,串行通信波特率与2SMOD成正比。即:当SMOD=1时,通信波特率可以提高一倍。PCON中的其余各位用于51单片机的电源控制。
2.串行口的工作方式
51单片机有方式0、方式1、方式2和方式3等4种工作方式。如表4.2所示:
工作方式    说明    所用波特率
方式0    同步移位寄存器    f/2
方式1    10位异步收发    由定时器控制
方式2    11位异步收发    f/32或f/64
方式3    11位异步收发    由定时器控制
表4.2 AT89S51串口工作方式
本设计主要采用串口方式1,下面简单介绍一下方式1数据收发原理,在方式1下,串行口设定为10位异步通信方式。字符帧中除8位数据位外,还可有1位起始位和1位停止位。发送操作也在TI=0时开始,然后发送电路就自动在8位发送字符前后分别添加1位起始位和停止位,并在移位脉冲作用下在TXD线上依次发送一帧信息,发送完后自动文持TXD线为高电平。TI也由硬件在发送停止位时置位,并由软件将它复位。接收操作在RI=0和REN=1条件下进行,平常,接收电路对高电平的RXD线采样,采样脉冲频率是接收时钟的16倍。当接收电路连续8次采样到RXD线为低电平时,相应检测器便可确认RXD线上有了起始位。此后,接收电路就改为对第7、8、9三个脉冲采样到的值进行检测,并以三中取二原则来确定所采样数据的值。在接收到第9数据位(即停止位)时,接收电路必须同时满足以下两个条件:RI=0和SM2=0或接收到的停止位为“1”,才能把接收到的8位字符存入SBUF(接收)中,把停止位送入RB8中,并使RI=1和发出串行口中断请求(若中断开放)。若上述条件不满足,则这次收到的数据就被舍去,不装入SBUF(接收)中。这是不能允许的,因为这意着丢失了一组接收数据。 (责任编辑:qin)