单片机控制小车课程设计论文.docx
- 文档编号:23427137
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:19
- 大小:553.19KB
单片机控制小车课程设计论文.docx
《单片机控制小车课程设计论文.docx》由会员分享,可在线阅读,更多相关《单片机控制小车课程设计论文.docx(19页珍藏版)》请在冰豆网上搜索。
单片机控制小车课程设计论文
单片机控制小车
摘要:
本论文利用单片机控制一个小车前进、后退、左转、右转。
该小车核心硬件采用了ATM公司生产的到AT89C51芯片。
该芯片具有低功耗,高性能的片内含4KB快闪编程/擦除只读存储器的8位CMOS微控制器,使用高密度,非易失存储技术制造,并且与89C51引脚和指令系统完全兼容的特点。
而且芯片上的FPROM允许在线编程或采用通用的非易失存编程器对程序存储器重复编程。
且价格比价低。
驱动小车的电动机采用直流伺服机,伺服电机可控制速度,位置精度非常准确,避免了电刷摩擦和换向干扰,因此灵敏度高,死区小,噪声低,寿命长,对周围电子设备干扰小。
关键词:
AT89C51单片机直流伺服机小车
第一章小车整机系统介绍
本次设计的小车利用伺服机驱动,单片机控制的。
小车为机器人的雏形,由于使用伺服机控制,其动作的精度非常高,用途非常的广泛,比如可用于较窄的人无法进入的管道进行查看,像下水管道,大型工厂的排线管道,军事上的排除炸弹等等。
一、小车系统介绍
控制系统原理如图1所示:
图1电气控制图
伺服机控制系统的控制电路分为以下几部分:
(1)单芯片89C51
控制部分的核心元件,采用89C51。
(2)伺服机的接口
伺服机的接口所示如图2。
图2伺服机接口图3按键电路
为伺服机提供电源。
(3)控制按键电路
按键电路如图3所示。
用来控制小车前进、后退、左转、右转。
(4)电源电路
图4电源电路图5晶振电路图6复位电路
电源电路如图4所示。
为单片机和伺服机提供电源。
(5)晶振电路
晶振电路如图5所示。
为单片机提供脉冲,晶振频率范围为1.2~33HZ。
(6)复位电路
复位电路如图6所示。
使单片机复位。
二、89C51单片机的组成
1.中央处理器CPU
中央处理器简称CPU,是单片机的核心,用于完成运算和控制操作。
中央处理器包括运算器和控制器两部分电路。
(1)运算电路
运算电路是单片机的运算部件,用于实现算术和逻辑运算。
算术逻辑单元ALU、累加器、B寄存器、程序状态字和两个暂存寄存器等都属于运算器电路。
运算电路以ALU为核心,基本的算术运算和逻辑运算均在其中进行,包括加、减、乘、除、增量、减量、十进制调整、比较等算术运算,“与”、“异或”等逻辑运算,左、右移位和半字节交换等操作。
(2)控制电路
控制电路是单片机的指挥控制部件,保证单片机各部分能自动而协调地工作。
程序计数器、PC加1寄存器、指令寄存器、指令译码器、定时控制电路以及振荡电路等均属于控制电路。
1.内部数据存储器
内部数据存储器包括RAM(128*8)和RAM地址寄存器,用于存放可读/写的数据。
实际上80C51芯片中共有256个RAM单元,但其中后128个单元为专用寄存器,能作为普通RAM存储器供用户使用的只是前128个单元。
因此,通常所说的内部数据存储器是指前128个单元,简称“内部RAM”。
2.内部程序存储器
内部程序存储器包括ROM(4K*8)和程序地址寄存器等。
80C51共有4KB掩膜ROM,用于存放程序和原始数据,因此称之为程序存储器,简称“内部ROM”
3.定时器/计数器
由于控制应用的需要,80C51共有两个16位的定时器/计数器,用定时器/计数器0和定时器/计数器1表示,用于实现定时或计数功能,并以其定时或计数结果对单片机进行控制。
4.并行I/O口
80C51共有4个8位并行I/O(P0、P1、P2、P3),以实现数据的并行输入/输出。
三.89C51单片机的封装与信号引脚
1.芯片封装形式
80C51有40引脚双列直插式DIP和44引脚方形扁平式QFP共两种封装形式。
其中双列直插式封装芯片的引脚排列及芯片逻辑符号如图7所示。
图789C51芯片
P0.0~P0.7P0口8位双向口线
P1.0~P1.7P1口8位双向口线
P2.0~P2.7P2口8位双向口线
P3.0~P3.7P3口8位双向口线
地址锁存控制信号ALE
在系统扩展时可作为外部时钟或外部定时脉冲使用。
外部程序存储器读选通信号PSEN非
在读外部ROM时PSEN非有效(低电平),以实现外部ROM单元的读操作。
访问程序存储器控制信号EA非
当EA非信号为低电平时,对ROM的读操作室针对外部程序存储器的;而当EA非信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。
复位信号RST
当输入的复位信号延续2个机器周期以上高电平时即为有效,用于完成单片机的复位操作。
外接晶体引线端XTAL1和XTAL2
当使用芯片内部时钟时,XTAL1和XTAL2用于外接石英晶体谐振器和微调电容;当使用外部时钟时,用于接入外部时钟脉冲信号。
地线Vss·
+5V电源Vcc
键盘是单片机不可缺少的人机交互设备,键盘上的键犹如一个机械开关,手按下键闭合,手放开键释放。
单片机系统中通常使用的键盘是价格便宜的非编码矩阵式键盘。
矩阵式键盘的键排列成矩阵形式,在行与列的每个交点上对应有一个键。
4.消除抖动
由于按钮是机械触点,当机械触点断开、闭合时,会有抖动,输入端的波形。
这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全能感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个漫长的时间了。
就是说按钮有时灵,有时不灵,其实就是这个原因,你只按了一次按钮,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了。
为使CPU能正确地读出P1口的状态,对每一次按钮只作一次响应,就必须考虑如何去除抖动,常用的去抖动的办法有两种:
硬件办法和软件办法。
单片机中常用软件法。
软件法其实很简单,就是在单片机获得的信息后,不是立即认定开关已被按下,而是延时10毫秒或更长一些时间后再次检测,如果仍为低,说明开关的确按下了,这实际上是避开了按钮按下时的抖动时间。
而在检测到按钮释放后再延时5-10个毫秒。
当然,实际应用中,对按钮的要求也是千差万别,要根据不一样的需要来编制处理程序,但以上是消除键抖动的原则。
三.伺服电机
伺服机是在伺服系统中控制机械元件运转的发动机,是一种补助马达间接变速装置。
伺服电机是可以连续旋转的电机械转换器。
属于功率很小的微特电机,以永磁式直流伺服电机和并激式直流伺服电机最为常用。
伺服电机可控制速度,位置精度非常准确。
1.直流伺服电机
直流伺服电机的输出转速与输入电压成正比,并能实现正反向速度控制。
具有起动转矩大,调速范围宽,机械特性和调节特性的线性度好,控制方便等优点,但换向电刷的磨损和易产生火花会影响其使用寿命。
近年来出现的无刷直流伺服电机避免了电刷摩擦和换向干扰,因此灵敏度高,死区小,噪声低,寿命长,对周围电子设备干扰小。
而直流力矩伺服电机(即低速直流伺服电机)可在几十转/分的低速下,甚至在长期堵转的条件下工作,故可直接驱动被控件而不需减速。
2.伺服机的选择
本次将利用无线电遥控飞机.遥控船上一定会用到的伺服机当作驱动器,结合89C51单片机来设计一个简易的伺服机控制系统,此系统可以以简易的电路连接配合驱动器程序,可以精确的控制伺服机动作,凡是需要以单片机控制想要拉动或是做简易的机械式传动的机构设计都可能有机会使用到它。
直流伺服电动机的特点:
电阻大,机械特性软。
线性;滑动接触;火花干扰;惯性大;体积大;相对价高。
本次采用的规格如图8:
电压
扭矩
速度
5V
44.4oz-in.
0.23sec/60°
56.9oz-in.
0.16sec/60°
尺寸
重量
1.6x0.8x1.4in.
1.3oz.
图8伺服机规格图
3.伺服机的改装
一般玩具遥控模型店中所购得的标准伺服机只能转动180度,用途有限,为了做更多的应用实验,经几个伺服机的改装步骤,使伺服机可以转动360度,适合用于遥控车上作为推动车论转动用。
标准伺服机由于动作角度有限,因此在机构旋转轴上有阻挡越位的凸点,同时也利用可变电阻的移位来侦测所转动的角度,了解起动作原理后,要将起改装为360度转动便不困难了。
拆开伺服机在改装前再仔细看其各个零件相关的特殊位置,特别是旋转轴的凸点,及可变电阻的高度,是改装过程中要修改的部分。
注意整个可变电阻高度已经降下来了,因此当齿轮转动时并不会带动可变电阻转动,使得回授信号为固定,当送出控制信号后马达可以一直往某个方向正转或是反转。
整个改装步骤说明如下:
(1)将伺服机螺丝松开,小心取出各个部分零件及齿轮,并依序防止整齐,方便稍后组装回去。
(2)小型马达要推出来时,要以小改锥稍微由外向内施力推出,电路板比较脆弱,小心折断。
(3)以斜口钳剪断所示的凸点,并以小刀修平。
(4)将变电阻用按入凹槽就可以了。
(5)将改装的零件结合各式齿轮完整组装回去。
在改装后凸点不见了,而可变电阻中间的旋转柄降低了,因此在伺服机转动时也不会带动可变电阻转,因此控制器侦测不到端点,只要单片机不断地送出适当的脉冲信号,便可以使伺服机不断地正转或是反转一直持续下去,不会只转动180度便卡住了。
由于其体积小设计上采用特殊集成电路设计,在松开螺丝后小心将其零件分解,可以看到其内部零件:
(控制芯片、小型直流马达、转换齿轮、旋转轴、回授可变电阻)
伺服机以5V电源便可以推动,控制方式是以脉冲调制/解调的方式来控制。
其外部3个引脚如下:
黑色:
GND地线
红色:
5V电源线(位置在中间)
白色:
控制信号
四.小车底座组成
驱动器:
以改装过的伺服机当驱动器件。
轮子:
为了配合现成的伺服机机构连接,以现成的饮料瓶盖来改装。
前辅轮:
以现成的圆形物体代替。
连接座:
用来固定伺服机用,以现成的“L”铁座来连接。
车体底盘:
以不锈钢板来组装。
螺丝包:
做各部分零件的组装及固定。
前轮改装:
1.准备两块长方形的铝片(长:
8CM宽:
)
2.一套四驱车导轮
3.两个垫片
组装成如图9、图10:
图9小车底部组装图
图10小车控制部分组装图
八.伺服车外形
电池使用4只,可用一般电池测试,但使用充电电池较省钱。
左右伺服机接线会影响车子行进方向,若方向不对请自行对调调整。
由于车子采用后轮驱动,因此重心要摆在后方,电池放在后方底座。
组装成如图11:
图11小车整体图
第二章小车控制程序设计
一.小车工作流程图
在主控程序循环中扫描是否有按键,若有按键则做相对应的功能处理,若按下K1键车体做前进展示,若按下K2键车体做后退展示,若按下K3键车体左转展示,若按下K4键车体做右转展示。
所有按键动作都是等按键放开来才开始执行车体动作。
小车工作流程图如图12:
图12流程图
二.小车控制程序
由于伺服车上伺服机的安装是在左右两侧,伺服机正反转与前进方向刚好相反,前面理论上说明的前进,应该是左伺服机正转且右伺服机也正转,不过实际上控制程序是伺服机1正转控制,伺服机2反转控制。
因此控制程序车体前进部分设计如下。
Go_for:
;车体前进
Movr3,#ts;设置计数次数
J1:
callpu_for;伺服机1正转控制
Djnzr3,j1;伺服机2反转控制
Ret
其他3个方向的动作原理一样
DELAY:
延迟子程序
LED_BL:
工作指示闪烁
PU_BACK:
伺服机1反转控制
PU_FOR:
伺服机1正转控制
DEMO_FOR:
伺服机正转展示
DEMO_BACK:
伺服机反转展示
PUR_BACK:
伺服机2反转控制
PUR_FOR:
伺服机2正转控制
GO_FOR:
车体前进
GO_BACK:
车体后退
GO_LEFT:
车体左转
GO_RIGHT:
车体右转
2.程序清单
equ3;伺服机正转时间常数
debequ25;伺服机反转时间常数
tsequ18;脉冲信号个数
;按键1引脚定义
;按键2引脚定义
;按键3引脚定义
;按键4引脚定义
;工作指示灯引脚定义
;伺服机1控制线
;伺服机2控制线
start:
clrpul;送出低电平至伺服机
clrpur;
callled_bl;led闪动,表示程序开始执行
loop:
jbk1,x1;未按下K1键则继续扫描
jnbk1,$;等按键放开来
callled_bl;
callgo_for;车体前进
jmploop;继续循环执行
x1:
jbk2,x2;未按下K2键则继续扫描
jnbk2,$;等按键放开来
callled_bl;
callgo_bac;车体后退
jmploop;继续循环执行
X2:
jbk3,x3;未按下K3键则继续扫描
Jnbk3,$;等按键放开来
callled_bl;
callgo_left;车体左转
jmploop;继续循环执行
x3:
jbk4,x4;未按下K4键则继续扫描
jnbk4,$;等按键放开来
callled_bl;
callgo_right;车体右转
jmploop;继续循环执行
x4:
jmploop;继续循环执行
delay:
延时子程序
movr6,#32h
d1:
movr7,#64h
djnzr7,$
djnzr6,d1
djnzr5,delay
ret
led_bl:
工作指示灯闪烁
movr4,#02h
l0:
cplwled;位反向
movr5,#05h;延迟50ms
calldelay;
djnzr4,l0;
setbwled;LEDOFF
ret
pu_back:
setbpul;伺服机反转控制,送出高电平
movr4,#deb
a1:
calldel
djnzr4,a1
clrpul;送出低电平
callloop1
ret
pu_for:
setbpul;伺服机正传控制,送出高电平
movr4,#dea
b1:
calldel
djnzr4,b1
clrpul;送出低电平
callloop2
ret
del:
movr5,#01h;
delay1:
movr6,#02h
f1:
movr7,#11h
djnzr7,$
djnzr6,f1
djnzr5,delay
ret
pur_back:
setbpur;伺服机反转控制,送出高电平
movr4,#deb
g1:
calldel
djnzr4,g1
clrpur;送出低电平
callloop1
ret
pur_for:
setbpur;伺服机正传展示,送出高电平
movr4,#dea
h1:
calldel
djnzr4,h1
clrpur;送出低电平
callloop2
ret
loop1:
movr4,#0c5h
l:
calldel
djnzr4,l
ret
loop2:
movr4,#0afh
l1:
calldel
djnzr4,l1
ret
go_for:
车体前进
movr3,#ts
j1:
callpu_back
callpur_for
djnzr3,j1
ret
go_back:
车体后退
movr3,#ts
s1:
callpu_for
callpur_back
djnzr3,s1
ret
go_right:
车体右转
movr3,#ts
m1:
callpu_back
callpur_back
djnzr3,m1
ret
go_left:
车体左转
movr3,#ts
q1:
callpu_for
callpur_for
djnzr3,q1
ret
end
元件清单
元件名称
规格
数量
备注
实验板
50*70
1
电阻
1K
7
电容
20PF
2
电容
10uF
1
发光二极管
红色
1
发光二极管
绿色
1
晶振
12MHZ
1
芯片
89C51
1
底座
40引脚
1
电源接插件
2脚
4
电源接插件
3脚
2
按钮
5
伺服机
FUTABAS3003
2
电池接线盒
2
干电池
5号
4
前轮
2
小车底座
1
答谢辞
首先,我要感谢我的指导老师沈蓬老师,在我的毕业设计期间对我的设计悉心指导,他渊博的知识、丰富的实践工作经验使我在完成设计过程中受益非浅;他严谨而踏实的研究作风、刻苦的工作态度对我产生了深远的影响作用,在此对我的指导老师致以崇高的敬意与深深的感谢。
只有不断地去学习,更新自己的知识,才能够收获更多,在校学习期间,要建立一个自主学习模式,自己去摸索,去查询有关的资料,动脑筋去完成。
运用以前学的东西及日常生活中的一些普通的材料完成自己的课题,化废为宝。
最后,衷心感谢各位老师抽出宝贵时间阅读此文
参考文献
1.陈明荧.8051单片机课程设计实训教材.北京清华大学出版社,2004.
2.周向红.51系列单片机应用与实践教程.北京航空大学出版社,2008.
3.张鹏.单片机原理与应用实例教程.北京海洋出版社,2008.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 控制 小车 课程设计 论文