专业基础综合实验报告08测控.docx
- 文档编号:8992254
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:23
- 大小:161.79KB
专业基础综合实验报告08测控.docx
《专业基础综合实验报告08测控.docx》由会员分享,可在线阅读,更多相关《专业基础综合实验报告08测控.docx(23页珍藏版)》请在冰豆网上搜索。
专业基础综合实验报告08测控
测控技术与仪器专业
专业基础综合实验报告
姓名:
卫廷富
学号:
200810504031
专业班级:
2008级测控技术与仪器
题目:
基于单片机的循迹小车设计
攀枝花学院电气信息工程学院
二〇一一年六月
目录
1总体设计方案1
1.1设计功能及要求1
1.2设计方案1
1.2.1硬件设计方案1
1.2.2软件设计方案2
2硬件设计3
2.1单片机最小系统3
2.2电机驱动电路4
2.3LED显示电路4
2.4按键电路4
3软件设计7
3.1主程序设计7
3.2子程序设计8
3.2.1显示子程序设计8
3.2.2定时子程序设计8
4专业基础综合实验体会13
1总体设计方案
1.1设计功能及要求
(1)自动寻迹小车开始处于设置模式下,通过按键设置运行时间,完成设置时间后,按下开始键小车启动,同时显示当前运行的时间。
(2)小车行走在预设的时间后,自动停止,数码管显示行走的时间,3秒后显示行走距离。
(3)中途可以按右键强制停止,提前结束,显示行走时间,距离。
1.2设计方案
1.2.1硬件设计方案
系统可以分为几个基本功能模块,如图1-1
(1)车体设计
自己制作电动车。
经过反复考虑论证,我们制定了左右两轮分别驱动的方案。
即左右轮分别用两个转速和力矩基本相同的直流电机进行驱动。
由此可以轻松的实现小车坐标不变的90度转弯。
在安装时我们保证两个驱动电机同轴,这种结构使得小车在前进时比较平稳,可以避免出现后轮过低而使左右两驱动轮驱动力不够的情况。
为了防止小车重心的偏移,前轮起支撑作用。
(2)控制器模块
采用stc宏晶公司的stc89c52单片机作为主控制器。
stc89c5是一个低功耗,高可靠性,超低价,无法解密,高性能的8位单片机,片内含32k空间的可反复擦写100,000次的Flash只读存储器,32个IO口,且stc系列的单片机可以在线编程、调试,方便地实现程序的下载与整机的调试。
(3)电源模块
采用12V蓄电池为直流电机供电,将12V电压降压、稳压后给单片机系统和其他芯片供电。
蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。
虽然蓄电池的体积过于庞大,在小型电动车上使用极为不方便,但由于我们的车体设计时留出了足够的空间,并且蓄电池的价格比较低。
(4)稳压模块
直接用两7805把电压直接稳压到5V,理论上由于降压过大容易烧稳压块,用两个7805并联。
(5)电机模块
本系统为智能电动车,对于电动车来说,其驱动轮的驱动电机的选择就显得十分重要。
采用直流减速电机。
直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便。
由于其内部由高速电动机提供原始动力,带动变速(减速)齿轮组,可以产生较大扭力。
因我们用软件对电机调速,实际值要比这小一些
注意:
在实际计算时用的是理论值。
(6)电机驱动模块
采用专用芯片LG9110作为电机驱动芯片。
LG9110是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以控制一个直流电机,而且还带有控制使能端。
用该芯片作为电机驱动,操作方便,稳定性好,性能优良。
(7)矩阵按键输入模块
使用16个矩阵式按键开关组成一个矩阵按键输入模块,实现对系统输入的要求。
(8)显示模块
使用两个74HC573芯片驱动一块SR410561K四位液晶显示,实现系统的显示功能。
1.2.2软件设计方案
(1)程序主函数流程图
2硬件设计
2.1单片机最小系统
2.2电机驱动电路
2.3LED显示电路
2.4按键电路
2.5元器件清单
Description
Designator
Footprint
LibRef
Quantity
MulticellBattery
BAT-2
Battery
1
电池6V
PolarizedCapacitor(Axial)
C1
POLAR0.8
CapPol2
1
电容10uF
Capacitor
C2
RAD-0.3
Cap
1
电容104
Capacitor
C3
RAD-0.3
Cap
1
电容104
Capacitor
C4
RAD-0.3
Cap
1
电容104
PolarizedCapacitor(Axial)
C6
POLAR0.8
CapPol2
1
电容10uF
Capacitor
C7
RAD-0.3
Cap
1
电容30p
Capacitor
C8
RAD-0.3
Cap
1
电容30p
Capacitor
C9
RAD-0.3
Cap
1
电容104
PolarizedCapacitor(Axial)
C10
POLAR0.8
CapPol2
1
电容10uF
PolarizedCapacitor(Axial)
C11
POLAR0.8
CapPol2
1
电容10uF
PolarizedCapacitor(Axial)
C12
POLAR0.8
CapPol2
1
电容10uF
PolarizedCapacitor(Axial)
C13
POLAR0.8
CapPol2
1
电容10uF
TypicalREDGaAsLED
D1
LED-1
LED1
1
发光二极管
TypicalREDGaAsLED
D2
LED-1
LED1
1
发光二极管
TypicalREDGaAsLED
D3
LED-1
LED1
1
发光二极管
TypicalREDGaAsLED
D4
LED-1
LED1
1
发光二极管
TypicalREDGaAsLED
D5
LED-1
LED1
1
发光二极管
TypicalREDGaAsLED
D6
LED-1
LED1
1
发光二极管
TypicalREDGaAsLED
D7
LED-1
LED1
1
发光二极管
TypicalREDGaAsLED
D8
LED-1
LED1
1
发光二极管
Diode
D9
DIODE
1
二极管
Diode
D10
DIODE
1
二极管
Diode
D11
DIODE
1
二极管
Diode
D12
DIODE
1
二极管
0
IC2
PE16A
MAX232CPE
1
芯片
Header,4-Pin,Dualrow
IC3
MHDR2X4
MHDR2X4
1
LG9110
Header,4-Pin,Dualrow
IC4
MHDR2X4
MHDR2X4
1
LG9110
Motor,GeneralKind
M1
RB5-10.5
Motor
1
电机
Motor,GeneralKind
M2
RB5-10.5
Motor
1
电机
Resistor
R1
AXIAL-0.4
Res2
1
电阻10K
Resistor
R2
AXIAL-0.4
Res2
1
电阻10K
Resistor
R3
AXIAL-0.4
Res2
1
电阻10K
Resistor
R4
AXIAL-0.4
Res2
1
电阻10K
Resistor
R5
AXIAL-0.4
Res2
1
电阻10K
Resistor
R6
AXIAL-0.4
Res2
1
电阻10K
Resistor
R7
AXIAL-0.4
Res2
1
电阻10K
Resistor
R16
AXIAL-0.4
Res2
1
电阻560Ω
Resistor
R18
AXIAL-0.4
Res2
1
电阻560Ω
Resistor
R19
AXIAL-0.4
Res2
1
电阻560Ω
Resistor
R20
AXIAL-0.4
Res2
1
电阻560Ω
Resistor
R21
AXIAL-0.4
Res2
1
电阻560Ω
Resistor
R22
AXIAL-0.4
Res2
1
电阻560Ω
Resistor
R23
AXIAL-0.4
Res2
1
电阻560Ω
Resistor
R25
AXIAL-0.4
Res2
1
电阻560Ω
Resistor
RX11
AXIAL-0.4
Res2
1
电阻10K
Resistor
RX12
AXIAL-0.4
Res2
1
电阻10K
Resistor
RX13
AXIAL-0.4
Res2
1
电阻10K
Resistor
RX14
AXIAL-0.4
Res2
1
电阻10K
Resistor
RX15
AXIAL-0.4
Res2
1
电阻10K
Resistor
RX16
AXIAL-0.4
Res2
1
电阻10K
Resistor
RX17
AXIAL-0.4
Res2
1
电阻10K
Resistor
RX18
AXIAL-0.4
Res2
1
电阻10K
Switch
S1
SPST-2
SW-PB
1
矩阵式按键开关
Switch
S2
SPST-2
SW-PB
1
矩阵式按键开关
Switch
S3
SPST-2
SW-PB
1
矩阵式按键开关
Switch
S4
SPST-2
SW-PB
1
矩阵式按键开关
Switch
S5
SPST-2
SW-PB
1
矩阵式按键开关
Switch
S6
SPST-2
SW-PB
1
矩阵式按键开关
Switch
S7
SPST-2
SW-PB
1
矩阵式按键开关
Switch
S8
SPST-2
SW-PB
1
矩阵式按键开关
Switch
S9
SPST-2
SW-PB
1
矩阵式按键开关
Switch
S10
SPST-2
SW-PB
1
矩阵式按键开关
Switch
S11
SPST-2
SW-PB
1
矩阵式按键开关
Switch
S12
SPST-2
SW-PB
1
矩阵式按键开关
Switch
S13
SPST-2
SW-PB
1
矩阵式按键开关
Switch
S14
SPST-2
SW-PB
1
矩阵式按键开关
Switch
S15
SPST-2
SW-PB
1
矩阵式按键开关
Switch
S16
SPST-2
SW-PB
1
矩阵式按键开关
Switch
S17
SPST-2
SW-PB
1
按键开关
Switch
S18
SPST-2
SW-PB
1
按键开关
Single-Pole,Single-ThrowSwitch
S19
SPST-2
SW-SPST
1
单刀开关
U1
DIP-20
74HC573
1
电源
U2
DIP-20
74HC573
1
电源
CP-SR410561K
U3
SR410561
SR410561K
1
电源
8-BitMicrocontrollerwith8KISPFlashROM
U4
DIP-40
AT89S51
1
8位单片机AT89S51
CrystalOscillator
Z1
R38
XTAL
1
晶体振荡器
3软件设计
3.1主程序设计
主程序清单如下:
limiwequ30h;厘米位
miaoequ31h;秒位
fenmiequ32h;分米位
fmiaoequ33h;分秒位
meterequ34h;米位
fenzhequ35h;分位
pointequ36h;小数点位
shimiequ37h;十米位
shifnequ38h;十分位
suduequ39h;速度控制
jishkequ3ah;记时开始
zhondequ3bh
zhoduequ3ch
zhonequ3eh
maichoequ3fh
jinwebequ40h
bhcsequ41h
dpanequ42h
fenchuequ43h
fencunequ44h
pandequ45h
fenmcequ51h
org0000h
ajmpmain
org000bh
ajmpst0
org001bh
ajmpst1
org0100h
main:
movlimiw,#00h
movmiao,#00h
movfenmi,#00h
movfmiao,#00h
movmeter,#00h
movfenzh,#00h
movpoint,#0bh
movshimi,#00h
movshifn,#00h
movjishk,#00h
movzhond,#00h
movzhodu,#00h
movzhon,#00h
movmaicho,#00h
movjinweb,#03h
movbhcs,#00h
movsp,#6fh
movtmod,#21h
movth0,#3ch
movtl0,#0b0h
movth1,#9ch
movtl1,#9ch
setbea
setbet0
setbet1
movp1,#0aah
acallxianshi
3.2子程序设计
3.2.1显示子程序设计
xianshi:
movp1,#0aah
movp1,#0cch
mova,limiw
swapa
adda,miao
movp1,a
nop
nop
movp1,#0ddh
mova,fenmi
swapa
adda,fmiao
movp1,a
nop
nop
movp1,#0eeh
mova,#0b0h
adda,point
movp1,a
nop
nop
movp1,#0eeh
mova,meter
swapa
adda,fenzh
movp1,a
nop
nop
movp1,#0ffh
mova,shimi
swapa
adda,shifn
movp1,a
ret
3.2.2定时子程序设计
//[Timer.h]定时器头文件-----------------------------------------------------
//定时器需要用到的头文件
#include
#include"Type.h"//类型别名定义
//定时器相关函数声明
voidTimerInit(void);//定时器初始化函数声明
voidTimerUpDate(void);//定时器更新函数声明
//外部变量声明
externINT8Utime[3];//存放时,分,秒
externINT8UTimInterCoun
//[Timer.c]定时器----------------------------------------------------------*
//本文件包含:
*
//
(1)TimerInit:
定时器初始化
*
//
(2)TimerUpDate:
定时器更新
*
//------------------------------------------------------------------------
*
//头文件
#include"Timer.h"//定时器头文件
//TimerInit:
定时器初始化函
-----------------------------------------------*
//功能:
定时器初始化,中断一次时间为1/38秒
*
//参数:
无
*
//返回:
无
*
//------------------------------------------------------------------------
*
voidTimerInit(void)
{
//禁止定时器溢出中断,分频因子p=8
//中断一次时间计算:
t=n/(fbus/p)=1/38秒,其中n=65535,fbus=19.6608MHZ
TSCR2=0x03;
TSCR1=0x80;//允许主定时器开始计数
}
//TimerUpDate:
定时器更新函数
-----------------------------------------------
*
//功能:
更新显示的时间
*
//参数:
无
*
//返回:
无
*
//------------------------------------------------------------------------
*
voidTimerUpDate(void)
{
time[2]++;//秒数加1
if(time[2]!
=60)gotoisrTIMER1_exit;//秒数未增加到60,转
time[2]=0;time[1]++;//秒数增加到60,清0,分钟数加1
if(time[1]!
=60)gotoisrTIMER1_exit;//分钟数未增到60,转
time[1]=0;time[0]++;//分钟数增加到60,清0,小时数加1
if(time[0]!
=24)gotoisrTIMER1_exit;//小时数未增到24,转
time[0]=0;//时数增加到24,清0
isrTIMER1_exit:
TimInterCount=0;//中断次数清零
}
//[isr.h]中断处理函数头文
------------------------------------------------*
//功能:
*
//
(1)用于声明中断子函数
*
//-------------------------------------------------------------------------*
#ifndefISR_H//避免重复定义
#defineISR_H//头文件
#include"SCI.h"//串行通信头文件
#include"Timer.h"//定时器头文件
#include"Type.h"//类型别名定义
//开关总中断的宏定义
#defineENABLE_INTERRUPTSasm("cli")//开中断
#defineDISABLE_INTERRUPTSasm("sei")//关中断
//开关各模块中断的宏定义
//开放或禁止SCI0的接收中断的宏定义
#defineEnableSCIReIntSCI0CR2|=0x20//开放接收中断
#defineDisableSCIReIntSCI0CR2&=0xDF//禁止接收中断
//开放或禁止定时器1溢出中断的宏定义
#defineEnableT1OVIntTSCR2|=0x80//开放定时器1溢出中断
#defineDisableT1OVIntTSCR2&=0x7F//禁止定时器1溢出中断
#endif
//[isr.c]中断处理函
------------------------------------------------------*
//功能:
*
//
(1)定义中断处理函数
*
//------------------------------------------------------------------------
*
//头文件
#include"isr.h"//中断处理函数头文件
#pragmaCODE_SEG__NEAR_SEGNON_BANKED//外部变量声明
externINT8Utime[3];//存放时,分,秒
externINT8UTimInterCount;//中断次数
//isrTimOver:
定时器溢出中断处理程
----------------------------------------*
//功能:
时,分,秒的处理
*
//------------------------------------------------------------------------
*
__interrupt16voidisrTimOver(void)
{
DISABLE_INTERRUPTS;//关总中断
TimInterCount++;//中断次数加一,中断38次为一秒
if(TimInterCount==38)
{
TimerUpDate();//定时器更新
}
TFLG2=0x80;//清除定时器溢出标志位
ENABLE_INTERRUPTS;//开总中断
}
//isrRe:
SCI0接收中断处理函
-----------------------------------------------*
//功能:
接收3字节基准时分秒放入内存单元Time[0-2]
*
//-------------------------------------------------------------------------*
__interrupt20voidisrRe(void)
{
DISABLE_INTERRUPTS;//禁止总中断
SCIReN(3,time);//接收数据
ENABLE_INTERRUPTS;//开放总中断
}
4专业基础综合实验体会
通过这次专业基础综合实验,我收获很多,在老师的指导和帮助下,我学到了很多专业基础知识,并且能够将学到的知识运用于实践中,学以致用,这不仅让我能够更好掌握所学的专业知识,同时也培养了我个人的运用知识的能力。
这次的综合实验是由我们小组四个人共同完成的,从中我明白了,设计是一个团队性的工作,如果某一个人能力很强,而其他人不行,这个团队可能做不出来很好的东西,但是团队各成员分别有一定的技术功底,精诚合作,一定能完成一个好的作品。
团队要合作,要民主,同时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 专业 基础 综合 实验 报告 08 测控
![提示](https://static.bdocx.com/images/bang_tan.gif)