基于AVR单片机的多功能智能小车系统设计

发布者:RadiantBeauty最新更新时间:2019-10-22 来源: 51hei关键字:AVR  单片机  智能小车 手机看文章 扫描二维码
随时随地手机看文章

第1章 绪论

1.1 研究的背景和意义

智能车辆技术集成了机械、电子、自动化等多学科的发展,代表了现代技术发展的前沿。是未来车辆发展的必然趋势。在实际生活中,智能车辆通常需要根据人们的预设程序完成跟踪和避障。其中,大多数依靠传感器技术来获取路线和周围的环境。


本文以AVR作为控制核心,设计制作了智能寻线小车。它使用光线对管和红外传感器收集周围的各种信息,自动沿着地面设定的路线行走,并且可以在行走过程中自动躲避障碍物。智能小车采用前轮驱动,两轮采用直流电机,后轮采用万向轮。为了确保小车平稳正常地运行,我们采用PID算法控制直流电机地运行。本系统具有操作简单、成本低、可靠性高、结构紧凑等特点[4]。


1.2 国内外研究现状及发展前景

智能车辆系统是一种集中了计算机技术、自动化技术、传感器技术等多种高科技技术于一体的综合系统。从目前的发展趋势来看,智能车辆将是未来世界汽车行业发展的最终形态。相比于传统汽车,智能车辆拥有无法比拟的巨大优势。


首先,智能车辆是由智能计算机系统控制、连接互联网自动驾驶,相比于传统汽车,不仅将驾驶人员从繁重的驾驶工作中解放了出来,还可以大大地提高汽车行驶的安全系数。据谷歌调查,大部分交通事故都是人为造成的。目前随着辅助驾驶技术、半自动驾驶技术的发展普及,智能驾驶系统可以实时监控驾驶人员的状态,防止驾驶人员醉酒驾驶、疲劳驾驶、不遵守交通规则驾驶等行为,交通事故的发生率降低了50%~60%。在未来,随着技术的发展,全自动驾驶普及后,完全不需要驾驶人员,甚至可以完全避免交通事故的发生。

其次,智能车辆拥有更为先进的人机交互界面。智能车辆不仅搭载有智能驾驶系统,还拥有智能生活系统,使驾驶人员和乘客可以更舒适的享受在车上的时光。假如乘客有什么突发情况,智能生活系统还可以提供紧急解决方案。例如,在行驶过程中,如果乘客突发疾病,智能生活系统会主动提出医疗知识提示,防止周围的朋友因为不懂医疗知识而妄动患者造成二次伤害。并且,智能生活系统会自动将情况上传至互联网,将病情告知医院。而且,智能生活系统还会凭借车联网疏散通往医院车辆,使得汽车可以尽快到达医院,使病人得到及时的治疗。


最后,相比传统汽车,智能车辆更为节能、环保。据谷歌调查,传统汽车大部分时间都处于停用状态,利用率较低。智能车辆可以整合车辆信息,将车辆按需分配,提高车辆的利用率,从而减少车辆数量,达到节能、环保的效果。


国外许多发达国家大约在1950年左右就开始研究智能车辆了,截止到目前,一些简单地半自动智能车已经得到广泛地应用,但是,全自动智能汽车仍然遥遥无期。2017年9月,美国运输部对汽车的无人驾驶系统的安全性做出了评估,为以后在国家层面制定相关法律法规奠定了基础。截止现在,美国已经有22个州以上通过了相关的法律。目前,辅助驾驶技术和半自动驾驶技术已经得到广泛的普及,世界汽车巨头正在致力于发展第三阶段的全自动驾驶。


与美国等发达国家相比,我国的智能车辆技术的发展之路还比较漫长。我国的智能车辆技术大约是从1980年左右开始起步研究的,目前在一些沿海城市有了很大的发展。在我国,人们正在不断地加深对智能车辆的重视程度,国家正在不断加大对智能车辆的研发资金投入力度。相信经过我国的大力研究,以及庞大的市场刺激,我国戴尔智能车辆技术将会飞速提高。据大数据调查分析,未来我国对智能车辆的需求非常大,在2020年左右,半自动驾驶汽车的市场占有率将达到30%,在2025年左右,将达到50%。在2018年,中国的智能汽车将达到50万辆。到时候,巨大的市场将会推动技术的快速发展,刺激我国的汽车产业寻求技术突破,促进智能汽车产业的优胜劣汰。如图1-1为常见的智能小车。

