基于两片单片机的智能多功能循迹小车项目设计Word格式.docx
- 文档编号:17369951
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:65
- 大小:374.30KB
基于两片单片机的智能多功能循迹小车项目设计Word格式.docx
《基于两片单片机的智能多功能循迹小车项目设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于两片单片机的智能多功能循迹小车项目设计Word格式.docx(65页珍藏版)》请在冰豆网上搜索。
电机驱动电路放在了车底部,降低了电路的复杂程度。
使之能更稳定的工作。
语音模块采用ISD4002-120p,录放时间长达两分钟,在给语音芯片录音的时候确实费了不少劲,网上很多的电路根本不能把声音录进去,要么就是录进去了声音很杂。
经过我近一周的努力,终于找到了一个好的方法,并设计了一个放大增益较大,噪声较小的电路(稍后会给出),完美的解决了语音芯片音质差的问题,士气大增。
在音响放大电路方面,网上很多资料都用LM380做放大,经过我的实际试验,LM386的放大增益太小,根本不能把声音完整的播放出来,所以我采用了TDA2030作为音响驱动,放大增益20dB。
(反馈比例为4.7:
150)
2.2软件方面
总体思想是将18B20的温度信号和1307的时钟信号进行处理,在液晶屏上实时的显示出来。
并在遥控按键按下的时候控制语音芯片工作,将时钟信号和温度信号变成声音信号准确的读出来。
循迹方面单独用另一块单片机控制,通过传感器送回来的信号分析黑线的位置,进而控制两边的电机的转速(PWM调速)。
整个项目采用C51语言编程。
3.1STC89C53RC单片机
此次温度及设计没有采用使用较为广泛的AT89C51系列单片机,而是采用
STC89C53RC单片机控制电路。
这一使用增进了我们对不同单片机的了解,为我
们熟练掌握各种单片机打下了基础。
此款单片机的主要性能如下:
增强型6时钟/机器周期,12时钟/机器周期8051CPU。
工作电压:
5.5V-3.4V。
工作频率范围:
0-40MHz,相当于普通8051的0~80MHz。
实际工作频率可达
48MHz。
用户应用程序空间15K字节。
片上集成512字节RAM。
通用I/O口(36个),复位后为:
P1/P2/P3/P4是准双向口/弱上拉,P0口是
开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/O口使用时,需加
上拉电阻。
ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器。
可通过串口
(P3.0/P3.1)直接下载用户程序,8K程序3秒即可完成一片。
EEPROM功能。
看门狗。
内部集成MAX810专用复位电路(D版本才有),外部晶体20M以下时,可省
外部复位电路。
共3个16位定时器/计数器。
外部中断2路,下降沿中断或低电平触发中断,PowerDown模式可由外部中
断低电平触发中断方式唤醒。
通用异步串行口(UART)。
工作温度范围:
-40-+85℃。
封装:
PDIP-40。
单片机复位电路及晶振电路:
晶振电路:
复位电路:
51单片机DIP40封装图
3.218B20温度传感器
温度传感器的种类众多,在应用与高精度、高可靠性的
拉斯)公司生产的DS18B20温度传感器当仁不让。
超小的体积
抗干扰能力强,精度高,附加功能强,使得DS18B20更受欢
电子爱好者来说,DS18B20的优势更是我们学习单片机技术
产品的不二选择。
DS18B20的主要特征:
全数字温度转换及输出。
先进的单总线数据通信。
最高12位分辨率,精度可达土0.5摄氏度。
12位分辨率时的最大工作周期为750毫秒。
可选择寄生工作方式。
检测温度范围为–55°
C~+125°
C(–67°
F~+257°
F)。
内置EEPROM,限温报警功能。
64位光刻ROM,内置产品序列号,方便多机挂接。
多样封装形式,适应不同硬件系统。
测温部分电路设计:
3.312864(带中文字库)液晶部分
用户指令集
1、指令表1:
(RE=0:
基本指令集)
指令
指令码
说明
执行时间(540KHZ)
RS
RW
DB7
DB6
DB5
DB4
DB3
DB2
DB1
DB0
清除显示
1
将DDRAM填满“20H”,并且设定DDRAM的地址计数器(AC)到“00H”
4.6ms
地址归位
X
设定DDRAM的地址计数器(AC)到“00H”,并且将游标移到开头原点位置;
这个指令并不改变DDRAM的内容
进入点
设定
I/D
S
指定在资料的读取与写入时,设定游标移动方向及指定显示的移位
72us
显示状态
开/关
D
C
B
D=1:
整体显示ON
C=1:
游标ON
B=1:
游标位置ON
游标或显示移位控制
S/C
R/L
设定游标的移动与显示的移位控制位元;
功能设定
DL
RE
DL=1(必须设为1)
RE=1:
扩充指令集动作
RE=0:
基本指令集动作
设定CGRAM地址
AC5
AC4
AC3
AC2
AC1
AC0
设定CGRAM地址到地址计数器(AC)
设定DDRAM
地址
AC6
设定DDRAM地址到地址计数器(AC)
读取忙碌标志(BF)和地址
BF
读取忙碌标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值
0us
写资料到RAM
D7
D6
D5
D4
D3
D2
D1
D0
写入资料到内部的RAM(DDRAM/CGRAM/IRAM/GDRAM)
读出RAM的值
从内部RAM读取资料(DDRAM/CGRAM/IRAM/GDRAM)
指令表—2:
(RE=1:
扩充指令集)
待命模式
卷动地址或IRAM地址选择
SR
SR=1:
允许输入垂直卷动地址
SR=0:
允许输入IRAM地址
反白选择
R1
R0
选择4行中的任一行作反白显示,并可决定反白与否
睡眠模式
SL
SL=1:
脱离睡眠模式
SL=0:
进入睡眠模式
扩充功能设定
G
G=1:
绘图显示ON
G=0:
绘图显示OFF
设定IRAM地址或卷动地址
AC5—AC0为垂直卷动地址
AC3—AC0为ICONIRAM地址
设定绘图RAM地址
备注:
1、当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取BF标志时BF需为0,方可接受新的指令;
如果在送出一个指令前并不检查BF标志,那么在前一个指令和这个指令中间必须延迟一段较长的时间,即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的个别指令说明。
2、“RE”为基本指令集与扩充指令集的选择控制位元,当变更“RE”位元后,往后的指令集将维持在最后的状态,除非再次变更“RE”位元,否则使用相同指令集时,不需每次重设“RE”位元。
具体指令介绍:
1、清除显示
CODE:
RWRSDB7DB6DB5DB4DB3DB2DB1DB0
L
H
功能:
清除显示屏幕,把DDRAM位址计数器调整为“00H”
2、位址归位
把DDRAM位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM
3、位址归位
把DDRAM位址计数器调整为“00H”,游标回原点,该功能不影响显示DDRAM功能:
执行该命令后,所设置的行将显示在屏幕的第一行。
显示起始行是由Z地址计数器控制的,该命令自动将A0-A5位地址送入Z地址计数器,起始地址可以是0-63范围内任意一行。
Z地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。
4、显示状态开/关
B
D=1;
整体显示ONC=1;
游标ONB=1;
5、游标或显示移位控制
X
设定游标的移动与显示的移位控制位:
6、功能设定
0RE
DL=1(必须设为1)RE=1;
扩充指令集动作RE=0:
基本指令集动作
7、设定CGRAM位址
AC0
设定CGRAM位址到位址计数器(AC)
8、设定DDRAM位址
设定DDRAM位址到位址计数器(AC)
9、读取忙碌状态(BF)和位址
读取忙碌状态(BF)可以确认内部动作是否完成,同时可以读出位址计数器(AC)的值
10、写资料到RAM
D0
写入资料到内部的RAM(DDRAM/CGRAM/TRAM/GDRAM)
11、读出RAM的值
从内部RAM读取资料(DDRAM/CGRAM/TRAM/GDRAM)
12、待命模式(12H)
H
进入待命模式,执行其他命令都可终止待命模式
13、卷动位址或IRAM位址选择(13H)
SR
SR=1;
允许输入卷动位址SR=0;
允许输入IRAM位址
14、反白选择(14H)
R0
选择4行中的任一行作反白显示,并可决定反白的与否
15、睡眠模式(015H)
SL=1;
脱离睡眠模式SL=0;
16、扩充功能设定(016H)
1RE
L
RE=1;
扩充指令集动作RE=0;
基本指令集动作G=1;
绘图显示ONG=0;
17、设定IRAM位址或卷动位址(017H)
AC0
功能:
AC5~AC0为垂直卷动位址SR=0;
AC3~AC0写ICONRAM位址
18、设定绘图RAM位址(018H)
设定GDRAM位址到位址计数器(AC)
显示坐标关系
1、图形显示坐标
水平方向X—以字节单位
垂直方向Y—以位为单位
2、汉字显示坐标
X坐标
Line1
80H
81H
82H
83H
84H
85H
86H
87H
Line2
90H
91H
92H
93H
94H
95H
96H
97H
Line3
88H
89H
8AH
8BH
8CH
8DH
8EH
8FH
Line4
98H
99H
9AH
9BH
9CH
9DH
9EH
9FH
液晶连接图
3.4ISD4002—120P语音芯片
ISD4002系列语音芯片采用多电平直接模拟存储(hipCorder)专利技术,声音
不需要A/D转换和压缩,每个采样直接存储在片内的闪烁存储器中避免了A/
D转换的误差,能够真实、自然地还原语音、音乐及效果声,避免了一般固体和
压缩造成的量化噪声和金属声.本文所设计的系统使用的芯片型号为
ISD4002-120P,单片录放时间为120s。
ISD4002工作于SPI串行接口。
SPI协议
是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的
下降沿动作.因此,对ISD4002而言,在时钟上升沿锁存MOSI引脚数据,在下降
沿将数据送至MISO引脚。
协议具体内容如下:
所有串行数据传输开始于SS下降沿;
SS在传输期间必须保持为低电平,在两条指令之间保持为高电平;
数据在时钟上升沿移入,在下降沿移出;
SS变低,输入指令和地址之后ISD才开始录放动作;
指令格式是IO位地址码加6位控制码;
ISD的任何操作(含快进)如果遇到EOM或OVF则产生一个中断,该中断
状态在下一个SPI周期开始时被清除;
使用读指令会使中断状态为移出ISD的MISO引脚时,控制及地址数据也同
步从MOSI移入;
所有操作在运行位(RUN)置“1”时开始,置“0”时结束;
所有指令都在
ss上升沿开始执行。
芯片的引脚图如下所示:
ISD4002—120P设计电路图:
录音电路设计:
3.5无线发射电路
无线解码接收电路:
3.6光电循迹电路
在这里我用了1M欧的电阻,符合我的电路特点,网上很多写几十K甚至几K的都不能从实际上应用成功,这就是理论与实际的差距吧。
3.7电机驱动电路
为了分开单片机与驱动电路,在这里应用了光电耦合器(光耦817),并有四个发光二级管提示驱动方式。
3.8电源
由于本系统耗电较大,所以采用了分离式供电。
即电机驱动和单片机电源分开供电,但是两个电源必须共地。
4.1录音程序设计:
根据ISD4002的特点,我们设计程序,将0-9等语音信号储存到从0000H开始的地址中。
对应关系如下:
储存语音信号
0000H
现在时间是
0010H
现在车速是
0020H
0030H
2
0040H
3
0050H
4
0060H
5
0070H
6
0080H
7
0090H
8
00A0H
9
00B0H
十
00C0H
点
00D0H
分
00E0H
秒
00F0H
欢迎使用振勇电子产品
录音程序详解:
见附录一
4.2总程序详解:
见附录二。
五、系统测试与结论
经多天艰苦调试,功能已经全部实现了。
只是由于程序过于复杂,导致整个系统稳定性不佳,容易出错,还有待于进一步改进。
欢迎大家批评指正。
共同进步。
参考文献:
【1】2010年山东大学创新科技大赛《智能语音数字温度计技术报告》。
都洪涛,黄浩龙,卢繁著。
【2】新概念《51单片机C语言教程》郭天祥著。
【3】网友文章:
《玩转12864》。
附录一、录音程序详解
#include<
reg52.h>
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitss=P1^0;
//ss为允许通讯位
sbitsclk=P1^1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 智能 多功能 小车 项目 设计