基于单片机智能小车毕业设计


    

    毕 业 设 计( 文)







    设计(文)题目: 基单片机智车

    学 院 名 称: 电子信息工程学院
    专 业: 电子信息工程
    班 级: 电信班
    姓 名: 学 号 xxxxxxxxxx
    指 导 教 师: 职 称 教授

    定稿日期:2013 年X 月 X日





    基单片机智车



    智车辆目前世界车辆研究领域热点汽车工业新增长点未车辆定智化车辆智化车辆未生活重载体必智车辆进行研究研制种智高效智车控制系统具重实际意义科学理价值文设计动循迹智车控制系统STC89C52单片机控制核心利反射式光电传感器检测黑线实现车循迹利超声波传感器检测道路障碍提示利LCD1602显示车速度路程实现车动根面黑线前进倒退转行驶超声波测距提示障碍物LCD1602实时显示车速度行驶路程具高度智化达设计目标

    关键词:智车STC89C52单片机超声波传感器LCD1602






    THE SMART CAR BASED ON MICROCONTROLLER



    ABSTRACT


    Intelligent vehicles are the hot spots of the world's vehicle research areas and the automotive industry a new growth point The vehicles of the future must be intelligent vehicles So intelligent vehicles is an important carrier of the future of people's livesTherefore the study of intelligent vehicles are necessary Therefore the development of a smart intelligent car control system with high efficiency is of practical significance and scientific important theoretical value This paper introduces the design of a smart car control system that can automatic trackingBased on signlechip microcomputer STC89C52 To achieve trackfinding using photoelectric sensor to detect black lineThe use of ultrasonic sensors to detect obstacles on the road and promptUsing the LCD1602 to display speed and distance The car can realize automatic based on the black line forward regression SteeringUltrasonic ranging prompting obstacles LCD1602 realtime display of the speed of the car and drive away with a high degree of intelligence achieve the design goal

    Key Words Smart car STC89C52 MCU ultrasonic sensorLCD1602

    目录

    摘 I
    ABSTRACT II
    目录 III
    第1章 绪 1
    11 智车意义作 1
    12 智车现状 1
    第2章 方案设计证 2
    21 控系统 2
    22 电源模块 2
    23 电机驱动模块 3
    231 电机模块选择证 3
    232 电机驱动模块选泽证 3
    24 循迹模块 4
    25 测速模块 5
    26 显示模块 6
    27 壁障模块 7
    第3章 硬件设计 8
    31 总体设计 8
    32 驱动电路 8
    33 信号检测电路 11
    34 测速电路 12
    35 显示电路 13
    36 控电路 13
    第4章 软件设计 17
    41 程序模块设计 17
    411 程序流程图 17
    412 程序设计 17
    42 电机驱动程序设计 19
    421 电机驱动程序流程图 19
    422 电机驱动程序设计 20
    43 循迹模块程序设计 22
    431 循迹模块流程图 22
    432 循迹模块程序设计 22
    44 测距壁障模块程序设计 24
    441 超声波测距模块流程图 24
    442 超声波测距模块程序设计 25
    45 显示模块程序设计 26
    451 显示模块流程图 26
    452 显示模块程序设计 26
    第5章 系统软硬件调试 29
    51 软件程序调试 29
    52 硬件电路焊接调试 30
    参考文献 31
    附录1 原理图 32
    附录2 源程序 33
    附录3实物图 43
    致 谢 44
    作品(软件)说明书 45

    第1章 绪


    11 智车意义作
    智出现生活生产带便利时发展方智特定环境中前面设定模式动运作需理达前面设定目标应领域广应工业控制科学勘探智家居等领域智车智简单应智车智化玩具中种类智玩具具较交互性控性够设定模式动运作深受喜欢外智车应危险搜索机器等许方面尤机器方面具发展前景智化车研究仅具现实意义具极广阔应前景市场价值
    12 智车现状
    智车研究开发应涉传感技术电气技术电气控制技术智控制等学科智控制技术门跨科学综合性技术代研究十分活跃应日益广泛领域[1]众周知机器技术发展国家高科技水工业动化程度重标志体现目前世界国开展机器技术研究机器高灵活性帮助提高生产率改进产品质量等优点世界生产生活领域广泛应[2]智车正模仿机器种尝试种汽车电子背景涵盖学科科技创新性设计般路径识速度采集角度控制车速控制等模块组成种智车够动搜寻前进路线爬坡感知前方障碍物动寻找前进方避开障碍物外果加入相关声光讯号更体现出智化性化面

    第2章 方案设计证


    21 控系统
    单片机具价格低廉资源丰富较强控制功次设计采STC89C52单片机作整系统核心控制行进中车实现定性指标STC89C52超低功耗增强型51单片机标准51系列单片机相较运算速度更快超强抗干扰力时支持ISP线编程片集成512字节机存取数存储器(RAM)片含8k字节空间反复擦写1000次Flash读存储器 32IO口316位编程定时计数器指令系统传统8051系列单片机指令系统完全兼容降低系统软件设计难度电路设计简单价格低廉实验中发现STC 89C52精确度运算速度完全符合系统求


    22 电源模块
    系统需整智车系统供电考虑种方案
    方案:采4节12V充电电池组电充满时4节电池电压达5v充电电池组具较强电流驱动力稳定电压输出性直流电机工作时会LCD1602显示造成干扰显示稳定放弃方案
    方案二:双电源供电9v充电方块电池电压降压稳压5V单片机系统LCD1602芯片供电外采4节12V充电电池组直流电机供电测试种供电方式单片机传感器工作稳定直流电机工作良LCD显示稳定车长时间工作
    综考虑选择方案二完成智车整系统供电


    23 电机驱动模块
    231 电机模块选择证
    方案:步进电机作智车系统驱动电机步进电机转动角度精确定位样较精确定位车前进距离位置步进电机输出力矩偏低会着电机转速升高降达较高转速时输出力矩会急剧降适车等速度着定求系统综合分析较决定放弃方案
    方案二:直流减速电机作智车系统驱动电机直流减速电机转动力矩较体积较重量轻方便外车电机部装减速齿轮组需考虑调速功方便通单片机控制直流减速电机正传反转停止操作
    综合考虑选择方案二直流减速电机作整智车驱动电机

    232 电机驱动模块选择证
    方案:采继电器电动机进行控制通切换电动机开关调整车速度方案优点电路相较简单缺点较:继电器响应时间偏慢 寿命较短容易损坏性高决定放弃方案
    方案二:采专电机驱动芯片L298N控制直流减速电机 L298N芯片(图23)具高电压电流全桥驱动芯片片L298N芯片分控制两直流减速电机6~46V电压提供2A额定电流具热动关断电流反馈检测功安全该芯片利TTL电进行控制通单片机IO口输出高低电改变芯片控制端输入电实现电机进行正转反转停止操作外保证L298N正常工作安装8续流二极1N4007该芯片作电机驱动驱动力操作方便稳定性性优良
    综合分析证选择方案二驱动芯片L298N作整智车系统电机驱动电路

    图23 L298N

    24 循迹模块
    方案:光敏电阻探测光敏电阻阻值会着周围环境光线变化变化[6]光敏电阻黑色轨迹方白色轨迹方时阻值会发生较明显变化阻值变化值输入电压较器输出高低电单片机根反馈电信号发出相应控制操作命令控制车左转右转前进者停止实际效果理想误测率偏容易受外界光线环境影响够稳定工作考虑更加稳定方案
    方案二:采红外反射式光电完成系统循迹[3]TCRT5000(图24)种体化反射型光电探测器传感器采高发射功率红外光电二极高灵敏度光电晶体组成发射器砷化镓红外发光二极接收器高灵敏度硅面光电三极利光反射原理光线射白纸反射量会较反光射黑色物体反射回量较少黑色会吸收光样判断黑胶带带轨道走采红外线发射外面见光接收信号影响较利红外黑线边界进行检测LM393检测信号进行较取反送单片机进行处理光电电路简单工作性稳定
    测试方案二黑暗者强光射智车系统均稳定工作外界环境适应力较强选择方案二

    图24 TCRT5000

    25 测速模块
    方案:采霍尔传感器检测轮子磁铁单片机中断脉通单位时间脉计数通公式算出实时车速达测量速度作霍尔元件具体积动态特性频率响应宽度外围电路求简单寿命长安装方便价格低廉等特点需磁钢配较麻烦
    方案二:采光电码盘透射式光电传感器(凹槽型图25)进行测速槽型光耦红外发光光敏三极构成工作时红外发光发出红外光线透光耦槽投射光敏三极光敏三极导通集电极输出低电红外光线检测物遮断时光敏三极截止集电极输出高电遮挡次槽型光耦输出脉脉数检测物数量车轮转动时带动码盘转动单片机部计时测出定时间通脉数测出车实时速度方便抗干扰性较强
    通较方案方案二优缺点综合方面素决定选方案二


    图25 槽型光电传感器

    26 显示模块
    方案:采LED数码显示数码简单价格低廉数码显示数字显示位数时数码增加硬件电路复杂度额外功耗LED数码法显示字符计划显示车运行速度路程LED数码没办法显示容考虑方案
    方案二:采LCD1602液晶(图26)显示LCD1602液晶具功耗低显示容丰富清晰显示信息量显示速度较快界面友简单等特点广泛应外围电路较简单选择方案
    通方案述选择方案二显示车运行速度路程务


    图26 LCD1602液晶显示器



    27 壁障模块
    方案:漫反射式光电开关进行避障光电开关工作原理根光线发射头发出光束物体反射接收电路做出判断反应物体红外光步回路选通检测物体光线反射回时输出低电没光线反射回时输出高电操作简单测量距离远
    方案二:超声波传感器进行测距避障超声波传感器原理:超声波压电陶瓷超声波传感器发出遇障碍物便反射回然超声波传感器接收[8]超声波传感器避障设计中广泛应方便便操作调试采集成超声波测距模块HCSR04(图27)
    综合考虑系统需检测障碍物没十分复杂环境方便便操作调试终选择方案二



    图27 HCSR04超声波测距模块










    第3章 硬件设计


    31 总体设计
    智车采前轮驱动前轮左右两边电机驱动通电机驱动芯片L298N控制前面两轮子转动停止达控制转目轮万轮起支撑转作4红外光电传感器装车体底盘前端车根传感器检测情况循迹前进
    车速度检测通槽型光电传感器码盘装电机轴码盘电机起转动检测数传回单片机进行处理
    车避障超声波避障模块HCSR04置车头检测障碍物时车做出相应反应
    总体设计框图图31

    图31 总体设计框图

    32 驱动电路
    电机驱动芯片采L298N款承受高压电流全桥型直流步进电压驱动器图32

    图32电机控制芯片L298N引脚排列

    中L298N引脚编号功部逻辑表31图33

    表31 L298N引脚编号功
    引脚编号
    名称

    1
    电流传感器A
    该引脚间接阻值电阻检测电流
    2
    输出引脚1
    置驱动器A输出端1接电机A
    3
    输出引脚2
    置驱动器A输出端2接电机A
    4
    电机电源端
    电机供电输入端电压达46V
    5
    输入引脚1
    置驱动器A逻辑控制输入端1
    6
    端A
    置驱动器A端
    7
    输入引脚2
    置驱动器A逻辑控制输入端2
    8
    逻辑
    逻辑
    9
    逻辑电源端
    逻辑控制电路电源输入端5V
    10
    输入引脚3
    置驱动器B逻辑控制输入端1
    11
    端B
    置驱动器B端
    12
    输入引脚4
    置驱动器B逻辑控制输入端2
    13
    输出引脚3
    置驱动器B输出端1接电机B
    14
    输出引脚4
    置驱动器B输出端2接电机B
    15
    电流传感器B
    该引脚间接阻值电阻检测电流




    图33 L298N部原理图

    电机驱动AB控制逻辑表示

    表32 电机驱动AB控制逻辑
    输入信号
    电机运动方式
    端AB
    输入引脚13
    输入引脚24
    1
    1
    0
    前进
    1
    0
    1
    退
    1
    1
    1
    紧急停车
    1
    0
    0
    紧急停车
    0
    X
    X
    转动


    L298N直接电机进行控制需隔离电路通单片机IO输入改芯片控制端电电机进行正反转停止操作操作非常方便满足直流减速电机电流求[4]调试时表程序输入应码值实现应操作驱动电路原理图图34示

    图34 L298N驱动原理图
    33 信号检测电路
    车循迹原理铺约四厘米宽黑胶带白纸 路面行驶黑纸白色路面光线反射系数根接收反射光强弱判断道路——黑纸轨迹设计采简单易应较普遍红外探测法
    红外探测法红外线颜色物表面具反射性质特点[7]车行驶程中传感器红外发射二极断发射红外线发射出红外线没反射回反射回强度够时光敏三极直处关断状态时模块输出端低电红外线遇白色面时发生漫反射红外线反射回反射光装车接收接收强度足够光敏三极饱时模块输出端高电果遇黑纸红外光吸收车接收接收信号通LM393作较器采集高低电实现信号检测避障原理
    通设计图35示电路检测图中R18限流电阻光反射回时光电传感器三极导通LM3932脚出产生低电电压通LM393处理P10出产生高电返回单片机达检测目通变阻器RV1调节传感器灵敏度


    图35循迹原理图

    34 测速电路
    采透射式光电传感器(凹槽型)进行测速槽型光耦红外发光光敏三极构成码盘安装电机轴电机转动时码盘转动工作时红外发光发出红外光线透光耦槽投射光敏三极光敏三极导通集电极输出低电红外光线检测物遮断时光敏三极截止集电极输出高电遮挡次槽型光耦输出脉脉数检测物数量车轮转动时带动码盘转动单片机部计时测出定时间通脉数测出车实时速度电路原理图循迹原理图类似图36示

    图36 测速电路原理图

    35 显示电路
    LCD1602显示数LCD液晶具功耗低显示容丰富清晰显示信息量显示速度较快等特点中滑动变阻器RV0调节显示器背光亮度电路原理图图37


    图37显示电路原理图
    36 控电路
    单片机控制单元核心起着控制车运行状态作单片机控制模块宏晶公司生产STC89C52该芯片容易实现模块控制通单片机STC89C52写入程序方便软件控制整程控制部分图38示

    图38 单片机系统

    STC89C52单片机系统包括晶振电路电源电路复位电路中复位电路复位键车复位P13~P17分控制电机驱动P口外接控制车种控制开关P0口外接拉电阻外接LCD1602
    STC89C52 单片机介绍[5]:
    STC89C52RC单片机宏晶科技推出新代高速低功耗超强抗干扰单片机指令代码完全兼容传统8051单片机12时钟机器周期6时钟机器周期意选择
    特性:
    1 增强型8051单片机6时钟机器周期12时钟机器周期意选择指令代码完全兼容传统8051
    2 工作频率范围:0~40MHz相普通80510~80MHz实际工作频率达48MHz
    3 工作电压:55V~33V(5V单片机)38V~20V(3V单片机)

    4 片集成512字节RAM
    5 户应程序空间8K字节
    6 ISP(系统编程)IAP(应编程)需专编程器需专仿真器通串口(RxDP30TxDP31)直接载户程序数秒完成片
    7 通IO口(32)复位:P1P2P3P4准双口弱拉P0口漏极开路输出作总线扩展时加拉电阻作IO口时需加拉电阻
    8 具门狗功
    9 具EEPROM功
    10 316位定时器计数器定时器T0T1T2
    11 外部中断4路降中断低电触发电路Power Down模式外部中断低电触发中断方式唤醒
    12 通异步串行口(UART)定时器软件实现UART
    13 工作温度范围:40~+85℃(工业级)0~75℃(商业级)
    14 PDIP封装
    STC89C52单片机引脚图图39


    图39 STC89C52RC引脚图
    外STC单片机两种时钟模式种单倍速12时钟模式该模式STC单片机公司51系列单片机具相机器周期12振荡周期机器周期种双倍速称6时钟模式该模式STC单片机公司51单片机运行速度快倍








    第4章 软件设计
    41 程序模块设计
    411 程序流程图


    图41 程序流程图

    图41程序流程图中开始时先单片机初始化包括定时器初始化外部中断初始化液晶初始化然调循迹子程序车循迹前进果定时时间调超声波模块子程序判断前方50cm处否障碍物果话led闪烁果检测停止线车停止

    412 程序设计
    void main()
    {
    Timer_Init() 定时器初始化
    INT0_Init() 外部中断初始化
    LCD_Init() LCD1602初始化
    TR11 启动定时器
    lcd_write_cmd(0x80)
    LED1 1
    LED2 1


    while(1)
    {
    PWM() pwm调速
    track() 调循迹子程序
    lcd_write_cmd(0x80+0x09)
    lcd_write_dat(qian)
    lcd_write_cmd(0x80+0x0a)
    lcd_write_dat(bai2)
    lcd_write_cmd(0x80+0x0b)
    lcd_write_dat(shi2)
    lcd_write_cmd(0x80+0x0c)
    lcd_write_dat(ge2)

    lcd_write_cmd(0x80+0x47)
    lcd_write_dat(bai1)
    lcd_write_cmd(0x80+0x48)
    lcd_write_dat(shi1)
    lcd_write_cmd(0x80+0x49)
    lcd_write_dat(ge1)

    if(flag11&&flag21)
    {
    csb() 调超声波子程序
    flag10
    }
    }
    }


    42 电机驱动程序设计
    421 电机驱动程序流程图

    图42 电机驱动程序流程图

    电机驱动程序流程图图42开始先检测车状态果相黑线直调直走子程序左右两电机正转果车偏黑线左边调右走子程序左电机正转右电机反转果车偏黑线右边调左走子程序左电机反转右电机正转果车完全偏离黑线调退子程序两电机反转果车终点调停止子程序两电机转

    422 电机驱动程序设计

    void goahead() 车直走
    {
    IN1 1
    IN2 0
    IN3 1
    IN4 0
    }

    void goback() 车退
    {
    IN1 0
    IN2 1
    IN3 0
    IN4 1
    }

    void turnright() 车右转
    {
    IN1 1
    IN2 0
    IN3 0
    IN4 1
    }

    void turnleft() 车左转
    {
    IN1 0
    IN2 1
    IN3 1
    IN4 0
    }

    void zw_turnright() 转弯时左转
    {
    IN1 1
    IN2 0
    IN3 0
    IN4 0
    }

    void zw_turnleft() 转弯时右转
    {
    IN1 0
    IN2 0
    IN3 1
    IN4 0
    }
    void stop() 车停止
    {
    IN1 0
    IN2 0
    IN3 0
    IN4 0
    }

    void PWM(void) 车调速
    {
    PWM_ENA 1
    PWM_ENB 1
    delayXms(H)
    PWM_ENA 0
    PWM_ENB 1
    delayXms(L)
    PWM_ENA 0
    PWM_ENB 0
    delayXms(N)
    }
    43 循迹模块程序设计
    431 循迹模块流程图

    图43 循迹模块流程图

    图43 循迹模块流程图中通检测P1口第四位电赋变量temp然switchcase语句根P1口低四位电出相应电送电机驱动芯片L298N控制车直走左转右转退停止等动作


    432 循迹模块子程序设计

    void track( void )

    {
    uchar temp 0
    temp P1 & 0x0f 取P1口低四位赋变量temp

    switch( temp )
    {

    case 0x09

    goahead() 直走
    break

    case 0x0c
    case 0x0e

    turnleft()左转
    break

    case 0x03
    case 0x07
    turnright()右转
    break

    case 0x0f
    goback() 退
    break

    case 0x00
    stop() 停止
    break

    case 0x08

    zw_turnleft()直角转弯时左转
    delayXms(20)
    break

    case 0x01

    zw_turnright() 直角转弯时右转
    delayXms(20)
    break

    default

    break
    }
    }

    44 测距避障模块程序设计
    441 测距模块流程图

    图44测距模块流程图

    测距模块流程图图44开始时单片机先超声波测距模块Trig端发送高电高电持续20us然Trig端发送低电启动超声波测距模块超声波测距模块会动发送840KHZ方波等否信号返回果信号返回会通IO口超声波测距模块Echo端输出高电高电持续时间超声波发射返回时间测试距离(高电时间*340) 2单位m果距离50cm车前两LED等闪烁提示果距离7cm车动停

    442 测距模块程序设计

    void csb()
    {
    TH00
    TL00
    TX1 Trig发送端发出高电
    delay_20us() 延时20us

    TX0 Trig发送端发出低电
    while(RX0) 等接收端高电
    TR01 启动定时器
    while(RX) 等接收端低电
    TR00 关闭定时器
    timeTH0*256+TL0
    julitime*0017 (1(12*1000000))*340*12*1002距离单位cm
    if(juli<7)
    {
    stop()
    LED1 LED1
    LED2 LED2
    delayXms(100)
    flag31
    }
    else if((juli>5)&&(juli<50))
    {
    LED1 LED1
    LED2 LED2
    delayXms(100)
    flag30
    }
    else if(juli>50)
    {
    LED11
    LED21
    flag30
    }
    }
    45 显示模块程序设计
    451 显示模块流程图

    图45显示模块流程图

    图45显示模块流程图先初始化LCD1602然液晶第行显示Journey cm液晶第二列显示Speed mms 然程序断调显示程序刷新cm者mm前面数字

    452 显示程序设计

    bit lcd_busy() 判忙函数
    {
    bit result
    RS0
    RW1
    E1
    _nop_()
    _nop_()
    _nop_()
    _nop_()
    result (bit)(P0&0x80)
    E0
    return result
    }

    void lcd_write_cmd(uchar cmd) 液晶写指令
    {
    while(lcd_busy())
    RS0
    RW0
    E0
    _nop_()
    _nop_()
    P0cmd
    _nop_()
    _nop_()
    _nop_()
    _nop_()
    E1
    _nop_()
    _nop_()
    _nop_()
    _nop_()
    E0
    }


    void lcd_write_dat(uchar dat) 液晶写数指令
    {
    while(lcd_busy())
    RS1
    RW0
    E0
    P0dat
    _nop_()
    _nop_()
    _nop_()
    _nop_()
    E1
    _nop_()
    _nop_()
    _nop_()
    _nop_()
    E0
    }
    void LCD_Init() 液晶初始化指令
    {
    delayXms(12)
    lcd_write_cmd(0x38)
    delayXms(4)
    lcd_write_cmd(0x0c)
    delayXms(4)
    lcd_write_cmd(0x06)
    delayXms(4)
    lcd_write_cmd(0x01)
    delayXms(4)
    lcd_write_cmd(0x80)

    for(i0i<16i++) 液晶第列显示Journey mm
    lcd_write_dat(display1[i])

    lcd_write_cmd(0x80+0x40)液晶第二列显示Speed mms

    for(i0i<16i++)
    lcd_write_dat(display2[i])

    }



















    第5章 制作安装调试

    51 软件程序调试
    软件调试务利ISIS开发工具进行线仿真调试发现纠正程序错误时发现仿真结果障程序调试模块模块进行简单程序开始先画单片机系统烧录简单点亮led程序单片机系统仿真电路否连接正确否慢慢调试扩充首先单独调试功子程序检验程序否够实现预期功接口电路控制否正常等逐步子程序连接起总调
    仿真图图51示:


    图51 智车仿真图





    52 硬件电路焊接调试
    硬件电路焊接中需焊接模块较提高调试效率整系统分成部分进行焊接调试开始模块设计前完成模块设计进行测试动手前务必查清楚元件资料稍微复杂点电路 前先搭建中部分电路测试否正常然进行总电路设计样循序渐进设计节省时间保证电路正确性外电路设计测试样重特程序关外围检测驱动等模块果排硬件障调试时候难分清底硬件软件问题硬件设计完成首先需测试硬件够正常工作样遇问题时够排硬件干扰找出问题
    车整体调试模块进行分步骤:
    ①首先测试电源工作情况模块否良供电
    ②然检查单片机否正常烧写程序工作
    ③光电安装完成根测试数调节电位器选择合适参考电压
    ④测试两前轮电机工作情况试验电机驱动力
    ⑤车黑色轨道初步循迹运行
    ⑥反复测试参数变化车影响找出效配置
    ⑦车运行程中种出现情况测试发现问题找出解决方法
    ⑧整理数优化程序设计
    次调试系统够基满足设计求够较快较稳黑色路面行驶













    参考文献
    [1] 李瀚霖等 智车研究设计[J] 科技致富导 2011年26期
    [2] 王志良 竞赛机器制作技术[M] 北京 机械工业出版社 2007615
    [3] 韩毅 杨天 基HCS12单片机智寻迹模型车设计实现[J] 学术期刊 2008 29(18):15351955
    [4] 王晓明 电动机单片机控制[J] 学术期刊 2002 13(15):13221755
    [5] 温子祺等 51单片机C语言创新教程[M] 北京 北京航航天学出版社 20114
    [6] 朱燕等 浅谈智控制车设计[J] 机电信息 2011
    [7] 唐华溢等 智循迹车系统应[J] 科技生活 2010
    [8] 晔 基AT89S52单片机动避障动追光车新设计[J] 科技致富导 20114
    [9] 张毅刚彭喜元彭宇 单片机原理应[M] 北京 高等教育出版社20105
    [10] 赵海兰 基单片机红外遥控智车设计[J] 线互联科技 2011年3期
    [11] 姚培等 基单片机控制智循迹避障车[J] 机电信息2010年12期
    [12] 连国李伟王妍玮 基单片机智车设计[J] 林业机械木工设备 2011年4期
    [13] 赵振德 功遥控智车制作[J] 电子制作 2011年4期
    [14] 胡汉 单片机原理接口技术[M] 北京:清华学出版社19994
    [15] Yamato I et al High frequency link DC AC converter for UPS with a new voltageclamper[J]1IEEE PESC 1990 52105


    附录1原理图

    附录2源程序

    #include 包含头文件头文件包含特殊功寄存器定义
    #include Keil外部函数库包含文件_nop_函数库中

    #define uint unsigned int
    #define uchar unsigned char
    #define ulong unsigned long

    #define diameter 60 码盘直径
    #define disc 20 码盘栅格数2020脉圈

    #define H 100
    #define L 10
    #define N 20


    uint inmtime0

    uchar bai1shi1ge1qianbai2shi2ge2flag10flag21
    ulong speedcount1count2journeyjuli
    定义端口
    sbit PWM_ENA P3^0
    sbit PWM_ENB P3^1
    sbit IN1 P1^4
    sbit IN2 P1^5
    sbit IN3 P1^6
    sbit IN4 P1^7

    sbit RSP2^5
    sbit RWP2^6
    sbit E P2^7

    sbit LED1 P2^0
    sbit LED2 P2^1

    sbit TXP3^6 超声波模块Trig触发信号控制端
    sbit RXP3^7 接收回波控制端


    uchar display1[]{Journey mm}
    uchar display2[]{Speed mms }


    void delay_20us() 延时20us
    {
    int a
    a2
    while(a>0)
    a
    }

    void delay1ms(void) 延时1ms
    {
    uint j
    for(j0j<120j++)
    { _nop_() }
    }

    void delayXms(uint ms)延时n毫秒
    {
    uint k
    for(k0k {delay1ms()}
    }

    bit lcd_busy() 判忙函数
    {
    bit result
    RS0
    RW1
    E1
    _nop_()
    _nop_()
    _nop_()
    _nop_()
    result (bit)(P0&0x80)
    E0
    return result
    }

    void lcd_write_cmd(uchar cmd) 液晶写指令
    {
    while(lcd_busy())
    RS0
    RW0
    E0
    _nop_()
    _nop_()
    P0cmd
    _nop_()
    _nop_()
    _nop_()
    _nop_()
    E1
    _nop_()
    _nop_()
    _nop_()
    _nop_()
    E0
    }

    void lcd_write_dat(uchar dat) 液晶写数指令
    {
    while(lcd_busy())
    RS1
    RW0
    E0
    P0dat
    _nop_()
    _nop_()
    _nop_()
    _nop_()
    E1
    _nop_()
    _nop_()
    _nop_()
    _nop_()
    E0
    }

    void LCD_Init() 液晶初始化指令
    {
    delayXms(12)
    lcd_write_cmd(0x38)
    delayXms(4)
    lcd_write_cmd(0x0c)
    delayXms(4)
    lcd_write_cmd(0x06)
    delayXms(4)
    lcd_write_cmd(0x01)
    delayXms(4)
    lcd_write_cmd(0x80)

    for(i0i<16i++) 液晶第列显示Journey mm
    lcd_write_dat(display1[i])

    lcd_write_cmd(0x80+0x40)液晶第二列显示Speed mms

    for(i0i<16i++)
    lcd_write_dat(display2[i])

    }

    void Timer_Init() 定时器0定时器1初始化函数
    {
    TMOD0x11
    ET01
    TR00

    ET11
    EA1

    TH1 (6553550000)256 初加载50毫秒
    TL1 (6553550000)256
    }

    void INT0_Init() 外部中断0初始化
    {
    IT0 1
    EX0 1
    EA 1
    }

    void EXT_INT0(void) interrupt 0 外部中断0中断处理函数
    {
    count1++
    count2++
    }

    void T0_time() interrupt 1 定时器0中断处理函数
    {
    TH00
    TL00
    }

    void T1_time() interrupt 3 定时器1中断处理函数
    {
    TR10
    TH1 (6553550000)256
    TL1 (6553550000)256
    n++
    m++
    if(m2)
    {
    m0
    flag11
    }
    if(n20) 定时2秒(4050ms1秒)
    {


    n0
    journey count2 * 314* diameterdisc10 路程等总脉输栅格数周长单位cm
    qian (journey1000)+48
    bai2 (journey1000100)+48
    shi2 (journey100010010)+48
    ge2 (journey100010010)+48

    speedcount1*314* diameterdisc2 单位mms定时两秒2
    bai1 (speed100)+48
    shi1 (speed10010)+48
    ge1 (speed10010)+48



    count10
    }

    TR11

    }

    void goahead() 车直走
    {
    IN1 1
    IN2 0
    IN3 1
    IN4 0
    }

    void goback() 车退
    {
    IN1 0
    IN2 1
    IN3 0
    IN4 1
    }

    void turnright() 车右转
    {
    IN1 1
    IN2 0
    IN3 0
    IN4 1
    }

    void turnleft() 车左转
    {
    IN1 0
    IN2 1
    IN3 1
    IN4 0
    }

    void zw_turnright() 转弯时左转
    {
    IN1 1
    IN2 0
    IN3 0
    IN4 0
    }

    void zw_turnleft() 转弯时右转
    {
    IN1 0
    IN2 0
    IN3 1
    IN4 0
    }

    void stop() 车停止
    {
    IN1 0
    IN2 0
    IN3 0
    IN4 0
    }

    void PWM(void) 车调速
    {
    PWM_ENA 1
    PWM_ENB 1
    delayXms(H)
    PWM_ENA 0
    PWM_ENB 1
    delayXms(L)
    PWM_ENA 0
    PWM_ENB 0
    delayXms(N)
    }
    void track( void )

    {

    uchar temp 0
    temp P1 & 0x0f 取P1口低四位赋变量temp

    switch( temp )
    {

    case 0x09

    goahead() 直走

    break

    case 0x0c
    case 0x0e

    turnleft()左转

    break

    case 0x03
    case 0x07
    turnright()右转

    break

    case 0x0f
    goback() 退

    break

    case 0x00
    stop() 停止

    break

    case 0x08

    zw_turnleft()直角转弯时左转
    delayXms(20)
    break

    case 0x01

    zw_turnright() 直角转弯时右转
    delayXms(20)
    break

    default

    break

    }
    }

    void csb() 超声波模块检测子函数
    {

    TH00 重新装初值
    TL00
    TX1 触发次
    delay_20us() 延时for(i0i<100i++)_nop_()
    TX0
    while(RX0) 没接收回波时等
    TR01 接收回波开定时器
    while(RX) 回波没结束等
    TR00 接收回波关闭定时器
    timeTH0*256+TL0
    julitime*0017 (1(12*1000000))*340*12*1002距离单位cm
    if(juli<7)
    {
    stop()
    LED1 LED1
    LED2 LED2
    delayXms(100)
    flag31
    }

    else if((juli>5)&&(juli<50))
    {
    LED1 LED1
    LED2 LED2
    delayXms(100)
    flag30
    }

    else if(juli>50)
    {
    LED11
    LED21
    flag30
    }
    }

    void main()
    {

    Timer_Init() 定时器初始化
    INT0_Init() 外部中断初始化
    LCD_Init() LCD1602初始化
    TR11 启动定时器
    lcd_write_cmd(0x80)
    LED1 1
    LED2 1

    while(1)
    {
    PWM() pwm调速
    track() 调循迹子程序
    lcd_write_cmd(0x80+0x09)
    lcd_write_dat(qian)
    lcd_write_cmd(0x80+0x0a)
    lcd_write_dat(bai2)
    lcd_write_cmd(0x80+0x0b)
    lcd_write_dat(shi2)
    lcd_write_cmd(0x80+0x0c)
    lcd_write_dat(ge2)

    lcd_write_cmd(0x80+0x47)
    lcd_write_dat(bai1)
    lcd_write_cmd(0x80+0x48)
    lcd_write_dat(shi1)
    lcd_write_cmd(0x80+0x49)
    lcd_write_dat(ge1)

    if(flag11&&flag21)
    {

    csb() 调超声波子程序
    flag10
    }

    }

    }




































    附录3实物图

    致谢
    毕业文暂告收尾意味着学学生活结束回首生宝贵时光样校园中众学富五车华横溢老师熏陶度实荣幸极四年时间里学思想受益非浅身努力外位老师学朋友关心支持鼓励分开
    毕业文设计程中遇许许困难首先感谢指导老师XX老师悉心帮助耐心细致指导提出宝贵修改意见敬佩胡老师专业水外踏踏实实丝苟作风学工作榜样积极影响学工作循循善诱指导独特新颖创意莫帮助次做毕业设计历会终身受益感受做毕业设计真真正正心做件事情真正学设计程
    感谢学四年传授专业知识老师时感谢院系领导教导关注提供良学环境够专心学陶冶情操感谢XX学院电信学院设计环境器材方面予力帮助支持
    学四年生活已接尾声回首已走岁月心中感慨万千文完成际心情久久静开始现老师学父母限关心指导祝位老师工作利身体健康感谢母校—宁波工程学院四年力栽培
    感谢评阅老师百忙中抽出时间文进行评阅







    作品(软件)说明书

    次设计智车简单首先9号电池4节5号电池分装进车指定位置然车停事先准备赛道9号电池附开关车便开始循迹前进前方50cm左右障碍物话安装车前面两led绿灯会闪前方7cm左右障碍物话车会动停直障碍物移车会继续循迹前进赛道终点时车会动停(注意5号电池附开关控制电机转动开始时默认已开)






















    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 8 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    基于单片机的智能小车设计开题报告

    电气与信息学院毕业设计(论文)开题报告 基于单片机的智能小车设计 电子 ...

    5个月前   
    309    0

    基于单片机的智能灭火小车设计

    摘要:当今社会,火灾在现实生活中普遍存在,被称为自然界三大灾害之一。当火灾发后,灭火工作坏境恶劣时,人工不能完成一些灭火任务,此时便可以使用智能灭火小车去完成相应的任务。本文设计了一个以单片机为...

    4年前   
    1495    0

    基于51单片机的智能窗户设计毕业设计

    基于51单片机的智能窗户设计【摘 要】 随着电子技术的发展和人民生活水平的不断提高,智能窗已经越来越多地被用到了现代智能化建筑中,提供住户一个安全、方便的环境。据统计,在未来的几年内,安装智...

    5个月前   
    121    0

    基于单片机的智能鱼缸的设计与实现毕业设计

    近年来嵌入式发展迅速,智能家居也进入了人们的生活。智能鱼缸却没有快速发展。我根据市场上相关设备现状的分析和研究,从系统集成角度进行设计和开发,提出了一套多功能的智能观赏鱼缸控制系统的设计方案。

    5年前   
    4274    0

    基于单片机的智能电饭煲的控制毕业设计

    分类号 编 号 毕 业 设 计题目: 基于单片机的电饭煲智能控制系统的设计 ...

    2年前   
    506    0

    基于单片机的智能温控风扇设计毕业设计

    XX职业技术学院毕业设计论文作者 学号 系部 电子信息学院 专业 物联网应...

    4年前   
    858    0

    基于图像识别的智能小车系统设计

    第1章 绪论1.1 课题背景目前,在企业生产技术不断提高、对自动化技术要求不断加深的环境下,智能车辆以及在智能车辆基础上开发出来的产品已成为自动化物流运输、柔性生产组织等系统的关键设备。世界上...

    8个月前   
    240    0

    基于8051的智能小车设计课程设计

    测控电路课程设计题目名称: 智能循迹小车 专业班级: ...

    2年前   
    583    0

    基于单片机的智能宠物投喂系统的设计

    基于单片机的智能宠物投喂系统的设计Design of intelligent pet feeding system based on MCU内容摘要随着人们现在生活和工作的压力加大,相互间可以...

    10个月前   
    348    0

    基于51单片机的智能窗帘控制系统

     毕业论文(设计) 学 院: 工学院 ...

    3年前   
    1112    0

    基于单片机的智能浇花系统的设计与实现

    基于单片机的智能浇花系统的设计与实现 摘 要 随着社会的发展,人民越来越注重环境质量。养殖花卉成了首要选择,在家养殖可以陶怡情操,丰富生活。同时花卉可以通过光合作...

    5年前   
    1969    0

    基于51单片机的8路智能抢答器

    抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。

    6年前   
    2345    0

    基于单片机的智能遥控感应风扇设计

    本设计为一种智能温控和湿控风扇系统,具有灵敏的温度感测、湿度感测和显示功能,系统STC89C52单片机作为控制平台对风扇转速进行控制。可由用户设置高、低温度值,测得温度值在高低温度之间时打开风

    4年前   
    706    0

    论文:基于51单片机的智能充电器的设计

    在我们的日常生活中,手机已经变得越来越重要了。我们经常需要使用手机,打电话、发短信、上网、看电影、听歌、玩游戏等等。随着大屏幕和高主频的手机出现,锂离子电池就变得更加重要了,其锂离子电池充电器也...

    5年前   
    1662    0

    基于51单片机的教室智能照明控制系统

    目 录绪论1 教室灯光自动控制整体描述 1.1 灯光控制总体思想 ................................................................

    3年前   
    879    0

    基于51单片机的智能家居报警系统

    随着网络和信息技术的飞速发展以及生活水平的提高,现在的社会有了很大的发展,信息化的概念已经越来越贴近我们的生活。伴随着社会的发展,家庭安全问题也被更加重视了。

    3年前   
    865    0

    基于单片机的红绿灯智能控制系统设计

    随着社会经济的快速发展以及人们生活水平的提高 ,机动车数量也在急剧增加 ,交通问题逐渐成为人们关注的重点对象,因城市发展所带来的交通拥堵等问题,利用智能交通来解决传统交通日渐出现的问题成为大势所趋。

    3年前   
    856    0

    基于51单片机的智能充电器的设计

    课题:基于51单片机的智能充电技术基于51单片机的智能充电器设计摘 要:智能充电器的设计第一步需要解决的就是选择什么样的芯片来进行工作,其本身需要将51单片机作为基本的设计基础,这里选择的充...

    7个月前   
    227    0

    基于单片机的CAN智能电动执行器的设计

    基于单片机的CAN智能电动执行器的设计控制器局部网CAN(Controller Area Network)属于现场总线的一种,是一种有效支持分布式控制或实时控制的串行通信网络,被公认为是最有前...

    3周前   
    69    0

    基于AT89S51单片机无线传输系统设计毕业设计

    毕业论文(设计) 题 目: 单片机无线传输系统设计 完 成 人: ...

    4年前   
    874    0

    文档贡献者

    文***品

    贡献于2023-10-14

    下载需要 8 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档