图1-1 智能小车

1.3 本次设计的主要任务

本次课题主要设计的是一个简易的智能电动车,采用AVR单片机作为小车的检测和控制核心。采用RPR220型光电对管来检测道路上的黑线,从而把反馈到的信号送单片机,是单片机按照预定的工作模式控制小车在各区域按预定的轨迹行驶。并且在小车的行驶过程中,可以自动识别障碍物并自动躲避。


第2章 系统方案设计

2.1 总体设计框图

在系统层面而言,本系统由四个部分组成。控制核心、循迹模块、避障模块、电机驱动模块。首先,循迹模块和避障模块获取周围的信息,然后将信息传递至控制核心,控制核心进行信息处理后,根据预习设定的程序,将信号传递至电机驱动模块,驱动电机运行。这样,就完成了小车的循迹和避障功能。系统组成框图如图2-1所示[5]。

图2-1 总体设计框图

2.2 核心控制单元的选择

本课题采用ATmega16单片机作为核心控制单元,ATmega16单片机是采用 RISC结构的AVR内核单片机。ATmega16单片机拥有131个机器指令,32个8位通用工作寄存器等,并且在内部具有2个时钟周期的硬件乘法器。ATmega16单片机功耗低、价格便宜、运行速度快,十分适合作为嵌入式控制核心。ATmega16单片机的实物图如图2-2所示。

图2-3 ATmega16单片机的实物图

2.3 循迹方案设计

方案1:用光敏电阻组成光敏探测器

光敏电阻的阻值会随着周围环境中的光线强度变化而变化,光照越强,阻值就越低。当小车行驶时,光敏探测器会不断地对周围的环境进行探测。小车的行驶环境为纯白色背景下的黑色轨迹。当光敏探测器探测到白色背景时,反射光强度较强,光敏电阻的阻值会降低;当探测到黑色轨迹时,由于黑色的吸光作用,发射光的强度将会降低,光敏电阻的阻值将会变大。正是根据以上原理,小车可以使用光敏探测器进行循迹检测。但是由于光敏探测器受环境中光照强度的影响较大,不能稳定的工作。


方案2:用CCD摄像头传感器

线性CCD传感器摄像头可以将光线信号转换为电荷信号,再传送至单片机进行处理。CCD摄像头传感器的优点是探测距离远,可以提前探测道路情况,以便做出减速转弯等操作。使得小车的整体平均速度得到提高,具有良好的前瞻性。但是CCD摄像头传感器对于单片机小车来说,消耗资源略大,而且在实际过程中,发现CCD摄像头在市场上比较稀少,购买难度较大。


方案3:用RPR220型光电对管

RPR220与光敏探测器相似,是一款反射型的光电探测器。首先,RPR220型光电对管会发射出红外线,当红外线传至白色背景时,会反射回来重新被探测器接收,进而输出一个高电平;若红外线传至黑色轨迹时,黑色轨迹会将红外吸收,探测器检测不到反射光,就会输出低电平。RPR220型光电对管具有体积小、结构紧凑、电路简单、性能稳定等优点。

由于光敏电阻易受周围环境光照强度影响,CCD 摄像头对单片机片内资源消耗大等原因,本课题最终确定选择方案3 。


2.4 避障方案设计


方案1:使用超声波探测器

超声波探测器的原理是由探测器发出人耳不可听见的超声波,超声波触碰到物体后反射回探测器。通过检测超声波从发射到反射回来所使用的时间,就可以计算出与物体的距离。超声波探测器的优点是可以在较差的环境中正常工作,缺点是探测精度较低,使用成本较高。


方案2:使用激光测距传感器

