序
🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机的语音提示测温播报系统的设计
1 单元电路设计
按照系统设计功能的要求,确定设计系统硬件电路由射频发射、射频接收、数字无线发射、数字无线接收和电源电路五大模块组成。各电路模块的设计如下。
1.1 射频发射电路
射频发射电路通过电容三点式产生56MHz的频率[6],而图像信号经过摄像头采集,通过摄像头的内部电路转换为模拟电压信号,从JP1端送入,通过二极管调制电路,调制电路负责把摄像头输出的模拟电压信号和本振信号混出射频信号,射频信号经过uPC1651集成运算放大器和共发射级电路放大后发送。其中uPC1651是电视天线放大器专用集成电路,是一块超高频、宽频带(频率带宽为1200MHz)、低噪声,功率增益大(19dB,f=500MHz)的高频线性放大电路。如图1-1所示射频发射电路。
图1-1 射频发射电路
1.2 射频接收
射频接收部分主要是电视机的接收,通过电视台的VHL波段[7]进行摄像头采集的56MHz的AV信号在电视机显示器上显示。
1.3 数字无线发射电路
由于单片机具有体积小、结构简单、易于掌握、可靠性高、价格低廉、功耗低、控制功能强及应用灵活等优点,本设计中的数字无线发射和数字无线接收主要是通过C8051F310单片机的串行外设接口总线SPI(Serial Peripheral Interface)和nRF905发射与接收模块的SPI总线进行电路的控制,52系列(AT89S52)单片机主要负责HY-12864液晶显示电路的控制。硬件电路见附录A。
1.3.1 C8051F310单片机介绍
无线发射和接收电路运用C8051F310单片机的SPI串行外设接口进行电路的控制。在此主要介绍C8051F310单片机的内部性能[8]和SPI总线的特性。
一、C8051F310内部性能
1.模拟外设
·10位ADC
转换速率可达200ksps
可多达21个外部单端或差分输入
VREF可在外部引脚或VDD中选择
内置温度传感器(±3°C)
·两个模拟比较器
可编程回差电压和响应时间
可配置为中断或复位源(比较器0)
2.在片调试
· 片内调试电路提供全速、非侵入式的在系统调试(不需仿真器)支持断点、单步、观察/修改存储器和寄存器
· 比使用仿真芯片、目标仿真头和仿真插座的仿真系统有更优越的性能
3.供电电压2.7V - 3.6V
· 典型工作电流:5mA@25MHz;11µA@32KHz
· 温度范围:-40°C - +85°C
4.高速8051微控制器内核
· 流水线指令结构;70%的指令的执行时间为一个或两个系统时钟周期
· 速度可达25MIPS(时钟频率为25MHz时)
5.存储器
· 1280字节内部数据RAM(1024+256)
· 16KB FLASH存储器
6.数字外设
· 29个端口I/O;所有口线均耐5V电压
· 硬件增强型UART、SMBus和SPI串口
· 4个通用16位计数器/定时器
· 16位可编程计数器/定时器阵列(PCA),有5个捕捉/比较模块
· 使用PCA或定时器和外部时钟源的实时时钟方式
7.时钟源
· 内部可编程振荡器:24.5MHz,±2%的精度,可支持无晶体UART操作
· 外部振荡器:晶体、RC、C、或外部时钟
8.封装
· 32脚LQFP
二、SPI总线的特性
C8051F310单片机内部具有增强型串行外设接口(SPI0)可提供访问一个全双工同步串行总线的能力。
1.信号说明
(1)主输出、从输入(MOSI)
主出从入(MOSI)信号是主器件的输出和从器件的输入,用于从主器件到从器件的串行数据传输。当被配置为主器件时,MOSI 由移位寄存器的 MSB 驱动。
(2)主输入、从输出(MISO)
主入从出(MISO)信号是从器件的输出和主器件的输入,用于从从器件到主器件的串行数据传输。当SPI被禁止或工作在4线从方式而未被选中时, MISO引脚被置于高阻态。
(3)串行时钟(SCK)
串行时钟(SCK)信号是主器件的输出和从器件的输入,用于同步主器件和从器件之间在MOSI和MISO线上的串行数据传输。当SPI0作为主器件时产生该信号。
(4)从选择(NSS)
从选择(NSS)信号的功能取决于SPI0CN寄存器中NSSMD1和NSSMD0位的设置。有3种可能的方式:3线主方式或从方式、4线从方式或多主方式和4线主方式。本设计用NSSMD[1:0] = 1x为4线主方式, NSS作为输出。NSSMD0的设置值决定NSS引脚的输出电平。
2.SPI0主方式操作
只有SPI主器件能启动数据传输。通过将主允许标志MSTEN置1,将SPI0置于主方式。当处于主方式时,向SPI0数据寄存器写入一个字节时是写发送缓冲器。如果SPI移位寄存器为空,发送缓冲器中的数据字节被传送到移位寄存器,数据传输开始。SPI0主器件立即在MOSI线上串行移出数据,同时在SCK上提供串行时钟。在传输结束后SPIF标志被置为逻辑1。如果中断被允许,在SPIF标志置位时将产生一个中断请求。在全双工操作中,当SPI主器件在MOSI线向从器件发送数据时,被寻址的SPI从器件可以同时在MISO线上向主器件发送其移位寄存器中的内容。因此,SPIF标志既作为发送完成标志又作为接收数据准备好标志。
4.SPI0中断源
如果SPI0中断被允许,在下述4个标志位被置1时将产生中断。
(1)在每次字节传输结束,SPI中断标志SPIF被置1。该标志适用于所有SPI方式。
(2)如果在发送缓冲器中的数据尚未被传送到移位寄存器时写SPI0DAT,写冲突标志WCOL被置1。
(3)当SPI0被配置为主器件并且工作于多主方式,而NSS被拉为低电平时,方式错误标志MODF被置1。
(4)当SPI0被配置为从器件并且一次传输结束,而接收缓冲器中还保持着上一次传输的数据未被读取时,接收溢出标志RXOVRN被置1。
5.串行时钟时序
使用SPI0配置寄存器中的时钟控制选择位可以在串行时钟相位和极性的4种组合中选择其一。CKPHA位选择两种时钟相位(锁存数据所用的边沿)中的一种。CKPOL位在高电平有效和低电平有效的时钟之间选择。主器件和从器件必须被配置为使用相同的时钟相位和极性。注意:在改变时钟相位和极性期间应禁止SPI0,两个器件通信时,不论工作在主方式还是从方式,CKPHA必须被置0。
6.SPI特殊功能寄存器
对SPI0的访问和控制是通过系统控制器中的4个特殊功能寄存器实现,具体如下。
(1)SPI0CFG:SPI0配置寄存器,复位值:00000111 SFR地址:0XA1
R R/W R/W R/W R R R R
SPIBSY | MSTEN | CKPHA | CKPOL | SLVSEL | NSSIN | SRMT | RXBMT |
位7 位6 位5 位4 位3 位2 位1 位0
位7:SPIBSY:SPI忙标志(只读)
当一次SPI传输正在进行时(主或从方式),该位被置为1。
位6:MSTEN:主方式允许位
0:禁止主方式,工作在从方式。1:允许主方式,工作在主器件方式。
位5 CKPHA:SPI0时钟相位。该位控制SPI0时钟的相位。
0:在SCK周期的第一个边沿采样数据。1:在SCK周期第二个边沿采样数据。
位4:CKPOL:SPI0时钟极性。该位控制SPI0时钟的极性。
0:SCK在空闲状态时处于低电平。 1:SCK在空闲状态时处于高电平。
位3:SLVSEL:从选择标志(只读)
当NSS引脚为低电平时该位被置1,表示SPI0是被选中的从器件。当NSS引脚为高电平时,该位被清0。
位2:NSSIN:NSS引脚的瞬时值(只读)
该位指示读该寄存器时NSS引脚的即时值。该信号未被去噪。
位1:SRMT:移位寄存器空标志(在从方式有效,只读)。
当所有数据都被移入/移出移位寄存器并且没有新数据可以从发送缓冲器读出或向接收缓冲器写入时,该位被置1。当数据字节被从发送缓冲器传送到移位寄存器或SCK发生变化时,该位被清0。
位0:RXBMT:接收缓冲器空(在从方式有效,只读)
当接收缓冲器被读取且没有新数据时,该位被置1。如果在接收缓冲器中有新数据未被读取,则该位被清0。
(2) SPI0CN:SPI0控制寄存器,复位值:00000110 SFR地址:0XF8 (可位寻址)
R/W R/W R/W R/W R/W R/W R R/W
SPIF | WCOL | MODF | RXOVRN | NSSMD1 | NSSMD0 | TXBMT | SPIEN |
位7 位6 位5 位4 位3 位2 位1 位0
位7:SPIF:SPI0中断标志
该位在数据传输结束后被硬件置1。如果中断被允许,置1该位将会使CPU转到SPI0中断处理服务程序。该位用软件清0。
位6:WCOL:写冲突标志
该位由硬件置1(并产生一个SPI0中断),表示数据传送期间对SPI0数据寄存器进行了写操作。该位用软件清0。
位5:MODF:方式错误标志
当检测到主方式冲突(NSS为低电平,MSTEN=1,NSSMD[1:0] = 01)时,该位由硬件置1(并产生一个SPI0中断)。该位用软件清0。
位4:RXOVRN:接收溢出标志(只适用于从方式)
当前传输的最后一位已经移入SPI0移位寄存器,而接收缓冲器中仍保存着前一次传输未被读取的数据时该位由硬件置1(并产生一个SPI0中断)。该位用软件清0。
位3-2:NSSMD1-NSSMD0:从选择方式位
选择NSS工作方式:
00:3线从方式或3线主方式。
01:4线从方式或多主方式(默认值)。
1x:4线单主方式。NSS被分配一个输出引脚并输出NSSMD0的值。
位1:TXBMT:发送缓冲器空标志
当新数据被写入发送缓冲器时,该位被清0。当发送缓冲器中的数据被传送到SPI移位寄存器时,该位被置1,表示可以向发送缓冲器写新数据。
位0:SPIEN:SPI0使能位
该位使能/禁止SPI0。
0:禁止SPI0 。1:使能SPI0
(3) SPI0CKR:SPI0时钟速率寄存器;复位值:00000000 SFR地址:0XA2
R/W R/W R/W R/W R/W R/W R/W R/W
SCR7 | SCR6 | SCR5 | SCR4 | SCR3 | SCR2 | SCR1 | SCR0 |
位7 位6 位5 位4 位3 位2 位1 位0
位7-0:SCR7-SCR0:SPI0时钟频率
当SPI0模块被配置为工作于主方式时,这些位决定SCK输出的频率。SCK时钟频率是从系统时钟分频得到的,由下面的方程给出,其中:SYSCLK是系统时钟频率,SPI0CKR是SPI0CKR寄存器中的8位值。
例如:如果SYSCLK = 2MHz,SPI0CKR = 0x04,则
(4) SPI0DAT:SPI0数据寄存器,复位值:00000000 SFR地址:0XA3
R/W R/W R/W R/W R/W R/W R/W R/W
位7 位6 位5 位4 位3 位2 位1 位0
位7-0:SPI0DAT:SPI0发送和接收数据寄存器。
SPI0DAT寄存器用于发送和接收SPI0数据。在主方式下,向SPI0DAT写入数据时,数据被放到发送缓冲器并启动发送。读SPI0DAT返回接收缓冲器的内容。
4.3.2 nRF905芯片介绍
nRF905是挪威Nordic VLSI公司推出的单片射频收发器,工作电压为1.9~3.6V,32引脚QFN封装,工作于433/868/915MHz三个ISM频道,频道之间的转换时间小于650µs。nRF905由频率合成器、收发解调器、功率放大器、晶体振荡器和调制器组成,不需要外加声表滤波器,ShockBurstTM工作模式,自动处理字头和CRC(循环冗余码校验),使用SPI接口与微控制器通信,配置非常方便。就本设计中nRF905的运用部分作了一系列的介绍。
一、工作模式
nRF905有两种工作模式,分别是ShockBurstTM接收模式和ShockBurstTM发送模式。nRF905的工作模式由TRX_CE、TX_EN和PWR_UP三个引脚决定,详见表1-1。
表1-1 工作模式
PWR_UP | TRX_CE | TX_EN | 工作模式 |
0 | × | × | 关机模式 |
1 | 0 | × | 空闲模式 |
1 | 1 | 0 | 射频接收模式 |
1 | 1 | 1 | 射频发射模式 |
注:0 为低电平 1为高电平 ×为任意
1.ShockBurstTM模式
与射频数据包有关的高速信号处理都在nRF905片内进行,数据速率由微控制器配置的SPI接口决定,数据在微控制器中低速处理,但在nRF905中高速发送,因此中间有很长时间的空闲,这就有利于电路的节能。由于nRF905工作于ShockBurstTM模式,因此使用低速的微控制器也能得到很高的射频数据发射速率。在ShockBurstTM接收模式下,当一个包含正确地址和数据的数据包被接收到后,地址匹配(AM)和数据准备好(DR)两引脚通知微控制器。在ShockBurstTM发送模式,nRF905自动产生字头和CRC校验码,当发送过程完成后,数据准备好引脚通知微处理器数据发射完毕。下面具体详细分析nRF905的发送流程和接收流程。
2.发送流程
典型的nRF905发送流程分以下几步:
(1)微控制器有数据要发送时,通过SPI接口,按时序把接收机的地址和要发送的数据送传给nRF905,SPI接口的速率在通信协议和器件配置时确定;
(2)微控制器置高TRX_CE和TX_EN,激发nRF905的ShockBurstTM发送模式;
(3)nRF905的ShockBurstTM发送:
A.射频寄存器自动开启;
B.数据打包(加字头和CRC校验码);
C.发送数据包;
D.当数据发送完成,数据准备好引脚被置高;
(4)AUTO_RETRAN被置高,nRF905不断重发,直到TRX_CE被置低;
(5)当TRX_CE被置低,nRF905发送过程完成,自动进入空闲模式。
ShockBurstTM工作模式保证,一旦发送数据的过程开始,无论TRX_EN和TX_EN引脚是高或低,发送过程都会被处理完。只有在前一个数据包被发送完毕,nRF905才能接受下一个发送数据包。
3.接收流程
(1)TRX_CE为高、TX_EN为低时,nRF905进入ShockBurstTM接收模;
(2)650us后,nRF905不断监测,等待接收数据;
(3)当nRF905检测到同一频段的载波时,载波检测引脚被置高;
(4)当接收到一个相匹配的地址,地址匹配引脚被置高;
(5)当一个正确的数据包接收完毕,nRF905自动移去字头、地址和CRC校验位,然后把数据准备好引脚置高;
(6)微控制器把TRX_CE置低,nRF905进入空闲模式;
(7)微控制器通过SPI口,以一定的速率把数据移到微控制器内;
(8)当所有的数据接收完毕,nRF905把数据准备好引脚和地址匹配引脚置低;
(9)nRF905此时可以进入ShockBurstTM接收模式、ShockBurstTM发送模式或关机模式。
当正在接收一个数据包时,TRX_CE或TX_EN引脚的状态发生改变,nRF905立即把其工作模式改变,数据包则丢失。当微处理器接到地址匹配引脚的信号之后,其就知道nRF905正在接收数据包,其可以决定是让nRF905继续接收该数据包还是进入另一个工作模式。
所有配置字都是通过SPI接口送给nRF905。SPI接口的工作方式可通过SPI指令进行设置。
1. SPI接口配置
SPI接口由状态寄存器、射频配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存器5个寄存器组成。状态寄存器包含数据准备好引脚状态信息和地址匹配引脚状态信息;射频配置寄存器包含收发器配置信息,如频率和输出功能等;发送地址寄存器包含接收机的地址和数据的字节数;发送数据寄存器包含待发送的数据包的信息,如字节数等;接收数据寄存器包含要接收的数据的字节数等信息。
2.射频配置
射频配置寄存器如表1-2所示:
表1-2 射频配置寄存器
名称 | 位宽 | 描述 |
CH_NO | 9 | 和HFREQ_PLL一起进行频率设置(默认值为001101100B=108D,fRF=(422.4+CH_NOd/10)*(1+HFREQ_PLLd)MHz |
HFREQ_PLL | 1 | 使PLL工作于433或868/915MHz(默认值为0)‘0’-工作于433MHz频段;‘1’-工作于868/915MHz频段 |
PA_PWR | 2 | 输出功率(默认值为00)‘00’-10dBm;‘01’-2dBm‘10’ +6dBm;‘11’+10dBm |
RX_RED_PWR | 1 | 接收方式节能端,该位为高时,接收工作电流为1.6mA,但同时灵敏度也降低 |
AUTO_RETRAN | 1 | 自动重发位,只有当TRX_CE和TXEN为高时才有效 |
RX_AFW | 3 | 接收地址宽度(默认值为100)‘001’-1byte RX地址;‘100’-4byte RX地址; |
TR_AFW | 3 | 发送地址宽度(默认值为100)‘001’-1byte TX地址;‘100’-4byte TX地址; |
RX_PW | 6 | 接收数据宽度(默认值为100000) ‘000001’-1byte 接收数据宽度;‘000010’-2byte 接收数据宽度;…‘100000’-32byte 接收数据宽度; |
TX_PW | 6 | 发射数据宽度(默认值为100000) ‘000001’-1byte 发射数据宽度;‘000010’-2byte 发射数据宽度;…‘100000’-32byte 发射数据宽度; |
RX_ADDRESS | 32 | 发送地址标识(默认值为E7E7E7E7) |
UP_CLK_FREQ | 2 | 输出时钟频率(默认值为11)‘00’-4MHz;‘01’-8MHz;‘10’-1MHz;‘11’-500KHz; |
UP_CLK_EN | 1 | 输出时钟使能 |
XOR | 3 | 晶振频率端,必须与外部晶振频率相对应(默认值为100)‘000’-4MHz;‘001’-8MHz;‘010’-12MHz;‘011’-16MHz;‘100’-20MHz |
CRC_EN | 1 | CRC校验使能端,高为使能,默认值为高 |
CRC_MODE | 1 | CRC方式选择端,高为16位,低为8位,默认值为高 |
1.3.3 数字无线发射硬件电路
数字无线发射硬件电路主要通过C8051F310单片机最小系统和nRF905收发模块组成。
- C8051F310单片机最小系统[9]
单片机最小系统一般应该包括基本模块:单片机、晶振电路、复位电路、C2调试接口和电源供入。
单片机:C8051F310单片机。
晶振电路:外部晶振驱动电路分24MHz外部石英晶振、外部电容振荡和外部RC振荡。内部可编程晶振。本设计采用内部可编程晶振,通过软件编程产生500Hz的频率。
复位电路:内部上电复位或VDD监视器的漏极开路输出。一个外部源可以通过将该引脚驱动为低电平(至少10µs)来启动一次系统复位。
C2下载口:C8051F310有一个Silicon Labs 2线(C2)调试接口,支持FLASH编程、边界扫描和使用安装在最终应用系统中的器件进行在系统调试。C2接口使用一个时钟信号(C2CK)和一个双向的C2数据信号(C2D)在器件和宿主机之间传送信息。C2通信通常发生在器件的停止运行状态。在这种状态下片内外设和用户软件停止工作,C2接口可以安全地“借用”C2CK(正常方式为/RST)和C2D(正常方式为P3.0)引脚。在大多数情况下,需要使用外部电阻对C2接口和用户应用进行隔离。
电源供入:3.3V电压。如图4-2所示C8051F310单片机最小系统。
二、nRF905收发模块电路
nRF905收发模块一般应该包括基本模块:收发芯片、晶振电路、天线电路和电源供入。如5-3图所示 nRF905收发模块电路。
收发芯片:nRF905收发芯片。
晶振电路:为实现晶体振荡器低功耗和快速启动时间的解决方案,使用低值晶体负载和电容。晶振为16MHz(经过内部倍频电路得到电路所需要433MHz的频率值),电阻是1MΩ,两个电容都是15pF。
天线电路:ANT1和ANT2输出脚给天线提供稳定的RF输出。这两个脚必须有连接到VDD_PA的直流通路,在ANT1和ANT2之间的负载阻抗应该在200~700Ω范围内,通过简单的匹配网络可以获得较低的阻抗50Ω,根据电路中使用433MHz的发射频率计算出LCπ型滤波电路中各个参数值。该电路天线部分使用的是50Ω单端天线。
电源输入:3.3V。如图1-3所示nRF905收发模块。
图1-2 C8051F310单片机最小系统
图1-3 nRF905收发模块电路
三、数字无线发射硬件电路系统组成
C8051F310单片机是整个数字发射电路的核心,配合nRF905发射模块,通过SPI口先送入nRF905寄存器的控制字,把nRF905的发射频率设定在433MHz,然后把要发送的数据送入nRF905寄存器内,把PWR_UP、TRX_CE和TX_EN引脚全置1,让其工作于发送模式。nRF905将数据打包(加字头和CRC校验码),以433MHz的GFSK发送出去。C8051F310单片机与nRF905发射模块的连接如图1-4所示数字无线发射硬件电路。
图1-4数字无线发射硬件电路
1.3.4 液晶显示电路
液晶显示电路主要是AT89S52来控制HY-12864液晶,详细介绍如下。
一、AT89S52具有下列主要性能[10,11,12]
1.AT89S52的内部结构
·8KB可改编程序Flash存储器(可经受1000次的写入/擦除周期)
·全静态操作:0Hz~33Hz
·三级程序存储器保密
·256字节内部RAM
·32条可编程I/O线
·2个16位定时器/计数器
·6个中断源
·可编程串行通道
·片内时钟振荡器
2.AT89S52的引脚及功能
AT89S52单片机的管脚说明见表4-3芯片引脚介绍。
三、 AT89S52单片机控制HY-12864液晶电路
以下内容为以AT89S52单片机为例的接口电路,AT89S52单片机的最小系统接法和C8051F310单片机相似,液晶的各引脚与单片机的接法如图4-5所示。
无线发射电路中AY89S52单片机通过软件使液晶在无按键按下时一直显示“电子工程系 应教0201班 杨丽 请输入方向”几个字。用S2~S4按键进行接收端的一系列控制,当按键S2按下时,液晶上显示“电子工程系 应教0201班 杨丽 向右”,同时通过二极管将压,使C8051F310单片机的P2.0得到电压为3.3V的高电平,开始工作。C8051F310单片机通过编程,使nRF905芯片工作在发射状态,接收端nRF905接收相对应的信息送给单片机,对电机向右转动进行控制。同样S3和S4分别类似控制电机“向左”和“开始”工作。
图1-5 AT89S52与液晶的接口电路
2 测试结果
设计完成后,给系统上电,电视机上显示摄像头所采集到的图像信号,而在液晶显示屏显示结果如图6-1所示。
图2-1无键时液晶显示
当数字无线发射电路中的S4按键按下时,液晶的最后一行显示请“输入方向”;S2按键按下时,液晶的最后一行显示“向右→”;S3按键按下时,液晶的最后一行显示“←向左”。
数字无线接收端,在发射端S2按键按下时,对应的绿发光二极管闪烁5次,电机向右转;在发射端S3按键按下时,对应的白发光二极管闪烁5次,电机向左转。
射频接收端是电视机显示,在电视上可以显示不同角度的摄像头采集的信号。而且测试到发射接收距离在8米左右。
调试分为硬件调试和软件调试。硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。射频发射与接收可以不进行视频显示。另外可以通过软件来调试硬件,如为了测试显示电路连接是否正确,可以编写一个简单的显示程序在液晶上显示来测试它。通过软件编程来检测数字无线发射电路的数据是否在数字无线接收端接收到。
无线发射电路
无线接收电路
如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!