51单片机7-串口通信

1.串口通信
2.我的单片机串行口的结构

在这里插入图片描述
说明:接收、发送缓冲器都是SBUF物理上独立的,占用同一地址99H ;

3.与串口通信相关的寄存器

串口控制寄存器SCON,PCON寄存器

(1)串口控制寄存器SCON

本寄存器设定串口的工作方式,接受和发送控制和设置状态标志。
数据结构:在这里插入图片描述

  1. SM0和SM1为工作方式选择位在这里插入图片描述
  2. SM2,多机通信控制位,主要用于方式2和方式3。当接收机的SM2=1时可以利用收到的RB8来控制是否激活RI(RB8=0时不激活RI,收到的信息丢弃;RB8=1时收到的数据进入SBUF,并激活RI,进而在中断服务中将数据从SBUF读走)。当SM2=0时,不论收到的RB8为0和1,均可以使收到的数据进入SBUF,并激活RI(即此时RB8不具有控制RI激活的功能)。通过控制SM2,可以实现多机通信。
    在方式0时,SM2必须是0。在方式1时,如果SM2=1,则只有接收到有效停止位时,RI才置1。
  3. REN, 允许串行接收位。由软件置REN=1,则启动串行口接收数据;若软件置REN=0,则禁止接收。
  4. TB8,
    在方式2或方式3中,是发送数据的第九位,可以用软件规定其作用。可以用作数据的奇偶校验位,或在多机通信中,作为地址帧/数据帧的标志位。
    在方式0和方式1中,该位未用。
  5. RB8,
    在方式2或方式3中,是接收到数据的第九位,作为奇偶校验位或地址帧/数据帧的标志位。在方式1时,若SM2=0,则RB8是接收到的停止位。
  6. TI,
    发送中断标志位。在方式0时,当串行发送第8位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使TI置1,向CPU发中断申请。在中断服务程序中,必须用软件将其清0,取消此中断申请。
  7. RI,接收中断标志位RI=1表示串口接收数据完毕。在方式0时,当串行接收第8位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使RI置1,向CPU发中断申请。也必须在中断服务程序中,用软件将其清0,取消此中断申请。
(2)PCON中只有一位SMOD与串行口工作有关

在这里插入图片描述
SMOD(PCON.7) 波特率倍增位。在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍。复位时,SMOD=0。

4.编程思路:

对串口进行初始化,设置产生波特率的定时器1、串口控制和中断控制。

  1. 确定T1的工作方式(编程TMOD寄存器);
  2. 计算T1的初值,装载TH1、TL1;
  3. 启动T1(编程TCON中的TR1位);
  4. 确定串行口控制(编程SCON寄存器);
  5. 串行口在中断方式工作时,要进行中断设置(编程IE、 IP寄存器)。
主要器件介绍———LD3320 LD3320芯片是一款“语音识别”专用芯片,由ICRoute公司设计生产。该芯片集成了语音识别处理器和一些外部电路,包括AD、DA转换器、麦克风接口、声音输出接口等。本芯片在设计上注重节能与高效,不需要外接任何的辅助芯片如Flash、RAM等,直接集成在现有的产品中即可以实现语音识别/声控/人机对话功能。并且,识别的关键词语列表是可以任意动态编辑的。 功能介绍 通过ICRoute公司特有的快速而稳定的优化算法,完成非特定人语音识别。不需要用户事先训练和录音,识别准确率95%。 不需要外接任何辅助的Flash芯片,RAM芯片和AD芯片,就可以完成语音识别功能。真正提供了单芯片语音识别解决方案。 每次识别最多可以设置50项候选识别句,每个识别句可以是单字,词组或短句,长度为不超过10个汉字或者79个字节的拼音串。另一方面,识别句内容可以动态编辑修改,因此可由一个系统支持多种场景。 芯片内部已经准备了16位A/D转换器、16位D/A转换器和功放电路,麦克风、立体声耳机和单声道喇叭可以很方便地和芯片管脚连接。立体声耳机接口的输幽功率为20mW,而喇叭接口的输出功率为550mW,能产生清晰响亮的声音。 支持并行和串行接口,串行方式可以简化与其他模块的连接。 可设置为休眠状态,而且可以方便地激活。 支持MP3播放功能,无需外围辅助器件,主控MCU将MP3数据依次送入LD3320芯片内部就可以从芯片的相应PIN输出声音。产品设计可以选择从立体声的耳机或者单声道喇叭来获得声音输出。支持MPEGI(ISO/IEC11172-3),MPEG2(ISO/IEC13818-3)和MPEG2.5layer3等格式。 工作供电为3.3V,如果用于便携式系统,使用3节AA电池就可以满足供电需要。 电路说明 以下为内部电路的简单逻辑图(图2—3): 详细说明如下: 电压要求:VDD数字电路用电源输入3.0V-3.3V VDDIO数字1/0电路用电源输入1.65V-VDD VDDA模拟电路用电源输入3.0V-4.0V 建议用户可以用统一的3.3v电压输入以简化设计。数字电压和模拟电压进 行隔离可以使得芯片有更好的效果。 芯片管脚输入电压范围:高电压(逻辑“1”):0.7;lcVDDIO'VDDIO 低电压(逻辑“0”):0'0.3~VDDIO 因此,开发者需要保证自己使用的主控MCU同样工作在3.3v,保证主控MCU向LD3320的管脚输出的高电压不超过3.3V。 时钟(Clock) 芯片必须连接外部时钟,可接受的频率范围是4-48MHz;而芯片内部还有PLL频率合成器,可产生特定的频率供内部模块使用。 复位 对芯片的复位信号(RSTB:1:)必须在VDD/VDDA/VDDIO都稳定后进行。无论芯片正在进行何种运算,复位信号都可以使它恢复初始状态,并使各寄存器复位。如果没有后续的指令(对寄存器的设置),复位后芯片将进入休眠状态。此后,一个CSB:1:信号就可以重新激活芯片进入工作状态。 并行接口 本芯片可通过并行方式和外部主CPU连接,此时使用8根数据线(PO-P7),4个控制信号(WRB#,RDB#,CS冰,AO),以及一个中断返回信号(INTB#)。 串行接口 串行接口通过SPI协议和外部主CPU连接,首先要将MD接高电平,而将(SPIS:1:)接地。此时只使用4个管脚:片选(SCS冰)、SPI时钟(SDCK)、SPI输入(SDI)和SPI输出(SDO)。 寄存器 对芯片的设置和命令,包括传送数据和接受数据,都是通过对寄存器的操作来完成的。例如进行语音识别时,设置识别的关键词语列表,设定芯片的识别模式,谀别完成后获得识别结果都是通过读/写寄存器来完成。播放声音时,就是将MP3格式的数据循环放入FIFO对应的寄存器。(识别结果是通过寄存器返回识别出的关键词语在关键词语列表中的排列序号Index数值,该Index数值是在设置关键词语列表时指定)。 喇叭音量的外部控制 除了特定寄存器来控制音量以外,芯片外部的电路可以控制喇叭的音量增益。使用的是EPI、EP2、EP3对应的管脚。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值