激光测距传感器的测距原理与超声波探测器类似,传感器发射出激光,经反射后回到传感器,经过处理计算后即可得到相应的距离。激光测距传感器的优点是测量距离较长,测量精度较高;缺点是对资源的消耗较大,价格略昂贵。


方案3:使用红外避障传感器

E18-D80NK传感器的逻辑非常简单,它由发射器和红外接收器组成,负责感知某个物体的存在。它有一个圆柱形主体,通过钻孔可以很容易地安装到原型中,其中2个环用于固定,一个在内部,另一个在原型外部。它的连接通过3个引脚完成,传感器可以有两种不同的连接模式,它有两个信号电平,低电平(0.3到1.5V)和高电平(2.3到5V)。检测距离可以在3到80厘米之间进行调整,通过位于传感器底部的电位计进行。


由以上分析,本课题最终确定选择方案3。


2.5 电机驱动方案选


方案1:采用由晶体管组成的H桥电路

H桥电路可以将直流电逆变为可变频率的交流电,采用PWM 方式控制电机的运行。PWM是一种脉冲宽度调制方式,其原理是通过调整脉冲的占空比来调整一个周期内电机的通电时间,进而调节电机的运转速度。H桥电路的优点是稳定性好,应用广泛。


方案2:采用L298N驱动芯片

L298N属于H桥集成电路,可驱动大功率直流电机、步进电机等。L298N的优点是它的输入端可以直接与单片机相连,这样,可以便于直接受单片机控制。最重要的是,L298N可以同时驱动两台直流电机,恰好与本课题相符。


由于以上分析,本课题最终确定选择方案2 。

2.6 电机选择


方案1:采用步进电机

步进电机是由脉冲信号驱动转动的,其特点是可以精确地定位其转过的角度,进而精确地确定其行驶的距离。但是,步进电机难以获得较大的转矩,难以获得较大的转速,资源利用率略低,更多地使用在数控机床等需要精确控制的地方[6]。


方案2:采用直流减速电机

直流减速电机是指在普通直流电机的基础上,配套齿轮减速箱。具有节省空间、能耗低、性能稳定等优点,广泛地应用于自动化行业中。

由以上分析,步进电机不适用于本次设计的要求,故本课题最终确定采用方案2。


第3章 系统硬件电路设计

3.1 最小系统电路

本课题的中央处理器是ATMEGA16单片机,其主要功能是不停地接收由寻迹模块和避障模块中的传感器发送过来的信号,经过处理后将信息发送至电机驱动模块,从而实现对周围环境的实时响应。如图3-1是较为常见的带烧录接口的单片机最小系统图。

图3-1 最小系统电路

3.2 循迹模块电路

循迹模块电路所用传感器是RPR220型光电对管,如图3-2所示。RPR220是一款集成式光电探测器,其发射极为GaAs红外发射二极管,接收器为高灵敏度硅平面光电晶体管

图3-2 RPR220

GaAs红外发射二极管向目标发射红外线,光电晶体管接收到由目标反射的红外线后,向单片机发射电平跳变信号。当小车行驶在白色背景上时,安装在小车下方的发射极对地面发射红外光,经白色背景反射后,光电晶体管将打开。寻迹模块电路如图3-3所示。

图3-3寻迹模块电路图

当小车行驶在黑色轨迹上时,红外光被黑色背景吸收,光电晶体管不能接收到反射光,LM339电压比较器截止,输出低电平至单片机。因此,根据单片机I/O口接收电平不同,即可判断小车的行驶情况。


为了保证小车沿黑线行驶,采用了四个检测器并行排列,检测器排列位置如图3-4所示。其编号1至4对应的硬件电路分别接在单片机的PA0、PA1、PA2、PA3端口。在小车运动过程中,结合查询方式,通过程序控制小车运动轨迹。如果2号红外对管和3号红外对管检测到黑线,则单片机控制小车向前直走;如果2号红外对管偏离黑线,3号红外对管检测到黑线,则单片机控制小车轻微左移;如果3号红外对管偏离黑线,2号红外对管检测到黑线,则单片机控制小车轻微右移;如果2号和3号红外对管偏离黑线,1号红外对管检测到黑线,则单片机控制小车向左移动;如果2号和3号红外对管偏离黑线,4号红外对管检测到黑线,则单片机控制小车向左移动[7]。

图3-4 检测器位置

3.3 避障模块

避障模块采用型号为E18-D80NK的红外避障传感器,如图3-5所示。

图3-5 E18-D80NK

E18-D80NK传感器的逻辑非常简单,它由发射器和红外接收器组成,负责感知某个物体的存在。它有一个圆柱形主体,通过钻孔可以很容易地安装到原型中,其中2个环用于固定,一个在内部,另一个在原型外部。它的连接通过3个引脚完成,传感器可以有两种不同的连接模式,它有两个信号电平,低电平(0.3到1.5V)和高电平(2.3到5V)。检测距离可以在3到80厘米之间进行调整,通过位于传感器底部的电位计进行[8]。

图3-6 E18-D80NK原理图

E18-D80NK电气特性如表3-1。


表3-1 E18-D80NK电气特性

红色

绿色

黄色

工作电压

工作电流

驱动电流

感应距离


VCC

GND

OUT

5VDC

10-15mA

100mA

3-80CM



E18-D80NK红外避障传感器在小车正常运行时,输出高电平;当检测到前方有障碍物时,输出低电平,黄色的线作为E18-D80NK红外避障传感器的输出口,直接与单片机相连,将检测信号送入单片机中,经进一步处理后,使小车做出相应的变化。避障模块电路如图3-7所示。避障模块采用三只红外避障传感器,安装于小车两侧及下中央,可以检测两侧和正前方是否有障碍,检测后将信号送入单片机,单片机对信号进行处理并发出相应的信号驱动小车电机,使小车躲避障碍。其左中右三个传感器的硬件电路分别接到单片机的PB0、PB1、PB2 端口。当三个传感器检测到无障碍时,小车正常前进行驶;当前侧传感器检测到有障碍时,小车右转;当左侧或左及前侧传感器检测到障碍时,小车右转;当右侧或右侧及前侧传感器检测到障碍时,小车左转;当三个传感器都检测到有障碍或左右侧传感器检测到有障碍时,小车停止[9]。

            

图3-7避障模块电路

3.4 电机驱动模块

3.4.1 L298N电机驱动芯片

L298N是由意法半导体公司研发制造的一款双全桥大电流(2A*2)电机驱动芯片,比较常见的是15脚MulTIwatt封装的L298N,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,其实物图及直流电机实物如图3-8所示。


图3-8 L298N及电机实物图

L298N属于H桥集成电路,可驱动大功率直流电机、步进电机等。L298N的平均输出电流为2A,最大时甚至可达到4A,其输入端可以直接与单片机相连,从而很方便地受单片机的控制。


图3-9为L298N的引脚图,图中Current sensing为电流感应电阻,可以在Current sensing连接电流表,以此来检测L298N中流过的电流。OUTPUT为L298N的输出端,其中,OUTPUT 1和OUTPUT 2为A相的两个输出,OUTPUT 3和OUTPUT 4为B相的两个输出,可以用来连接电机。INPUT是L298N的输入端,INPUT的电平决定了相应编号的OUTPUT的电平。ENABLE为L298N的使能端,若ENABLE为高电平,则OTPUT就会与INPUT保持一致,否则,OUTPUT不与任何端口相连。LOGIC SUPPLY VOLTAGE VSS是L298N的逻辑电压,为L298N中的逻辑器件提供电源。GND为L298N的接地端。SUPPLY VOLTAGE VSS为L298N的驱动电压,为电机提供电源[10]。


图3-9 L298N引脚

3.4.2 PWM调速原理

脉冲宽度调制(PWM)是英文“Pulse Width Modulation”的缩写,简称脉宽调制。PWM调速的原理是调节在一个周期内驱动脉冲的占空比,进而调节电机的供电时间比例。在一个周期内,占空比越大,则电机的供电时间越长,电机的运转速度就越快。因此,电机的调速范围最小为零,最大为持续供电的电机转速[11]。


3.4.3 驱动电路

直流电机驱动电路使用H型全桥式驱动电路。这种驱动电路可以很方便实现直流电机的四象限运行,分别对应正转、正转制动、反转、反转制动。在本设计中电机驱动电路由集成驱动芯片L298N构成,并结合PWM进行调速。ATmega16单片机本身带有四个PWM输出端口,通过设定其内部参数来控制PWM的输出,来改变脉冲宽度调制的占空比。本设计选用四个I/O口中的PD4及PD5为PWM信号的输出端口。它的基本原理图如图3-10所示[12]。

图3-10 驱动电路

该驱动电路可以驱动两路直流电机,使能端ENA、ENB为高电平时有效,控制方式及直流电机状态图如表3-1所示。

表3-1 电机驱动控制方式及直流电机状态

ENA

IN1

IN2

直流电机状态

0

X

X

停止

1

0

0

制动

1

0

1

正转

1

1

0

反转

1

1

1

制动


若要对直流电机进行PWM调速,需设置IN1和IN2,确定电机的转动方向,然后对使能端输出PWM脉冲,即可实现调速。注意,当使能信号为0时,电机处于停止状态;当使能信号为1时,00和11的IN1和IN2,制动电机,停止电机旋转[13]。


对于汽车的转向控制,需要向ENA和ENB输入不同的PWM信号,以实现直流电动机的转速差,从而实现汽车转向。本设计中有微调转弯和转弯两种转弯状态,微调转弯是其中一个PWM信号不变,另一个的占空比减少一半;转弯是其中一个PWM信号不变,另一个无PWM信号输出[14]。


沈阳工业大学本科生毕业论文

第4章 系统软件设计

本课题的系统软件部分采用模块化设计方案。模块化设计方案不仅逻辑清晰,而且便于编程,发现错误后,更是便于修改。系统软件共分为四个模块,分别为主程序模块、寻迹模块、避障模块以及电机驱动模块。寻迹模块和避障模块不断采集周围环境的信息发送至处理器,再由处理器处理后发送至电机驱动模块,以便于小车可以随环境变化而做出改变。本设计的源程序见附录B。


4.1 ICCAVR简介

该设计使用的开发环境为ICCAVR开发环境。 ICCAVR是ATMEL公司专门为AT90系列单片机开发的编译工具。ICCAVR是一个集成的工作环境,简称IDE,它综合了编辑器和工程管理器等功能,并且可以根据开发的单片机的不同,选择不同的初始值,以及是否使用定时器等功能,十分强大,是一个被众多单片机开发人员广泛使用的开发环境。

图4-1 ICCAVR 界面

4.2 主控制模块主程序设计

主控制模块主程序流程图如图4-2,它的作用是整合小车的各个模块,使其正常、协调的运行。当小车开始运行后,初始化各个变量,并负责接收各个子模块的信息,综合处理后再按照预先的设定不断的做出反应,从而实现本课题的设计要求[15]。


图4-2主程序流程图

4.3 红外循迹模块子程序设计

循迹模块的功能主要是不断的采集周围环境中的信息,并将其发送至控制核心单元,以便于小车进行下一步操作。流程图如图4-3所示。


红外跟踪模块子程序接收外围红外检测电路信号并对接收到的信号进行编码,红外检测外围电路红外对管位置如图3-4。当红外对管检测到白色背景时输出高电平,检测到黑色轨迹时输出低电平。外围电路红外对管状态进行信号编码后对应表格如表4-1,将信号进行处理编码之后,判断信号类型,当信号为:1000,1100,1110,0100时,单片机送出左转信号;当信号为:0001,0011,0111,0010时,单片机送出右转信号;当信号为:0111,1111时,单片机送出直走信号;当信号为:0000时,停止。信号0101,1010,1101,1011,1001为无效信号[16]。

图4-3 红外循迹模块子程序流程图


表4-1 外围电路红外对管状态进行信号编码后对应表

外围红外对管输出状态

信号编码结果

外围红外对管输出状态

信号编码结果

1号低2号低3号低4号低

0000

1号低2号低3号高4号低

0010

1号高2号高3号高4号高

1111

1号低2号高3号高4号低

0110

1号高2号低3号低4号低

1000

1号低2号低3号高4号高

0011

1号高2号高3号低4号低

1100

1号低2号低3号低4号高

0001

1号低2号高3号低4号低

0100

1号低2号高3号高4号高

0111

1号高2号高3号高4号低

1110




4.4 红外避障模块子程序设计

红外避障模块子程序流程图如图4-4所示。避障模块采用E18-D80NK传感器来探测前方的道路上15厘米的距离之内有无障碍物,进而将探测结果发送至核心控制单元,等待控制单元做出下一步的处理[17]。

图4-4 红外避障程序流程图


避障模块不断的通过传感器采集周围环境中的信息,当前方15厘米内没有障碍物时,小车保持前进状态,若有障碍物则可通过小车前方及左右方的红外避障传感器,获得障碍物的具体情况进行信息处理编码,编码方式如下表4-2。

将外部信息进行编码后,通过对信号的判断,控制小车的移动方向:探测结果111,表明前方15cm内无障碍物单片机送出“前进”指令,小车保持前进状态;探测结果000,表明前方及左右两边15cm内均有障碍物,单片机送出“停止”指令;探测结果101,表明前方15cm内有障碍物左右两边均无障碍物,单片机送出“右转”指令(左右均无障碍物默认右转);探测结果001,表明前方及左边15cm内有障碍物,单片机送出“右转”指令;探测结果100,表明前方及右边15cm内有障碍物,单片机送出“左转”指令;探测结果110,表明右边15cm内有障碍物,单片机送出“左转”指令;探测结果011,表明左边15cm内有障碍物,单片机送出“右转”指令;探测结果010,表明左边及右边15cm内有障碍物,单片机送出“停止”指令[18]。


表4-2 红外避障模块外围电路信息处理编码表

外围电路障碍物探测结果

信息编码结果

左边无障碍物,前方无障碍物,右边无障碍物

111

左边有障碍物,前方有障碍物,右边有障碍物

000

左边无障碍物,前方有障碍物,右边无障碍物

101

左边有障碍物,前方有障碍物,右边无障碍物

001

左边无障碍物,前方有障碍物,右边有障碍物

100

左边无障碍物,前方无障碍物,右边有障碍物

110

左边有障碍物,前方无障碍物,右边无障碍物

011

左边有障碍物,前方无障碍物,右边有障碍物

010



4.5 电机驱动模块子程序设计

电机驱动模块不断的等待接受单片机发出的指令,并可以根据指令控制电机做出不同的反应,进而控制小车的运动[19]。流程图如图4-5所示。

当接收指令0x00:无数据,无PWM波,无方向信号。当接收指令0x01:小车前进,两个电机驱动器给予相同的PWM波,相同的方向信号。当接收指令0x02:小车后退,在前进的基础上改变方向信号。当接收指令0x03:小车停止,无PWM波,无方向信号。当接收指令0x04:结合循迹模块的信号向左微转或左转。当接收指令0x05:结合循迹模块的信号向右微转或右转。

图4-5电机控制程序流程图


第5章 结论

通过这个学期的不断深入学习,深入了解了AVR单片机的各个特性,以及ICCAVR的使用方法,设计并实现了可以自动循迹、避障的智能小车。大大提高了自己的动手能力以及独立学习的能力。通过本课题的学习研究,我深刻地认识到,只学习课本上的知识是远远不够的,必须紧跟时代的发展趋势,不断地学习新的知识,努力地提高自己,才能达到自己预期的目标。

在本课题中,以AVR单片机为控制核心,以RPR220型光电对管、E18-D80NK传感器等作为辅助模块,完成了可以自动循迹、避障的智能小车。小车实现了以下几个功能:

  • 小车可以自动沿着白色背景上的黑色轨迹行驶,一旦行驶过程中有所偏离,还可以自动回到黑色轨迹上来。

  • 小车在行驶过程中,可以自动检测前方的道路上有无障碍物。若有障碍物,可以实现自动躲避并继续行驶。

通过本次课题的学习,我不但掌握了很多以前学的不明白的知识,还学习了很多新知识,有了很大的收获。


致   谢

本论文的设计是在关新老师的悉心指导下完成的。从课题的选择、到具体的设计,无论在理论上还是在实践中都给了我许多指导和帮助,使我得以改进和提高。她严谨的治学态度,求真务实的学术作风,深厚的理论水平,丰富的项目经验,都深刻地影响着我,使我终身受益。值此论文完成之际,我谨向关新老师表示深深的感谢和崇高的敬意!

同时,在撰写毕业论文过程中,得到了我的同学李佳城、吴济等同学各方面的热诚帮助,使我能够顺利完成毕业论文,在此致以深深的谢意!


附 录A 总电路图


附 录B 源程序

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar count=0;//小车行走步数寻左

void forward2(void);

void forward1(void);

void init_devices(void)

{

CLI(); //禁止所有中断

MCUCR  = 0x00;

MCUCSR = 0x80;//禁止JTAG

GICR   = 0x00;

SEI();//开全局中断

}

//定时T1初始化

void timer1_init(void)

{

TCCR1B = 0x00;//停止定时器

TIMSK |= 0x00;//中断允许

TCNT1H = 0x00;

TCNT1L = 0x00;//初始值

OCR1AH = 0x00;

OCR1AL = 0xF0;//匹配A值

OCR1BH = 0x00;

OCR1BL = 0xF0;//匹配B值

[1] [2]
关键字:AVR  单片机  智能小车 引用地址:基于AVR单片机的多功能智能小车系统设计

上一篇:ATmeg16单片机+LCD12864温度检测显示程序(并行控制,不带字库)
下一篇:ATMEGA128的1602LCD显示驱动程序

推荐阅读最新更新时间:2024-11-17 10:53

MCU典型应用设计:STM32-F2在工厂自动化中的应用
工业环境正在对嵌入式控制系统开发人员构成日益严峻的挑战,究其主要原因,当前系统和通信协议栈变得越来越复杂,系统实时性和安全要求越来越严格,同时,这种趋势直接影响到半导体元器件的特性和技术规格。   为克服这些挑战,意法半导体在今年初发布了STM32-F2系列微控制器,以帮助开发人员实现要求苛刻的工业应用。新系列产品诞生于深受市场欢迎的STM32产品家族,拥有更高的性能、更大的存储容量和针对工业应用优化的外设。F2 系列产品在一颗芯片上集成了多种功能,例如,控制/调整功能和复杂的通信协议栈。高集成度的优点是,缩小印刷电路板空间,避免在不同的控制器之间存在易受到电磁兼容性影响的连接电路,优化应用成本。   工业自动化市场的特点
[模拟电子]
<font color='red'>MCU</font>典型应用设计:STM32-F2在工厂自动化中的应用
C51单片机的精准延时程序(Timer)
使用定时器 / 计数器实现精确延时 单片机系统一般常选用 11.059 2 MHz 、 12 MHz 或 6 MHz 晶振。第一种更容易产生各种标准的波特率, 后两种的一个机器周期分别为 1 μ s 和 2 μ s ,便于精确延时。本程序中假设使用频率为 12 MHz 的晶振。 最 长的延时时间可达 216=65 536 μ s 。若定时器工作在方式 2 ,则可实现极短时间的精确延时;如使用其他 定时方式,则要考虑重装定时初值的时间(重装定时器初值占用 2 个机器周期)。 在实际应用中,定时常采用中断方式,如进行适当的循环可实现几秒甚至更长时间的延时。使用定时 器 / 计数器延时从程序的执行效率和稳定性两方面考虑都是最佳的方案。但
[单片机]
51单片机你选“谁”?
一、AT89S51代替AT89C51的实质 MCS-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89S51、已经停产的89C51等),各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。 兼容系列单片机,就是说MCS-51内核实际上已经成为一个8位单片机的标准。 不同公司的51单片机产品都是和MCS-51内核兼容的产品而以。同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51, PHILIPS(菲利浦),和WINBOND(华邦)等, 89C51最致命的缺陷在于不支持ISP(在线更新程序)功能, 89S51在工艺上进行了改进,89S5
[单片机]
单片机_C语言函数_中断函数(中断服务程序)
在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统。 中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该知道),我们在这里就不讲了,首先来回忆下中断系统涉及到哪些问题。 (1)中断源:中断请求信号的来源。(8051有3个内部中断源T0,T1,串行口,2个外部中断源INT0,INT1(这两个低电平有效,上面的那个横杠不知道怎么加上去)) (2)中断响应与返回:CPU采集到中断请求信号,怎样转向特定的中断服务子程序,并在执行完之后返回被中断程序继续执行。期间涉及到CPU响应中断的条件,现场保护,现场恢复。 (3)优先级控制:中断优先级的控制就形成了中断嵌套(8051允许有两级的中断嵌套
[单片机]
基于AT89S52单片机和ISD4004语音芯片设计
随着数字电子技术的发展和单片机等微控制器的产生,语音的存储与自动播放变得易于实现。目前语音存储与自动播放系统已经广泛应用于日常生活当中。公共汽车上的语音报站器、银行和医院的排队等候系统等,都是语音存储与自动播报系统的应用。本文介绍一种以语音存储与自动播放系统为基础的语音播报记事器设计。该设计以ISD4004:语音芯片和AT89S52单片机为中心,很好地实现了语音存储与自动播放。 1硬件设计原理 语音播报记事器的主要功能是实现语音存储与定时播放。要实现语音存储与定时播放的方法很多,可供选择的器件也很多。由于单片机等微控制器的出现和数字电路技术的发展,使得现在的语音存储与自动播放变得易于实现。本设计采用单片机作为微控制器。单片机的
[单片机]
基于AT89S52<font color='red'>单片机</font>和ISD4004语音芯片设计
51单片机PWM温控风扇源代码
51系列单片机代码如下: #include reg52.h //调用单片机头文件 #define uchar unsigned char //无符号字符型 宏定义 变量范围0~255 #define uint unsigned int //无符号整型 宏定义 变量范围0~65535 //数码管段选定义 0 1 2 3 4 5 6 7 8 9 uchar code smg_du ={0x28,0xee,0x42,0x72,0xe5,0xa8,0x41,0x77,0x20,0xa0, 0x60,0
[单片机]
芯科MCU可延长无线嵌入式系统65%电池寿命
   2011年12月8日 -高性能模拟与混合信号IC领导厂商Silicon Laboratories (芯科实验室有限公司, NASDAQ: SLAB)今日宣布推出业界最节能单片机(MCU)和无线MCU解决方案,该方案特别适用于功耗敏感的嵌入式应用。新型C8051F96x MCU、Si102x和Si103x无线MCU系列产品基于低功耗专利技术,与同类其他产品相比,该项专利技术能使系统电流消耗降低40%,电池寿命可延长高达65%。Silicon Labs超低功耗MCU系列产品针对电池供电的嵌入式系统对于低功耗需求而设计,是智能仪表(水表、煤气表和供热表)、家用装置监测、无线安保、家居和楼宇自动化、便携式医疗和资产追踪等产品的理想选择
[工业控制]
基于C8051F005单片机的小电阻测试仪
1、引言   在电路测试过程中常常会碰到由于忽略某些小电阻的影响引起实验数据与理论值之间存在较大误差,从而影响测试效果。例如电感器、变压器中往往存在铜电阻,地铁铁轨的电阻;由于其数值较小,一般的指针万用表无法测量出来;通常实验室里会用电桥进行测量,但电桥操作手续较烦,又不能直接读出被测电阻阻值。鉴于此,我们采用了单片机,利用单片机的优势设计了该测量仪。该测量仪可直接从LCD显示屏上读出所测得的电阻值,测量范围为10μΩ~2.9999kΩ,同时可以把测试的数据进行储存,然后经串行口送入上位机,通过上位机的强大功能,可以对所测得的数据进行分析、处理。该测试仪的测量精度高达±0.1%,并采用四端测量法,电阻值不受引线长短及接触电阻的影
[测试测量]
基于C8051F005<font color='red'>单片机</font>的小电阻测试仪
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved